@ironbee-ai/cli 0.6.0 → 0.6.2
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/dist/analysis/code-changes.js +3 -3
- package/dist/analysis/code-changes.js.map +1 -1
- package/dist/clients/claude/hooks/clear-verdict.d.ts +9 -4
- package/dist/clients/claude/hooks/clear-verdict.d.ts.map +1 -1
- package/dist/clients/claude/hooks/clear-verdict.js +50 -12
- package/dist/clients/claude/hooks/clear-verdict.js.map +1 -1
- package/dist/clients/claude/hooks/require-verdict.d.ts +8 -4
- package/dist/clients/claude/hooks/require-verdict.d.ts.map +1 -1
- package/dist/clients/claude/hooks/require-verdict.js +14 -4
- package/dist/clients/claude/hooks/require-verdict.js.map +1 -1
- package/dist/clients/claude/hooks/session-start.d.ts.map +1 -1
- package/dist/clients/claude/hooks/session-start.js +8 -3
- package/dist/clients/claude/hooks/session-start.js.map +1 -1
- package/dist/clients/claude/index.d.ts.map +1 -1
- package/dist/clients/claude/index.js +19 -5
- package/dist/clients/claude/index.js.map +1 -1
- package/dist/clients/cursor/hooks/clear-verdict.d.ts +13 -4
- package/dist/clients/cursor/hooks/clear-verdict.d.ts.map +1 -1
- package/dist/clients/cursor/hooks/clear-verdict.js +59 -14
- package/dist/clients/cursor/hooks/clear-verdict.js.map +1 -1
- package/dist/clients/cursor/hooks/require-verdict.d.ts +8 -3
- package/dist/clients/cursor/hooks/require-verdict.d.ts.map +1 -1
- package/dist/clients/cursor/hooks/require-verdict.js +14 -3
- package/dist/clients/cursor/hooks/require-verdict.js.map +1 -1
- package/dist/clients/cursor/index.d.ts.map +1 -1
- package/dist/clients/cursor/index.js +33 -13
- package/dist/clients/cursor/index.js.map +1 -1
- package/dist/hooks/core/actions.d.ts +15 -5
- package/dist/hooks/core/actions.d.ts.map +1 -1
- package/dist/hooks/core/actions.js +7 -7
- package/dist/hooks/core/actions.js.map +1 -1
- package/dist/hooks/core/file-diff.d.ts +19 -0
- package/dist/hooks/core/file-diff.d.ts.map +1 -0
- package/dist/hooks/core/file-diff.js +39 -0
- package/dist/hooks/core/file-diff.js.map +1 -0
- package/dist/hooks/core/session-state.d.ts +14 -0
- package/dist/hooks/core/session-state.d.ts.map +1 -1
- package/dist/hooks/core/session-state.js +76 -0
- package/dist/hooks/core/session-state.js.map +1 -1
- package/dist/hooks/core/tool-use-stash.d.ts +41 -0
- package/dist/hooks/core/tool-use-stash.d.ts.map +1 -0
- package/dist/hooks/core/tool-use-stash.js +82 -0
- package/dist/hooks/core/tool-use-stash.js.map +1 -0
- package/dist/hooks/core/verify-gate.js +5 -5
- package/dist/hooks/core/verify-gate.js.map +1 -1
- package/package.json +3 -1
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool-use scoped data stash.
|
|
3
|
+
*
|
|
4
|
+
* Bridges PreToolUse → PostToolUse for a single tool invocation. The
|
|
5
|
+
* matching post-adapter recovers small bits of pre-execution context
|
|
6
|
+
* that are no longer derivable after the tool has run — for example,
|
|
7
|
+
* whether the target file existed before a `Write` (so the postToolUse
|
|
8
|
+
* adapter can label the change `operation: "create"` vs `"update"`).
|
|
9
|
+
*
|
|
10
|
+
* Storage layout:
|
|
11
|
+
* `os.tmpdir()/ironbee/sessions/<session_id>/tool-uses/<tool_use_id>.json`
|
|
12
|
+
*
|
|
13
|
+
* Design notes:
|
|
14
|
+
* - **Why os.tmpdir() and not `.ironbee/sessions/<sid>/`?** The data
|
|
15
|
+
* here is tool-use scoped (millis-to-seconds lifetime), not session
|
|
16
|
+
* scoped. Co-locating it with `state.json` / `actions.jsonl` /
|
|
17
|
+
* `verdict.json` (which need to survive a whole session for replay,
|
|
18
|
+
* verify-gate, and analytics) is a category error.
|
|
19
|
+
* - **OS cleanup is the safety net.** Producers always intend to call
|
|
20
|
+
* `consumeToolUseData()` from the matching post-adapter, but some
|
|
21
|
+
* paths skip it (failed tool → postToolUseFailure routes to
|
|
22
|
+
* track-action only; verifyPatterns rejection in clear-verdict;
|
|
23
|
+
* verdict.json target). Those orphaned entries sit in tmp and get
|
|
24
|
+
* reaped by the OS's periodic /tmp cleanup. We don't bother with
|
|
25
|
+
* explicit garbage collection.
|
|
26
|
+
* - **Generic by design.** Each producer/consumer pair agrees on its
|
|
27
|
+
* own JSON shape; the stash module stays type-erased on disk. A
|
|
28
|
+
* "well-known" shape (`WriteEditState`) is co-located here for the
|
|
29
|
+
* existing Write create/update use case; future cases can declare
|
|
30
|
+
* their own next to their consumer.
|
|
31
|
+
*/
|
|
32
|
+
/**
|
|
33
|
+
* Known stash shape: whether the target file existed before a `Write`
|
|
34
|
+
* tool ran. Read by `clear-verdict` to decide create vs update.
|
|
35
|
+
*/
|
|
36
|
+
export interface WriteEditState {
|
|
37
|
+
file_existed: boolean;
|
|
38
|
+
}
|
|
39
|
+
export declare function stashToolUseData(sessionId: string, toolUseId: string, data: unknown): void;
|
|
40
|
+
export declare function consumeToolUseData<T>(sessionId: string, toolUseId: string): T | null;
|
|
41
|
+
//# sourceMappingURL=tool-use-stash.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-use-stash.d.ts","sourceRoot":"","sources":["../../../src/hooks/core/tool-use-stash.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AASH;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC3B,YAAY,EAAE,OAAO,CAAC;CACzB;AAUD,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAU1F;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAoBpF"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Tool-use scoped data stash.
|
|
4
|
+
*
|
|
5
|
+
* Bridges PreToolUse → PostToolUse for a single tool invocation. The
|
|
6
|
+
* matching post-adapter recovers small bits of pre-execution context
|
|
7
|
+
* that are no longer derivable after the tool has run — for example,
|
|
8
|
+
* whether the target file existed before a `Write` (so the postToolUse
|
|
9
|
+
* adapter can label the change `operation: "create"` vs `"update"`).
|
|
10
|
+
*
|
|
11
|
+
* Storage layout:
|
|
12
|
+
* `os.tmpdir()/ironbee/sessions/<session_id>/tool-uses/<tool_use_id>.json`
|
|
13
|
+
*
|
|
14
|
+
* Design notes:
|
|
15
|
+
* - **Why os.tmpdir() and not `.ironbee/sessions/<sid>/`?** The data
|
|
16
|
+
* here is tool-use scoped (millis-to-seconds lifetime), not session
|
|
17
|
+
* scoped. Co-locating it with `state.json` / `actions.jsonl` /
|
|
18
|
+
* `verdict.json` (which need to survive a whole session for replay,
|
|
19
|
+
* verify-gate, and analytics) is a category error.
|
|
20
|
+
* - **OS cleanup is the safety net.** Producers always intend to call
|
|
21
|
+
* `consumeToolUseData()` from the matching post-adapter, but some
|
|
22
|
+
* paths skip it (failed tool → postToolUseFailure routes to
|
|
23
|
+
* track-action only; verifyPatterns rejection in clear-verdict;
|
|
24
|
+
* verdict.json target). Those orphaned entries sit in tmp and get
|
|
25
|
+
* reaped by the OS's periodic /tmp cleanup. We don't bother with
|
|
26
|
+
* explicit garbage collection.
|
|
27
|
+
* - **Generic by design.** Each producer/consumer pair agrees on its
|
|
28
|
+
* own JSON shape; the stash module stays type-erased on disk. A
|
|
29
|
+
* "well-known" shape (`WriteEditState`) is co-located here for the
|
|
30
|
+
* existing Write create/update use case; future cases can declare
|
|
31
|
+
* their own next to their consumer.
|
|
32
|
+
*/
|
|
33
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
+
exports.stashToolUseData = stashToolUseData;
|
|
35
|
+
exports.consumeToolUseData = consumeToolUseData;
|
|
36
|
+
const fs_1 = require("fs");
|
|
37
|
+
const os_1 = require("os");
|
|
38
|
+
const path_1 = require("path");
|
|
39
|
+
const logger_1 = require("../../lib/logger");
|
|
40
|
+
const ROOT_DIR_NAME = "ironbee";
|
|
41
|
+
function stashDir(sessionId) {
|
|
42
|
+
return (0, path_1.join)((0, os_1.tmpdir)(), ROOT_DIR_NAME, "sessions", sessionId, "tool-uses");
|
|
43
|
+
}
|
|
44
|
+
function stashPath(sessionId, toolUseId) {
|
|
45
|
+
return (0, path_1.join)(stashDir(sessionId), `${toolUseId}.json`);
|
|
46
|
+
}
|
|
47
|
+
function stashToolUseData(sessionId, toolUseId, data) {
|
|
48
|
+
if (!sessionId || !toolUseId) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
try {
|
|
52
|
+
(0, fs_1.mkdirSync)(stashDir(sessionId), { recursive: true });
|
|
53
|
+
(0, fs_1.writeFileSync)(stashPath(sessionId, toolUseId), JSON.stringify(data));
|
|
54
|
+
}
|
|
55
|
+
catch (e) {
|
|
56
|
+
logger_1.logger.debug(`failed to stash tool-use data for ${toolUseId}: ${e}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
function consumeToolUseData(sessionId, toolUseId) {
|
|
60
|
+
if (!sessionId || !toolUseId) {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
const path = stashPath(sessionId, toolUseId);
|
|
64
|
+
if (!(0, fs_1.existsSync)(path)) {
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
try {
|
|
68
|
+
const data = JSON.parse((0, fs_1.readFileSync)(path, "utf-8"));
|
|
69
|
+
try {
|
|
70
|
+
(0, fs_1.unlinkSync)(path);
|
|
71
|
+
}
|
|
72
|
+
catch (e) {
|
|
73
|
+
logger_1.logger.debug(`failed to remove tool-use stash ${path}: ${e}`);
|
|
74
|
+
}
|
|
75
|
+
return data;
|
|
76
|
+
}
|
|
77
|
+
catch (e) {
|
|
78
|
+
logger_1.logger.debug(`failed to read tool-use stash ${path}: ${e}`);
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=tool-use-stash.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-use-stash.js","sourceRoot":"","sources":["../../../src/hooks/core/tool-use-stash.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;;AAyBH,4CAUC;AAED,gDAoBC;AAvDD,2BAAoF;AACpF,2BAA4B;AAC5B,+BAA4B;AAC5B,6CAA0C;AAE1C,MAAM,aAAa,GAAW,SAAS,CAAC;AAUxC,SAAS,QAAQ,CAAC,SAAiB;IAC/B,OAAO,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,SAAS,CAAC,SAAiB,EAAE,SAAiB;IACnD,OAAO,IAAA,WAAI,EAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,OAAO,CAAC,CAAC;AAC1D,CAAC;AAED,SAAgB,gBAAgB,CAAC,SAAiB,EAAE,SAAiB,EAAE,IAAa;IAChF,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,EAAE,CAAC;QAC3B,OAAO;IACX,CAAC;IACD,IAAI,CAAC;QACD,IAAA,cAAS,EAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,IAAA,kBAAa,EAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACzE,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QAClB,eAAM,CAAC,KAAK,CAAC,qCAAqC,SAAS,KAAK,CAAC,EAAE,CAAC,CAAC;IACzE,CAAC;AACL,CAAC;AAED,SAAgB,kBAAkB,CAAI,SAAiB,EAAE,SAAiB;IACtE,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,IAAI,GAAW,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACrD,IAAI,CAAC,IAAA,eAAU,EAAC,IAAI,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,CAAC;QACD,MAAM,IAAI,GAAM,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,IAAI,EAAE,OAAO,CAAC,CAAM,CAAC;QAC7D,IAAI,CAAC;YACD,IAAA,eAAU,EAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YAClB,eAAM,CAAC,KAAK,CAAC,mCAAmC,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QAClB,eAAM,CAAC,KAAK,CAAC,iCAAiC,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC;IAChB,CAAC;AACL,CAAC"}
|
|
@@ -63,17 +63,17 @@ async function runVerifyGate(input) {
|
|
|
63
63
|
const { sessionId: sid, sessionDir, actionsFile, verdictFile, maxRetries: inputMaxRetries } = input;
|
|
64
64
|
const maxRetries = inputMaxRetries ?? DEFAULT_MAX_RETRIES;
|
|
65
65
|
logger_1.logger.debug(`verify-gate: session=${sid} verdictExists=${(0, fs_1.existsSync)(verdictFile)}`);
|
|
66
|
-
// ── Check 1: Were code files
|
|
67
|
-
const hasEdit = (0, actions_1.
|
|
66
|
+
// ── Check 1: Were code files changed? ───────────────────
|
|
67
|
+
const hasEdit = (0, actions_1.hasFileChangesSinceLastVerification)(actionsFile);
|
|
68
68
|
if (!hasEdit) {
|
|
69
|
-
logger_1.logger.debug("no code
|
|
69
|
+
logger_1.logger.debug("no code changes detected, allowing completion");
|
|
70
70
|
await recordMarker(actionsFile, sessionDir, sid, "allow", "no_edits");
|
|
71
71
|
return { action: "allow" };
|
|
72
72
|
}
|
|
73
|
-
// ── Check 2: Were required IronBee tools used AFTER the latest code
|
|
73
|
+
// ── Check 2: Were required IronBee tools used AFTER the latest code change? ─
|
|
74
74
|
// Only browser-devtools MCP tool calls count; bare tool_name (post-
|
|
75
75
|
// taxonomy) is compared against REQUIRED_TOOLS.
|
|
76
|
-
const toolCalls = (0, actions_1.
|
|
76
|
+
const toolCalls = (0, actions_1.getToolCallsSinceLastFileChange)(actionsFile);
|
|
77
77
|
const usedToolNames = new Set(toolCalls
|
|
78
78
|
.filter((t) => t.tool_type === "mcp" && t.mcp_server === MCP_SERVER)
|
|
79
79
|
.map((t) => t.tool_name));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-gate.js","sourceRoot":"","sources":["../../../src/hooks/core/verify-gate.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AA8FH,sCA8LC;AA1RD,2BAA0D;AAC1D,6CAA0C;AAC1C,mDAAiE;AACjE,uCAOmB;AACnB,mDAAkG;AA8BlG,MAAM,mBAAmB,GAAW,CAAC,CAAC;AAEtC,SAAS,kBAAkB,CAAC,SAAiB;IACzC,OAAO,IAAI,CAAC,SAAS,CAAC;QAClB,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,MAAM;QACd,YAAY,EAAE,CAAC,qCAAqC,CAAC;QACrD,MAAM,EAAE,CAAC,2BAA2B,EAAE,0BAA0B,EAAE,mBAAmB,CAAC;QACtF,cAAc,EAAE,CAAC;QACjB,gBAAgB,EAAE,CAAC;KACtB,CAAC,CAAC;AACP,CAAC;AAED,SAAS,kBAAkB,CAAC,SAAiB;IACzC,OAAO,IAAI,CAAC,SAAS,CAAC;QAClB,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;AACP,CAAC;AAED,MAAM,UAAU,GAAW,kBAAkB,CAAC;AAC9C,MAAM,WAAW,GAAW,MAAM,CAAC;AAEnC;;;qCAGqC;AACrC,MAAM,cAAc,GAAmB;IACnC,EAAE,QAAQ,EAAE,GAAG,WAAW,kBAAkB,EAAE,IAAI,EAAE,GAAG,WAAW,kBAAkB,EAAE,OAAO,EAAE,oBAAoB,EAAE;IACrH,EAAE,QAAQ,EAAE,GAAG,WAAW,yBAAyB,EAAE,IAAI,EAAE,GAAG,WAAW,yBAAyB,EAAE,OAAO,EAAE,mBAAmB,EAAE;IAClI,EAAE,QAAQ,EAAE,GAAG,WAAW,yBAAyB,EAAE,IAAI,EAAE,GAAG,WAAW,yBAAyB,EAAE,OAAO,EAAE,oCAAoC,EAAE;IACnJ,EAAE,QAAQ,EAAE,GAAG,WAAW,2BAA2B,EAAE,IAAI,EAAE,GAAG,WAAW,2BAA2B,EAAE,OAAO,EAAE,0BAA0B,EAAE;CAChJ,CAAC;AAEF,SAAS,OAAO,CAAC,GAAG,KAAe;IAC/B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC;YACD,IAAI,IAAA,eAAU,EAAC,CAAC,CAAC,EAAE,CAAC;gBAChB,IAAA,eAAU,EAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACL,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YAClB,eAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACjD,CAAC;IACL,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,aAAa,CAAC,KAAsB;IACtD,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC;IACpG,MAAM,UAAU,GAAW,eAAe,IAAI,mBAAmB,CAAC;IAElE,eAAM,CAAC,KAAK,CAAC,wBAAwB,GAAG,kBAAkB,IAAA,eAAU,EAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAErF,
|
|
1
|
+
{"version":3,"file":"verify-gate.js","sourceRoot":"","sources":["../../../src/hooks/core/verify-gate.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ironbee-ai/cli",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.2",
|
|
4
4
|
"description": "The CLI for IronBee — Verification and Intelligence Layer for Agentic Development",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -65,10 +65,12 @@
|
|
|
65
65
|
},
|
|
66
66
|
"dependencies": {
|
|
67
67
|
"commander": "^12.1.0",
|
|
68
|
+
"diff": "^9.0.0",
|
|
68
69
|
"picocolors": "^1.1.1"
|
|
69
70
|
},
|
|
70
71
|
"devDependencies": {
|
|
71
72
|
"@release-it/conventional-changelog": "^9.0.4",
|
|
73
|
+
"@types/diff": "^7.0.2",
|
|
72
74
|
"@types/jest": "^29.5.14",
|
|
73
75
|
"@types/node": "^22.13.10",
|
|
74
76
|
"@typescript-eslint/eslint-plugin": "^8.26.1",
|