@brainst0rm/cli 0.14.1 → 0.14.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.
Files changed (103) hide show
  1. package/dist/{App-DSD2B5RV.js → App-4GFCMEPX.js} +10 -10
  2. package/dist/{App-6WBAUX35.js → App-KTUPXXQM.js} +10 -10
  3. package/dist/{agent-D5GTWGPD.js → agent-EYT6BPVT.js} +2 -2
  4. package/dist/{agent-DOR4KPUH.js → agent-KTWFCMY5.js} +2 -2
  5. package/dist/brainstorm.js +56 -56
  6. package/dist/{chunk-RV3CJQGC.js → chunk-2AXI2OPK.js} +43 -7
  7. package/dist/chunk-2AXI2OPK.js.map +1 -0
  8. package/dist/{chunk-6G2HA63H.js → chunk-3AYD5ONW.js} +43 -7
  9. package/dist/chunk-3AYD5ONW.js.map +1 -0
  10. package/dist/{chunk-UPP3TOCP.js → chunk-3RH5MKZF.js} +5 -5
  11. package/dist/{chunk-GLWCTGWG.js → chunk-4NNXZFPX.js} +2 -2
  12. package/dist/{chunk-Z5QQ5OGV.js → chunk-52Q6CE4Y.js} +19 -2
  13. package/dist/chunk-52Q6CE4Y.js.map +1 -0
  14. package/dist/{chunk-FGYEICUI.js → chunk-6UFDBLUX.js} +36 -4
  15. package/dist/chunk-6UFDBLUX.js.map +1 -0
  16. package/dist/{chunk-NVA62I52.js → chunk-6WGHIUWX.js} +2 -2
  17. package/dist/{chunk-4LR7LQPG.js → chunk-CZILJ33T.js} +2 -2
  18. package/dist/{chunk-TLQVDPEQ.js → chunk-DJ7WG6GZ.js} +19 -2
  19. package/dist/chunk-DJ7WG6GZ.js.map +1 -0
  20. package/dist/{chunk-N7JKT44Y.js → chunk-GUHXB5DX.js} +2 -2
  21. package/dist/{chunk-SCGV333Z.js → chunk-HKRUCBMI.js} +4 -4
  22. package/dist/{chunk-PIT7VD46.js → chunk-N5V2PGPN.js} +4 -4
  23. package/dist/{chunk-GF5TKYDA.js → chunk-RVQOLZR6.js} +14 -14
  24. package/dist/{chunk-AH5SFL5J.js → chunk-RVXUVX5W.js} +14 -14
  25. package/dist/{chunk-4PCWPRRN.js → chunk-WRO5TVID.js} +5 -5
  26. package/dist/{chunk-ZYGUHAHM.js → chunk-Z5RDHTWQ.js} +36 -4
  27. package/dist/chunk-Z5RDHTWQ.js.map +1 -0
  28. package/dist/{dist-QUYR4VH7.js → dist-5NJP3JHL.js} +23 -3
  29. package/dist/{dist-QUYR4VH7.js.map → dist-5NJP3JHL.js.map} +1 -1
  30. package/dist/{dist-P6IZYZBM.js → dist-7AIEUUFF.js} +2 -2
  31. package/dist/{dist-RVTIEEXC.js → dist-DCJYPRUZ.js} +3 -3
  32. package/dist/{dist-PGQ4UIM4.js → dist-DXQQF55Y.js} +3 -3
  33. package/dist/{dist-JQXY4E6A.js → dist-KSUHKNET.js} +88 -15
  34. package/dist/dist-KSUHKNET.js.map +1 -0
  35. package/dist/{dist-TS5U3BDK.js → dist-LCPM5BXN.js} +5 -5
  36. package/dist/{dist-VB7CXEYB.js → dist-MKAADC4H.js} +5 -5
  37. package/dist/{dist-MKWOTCNR.js → dist-NQQPQGZU.js} +6 -6
  38. package/dist/{dist-VECPW2NV.js → dist-NTQ7LFRW.js} +5 -5
  39. package/dist/{dist-ESUVKHL4.js → dist-QFVAD45U.js} +6 -6
  40. package/dist/{dist-7IRVYQYG.js → dist-RUBJT7FI.js} +2 -2
  41. package/dist/{dist-P2J4GXPC.js → dist-S7FLVLXS.js} +2 -2
  42. package/dist/{dist-4JONNOLT.js → dist-U3G5HT5D.js} +6 -6
  43. package/dist/{dist-IUVHFJV2.js → dist-UETKBS6A.js} +6 -6
  44. package/dist/{dist-ODBEXWTS.js → dist-WLMQD6I5.js} +5 -5
  45. package/dist/{dist-GNYSGXLR.js → dist-XFJ337R7.js} +23 -3
  46. package/dist/{dist-GNYSGXLR.js.map → dist-XFJ337R7.js.map} +1 -1
  47. package/dist/{dist-T6BIJZSD.js → dist-Y5FZXOVL.js} +2 -2
  48. package/dist/{dist-2DSARR2V.js → dist-ZPASHTYZ.js} +88 -15
  49. package/dist/dist-ZPASHTYZ.js.map +1 -0
  50. package/dist/{handler-VOVQRV5B.js → handler-CPXQZBSW.js} +6 -6
  51. package/dist/{handler-MHEFUP32.js → handler-FIBSROM4.js} +6 -6
  52. package/dist/index.js +56 -56
  53. package/dist/{mcp-server-C732TVIQ.js → mcp-server-56FVMXTC.js} +2 -2
  54. package/dist/{mcp-server-JUYR37EX.js → mcp-server-XXUZDYW6.js} +2 -2
  55. package/dist/{roles-QTZ54BOF.js → roles-CJTZSFFW.js} +6 -6
  56. package/dist/{roles-LDNPU3NI.js → roles-MVBHE5QW.js} +6 -6
  57. package/dist/{slash-VYIMEVPU.js → slash-WFDKT67A.js} +8 -8
  58. package/dist/{slash-VAUFJQBQ.js → slash-Y3E5KBOJ.js} +8 -8
  59. package/package.json +28 -28
  60. package/dist/chunk-6G2HA63H.js.map +0 -1
  61. package/dist/chunk-FGYEICUI.js.map +0 -1
  62. package/dist/chunk-RV3CJQGC.js.map +0 -1
  63. package/dist/chunk-TLQVDPEQ.js.map +0 -1
  64. package/dist/chunk-Z5QQ5OGV.js.map +0 -1
  65. package/dist/chunk-ZYGUHAHM.js.map +0 -1
  66. package/dist/dist-2DSARR2V.js.map +0 -1
  67. package/dist/dist-JQXY4E6A.js.map +0 -1
  68. /package/dist/{App-DSD2B5RV.js.map → App-4GFCMEPX.js.map} +0 -0
  69. /package/dist/{App-6WBAUX35.js.map → App-KTUPXXQM.js.map} +0 -0
  70. /package/dist/{agent-D5GTWGPD.js.map → agent-EYT6BPVT.js.map} +0 -0
  71. /package/dist/{agent-DOR4KPUH.js.map → agent-KTWFCMY5.js.map} +0 -0
  72. /package/dist/{chunk-UPP3TOCP.js.map → chunk-3RH5MKZF.js.map} +0 -0
  73. /package/dist/{chunk-GLWCTGWG.js.map → chunk-4NNXZFPX.js.map} +0 -0
  74. /package/dist/{chunk-NVA62I52.js.map → chunk-6WGHIUWX.js.map} +0 -0
  75. /package/dist/{chunk-4LR7LQPG.js.map → chunk-CZILJ33T.js.map} +0 -0
  76. /package/dist/{chunk-N7JKT44Y.js.map → chunk-GUHXB5DX.js.map} +0 -0
  77. /package/dist/{chunk-SCGV333Z.js.map → chunk-HKRUCBMI.js.map} +0 -0
  78. /package/dist/{chunk-PIT7VD46.js.map → chunk-N5V2PGPN.js.map} +0 -0
  79. /package/dist/{chunk-GF5TKYDA.js.map → chunk-RVQOLZR6.js.map} +0 -0
  80. /package/dist/{chunk-AH5SFL5J.js.map → chunk-RVXUVX5W.js.map} +0 -0
  81. /package/dist/{chunk-4PCWPRRN.js.map → chunk-WRO5TVID.js.map} +0 -0
  82. /package/dist/{dist-4JONNOLT.js.map → dist-7AIEUUFF.js.map} +0 -0
  83. /package/dist/{dist-7IRVYQYG.js.map → dist-DCJYPRUZ.js.map} +0 -0
  84. /package/dist/{dist-ESUVKHL4.js.map → dist-DXQQF55Y.js.map} +0 -0
  85. /package/dist/{dist-IUVHFJV2.js.map → dist-LCPM5BXN.js.map} +0 -0
  86. /package/dist/{dist-VB7CXEYB.js.map → dist-MKAADC4H.js.map} +0 -0
  87. /package/dist/{dist-MKWOTCNR.js.map → dist-NQQPQGZU.js.map} +0 -0
  88. /package/dist/{dist-P2J4GXPC.js.map → dist-NTQ7LFRW.js.map} +0 -0
  89. /package/dist/{dist-P6IZYZBM.js.map → dist-QFVAD45U.js.map} +0 -0
  90. /package/dist/{dist-PGQ4UIM4.js.map → dist-RUBJT7FI.js.map} +0 -0
  91. /package/dist/{dist-RVTIEEXC.js.map → dist-S7FLVLXS.js.map} +0 -0
  92. /package/dist/{dist-T6BIJZSD.js.map → dist-U3G5HT5D.js.map} +0 -0
  93. /package/dist/{dist-TS5U3BDK.js.map → dist-UETKBS6A.js.map} +0 -0
  94. /package/dist/{dist-ODBEXWTS.js.map → dist-WLMQD6I5.js.map} +0 -0
  95. /package/dist/{dist-VECPW2NV.js.map → dist-Y5FZXOVL.js.map} +0 -0
  96. /package/dist/{handler-VOVQRV5B.js.map → handler-CPXQZBSW.js.map} +0 -0
  97. /package/dist/{handler-MHEFUP32.js.map → handler-FIBSROM4.js.map} +0 -0
  98. /package/dist/{mcp-server-C732TVIQ.js.map → mcp-server-56FVMXTC.js.map} +0 -0
  99. /package/dist/{mcp-server-JUYR37EX.js.map → mcp-server-XXUZDYW6.js.map} +0 -0
  100. /package/dist/{roles-LDNPU3NI.js.map → roles-CJTZSFFW.js.map} +0 -0
  101. /package/dist/{roles-QTZ54BOF.js.map → roles-MVBHE5QW.js.map} +0 -0
  102. /package/dist/{slash-VAUFJQBQ.js.map → slash-WFDKT67A.js.map} +0 -0
  103. /package/dist/{slash-VYIMEVPU.js.map → slash-Y3E5KBOJ.js.map} +0 -0
@@ -22,24 +22,24 @@ import {
22
22
  scorePatch,
23
23
  scoreProbe,
24
24
  verifyTypeScriptCompiles
25
- } from "./chunk-UPP3TOCP.js";
25
+ } from "./chunk-3RH5MKZF.js";
26
26
  import {
27
27
  exportCapabilityScores,
28
28
  getCapabilityScores,
29
29
  loadAllCapabilityScores
30
30
  } from "./chunk-XD7R5VUD.js";
31
- import "./chunk-SCGV333Z.js";
31
+ import "./chunk-HKRUCBMI.js";
32
32
  import "./chunk-HUR6VPUJ.js";
33
33
  import "./chunk-352O4VPK.js";
34
34
  import "./chunk-ONBVQCTW.js";
35
- import "./chunk-RV3CJQGC.js";
35
+ import "./chunk-2AXI2OPK.js";
36
36
  import "./chunk-TCFNCUKS.js";
37
37
  import "./chunk-5EIUWLBS.js";
38
38
  import "./chunk-WJSNOAGF.js";
39
39
  import "./chunk-VHDE7O6Y.js";
40
40
  import "./chunk-SBZAH54M.js";
41
41
  import "./chunk-AMFMFCC4.js";
42
- import "./chunk-NVA62I52.js";
42
+ import "./chunk-6WGHIUWX.js";
43
43
  import "./chunk-QT7UUIL2.js";
44
44
  import "./chunk-DW32AG7H.js";
45
45
  import "./chunk-NHSYDOEK.js";
@@ -51,7 +51,7 @@ import "./chunk-AP3CWGS7.js";
51
51
  import "./chunk-N3KOFRHK.js";
52
52
  import "./chunk-RPHOZX72.js";
53
53
  import "./chunk-BX6MV3E5.js";
54
- import "./chunk-TLQVDPEQ.js";
54
+ import "./chunk-DJ7WG6GZ.js";
55
55
  import "./chunk-KE4QKEOM.js";
56
56
  import "./chunk-FYJECSUZ.js";
57
57
  import "./chunk-PLDDJCW6.js";
@@ -83,4 +83,4 @@ export {
83
83
  scoreProbe,
84
84
  verifyTypeScriptCompiles
85
85
  };
86
- //# sourceMappingURL=dist-4JONNOLT.js.map
86
+ //# sourceMappingURL=dist-U3G5HT5D.js.map
@@ -21,19 +21,19 @@ import {
21
21
  validateGateCommand,
22
22
  writeArtifact,
23
23
  writeManifest
24
- } from "./chunk-FGYEICUI.js";
25
- import "./chunk-SCGV333Z.js";
24
+ } from "./chunk-6UFDBLUX.js";
25
+ import "./chunk-HKRUCBMI.js";
26
26
  import "./chunk-HUR6VPUJ.js";
27
27
  import "./chunk-352O4VPK.js";
28
28
  import "./chunk-ONBVQCTW.js";
29
29
  import "./chunk-T5YPKB44.js";
30
- import "./chunk-RV3CJQGC.js";
30
+ import "./chunk-2AXI2OPK.js";
31
31
  import "./chunk-TCFNCUKS.js";
32
32
  import "./chunk-5EIUWLBS.js";
33
33
  import "./chunk-WJSNOAGF.js";
34
34
  import "./chunk-VHDE7O6Y.js";
35
35
  import "./chunk-SBZAH54M.js";
36
- import "./chunk-NVA62I52.js";
36
+ import "./chunk-6WGHIUWX.js";
37
37
  import "./chunk-QT7UUIL2.js";
38
38
  import "./chunk-DW32AG7H.js";
39
39
  import "./chunk-NHSYDOEK.js";
@@ -45,7 +45,7 @@ import "./chunk-AP3CWGS7.js";
45
45
  import "./chunk-N3KOFRHK.js";
46
46
  import "./chunk-RPHOZX72.js";
47
47
  import "./chunk-BX6MV3E5.js";
48
- import "./chunk-TLQVDPEQ.js";
48
+ import "./chunk-DJ7WG6GZ.js";
49
49
  import "./chunk-KE4QKEOM.js";
50
50
  import "./chunk-FYJECSUZ.js";
51
51
  import "./chunk-PLDDJCW6.js";
@@ -73,4 +73,4 @@ export {
73
73
  writeArtifact,
74
74
  writeManifest
75
75
  };
76
- //# sourceMappingURL=dist-IUVHFJV2.js.map
76
+ //# sourceMappingURL=dist-UETKBS6A.js.map
@@ -9,17 +9,17 @@ import "./chunk-IDXF3KM7.js";
9
9
  import "./chunk-DE2JCWS3.js";
10
10
  import {
11
11
  MemoryManager
12
- } from "./chunk-SCGV333Z.js";
12
+ } from "./chunk-HKRUCBMI.js";
13
13
  import "./chunk-HUR6VPUJ.js";
14
14
  import "./chunk-352O4VPK.js";
15
15
  import "./chunk-ONBVQCTW.js";
16
- import "./chunk-RV3CJQGC.js";
16
+ import "./chunk-2AXI2OPK.js";
17
17
  import "./chunk-TCFNCUKS.js";
18
18
  import "./chunk-5EIUWLBS.js";
19
19
  import "./chunk-WJSNOAGF.js";
20
20
  import "./chunk-VHDE7O6Y.js";
21
21
  import "./chunk-SBZAH54M.js";
22
- import "./chunk-NVA62I52.js";
22
+ import "./chunk-6WGHIUWX.js";
23
23
  import "./chunk-QT7UUIL2.js";
24
24
  import "./chunk-DW32AG7H.js";
25
25
  import "./chunk-NHSYDOEK.js";
@@ -31,7 +31,7 @@ import "./chunk-AP3CWGS7.js";
31
31
  import "./chunk-N3KOFRHK.js";
32
32
  import "./chunk-RPHOZX72.js";
33
33
  import "./chunk-BX6MV3E5.js";
34
- import "./chunk-TLQVDPEQ.js";
34
+ import "./chunk-DJ7WG6GZ.js";
35
35
  import {
36
36
  createLogger
37
37
  } from "./chunk-KE4QKEOM.js";
@@ -1838,4 +1838,4 @@ export {
1838
1838
  runStaticAnalysis,
1839
1839
  runVerification
1840
1840
  };
1841
- //# sourceMappingURL=dist-ODBEXWTS.js.map
1841
+ //# sourceMappingURL=dist-WLMQD6I5.js.map
@@ -10,7 +10,7 @@ import {
10
10
  retryChangeSet,
11
11
  setAuditPersister
12
12
  } from "./chunk-DRGJETWE.js";
13
- import "./chunk-RV3CJQGC.js";
13
+ import "./chunk-2AXI2OPK.js";
14
14
  import {
15
15
  defineTool
16
16
  } from "./chunk-TCFNCUKS.js";
@@ -1162,8 +1162,27 @@ function signEvent(event, masterSecret) {
1162
1162
  return createHmac("sha256", key).update(payload).digest("hex");
1163
1163
  }
1164
1164
  var MAX_EVENT_AGE_SECONDS = 300;
1165
+ var seenEventIds = /* @__PURE__ */ new Map();
1166
+ var MAX_SEEN_IDS = 1e5;
1167
+ var FRESHNESS_MS = MAX_EVENT_AGE_SECONDS * 1e3;
1168
+ function checkAndRecordEventId(eventId, now) {
1169
+ const cutoff = now - FRESHNESS_MS;
1170
+ for (const [id, ts] of seenEventIds) {
1171
+ if (ts < cutoff) seenEventIds.delete(id);
1172
+ }
1173
+ if (seenEventIds.has(eventId)) {
1174
+ return false;
1175
+ }
1176
+ if (seenEventIds.size >= MAX_SEEN_IDS) {
1177
+ const oldestKey = seenEventIds.keys().next().value;
1178
+ if (oldestKey !== void 0) seenEventIds.delete(oldestKey);
1179
+ }
1180
+ seenEventIds.set(eventId, now);
1181
+ return true;
1182
+ }
1165
1183
  function verifyEvent(event, masterSecret) {
1166
1184
  if (!event.signature) return false;
1185
+ if (!event.id) return false;
1167
1186
  if (!event.timestamp) return false;
1168
1187
  const eventTime = new Date(event.timestamp).getTime();
1169
1188
  if (Number.isNaN(eventTime)) return false;
@@ -1174,7 +1193,8 @@ function verifyEvent(event, masterSecret) {
1174
1193
  const sigBuf = Buffer.from(signature, "hex");
1175
1194
  const expectedBuf = Buffer.from(expected, "hex");
1176
1195
  if (sigBuf.length !== expectedBuf.length) return false;
1177
- return timingSafeEqual(sigBuf, expectedBuf);
1196
+ if (!timingSafeEqual(sigBuf, expectedBuf)) return false;
1197
+ return checkAndRecordEventId(event.id, Date.now());
1178
1198
  }
1179
1199
  function createSignedEvent(type, tenantId, product, data, masterSecret, opts) {
1180
1200
  const unsigned = {
@@ -1510,4 +1530,4 @@ export {
1510
1530
  verifyJWT,
1511
1531
  verifyProductContract
1512
1532
  };
1513
- //# sourceMappingURL=dist-GNYSGXLR.js.map
1533
+ //# sourceMappingURL=dist-XFJ337R7.js.map