@ironbee-ai/cli 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/CHANGELOG.md +16 -2
  2. package/README.md +63 -0
  3. package/dist/clients/base.d.ts +6 -6
  4. package/dist/clients/base.d.ts.map +1 -1
  5. package/dist/clients/claude/commands/ironbee-verify.md +127 -0
  6. package/dist/clients/claude/hooks/clear-verdict.d.ts +1 -1
  7. package/dist/clients/claude/hooks/clear-verdict.d.ts.map +1 -1
  8. package/dist/clients/claude/hooks/clear-verdict.js +2 -2
  9. package/dist/clients/claude/hooks/clear-verdict.js.map +1 -1
  10. package/dist/clients/claude/hooks/require-verdict.d.ts +1 -1
  11. package/dist/clients/claude/hooks/require-verdict.d.ts.map +1 -1
  12. package/dist/clients/claude/hooks/require-verdict.js +1 -1
  13. package/dist/clients/claude/hooks/require-verdict.js.map +1 -1
  14. package/dist/clients/claude/hooks/require-verification.d.ts +1 -1
  15. package/dist/clients/claude/hooks/require-verification.d.ts.map +1 -1
  16. package/dist/clients/claude/hooks/require-verification.js +29 -2
  17. package/dist/clients/claude/hooks/require-verification.js.map +1 -1
  18. package/dist/clients/claude/hooks/session-start.d.ts.map +1 -1
  19. package/dist/clients/claude/hooks/session-start.js +5 -5
  20. package/dist/clients/claude/hooks/session-start.js.map +1 -1
  21. package/dist/clients/claude/hooks/track-action.d.ts +1 -1
  22. package/dist/clients/claude/hooks/track-action.d.ts.map +1 -1
  23. package/dist/clients/claude/hooks/track-action.js +21 -4
  24. package/dist/clients/claude/hooks/track-action.js.map +1 -1
  25. package/dist/clients/claude/index.d.ts +6 -6
  26. package/dist/clients/claude/index.d.ts.map +1 -1
  27. package/dist/clients/claude/index.js +28 -30
  28. package/dist/clients/claude/index.js.map +1 -1
  29. package/dist/clients/claude/rule.md +1 -0
  30. package/dist/clients/claude/skill.md +2 -0
  31. package/dist/clients/cursor/commands/ironbee-verify/SKILL.md +133 -0
  32. package/dist/clients/cursor/hooks/clear-verdict.d.ts +1 -1
  33. package/dist/clients/cursor/hooks/clear-verdict.d.ts.map +1 -1
  34. package/dist/clients/cursor/hooks/clear-verdict.js +2 -2
  35. package/dist/clients/cursor/hooks/clear-verdict.js.map +1 -1
  36. package/dist/clients/cursor/hooks/require-verdict.d.ts +1 -1
  37. package/dist/clients/cursor/hooks/require-verdict.d.ts.map +1 -1
  38. package/dist/clients/cursor/hooks/require-verdict.js +3 -1
  39. package/dist/clients/cursor/hooks/require-verdict.js.map +1 -1
  40. package/dist/clients/cursor/hooks/require-verification.d.ts +1 -1
  41. package/dist/clients/cursor/hooks/require-verification.d.ts.map +1 -1
  42. package/dist/clients/cursor/hooks/require-verification.js +35 -2
  43. package/dist/clients/cursor/hooks/require-verification.js.map +1 -1
  44. package/dist/clients/cursor/hooks/session-start.d.ts.map +1 -1
  45. package/dist/clients/cursor/hooks/session-start.js +6 -6
  46. package/dist/clients/cursor/hooks/session-start.js.map +1 -1
  47. package/dist/clients/cursor/hooks/track-action.d.ts +1 -1
  48. package/dist/clients/cursor/hooks/track-action.d.ts.map +1 -1
  49. package/dist/clients/cursor/hooks/track-action.js +25 -6
  50. package/dist/clients/cursor/hooks/track-action.js.map +1 -1
  51. package/dist/clients/cursor/hooks/verify-gate.d.ts.map +1 -1
  52. package/dist/clients/cursor/hooks/verify-gate.js +4 -4
  53. package/dist/clients/cursor/hooks/verify-gate.js.map +1 -1
  54. package/dist/clients/cursor/index.d.ts +6 -6
  55. package/dist/clients/cursor/index.d.ts.map +1 -1
  56. package/dist/clients/cursor/index.js +24 -24
  57. package/dist/clients/cursor/index.js.map +1 -1
  58. package/dist/clients/cursor/rule.md +1 -0
  59. package/dist/clients/cursor/skill.md +2 -0
  60. package/dist/commands/hook.d.ts.map +1 -1
  61. package/dist/commands/hook.js +47 -22
  62. package/dist/commands/hook.js.map +1 -1
  63. package/dist/hooks/core/actions.d.ts +2 -1
  64. package/dist/hooks/core/actions.d.ts.map +1 -1
  65. package/dist/hooks/core/actions.js +18 -1
  66. package/dist/hooks/core/actions.js.map +1 -1
  67. package/dist/hooks/core/session-state.d.ts +7 -1
  68. package/dist/hooks/core/session-state.d.ts.map +1 -1
  69. package/dist/hooks/core/session-state.js +35 -3
  70. package/dist/hooks/core/session-state.js.map +1 -1
  71. package/dist/hooks/core/submit-verdict.d.ts.map +1 -1
  72. package/dist/hooks/core/submit-verdict.js +11 -4
  73. package/dist/hooks/core/submit-verdict.js.map +1 -1
  74. package/dist/hooks/core/verification-lifecycle.d.ts +3 -2
  75. package/dist/hooks/core/verification-lifecycle.d.ts.map +1 -1
  76. package/dist/hooks/core/verification-lifecycle.js +12 -7
  77. package/dist/hooks/core/verification-lifecycle.js.map +1 -1
  78. package/dist/hooks/core/verify-gate.js +2 -2
  79. package/dist/hooks/core/verify-gate.js.map +1 -1
  80. package/dist/lib/collector.d.ts +11 -0
  81. package/dist/lib/collector.d.ts.map +1 -0
  82. package/dist/lib/collector.js +82 -0
  83. package/dist/lib/collector.js.map +1 -0
  84. package/dist/lib/config.d.ts +37 -0
  85. package/dist/lib/config.d.ts.map +1 -1
  86. package/dist/lib/config.js +59 -0
  87. package/dist/lib/config.js.map +1 -1
  88. package/dist/lib/output.d.ts +5 -0
  89. package/dist/lib/output.d.ts.map +1 -1
  90. package/dist/lib/output.js +10 -0
  91. package/dist/lib/output.js.map +1 -1
  92. package/package.json +2 -2
@@ -11,6 +11,7 @@
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.loadConfig = loadConfig;
13
13
  exports.requiresVerification = requiresVerification;
14
+ exports.getMcpServerEntry = getMcpServerEntry;
14
15
  exports.getMaxRetries = getMaxRetries;
15
16
  const fs_1 = require("fs");
16
17
  const path_1 = require("path");
@@ -127,6 +128,64 @@ function requiresVerification(filePath, config) {
127
128
  const patterns = [...base, ...additional];
128
129
  return matchesAny(filePath, patterns);
129
130
  }
131
+ const IRONBEE_ENV = {
132
+ TOOL_NAME_PREFIX: "bdt_",
133
+ TOOL_INPUT_METADATA_ENABLE: "true",
134
+ };
135
+ const DEFAULT_MCP_ENV = {
136
+ BROWSER_DEVTOOLS_INSTALL_CHROMIUM: "true",
137
+ };
138
+ const DEFAULT_MCP_COMMAND = "npx";
139
+ const DEFAULT_MCP_ARGS = ["-y", "browser-devtools-mcp"];
140
+ /**
141
+ * Returns the MCP server config for browser-devtools.
142
+ *
143
+ * Config is read from `browserDevTools` key in IronBee config:
144
+ * - `browserDevTools.mcp` — full MCP config (used as-is if provided)
145
+ * - `browserDevTools.env` — env vars for the MCP server (used only when mcp is not provided)
146
+ *
147
+ * Priority:
148
+ * 1. If `browserDevTools.mcp` exists → use as-is (env from mcp config, not from browserDevTools.env)
149
+ * 2. Otherwise → build default config (npx -y browser-devtools-mcp) with browserDevTools.env merged
150
+ *
151
+ * IronBee's own env vars (TOOL_NAME_PREFIX, TOOL_INPUT_METADATA_ENABLE) are always applied last,
152
+ * overriding any user-provided values.
153
+ */
154
+ function getMcpServerEntry(projectDir) {
155
+ const config = loadConfig(projectDir);
156
+ const browserDevTools = config.browserDevTools;
157
+ if (browserDevTools && typeof browserDevTools === "object" && !Array.isArray(browserDevTools)) {
158
+ const bdtConfig = browserDevTools;
159
+ // if mcp is explicitly provided, use as-is + ironbee env overrides
160
+ if (bdtConfig.mcp && typeof bdtConfig.mcp === "object" && !Array.isArray(bdtConfig.mcp)) {
161
+ const mcp = { ...bdtConfig.mcp };
162
+ const mcpEnv = { ...(mcp.env ?? {}), ...IRONBEE_ENV };
163
+ mcp.env = mcpEnv;
164
+ return mcp;
165
+ }
166
+ // no mcp provided — build default with browserDevTools.env merged
167
+ const userEnv = {};
168
+ if (bdtConfig.env && typeof bdtConfig.env === "object" && !Array.isArray(bdtConfig.env)) {
169
+ const envObj = bdtConfig.env;
170
+ for (const key of Object.keys(envObj)) {
171
+ if (typeof envObj[key] === "string") {
172
+ userEnv[key] = envObj[key];
173
+ }
174
+ }
175
+ }
176
+ return {
177
+ command: DEFAULT_MCP_COMMAND,
178
+ args: [...DEFAULT_MCP_ARGS],
179
+ env: { ...DEFAULT_MCP_ENV, ...userEnv, ...IRONBEE_ENV },
180
+ };
181
+ }
182
+ // no browserDevTools config — full defaults
183
+ return {
184
+ command: DEFAULT_MCP_COMMAND,
185
+ args: [...DEFAULT_MCP_ARGS],
186
+ env: { ...DEFAULT_MCP_ENV, ...IRONBEE_ENV },
187
+ };
188
+ }
130
189
  function getMaxRetries(config) {
131
190
  return (typeof config.maxRetries === "number" && config.maxRetries > 0)
132
191
  ? config.maxRetries
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;AA8EH,gCAiBC;AAiDD,oDAaC;AAED,sCAIC;AAjKD,2BAA8C;AAC9C,+BAA4B;AAC5B,2BAA6B;AAC7B,qCAAkC;AA8BlC,MAAM,uBAAuB,GAAa;IACtC,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IACjC,OAAO,EAAE,UAAU;IACnB,QAAQ,EAAE,OAAO;IACjB,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAC/C,MAAM;IACN,MAAM,EAAE,OAAO;IACf,MAAM;IACN,MAAM;IACN,QAAQ,EAAE,MAAM,EAAE,OAAO;IACzB,SAAS;IACT,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO;IAC9B,MAAM;IACN,OAAO;IACP,QAAQ;IACR,MAAM,EAAE,OAAO;IACf,OAAO;IACP,OAAO;IACP,KAAK,EAAE,KAAK;IACZ,SAAS;IACT,OAAO,EAAE,QAAQ;IACjB,OAAO;IACP,OAAO;IACP,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ;IACnC,SAAS;CACZ,CAAC;AAEF,MAAM,mBAAmB,GAAW,CAAC,CAAC;AAEtC,SAAS,YAAY,CAAC,QAAgB;IAClC,IAAI,CAAC,IAAA,eAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAkB,CAAC;IACxE,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QAClB,eAAM,CAAC,KAAK,CAAC,0BAA0B,QAAQ,KAAK,CAAC,EAAE,CAAC,CAAC;QACzD,OAAO,EAAE,CAAC;IACd,CAAC;AACL,CAAC;AAED,SAAgB,UAAU,CAAC,UAAmB;IAC1C,MAAM,UAAU,GAAW,IAAA,WAAI,EAAC,IAAA,YAAO,GAAE,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;IACtE,MAAM,YAAY,GAAkB,YAAY,CAAC,UAAU,CAAC,CAAC;IAE7D,IAAI,aAAa,GAAkB,EAAE,CAAC;IACtC,IAAI,UAAU,EAAE,CAAC;QACb,MAAM,WAAW,GAAW,IAAA,WAAI,EAAC,UAAU,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;QACxE,aAAa,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IAC9C,CAAC;IAED,qCAAqC;IACrC,MAAM,MAAM,GAAkB;QAC1B,GAAG,YAAY;QACf,GAAG,aAAa;KACnB,CAAC;IAEF,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,YAAY,CAAC,OAAe;IACjC,IAAI,QAAQ,GAAW,OAAO;SACzB,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAE,8CAA8C;SACpF,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,CAAQ,qBAAqB;SAC7D,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAiB,wBAAwB;SAChE,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAkB,2BAA2B;SACnE,OAAO,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC,CAAK,4BAA4B;IAEzE,iEAAiE;IACjE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,QAAQ,GAAG,QAAQ,QAAQ,GAAG,CAAC;IACnC,CAAC;SAAM,CAAC;QACJ,QAAQ,GAAG,QAAQ,QAAQ,GAAG,CAAC;IACnC,CAAC;IAED,OAAO,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,QAAgB,EAAE,QAAkB;IACpD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAW,YAAY,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,oBAAoB,CAAC,QAAgB,EAAE,MAAqB;IACxE,kCAAkC;IAClC,MAAM,OAAO,GAAa,MAAM,CAAC,qBAAqB,IAAI,EAAE,CAAC;IAC7D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;QACtD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,8CAA8C;IAC9C,MAAM,IAAI,GAAa,MAAM,CAAC,cAAc,IAAI,uBAAuB,CAAC;IACxE,MAAM,UAAU,GAAa,MAAM,CAAC,wBAAwB,IAAI,EAAE,CAAC;IACnE,MAAM,QAAQ,GAAa,CAAC,GAAG,IAAI,EAAE,GAAG,UAAU,CAAC,CAAC;IAEpD,OAAO,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC1C,CAAC;AAED,SAAgB,aAAa,CAAC,MAAqB;IAC/C,OAAO,CAAC,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;QACnE,CAAC,CAAC,MAAM,CAAC,UAAU;QACnB,CAAC,CAAC,mBAAmB,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
@@ -17,5 +17,10 @@ interface Log {
17
17
  }
18
18
  export declare const log: Log;
19
19
  export declare function orange(text: string): string;
20
+ /**
21
+ * Write to stdout and exit with the given code after flush.
22
+ * Ensures piped output is fully written before process termination.
23
+ */
24
+ export declare function writeAndExit(data: string, code: number): void;
20
25
  export { pc };
21
26
  //# sourceMappingURL=output.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/lib/output.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,UAAU,GAAG;IACT,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,IAAI,IAAI,CAAC;CACjB;AAED,eAAO,MAAM,GAAG,EAAE,GAyBjB,CAAC;AAEF,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED,OAAO,EAAE,EAAE,EAAE,CAAC"}
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/lib/output.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,UAAU,GAAG;IACT,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,IAAI,IAAI,CAAC;CACjB;AAED,eAAO,MAAM,GAAG,EAAE,GAyBjB,CAAC;AAEF,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAI7D;AAED,OAAO,EAAE,EAAE,EAAE,CAAC"}
@@ -11,6 +11,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.pc = exports.log = void 0;
13
13
  exports.orange = orange;
14
+ exports.writeAndExit = writeAndExit;
14
15
  const picocolors_1 = __importDefault(require("picocolors"));
15
16
  exports.pc = picocolors_1.default;
16
17
  exports.log = {
@@ -42,4 +43,13 @@ exports.log = {
42
43
  function orange(text) {
43
44
  return `\x1b[38;2;227;131;67m${text}\x1b[39m`;
44
45
  }
46
+ /**
47
+ * Write to stdout and exit with the given code after flush.
48
+ * Ensures piped output is fully written before process termination.
49
+ */
50
+ function writeAndExit(data, code) {
51
+ process.stdout.write(data, () => {
52
+ process.exit(code);
53
+ });
54
+ }
45
55
  //# sourceMappingURL=output.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/lib/output.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;AA0CH,wBAEC;AA1CD,4DAA4B;AA4CnB,aA5CF,oBAAE,CA4CE;AA/BE,QAAA,GAAG,GAAQ;IACpB,IAAI,CAAC,GAAW;QACZ,OAAO,CAAC,GAAG,CAAC,oBAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,CAAC,GAAW;QACf,OAAO,CAAC,GAAG,CAAC,oBAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,CAAC,GAAW;QACZ,OAAO,CAAC,GAAG,CAAC,oBAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;IACD,KAAK,CAAC,GAAW;QACb,OAAO,CAAC,KAAK,CAAC,oBAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,CAAC,GAAW;QACZ,OAAO,CAAC,GAAG,CAAC,oBAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;IACD,KAAK,CAAC,KAAa,EAAE,KAAa;QAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,oBAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;IAChD,CAAC;IACD,GAAG,CAAC,GAAW;QACX,OAAO,CAAC,GAAG,CAAC,oBAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,CAAC;IACD,KAAK;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;IAClB,CAAC;CACJ,CAAC;AAEF,SAAgB,MAAM,CAAC,IAAY;IAC/B,OAAO,wBAAwB,IAAI,UAAU,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/lib/output.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;AA0CH,wBAEC;AAMD,oCAIC;AApDD,4DAA4B;AAsDnB,aAtDF,oBAAE,CAsDE;AAzCE,QAAA,GAAG,GAAQ;IACpB,IAAI,CAAC,GAAW;QACZ,OAAO,CAAC,GAAG,CAAC,oBAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,CAAC,GAAW;QACf,OAAO,CAAC,GAAG,CAAC,oBAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,CAAC,GAAW;QACZ,OAAO,CAAC,GAAG,CAAC,oBAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;IACD,KAAK,CAAC,GAAW;QACb,OAAO,CAAC,KAAK,CAAC,oBAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,CAAC,GAAW;QACZ,OAAO,CAAC,GAAG,CAAC,oBAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;IACD,KAAK,CAAC,KAAa,EAAE,KAAa;QAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,oBAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;IAChD,CAAC;IACD,GAAG,CAAC,GAAW;QACX,OAAO,CAAC,GAAG,CAAC,oBAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,CAAC;IACD,KAAK;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;IAClB,CAAC;CACJ,CAAC;AAEF,SAAgB,MAAM,CAAC,IAAY;IAC/B,OAAO,wBAAwB,IAAI,UAAU,CAAC;AAClD,CAAC;AAED;;;GAGG;AACH,SAAgB,YAAY,CAAC,IAAY,EAAE,IAAY;IACnD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,GAAS,EAAE;QAClC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACP,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ironbee-ai/cli",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "description": "The CLI for IronBee — Verification and Intelligence Layer for Agentic Development",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -20,7 +20,7 @@
20
20
  "lint": "eslint .",
21
21
  "lint:fix": "eslint . --fix",
22
22
  "clean": "rm -rf dist",
23
- "release:patch": "release-it --ci -VV",
23
+ "release:patch": "release-it patch --ci -VV",
24
24
  "release:minor": "release-it minor --ci -VV",
25
25
  "release:major": "release-it major --ci -VV",
26
26
  "postinstall": "node dist/scripts/postinstall.js || true",