@ironbee-ai/cli 0.5.1 → 0.5.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 +12 -0
- package/README.md +1 -1
- package/dist/analysis/cross-session.d.ts +1 -1
- package/dist/analysis/cross-session.js +1 -1
- package/dist/analysis/cross-session.js.map +1 -1
- package/dist/analysis/time-analysis.js +3 -3
- package/dist/analysis/time-analysis.js.map +1 -1
- package/dist/analysis/verdict-details.d.ts +1 -1
- package/dist/clients/base.d.ts +4 -0
- package/dist/clients/base.d.ts.map +1 -1
- package/dist/clients/claude/hooks/activity-start.d.ts +10 -0
- package/dist/clients/claude/hooks/activity-start.d.ts.map +1 -0
- package/dist/clients/claude/hooks/activity-start.js +31 -0
- package/dist/clients/claude/hooks/activity-start.js.map +1 -0
- package/dist/clients/claude/hooks/clear-verdict.d.ts.map +1 -1
- package/dist/clients/claude/hooks/clear-verdict.js +17 -9
- package/dist/clients/claude/hooks/clear-verdict.js.map +1 -1
- package/dist/clients/claude/hooks/require-verdict.d.ts.map +1 -1
- package/dist/clients/claude/hooks/require-verdict.js +4 -1
- package/dist/clients/claude/hooks/require-verdict.js.map +1 -1
- package/dist/clients/claude/hooks/require-verification.d.ts.map +1 -1
- package/dist/clients/claude/hooks/require-verification.js +12 -1
- package/dist/clients/claude/hooks/require-verification.js.map +1 -1
- package/dist/clients/claude/hooks/session-end.d.ts +10 -0
- package/dist/clients/claude/hooks/session-end.d.ts.map +1 -0
- package/dist/clients/claude/hooks/session-end.js +44 -0
- package/dist/clients/claude/hooks/session-end.js.map +1 -0
- package/dist/clients/claude/hooks/session-start.d.ts.map +1 -1
- package/dist/clients/claude/hooks/session-start.js +4 -2
- package/dist/clients/claude/hooks/session-start.js.map +1 -1
- package/dist/clients/claude/hooks/track-action.d.ts.map +1 -1
- package/dist/clients/claude/hooks/track-action.js +15 -4
- package/dist/clients/claude/hooks/track-action.js.map +1 -1
- package/dist/clients/claude/hooks/verify-gate.d.ts.map +1 -1
- package/dist/clients/claude/hooks/verify-gate.js +7 -3
- package/dist/clients/claude/hooks/verify-gate.js.map +1 -1
- package/dist/clients/claude/index.d.ts +2 -0
- package/dist/clients/claude/index.d.ts.map +1 -1
- package/dist/clients/claude/index.js +34 -0
- package/dist/clients/claude/index.js.map +1 -1
- package/dist/clients/cursor/hooks/activity-start.d.ts +10 -0
- package/dist/clients/cursor/hooks/activity-start.d.ts.map +1 -0
- package/dist/clients/cursor/hooks/activity-start.js +31 -0
- package/dist/clients/cursor/hooks/activity-start.js.map +1 -0
- package/dist/clients/cursor/hooks/clear-verdict.d.ts.map +1 -1
- package/dist/clients/cursor/hooks/clear-verdict.js +19 -10
- package/dist/clients/cursor/hooks/clear-verdict.js.map +1 -1
- package/dist/clients/cursor/hooks/require-verdict.d.ts.map +1 -1
- package/dist/clients/cursor/hooks/require-verdict.js +4 -1
- package/dist/clients/cursor/hooks/require-verdict.js.map +1 -1
- package/dist/clients/cursor/hooks/require-verification.d.ts.map +1 -1
- package/dist/clients/cursor/hooks/require-verification.js +12 -1
- package/dist/clients/cursor/hooks/require-verification.js.map +1 -1
- package/dist/clients/cursor/hooks/session-end.d.ts +10 -0
- package/dist/clients/cursor/hooks/session-end.d.ts.map +1 -0
- package/dist/clients/cursor/hooks/session-end.js +44 -0
- package/dist/clients/cursor/hooks/session-end.js.map +1 -0
- package/dist/clients/cursor/hooks/session-start.d.ts.map +1 -1
- package/dist/clients/cursor/hooks/session-start.js +4 -2
- package/dist/clients/cursor/hooks/session-start.js.map +1 -1
- package/dist/clients/cursor/hooks/track-action.d.ts.map +1 -1
- package/dist/clients/cursor/hooks/track-action.js +15 -4
- package/dist/clients/cursor/hooks/track-action.js.map +1 -1
- package/dist/clients/cursor/hooks/verify-gate.d.ts.map +1 -1
- package/dist/clients/cursor/hooks/verify-gate.js +10 -3
- package/dist/clients/cursor/hooks/verify-gate.js.map +1 -1
- package/dist/clients/cursor/index.d.ts +2 -0
- package/dist/clients/cursor/index.d.ts.map +1 -1
- package/dist/clients/cursor/index.js +22 -0
- package/dist/clients/cursor/index.js.map +1 -1
- package/dist/commands/analyze.js +3 -3
- package/dist/commands/analyze.js.map +1 -1
- package/dist/commands/hook.js +24 -0
- package/dist/commands/hook.js.map +1 -1
- package/dist/hooks/core/actions.d.ts +117 -24
- package/dist/hooks/core/actions.d.ts.map +1 -1
- package/dist/hooks/core/actions.js +74 -1
- package/dist/hooks/core/actions.js.map +1 -1
- package/dist/hooks/core/activity.d.ts +20 -0
- package/dist/hooks/core/activity.d.ts.map +1 -0
- package/dist/hooks/core/activity.js +53 -0
- package/dist/hooks/core/activity.js.map +1 -0
- package/dist/hooks/core/session-state.d.ts +9 -7
- package/dist/hooks/core/session-state.d.ts.map +1 -1
- package/dist/hooks/core/session-state.js +65 -8
- package/dist/hooks/core/session-state.js.map +1 -1
- package/dist/hooks/core/submit-verdict.d.ts.map +1 -1
- package/dist/hooks/core/submit-verdict.js +16 -4
- package/dist/hooks/core/submit-verdict.js.map +1 -1
- package/dist/hooks/core/verification-lifecycle.d.ts.map +1 -1
- package/dist/hooks/core/verification-lifecycle.js +20 -4
- package/dist/hooks/core/verification-lifecycle.js.map +1 -1
- package/dist/hooks/core/verify-gate.d.ts.map +1 -1
- package/dist/hooks/core/verify-gate.js +18 -14
- package/dist/hooks/core/verify-gate.js.map +1 -1
- package/dist/lib/collector.d.ts +2 -2
- package/dist/lib/collector.d.ts.map +1 -1
- package/dist/lib/collector.js +3 -12
- package/dist/lib/collector.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.5.3 (2026-04-18)
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
* **event:** add activity_id to activity, verification and fix events ([49d97af](https://github.com/ironbee-ai/ironbee-cli/commit/49d97afb50ad87b4c01b24b105b595c9335d3152))
|
|
8
|
+
|
|
9
|
+
## 0.5.2 (2026-04-15)
|
|
10
|
+
|
|
11
|
+
### Refactors
|
|
12
|
+
|
|
13
|
+
* **event:** add client to session start event ([cb59a4d](https://github.com/ironbee-ai/ironbee-cli/commit/cb59a4df77bc10e954419dfca7480afa8473c093))
|
|
14
|
+
|
|
3
15
|
## 0.5.1 (2026-04-04)
|
|
4
16
|
|
|
5
17
|
## 0.5.0 (2026-04-03)
|
package/README.md
CHANGED
|
@@ -233,7 +233,7 @@ Each AI session gets its own directory under `.ironbee/sessions/<session-id>/`:
|
|
|
233
233
|
.ironbee/sessions/<session-id>/
|
|
234
234
|
actions.jsonl # Event log (file edits, tool calls, verification markers)
|
|
235
235
|
verdict.json # Current verdict (cleared on code edit)
|
|
236
|
-
state.json # Session state (retries, active verification, trace ID, active fix, phase)
|
|
236
|
+
state.json # Session state (retries, active verification, trace ID, active fix, active activity, phase)
|
|
237
237
|
session.log # Debug log
|
|
238
238
|
```
|
|
239
239
|
|
|
@@ -178,7 +178,7 @@ function analyzeCrossSessions(sessionsDir) {
|
|
|
178
178
|
}
|
|
179
179
|
// Sort summaries by timestamp desc (most recent first)
|
|
180
180
|
summaries.sort((a, b) => {
|
|
181
|
-
return
|
|
181
|
+
return b.timestamp - a.timestamp;
|
|
182
182
|
});
|
|
183
183
|
const totalSessions = sessionIds.length;
|
|
184
184
|
const aggregateFirstPassRate = sessionsWithVerdicts > 0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cross-session.js","sourceRoot":"","sources":["../../src/analysis/cross-session.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cross-session.js","sourceRoot":"","sources":["../../src/analysis/cross-session.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,8 +35,8 @@ function analyzeTime(actionsFile) {
|
|
|
35
35
|
if (!sessionStartEntry) {
|
|
36
36
|
return null;
|
|
37
37
|
}
|
|
38
|
-
const startTs =
|
|
39
|
-
const lastTs =
|
|
38
|
+
const startTs = sessionStartEntry.timestamp;
|
|
39
|
+
const lastTs = entries[entries.length - 1].timestamp;
|
|
40
40
|
const sessionDuration = Math.max(0, lastTs - startTs);
|
|
41
41
|
let currentPhase = "coding";
|
|
42
42
|
let phaseStartTs = startTs;
|
|
@@ -51,7 +51,7 @@ function analyzeTime(actionsFile) {
|
|
|
51
51
|
let currentVerificationStart = null;
|
|
52
52
|
let currentFixStart = null;
|
|
53
53
|
for (const entry of entries) {
|
|
54
|
-
const ts =
|
|
54
|
+
const ts = entry.timestamp;
|
|
55
55
|
if (entry.type === "session_start") {
|
|
56
56
|
// session_start marks beginning of coding
|
|
57
57
|
currentPhase = "coding";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"time-analysis.js","sourceRoot":"","sources":["../../src/analysis/time-analysis.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AA2CH,kCAmKC;AA5MD,2BAA8C;AAoB9C,SAAS,YAAY,CAAC,WAAmB;IACrC,IAAI,CAAC,IAAA,eAAU,EAAC,WAAW,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAW,IAAA,iBAAY,EAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAa,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAS,EAAW,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAChG,MAAM,OAAO,GAAkB,EAAE,CAAC;IAElC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC;YACD,MAAM,KAAK,GAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAgB,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC;QAAC,MAAM,CAAC;YACL,uBAAuB;QAC3B,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,SAAgB,WAAW,CAAC,WAAmB;IAC3C,MAAM,OAAO,GAAkB,YAAY,CAAC,WAAW,CAAC,CAAC;IAEzD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,iBAAiB,GAA4B,OAAO,CAAC,IAAI,CAC3D,CAAC,CAAc,EAAW,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAC1D,CAAC;IAEF,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,OAAO,GAAW,
|
|
1
|
+
{"version":3,"file":"time-analysis.js","sourceRoot":"","sources":["../../src/analysis/time-analysis.ts"],"names":[],"mappings":"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"}
|
package/dist/clients/base.d.ts
CHANGED
|
@@ -20,5 +20,9 @@ export interface IClient {
|
|
|
20
20
|
runRequireVerdict(projectDir: string): Promise<void>;
|
|
21
21
|
/** Runs the require-verification PreToolUse hook for this client. */
|
|
22
22
|
runRequireVerification(projectDir: string): Promise<void>;
|
|
23
|
+
/** Runs the activity-start hook for this client (UserPromptSubmit / beforeSubmitPrompt). */
|
|
24
|
+
runActivityStart(projectDir: string): Promise<void>;
|
|
25
|
+
/** Runs the session-end hook for this client (SessionEnd). */
|
|
26
|
+
runSessionEnd(projectDir: string): Promise<void>;
|
|
23
27
|
}
|
|
24
28
|
//# sourceMappingURL=base.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/clients/base.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,wEAAwE;IACxE,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IAEpC,oEAAoE;IACpE,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAElC,2EAA2E;IAC3E,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpC,yFAAyF;IACzF,iBAAiB,IAAI,MAAM,CAAC;IAE5B,sDAAsD;IACtD,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjD,+DAA+D;IAC/D,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnD,8DAA8D;IAC9D,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElD,mDAAmD;IACnD,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnD,gEAAgE;IAChE,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErD,qEAAqE;IACrE,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/clients/base.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,wEAAwE;IACxE,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IAEpC,oEAAoE;IACpE,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAElC,2EAA2E;IAC3E,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpC,yFAAyF;IACzF,iBAAiB,IAAI,MAAM,CAAC;IAE5B,sDAAsD;IACtD,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjD,+DAA+D;IAC/D,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnD,8DAA8D;IAC9D,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElD,mDAAmD;IACnD,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnD,gEAAgE;IAChE,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErD,qEAAqE;IACrE,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1D,4FAA4F;IAC5F,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpD,8DAA8D;IAC9D,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClD"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Claude Code — activity-start hook adapter
|
|
3
|
+
*
|
|
4
|
+
* UserPromptSubmit hook — records activity start when the user
|
|
5
|
+
* submits a prompt (beginning of each agent turn).
|
|
6
|
+
*
|
|
7
|
+
* Exit 0 = always allow (this hook only tracks, never blocks)
|
|
8
|
+
*/
|
|
9
|
+
export declare function run(projectDir: string): Promise<void>;
|
|
10
|
+
//# sourceMappingURL=activity-start.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity-start.d.ts","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/activity-start.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAUH,wBAAsB,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB3D"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Claude Code — activity-start hook adapter
|
|
4
|
+
*
|
|
5
|
+
* UserPromptSubmit hook — records activity start when the user
|
|
6
|
+
* submits a prompt (beginning of each agent turn).
|
|
7
|
+
*
|
|
8
|
+
* Exit 0 = always allow (this hook only tracks, never blocks)
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.run = run;
|
|
12
|
+
const activity_1 = require("../../../hooks/core/activity");
|
|
13
|
+
const logger_1 = require("../../../lib/logger");
|
|
14
|
+
const stdin_1 = require("../../../lib/stdin");
|
|
15
|
+
async function run(projectDir) {
|
|
16
|
+
let input;
|
|
17
|
+
try {
|
|
18
|
+
input = JSON.parse((0, stdin_1.readStdin)());
|
|
19
|
+
}
|
|
20
|
+
catch (e) {
|
|
21
|
+
logger_1.logger.debug(`failed to parse stdin: ${e}`);
|
|
22
|
+
process.exit(0);
|
|
23
|
+
}
|
|
24
|
+
const sessionId = input.session_id ?? "default";
|
|
25
|
+
const sessionDir = `${projectDir}/.ironbee/sessions/${sessionId}`;
|
|
26
|
+
(0, logger_1.setLogFile)(`${sessionDir}/session.log`);
|
|
27
|
+
const actionsFile = `${sessionDir}/actions.jsonl`;
|
|
28
|
+
await (0, activity_1.startActivity)({ sessionDir, actionsFile, source: "user_prompt" });
|
|
29
|
+
process.exit(0);
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=activity-start.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity-start.js","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/activity-start.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AAUH,kBAiBC;AAzBD,2DAA6D;AAC7D,gDAAyD;AACzD,8CAA+C;AAMxC,KAAK,UAAU,GAAG,CAAC,UAAkB;IACxC,IAAI,KAAkC,CAAC;IACvC,IAAI,CAAC;QACD,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAS,GAAE,CAAgC,CAAC;IACnE,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QAClB,eAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,SAAS,GAAW,KAAK,CAAC,UAAU,IAAI,SAAS,CAAC;IACxD,MAAM,UAAU,GAAW,GAAG,UAAU,sBAAsB,SAAS,EAAE,CAAC;IAC1E,IAAA,mBAAU,EAAC,GAAG,UAAU,cAAc,CAAC,CAAC;IAExC,MAAM,WAAW,GAAW,GAAG,UAAU,gBAAgB,CAAC;IAC1D,MAAM,IAAA,wBAAa,EAAC,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;IAExE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clear-verdict.d.ts","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/clear-verdict.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"clear-verdict.d.ts","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/clear-verdict.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAiBH,wBAAsB,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqD3D"}
|
|
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.run = run;
|
|
13
13
|
const clear_verdict_1 = require("../../../hooks/core/clear-verdict");
|
|
14
14
|
const actions_1 = require("../../../hooks/core/actions");
|
|
15
|
+
const session_state_1 = require("../../../hooks/core/session-state");
|
|
15
16
|
const config_1 = require("../../../lib/config");
|
|
16
17
|
const logger_1 = require("../../../lib/logger");
|
|
17
18
|
const stdin_1 = require("../../../lib/stdin");
|
|
@@ -33,26 +34,33 @@ async function run(projectDir) {
|
|
|
33
34
|
logger_1.logger.debug(`skipping clear-verdict: write target is verdict file ${writtenFile}`);
|
|
34
35
|
process.exit(0);
|
|
35
36
|
}
|
|
37
|
+
// skip if file path is missing — nothing to record
|
|
38
|
+
if (!writtenFile) {
|
|
39
|
+
logger_1.logger.debug("skipping clear-verdict: missing file_path in tool_input");
|
|
40
|
+
process.exit(0);
|
|
41
|
+
}
|
|
36
42
|
// skip if file does not require verification
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
process.exit(0);
|
|
42
|
-
}
|
|
43
|
+
const config = (0, config_1.loadConfig)(projectDir);
|
|
44
|
+
if (!(0, config_1.requiresVerification)(writtenFile, config)) {
|
|
45
|
+
logger_1.logger.debug(`skipping clear-verdict: file does not require verification (${writtenFile})`);
|
|
46
|
+
process.exit(0);
|
|
43
47
|
}
|
|
44
|
-
const
|
|
48
|
+
const sessionDir = `${projectDir}/.ironbee/sessions/${sessionId}`;
|
|
49
|
+
const actionsFile = `${sessionDir}/actions.jsonl`;
|
|
45
50
|
// record file edit in actions.jsonl
|
|
46
51
|
const fileEditEntry = {
|
|
52
|
+
...(0, actions_1.baseFields)(actionsFile),
|
|
47
53
|
type: "file_edit",
|
|
48
|
-
timestamp:
|
|
54
|
+
timestamp: Date.now(),
|
|
49
55
|
tool_name: input.tool_name ?? "unknown",
|
|
50
56
|
file_path: writtenFile,
|
|
57
|
+
activity_id: (0, session_state_1.getActiveActivityId)(sessionDir),
|
|
58
|
+
fix_id: (0, session_state_1.getActiveFixId)(sessionDir),
|
|
51
59
|
};
|
|
52
60
|
await (0, actions_1.appendAction)(actionsFile, fileEditEntry);
|
|
53
61
|
(0, clear_verdict_1.runClearVerdict)({
|
|
54
62
|
verdictFile: `${projectDir}/.ironbee/sessions/${sessionId}/verdict.json`,
|
|
55
|
-
sessionDir
|
|
63
|
+
sessionDir,
|
|
56
64
|
});
|
|
57
65
|
process.exit(0);
|
|
58
66
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clear-verdict.js","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/clear-verdict.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;
|
|
1
|
+
{"version":3,"file":"clear-verdict.js","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/clear-verdict.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;AAiBH,kBAqDC;AApED,qEAAoE;AACpE,yDAAuF;AACvF,qEAAwF;AACxF,gDAAsF;AACtF,gDAAyD;AACzD,8CAA+C;AAUxC,KAAK,UAAU,GAAG,CAAC,UAAkB;IACxC,IAAI,SAAS,GAAW,SAAS,CAAC;IAClC,IAAI,KAA6B,CAAC;IAClC,IAAI,CAAC;QACD,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAS,GAAE,CAA2B,CAAC;QAC1D,SAAS,GAAG,KAAK,CAAC,UAAU,IAAI,SAAS,CAAC;QAC1C,IAAA,mBAAU,EAAC,GAAG,UAAU,sBAAsB,SAAS,cAAc,CAAC,CAAC;IAC3E,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QAClB,eAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,4DAA4D;IAC5D,MAAM,WAAW,GAAuB,KAAK,CAAC,UAAU,EAAE,SAAS,CAAC;IACpE,IAAI,WAAW,IAAI,WAAW,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QACpG,eAAM,CAAC,KAAK,CAAC,wDAAwD,WAAW,EAAE,CAAC,CAAC;QACpF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,mDAAmD;IACnD,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,eAAM,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;QACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,6CAA6C;IAC7C,MAAM,MAAM,GAAkB,IAAA,mBAAU,EAAC,UAAU,CAAC,CAAC;IACrD,IAAI,CAAC,IAAA,6BAAoB,EAAC,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC;QAC7C,eAAM,CAAC,KAAK,CAAC,+DAA+D,WAAW,GAAG,CAAC,CAAC;QAC5F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,UAAU,GAAW,GAAG,UAAU,sBAAsB,SAAS,EAAE,CAAC;IAC1E,MAAM,WAAW,GAAW,GAAG,UAAU,gBAAgB,CAAC;IAE1D,oCAAoC;IACpC,MAAM,aAAa,GAAmB;QAClC,GAAG,IAAA,oBAAU,EAAC,WAAW,CAAC;QAC1B,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,SAAS;QACvC,SAAS,EAAE,WAAW;QACtB,WAAW,EAAE,IAAA,mCAAmB,EAAC,UAAU,CAAE;QAC7C,MAAM,EAAE,IAAA,8BAAc,EAAC,UAAU,CAAE;KACtC,CAAC;IACF,MAAM,IAAA,sBAAY,EAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAE/C,IAAA,+BAAe,EAAC;QACZ,WAAW,EAAE,GAAG,UAAU,sBAAsB,SAAS,eAAe;QACxE,UAAU;KACb,CAAC,CAAC;IAEH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"require-verdict.d.ts","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/require-verdict.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"require-verdict.d.ts","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/require-verdict.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAeH,wBAAsB,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA6B3D"}
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
14
|
exports.run = run;
|
|
15
15
|
const actions_1 = require("../../../hooks/core/actions");
|
|
16
|
+
const activity_1 = require("../../../hooks/core/activity");
|
|
16
17
|
const logger_1 = require("../../../lib/logger");
|
|
17
18
|
const stdin_1 = require("../../../lib/stdin");
|
|
18
19
|
async function run(projectDir) {
|
|
@@ -26,7 +27,8 @@ async function run(projectDir) {
|
|
|
26
27
|
}
|
|
27
28
|
const sessionId = input.session_id ?? "default";
|
|
28
29
|
(0, logger_1.setLogFile)(`${projectDir}/.ironbee/sessions/${sessionId}/session.log`);
|
|
29
|
-
const
|
|
30
|
+
const sessionDir = `${projectDir}/.ironbee/sessions/${sessionId}`;
|
|
31
|
+
const actionsFile = `${sessionDir}/actions.jsonl`;
|
|
30
32
|
if ((0, actions_1.hasToolCallsSinceLastVerdict)(actionsFile)) {
|
|
31
33
|
process.stderr.write(`BLOCKED: You used browser-devtools tools but did not submit a verdict. You MUST submit a verdict (pass or fail) before editing code.
|
|
32
34
|
|
|
@@ -37,6 +39,7 @@ Then you can edit code to fix the issues.
|
|
|
37
39
|
`);
|
|
38
40
|
process.exit(2);
|
|
39
41
|
}
|
|
42
|
+
await (0, activity_1.startActivity)({ sessionDir, actionsFile, source: "pre_tool_use" });
|
|
40
43
|
process.exit(0);
|
|
41
44
|
}
|
|
42
45
|
//# sourceMappingURL=require-verdict.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"require-verdict.js","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/require-verdict.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;
|
|
1
|
+
{"version":3,"file":"require-verdict.js","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/require-verdict.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;AAeH,kBA6BC;AA1CD,yDAA2E;AAC3E,2DAA6D;AAC7D,gDAAyD;AACzD,8CAA+C;AAUxC,KAAK,UAAU,GAAG,CAAC,UAAkB;IACxC,IAAI,KAA4B,CAAC;IACjC,IAAI,CAAC;QACD,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAS,GAAE,CAA0B,CAAC;IAC7D,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QAClB,eAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,SAAS,GAAW,KAAK,CAAC,UAAU,IAAI,SAAS,CAAC;IACxD,IAAA,mBAAU,EAAC,GAAG,UAAU,sBAAsB,SAAS,cAAc,CAAC,CAAC;IAEvE,MAAM,UAAU,GAAW,GAAG,UAAU,sBAAsB,SAAS,EAAE,CAAC;IAC1E,MAAM,WAAW,GAAW,GAAG,UAAU,gBAAgB,CAAC;IAE1D,IAAI,IAAA,sCAA4B,EAAC,WAAW,CAAC,EAAE,CAAC;QAC5C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;;;yBAGJ,SAAS;;;CAGjC,CAAC,CAAC;QACK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,IAAA,wBAAa,EAAC,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;IAEzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"require-verification.d.ts","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/require-verification.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;
|
|
1
|
+
{"version":3,"file":"require-verification.d.ts","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/require-verification.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAuBH,wBAAsB,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmF3D"}
|
|
@@ -16,6 +16,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
16
16
|
exports.run = run;
|
|
17
17
|
const path_1 = require("path");
|
|
18
18
|
const session_state_1 = require("../../../hooks/core/session-state");
|
|
19
|
+
const activity_1 = require("../../../hooks/core/activity");
|
|
19
20
|
const config_1 = require("../../../lib/config");
|
|
20
21
|
const logger_1 = require("../../../lib/logger");
|
|
21
22
|
const stdin_1 = require("../../../lib/stdin");
|
|
@@ -31,6 +32,7 @@ async function run(projectDir) {
|
|
|
31
32
|
const sessionId = input.session_id ?? "default";
|
|
32
33
|
const sessionDir = `${projectDir}/.ironbee/sessions/${sessionId}`;
|
|
33
34
|
(0, logger_1.setLogFile)(`${sessionDir}/session.log`);
|
|
35
|
+
const actionsFile = `${sessionDir}/actions.jsonl`;
|
|
34
36
|
const verificationId = (0, session_state_1.getActiveVerificationId)(sessionDir);
|
|
35
37
|
if (!verificationId) {
|
|
36
38
|
process.stderr.write(`BLOCKED: You must start a verification cycle before using browser-devtools tools.
|
|
@@ -55,15 +57,24 @@ Then use other browser tools to verify your changes.
|
|
|
55
57
|
`);
|
|
56
58
|
process.exit(2);
|
|
57
59
|
}
|
|
60
|
+
// ensure activity is open before reading its ID for metadata propagation
|
|
61
|
+
await (0, activity_1.startActivity)({ sessionDir, actionsFile, source: "pre_tool_use" });
|
|
58
62
|
const traceId = (0, session_state_1.getActiveTraceId)(sessionDir);
|
|
63
|
+
const activityId = (0, session_state_1.getActiveActivityId)(sessionDir);
|
|
59
64
|
// inject _metadata into tool input so MCP server knows session/trace context
|
|
60
65
|
const projectName = (0, path_1.basename)(projectDir);
|
|
61
|
-
const
|
|
66
|
+
const traceStateParts = [`prj:${projectName}`, `sid:${sessionId}`];
|
|
67
|
+
if (activityId) {
|
|
68
|
+
traceStateParts.push(`aid:${activityId}`);
|
|
69
|
+
}
|
|
70
|
+
traceStateParts.push(`vid:${verificationId}`);
|
|
71
|
+
const traceState = `ironbee=${traceStateParts.join(";")}`;
|
|
62
72
|
const config = (0, config_1.loadConfig)(projectDir);
|
|
63
73
|
const updatedInput = { ...(input.tool_input ?? {}) };
|
|
64
74
|
const metadata = {
|
|
65
75
|
projectName,
|
|
66
76
|
sessionId,
|
|
77
|
+
activityId,
|
|
67
78
|
verificationId,
|
|
68
79
|
traceId,
|
|
69
80
|
traceState,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"require-verification.js","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/require-verification.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;
|
|
1
|
+
{"version":3,"file":"require-verification.js","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/require-verification.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Claude Code — session-end hook adapter
|
|
3
|
+
*
|
|
4
|
+
* SessionEnd hook — records session_end event and closes any
|
|
5
|
+
* open activity. Fires when the session terminates gracefully.
|
|
6
|
+
*
|
|
7
|
+
* Exit 0 = always allow
|
|
8
|
+
*/
|
|
9
|
+
export declare function run(projectDir: string): Promise<void>;
|
|
10
|
+
//# sourceMappingURL=session-end.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-end.d.ts","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/session-end.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAYH,wBAAsB,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA8B3D"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Claude Code — session-end hook adapter
|
|
4
|
+
*
|
|
5
|
+
* SessionEnd hook — records session_end event and closes any
|
|
6
|
+
* open activity. Fires when the session terminates gracefully.
|
|
7
|
+
*
|
|
8
|
+
* Exit 0 = always allow
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.run = run;
|
|
12
|
+
const actions_1 = require("../../../hooks/core/actions");
|
|
13
|
+
const activity_1 = require("../../../hooks/core/activity");
|
|
14
|
+
const logger_1 = require("../../../lib/logger");
|
|
15
|
+
const stdin_1 = require("../../../lib/stdin");
|
|
16
|
+
async function run(projectDir) {
|
|
17
|
+
let input;
|
|
18
|
+
try {
|
|
19
|
+
input = JSON.parse((0, stdin_1.readStdin)());
|
|
20
|
+
}
|
|
21
|
+
catch (e) {
|
|
22
|
+
logger_1.logger.debug(`failed to parse stdin: ${e}`);
|
|
23
|
+
process.exit(0);
|
|
24
|
+
}
|
|
25
|
+
const sessionId = input.session_id ?? "default";
|
|
26
|
+
const sessionDir = `${projectDir}/.ironbee/sessions/${sessionId}`;
|
|
27
|
+
const actionsFile = `${sessionDir}/actions.jsonl`;
|
|
28
|
+
(0, logger_1.setLogFile)(`${sessionDir}/session.log`);
|
|
29
|
+
// close any open activity
|
|
30
|
+
await (0, activity_1.endActivity)({ sessionDir, actionsFile });
|
|
31
|
+
const now = Date.now();
|
|
32
|
+
const entry = {
|
|
33
|
+
...(0, actions_1.baseFields)(actionsFile),
|
|
34
|
+
type: "session_end",
|
|
35
|
+
timestamp: now,
|
|
36
|
+
session_id: sessionId,
|
|
37
|
+
duration: (0, actions_1.findDurationSinceLastAction)(actionsFile, "session_start", now),
|
|
38
|
+
reason: input.reason,
|
|
39
|
+
};
|
|
40
|
+
await (0, actions_1.appendAction)(actionsFile, entry);
|
|
41
|
+
logger_1.logger.debug(`session-end: ${sessionId}`);
|
|
42
|
+
process.exit(0);
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=session-end.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-end.js","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/session-end.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AAYH,kBA8BC;AAxCD,yDAAsH;AACtH,2DAA2D;AAC3D,gDAAyD;AACzD,8CAA+C;AAOxC,KAAK,UAAU,GAAG,CAAC,UAAkB;IACxC,IAAI,KAA4B,CAAC;IACjC,IAAI,CAAC;QACD,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAS,GAAE,CAA0B,CAAC;IAC7D,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QAClB,eAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,SAAS,GAAW,KAAK,CAAC,UAAU,IAAI,SAAS,CAAC;IACxD,MAAM,UAAU,GAAW,GAAG,UAAU,sBAAsB,SAAS,EAAE,CAAC;IAC1E,MAAM,WAAW,GAAW,GAAG,UAAU,gBAAgB,CAAC;IAC1D,IAAA,mBAAU,EAAC,GAAG,UAAU,cAAc,CAAC,CAAC;IAExC,0BAA0B;IAC1B,MAAM,IAAA,sBAAW,EAAC,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC;IAE/C,MAAM,GAAG,GAAW,IAAI,CAAC,GAAG,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAqB;QAC5B,GAAG,IAAA,oBAAU,EAAC,WAAW,CAAC;QAC1B,IAAI,EAAE,aAAa;QACnB,SAAS,EAAE,GAAG;QACd,UAAU,EAAE,SAAS;QACrB,QAAQ,EAAE,IAAA,qCAA2B,EAAC,WAAW,EAAE,eAAe,EAAE,GAAG,CAAC;QACxE,MAAM,EAAE,KAAK,CAAC,MAAM;KACvB,CAAC;IACF,MAAM,IAAA,sBAAY,EAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAEvC,eAAM,CAAC,KAAK,CAAC,gBAAgB,SAAS,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-start.d.ts","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/session-start.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAcH,wBAAsB,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"session-start.d.ts","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/session-start.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAcH,wBAAsB,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0E3D"}
|
|
@@ -28,10 +28,12 @@ async function run(projectDir) {
|
|
|
28
28
|
const actionsFile = `${projectDir}/.ironbee/sessions/${sessionId}/actions.jsonl`;
|
|
29
29
|
(0, logger_1.setLogFile)(`${projectDir}/.ironbee/sessions/${sessionId}/session.log`);
|
|
30
30
|
const entry = {
|
|
31
|
+
...(0, actions_1.baseFields)(actionsFile),
|
|
31
32
|
type: "session_start",
|
|
32
|
-
timestamp:
|
|
33
|
+
timestamp: Date.now(),
|
|
33
34
|
session_id: sessionId,
|
|
34
|
-
|
|
35
|
+
client: "claude",
|
|
36
|
+
source: input.source ?? "unknown",
|
|
35
37
|
};
|
|
36
38
|
const sessionDir = `${projectDir}/.ironbee/sessions/${sessionId}`;
|
|
37
39
|
await (0, actions_1.appendAction)(actionsFile, entry);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-start.js","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/session-start.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AAcH,
|
|
1
|
+
{"version":3,"file":"session-start.js","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/session-start.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AAcH,kBA0EC;AAtFD,yDAA2F;AAC3F,qEAA0E;AAC1E,gDAAyD;AACzD,gDAAmD;AACnD,8CAA+C;AAC/C,sDAA2D;AAOpD,KAAK,UAAU,GAAG,CAAC,UAAkB;IACxC,IAAI,KAA8B,CAAC;IACnC,IAAI,CAAC;QACD,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAS,GAAE,CAA4B,CAAC;IAC/D,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QAClB,eAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,SAAS,GAAW,KAAK,CAAC,UAAU,IAAI,SAAS,CAAC;IACxD,MAAM,WAAW,GAAW,GAAG,UAAU,sBAAsB,SAAS,gBAAgB,CAAC;IACzF,IAAA,mBAAU,EAAC,GAAG,UAAU,sBAAsB,SAAS,cAAc,CAAC,CAAC;IAEvE,MAAM,KAAK,GAAuB;QAC9B,GAAG,IAAA,oBAAU,EAAC,WAAW,CAAC;QAC1B,IAAI,EAAE,eAAe;QACrB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,SAAS;KACpC,CAAC;IAEF,MAAM,UAAU,GAAW,GAAG,UAAU,sBAAsB,SAAS,EAAE,CAAC;IAC1E,MAAM,IAAA,sBAAY,EAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAEvC,+DAA+D;IAC/D,gEAAgE;IAChE,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,IAAA,qCAAqB,EAAC,UAAU,EAAE,WAAW,EAAE,sBAAY,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,IAAA,6BAAiB,EAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC7C,eAAM,CAAC,KAAK,CAAC,kBAAkB,SAAS,KAAK,KAAK,CAAC,MAAM,IAAI,SAAS,GAAG,CAAC,CAAC;IAE3E,MAAM,WAAW,GAAW,IAAI,CAAC,SAAS,CAAC;QACvC,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,MAAM;QACd,YAAY,EAAE,CAAC,qCAAqC,CAAC;QACrD,MAAM,EAAE,CAAC,2BAA2B,EAAE,0BAA0B,CAAC;QACjE,cAAc,EAAE,CAAC;QACjB,gBAAgB,EAAE,CAAC;KACtB,CAAC,CAAC;IACH,MAAM,WAAW,GAAW,IAAI,CAAC,SAAS,CAAC;QACvC,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,MAAM;QACd,YAAY,EAAE,CAAC,qCAAqC,CAAC;QACrD,MAAM,EAAE,CAAC,cAAc,EAAE,4BAA4B,CAAC;QACtD,cAAc,EAAE,CAAC;QACjB,gBAAgB,EAAE,CAAC;QACnB,MAAM,EAAE,CAAC,iCAAiC,EAAE,sBAAsB,CAAC;KACtE,CAAC,CAAC;IAEH,IAAA,qBAAY,EAAC;;;;cAIH,SAAS;;;;;;;;UAQb,WAAW;;;UAGX,WAAW;;;;;;CAMpB,EAAE,CAAC,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"track-action.d.ts","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/track-action.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAwFH,wBAAsB,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"track-action.d.ts","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/track-action.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAwFH,wBAAsB,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsE3D"}
|
|
@@ -88,26 +88,33 @@ async function run(projectDir) {
|
|
|
88
88
|
process.exit(0);
|
|
89
89
|
}
|
|
90
90
|
const sessionId = input.session_id ?? "default";
|
|
91
|
-
const
|
|
92
|
-
|
|
91
|
+
const sessionDir = `${projectDir}/.ironbee/sessions/${sessionId}`;
|
|
92
|
+
const actionsFile = `${sessionDir}/actions.jsonl`;
|
|
93
|
+
(0, logger_1.setLogFile)(`${sessionDir}/session.log`);
|
|
93
94
|
const toolName = input.tool_name ?? "unknown";
|
|
94
|
-
const timestamp =
|
|
95
|
+
const timestamp = Date.now();
|
|
95
96
|
// strip _metadata from tool_input before recording
|
|
96
97
|
const toolInput = (input.tool_input && typeof input.tool_input === "object" && !Array.isArray(input.tool_input))
|
|
97
98
|
? { ...input.tool_input, _metadata: undefined }
|
|
98
99
|
: input.tool_input;
|
|
100
|
+
const activityId = (0, session_state_1.getActiveActivityId)(sessionDir);
|
|
101
|
+
const verificationId = (0, session_state_1.getActiveVerificationId)(sessionDir);
|
|
102
|
+
const traceId = (0, session_state_1.getActiveTraceId)(sessionDir);
|
|
99
103
|
// record the direct tool call
|
|
100
104
|
const entry = {
|
|
105
|
+
...(0, actions_1.baseFields)(actionsFile),
|
|
101
106
|
type: "tool_call",
|
|
102
107
|
timestamp,
|
|
103
108
|
tool_name: toolName,
|
|
104
109
|
tool_input: toolInput,
|
|
105
110
|
tool_response: input.tool_response,
|
|
111
|
+
activity_id: activityId,
|
|
112
|
+
verification_id: verificationId,
|
|
113
|
+
trace_id: traceId,
|
|
106
114
|
};
|
|
107
115
|
await (0, actions_1.appendAction)(actionsFile, entry);
|
|
108
116
|
logger_1.logger.debug(`track-action: ${toolName}`);
|
|
109
117
|
// update recording state
|
|
110
|
-
const sessionDir = `${projectDir}/.ironbee/sessions/${sessionId}`;
|
|
111
118
|
if (toolName === RECORDING_START_TOOL) {
|
|
112
119
|
(0, session_state_1.setRecordingActive)(sessionDir, true);
|
|
113
120
|
logger_1.logger.debug("track-action: recording started");
|
|
@@ -121,10 +128,14 @@ async function run(projectDir) {
|
|
|
121
128
|
const nested = extractNestedToolCalls(input.tool_input);
|
|
122
129
|
for (const call of nested) {
|
|
123
130
|
const nestedEntry = {
|
|
131
|
+
...(0, actions_1.baseFields)(actionsFile),
|
|
124
132
|
type: "tool_call",
|
|
125
133
|
timestamp,
|
|
126
134
|
tool_name: call.name,
|
|
127
135
|
tool_input: call.args,
|
|
136
|
+
activity_id: activityId,
|
|
137
|
+
verification_id: verificationId,
|
|
138
|
+
trace_id: traceId,
|
|
128
139
|
};
|
|
129
140
|
await (0, actions_1.appendAction)(actionsFile, nestedEntry);
|
|
130
141
|
logger_1.logger.debug(`track-action (nested): ${call.name}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"track-action.js","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/track-action.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;AAwFH,
|
|
1
|
+
{"version":3,"file":"track-action.js","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/track-action.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-gate.d.ts","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/verify-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"verify-gate.d.ts","sourceRoot":"","sources":["../../../../src/clients/claude/hooks/verify-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAYH,wBAAsB,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsC3D"}
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.run = run;
|
|
13
13
|
const verify_gate_1 = require("../../../hooks/core/verify-gate");
|
|
14
|
+
const activity_1 = require("../../../hooks/core/activity");
|
|
14
15
|
const config_1 = require("../../../lib/config");
|
|
15
16
|
const logger_1 = require("../../../lib/logger");
|
|
16
17
|
const stdin_1 = require("../../../lib/stdin");
|
|
@@ -25,15 +26,18 @@ async function run(projectDir) {
|
|
|
25
26
|
}
|
|
26
27
|
const sessionId = input.session_id ?? "default";
|
|
27
28
|
(0, logger_1.setLogFile)(`${projectDir}/.ironbee/sessions/${sessionId}/session.log`);
|
|
29
|
+
const sessionDir = `${projectDir}/.ironbee/sessions/${sessionId}`;
|
|
30
|
+
const actionsFile = `${sessionDir}/actions.jsonl`;
|
|
28
31
|
const config = (0, config_1.loadConfig)(projectDir);
|
|
29
32
|
const result = await (0, verify_gate_1.runVerifyGate)({
|
|
30
33
|
sessionId,
|
|
31
|
-
sessionDir
|
|
32
|
-
actionsFile
|
|
33
|
-
verdictFile: `${
|
|
34
|
+
sessionDir,
|
|
35
|
+
actionsFile,
|
|
36
|
+
verdictFile: `${sessionDir}/verdict.json`,
|
|
34
37
|
maxRetries: (0, config_1.getMaxRetries)(config),
|
|
35
38
|
});
|
|
36
39
|
if (result.action === "allow") {
|
|
40
|
+
await (0, activity_1.endActivity)({ sessionDir, actionsFile });
|
|
37
41
|
if (result.message) {
|
|
38
42
|
process.stderr.write(result.message + "\n");
|
|
39
43
|
}
|