@mapick/cost-firewall 0.1.1 → 0.2.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.
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +25 -11
- package/dist/cli/index.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -0
- package/dist/config.js.map +1 -1
- package/dist/dashboard/html.d.ts.map +1 -1
- package/dist/dashboard/html.js +82 -38
- package/dist/dashboard/html.js.map +1 -1
- package/dist/hooks/before-agent-reply.d.ts +9 -0
- package/dist/hooks/before-agent-reply.d.ts.map +1 -1
- package/dist/hooks/before-agent-reply.js +42 -6
- package/dist/hooks/before-agent-reply.js.map +1 -1
- package/dist/hooks/before-model-resolve.d.ts +20 -0
- package/dist/hooks/before-model-resolve.d.ts.map +1 -0
- package/dist/hooks/before-model-resolve.js +30 -0
- package/dist/hooks/before-model-resolve.js.map +1 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +6 -2
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/model-call.d.ts.map +1 -1
- package/dist/hooks/model-call.js +14 -1
- package/dist/hooks/model-call.js.map +1 -1
- package/dist/pricing.d.ts +2 -4
- package/dist/pricing.d.ts.map +1 -1
- package/dist/pricing.js +2 -29
- package/dist/pricing.js.map +1 -1
- package/dist/provider/index.d.ts.map +1 -1
- package/dist/provider/index.js +5 -8
- package/dist/provider/index.js.map +1 -1
- package/dist/provider/stream.d.ts +2 -7
- package/dist/provider/stream.d.ts.map +1 -1
- package/dist/provider/stream.js +1 -119
- package/dist/provider/stream.js.map +1 -1
- package/dist/provider/synthetic.d.ts.map +1 -1
- package/dist/provider/synthetic.js +10 -1
- package/dist/provider/synthetic.js.map +1 -1
- package/dist/provider/upstream/anthropic.d.ts +1 -1
- package/dist/provider/upstream/anthropic.d.ts.map +1 -1
- package/dist/provider/upstream/anthropic.js +12 -4
- package/dist/provider/upstream/anthropic.js.map +1 -1
- package/dist/provider/upstream/openai.d.ts +1 -1
- package/dist/provider/upstream/openai.d.ts.map +1 -1
- package/dist/provider/upstream/openai.js +2 -3
- package/dist/provider/upstream/openai.js.map +1 -1
- package/dist/source.js +3 -3
- package/dist/source.js.map +1 -1
- package/dist/state.js +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/openclaw.plugin.json +49 -13
- package/package.json +1 -1
package/dist/cli/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAqBjD,yCAAyC;AACzC,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1G,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,aAAa,EAAE,CAAC;CACzB,CAAC,CAmBD;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAqBjD,yCAAyC;AACzC,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1G,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,aAAa,EAAE,CAAC;CACzB,CAAC,CAmBD;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,CAqInF;AAED,wBAAsB,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAyDzF;AAED,wBAAsB,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAKhF"}
|
package/dist/cli/index.js
CHANGED
|
@@ -49,17 +49,31 @@ export function registerCli(api, state, store) {
|
|
|
49
49
|
firewall.command("status")
|
|
50
50
|
.description("Show firewall status")
|
|
51
51
|
.action(async () => {
|
|
52
|
-
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
}
|
|
52
|
+
// Read from gateway to get the real runtime state
|
|
53
|
+
const data = await new Promise((resolve) => {
|
|
54
|
+
http.get(`${API_BASE}/mapick/api/stats`, (res) => {
|
|
55
|
+
let body = "";
|
|
56
|
+
res.on("data", (c) => body += c);
|
|
57
|
+
res.on("end", () => resolve(body));
|
|
58
|
+
}).on("error", () => resolve(""));
|
|
59
|
+
});
|
|
60
|
+
if (data) {
|
|
61
|
+
console.log(JSON.stringify(JSON.parse(data), null, 2));
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
// Fallback to local state
|
|
65
|
+
const agg = await aggregateFromJsonl(store, state.globalStats.todayTokens, state.globalStats.todayBlocked);
|
|
66
|
+
const cooling = state.breaker.getCoolingSources();
|
|
67
|
+
console.log(JSON.stringify({
|
|
68
|
+
mode: state.globalStats.mode,
|
|
69
|
+
emergency_stop: state.globalStats.emergencyStop,
|
|
70
|
+
today_tokens: agg.today_tokens,
|
|
71
|
+
today_blocked: agg.today_blocked,
|
|
72
|
+
daily_token_limit: state.config.dailyTokenLimit,
|
|
73
|
+
cooldown_sec: state.config.breaker?.cooldownSec,
|
|
74
|
+
cooling_sources: cooling,
|
|
75
|
+
}, null, 2));
|
|
76
|
+
}
|
|
63
77
|
});
|
|
64
78
|
firewall.command("reset")
|
|
65
79
|
.description("Reset a source from cooldown")
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,cAAc,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,cAAc,CAenD,CAAC;AAEF,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc,CAa5E"}
|
package/dist/config.js
CHANGED
|
@@ -11,6 +11,7 @@ export const DEFAULT_CONFIG = {
|
|
|
11
11
|
callFrequencyThreshold: 30,
|
|
12
12
|
},
|
|
13
13
|
dailyTokenLimit: null,
|
|
14
|
+
upstreamTimeoutMs: 30_000,
|
|
14
15
|
privacy: {
|
|
15
16
|
storePromptText: false,
|
|
16
17
|
enableRawConversationHooks: false,
|
|
@@ -23,6 +24,7 @@ export function resolveConfig(input) {
|
|
|
23
24
|
...input.breaker,
|
|
24
25
|
},
|
|
25
26
|
dailyTokenLimit: input.dailyTokenLimit ?? DEFAULT_CONFIG.dailyTokenLimit,
|
|
27
|
+
upstreamTimeoutMs: input.upstreamTimeoutMs ?? DEFAULT_CONFIG.upstreamTimeoutMs,
|
|
26
28
|
privacy: {
|
|
27
29
|
...DEFAULT_CONFIG.privacy,
|
|
28
30
|
...input.privacy,
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,CAAC,MAAM,cAAc,GAA6B;IACtD,OAAO,EAAE;QACP,mBAAmB,EAAE,CAAC;QACtB,WAAW,EAAE,EAAE;QACf,sBAAsB,EAAE,EAAE;QAC1B,sBAAsB,EAAE,MAAM;QAC9B,sBAAsB,EAAE,EAAE;QAC1B,sBAAsB,EAAE,EAAE;KAC3B;IACD,eAAe,EAAE,IAAI;IACrB,OAAO,EAAE;QACP,eAAe,EAAE,KAAK;QACtB,0BAA0B,EAAE,KAAK;KAClC;CACF,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,KAA8B;IAC1D,OAAO;QACL,OAAO,EAAE;YACP,GAAG,cAAc,CAAC,OAAO;YACzB,GAAG,KAAK,CAAC,OAAO;SACjB;QACD,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,cAAc,CAAC,eAAe;QACxE,OAAO,EAAE;YACP,GAAG,cAAc,CAAC,OAAO;YACzB,GAAG,KAAK,CAAC,OAAO;SACjB;KACF,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,CAAC,MAAM,cAAc,GAA6B;IACtD,OAAO,EAAE;QACP,mBAAmB,EAAE,CAAC;QACtB,WAAW,EAAE,EAAE;QACf,sBAAsB,EAAE,EAAE;QAC1B,sBAAsB,EAAE,MAAM;QAC9B,sBAAsB,EAAE,EAAE;QAC1B,sBAAsB,EAAE,EAAE;KAC3B;IACD,eAAe,EAAE,IAAI;IACrB,iBAAiB,EAAE,MAAM;IACzB,OAAO,EAAE;QACP,eAAe,EAAE,KAAK;QACtB,0BAA0B,EAAE,KAAK;KAClC;CACF,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,KAA8B;IAC1D,OAAO;QACL,OAAO,EAAE;YACP,GAAG,cAAc,CAAC,OAAO;YACzB,GAAG,KAAK,CAAC,OAAO;SACjB;QACD,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,cAAc,CAAC,eAAe;QACxE,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,IAAI,cAAc,CAAC,iBAAiB;QAC9E,OAAO,EAAE;YACP,GAAG,cAAc,CAAC,OAAO;YACzB,GAAG,KAAK,CAAC,OAAO;SACjB;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../../src/dashboard/html.ts"],"names":[],"mappings":"AAAA,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../../src/dashboard/html.ts"],"names":[],"mappings":"AAAA,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,CA46BvD"}
|
package/dist/dashboard/html.js
CHANGED
|
@@ -54,21 +54,43 @@ export function renderDashboardHtml(_stats) {
|
|
|
54
54
|
padding: 2px;
|
|
55
55
|
border: 1px solid var(--border);
|
|
56
56
|
}
|
|
57
|
+
.mode-toggle {
|
|
58
|
+
display: inline-flex;
|
|
59
|
+
background: #f1f5f9;
|
|
60
|
+
border-radius: 8px;
|
|
61
|
+
padding: 3px;
|
|
62
|
+
gap: 2px;
|
|
63
|
+
}
|
|
57
64
|
.mode-btn {
|
|
58
|
-
padding: 6px
|
|
65
|
+
padding: 6px 18px;
|
|
59
66
|
border: none;
|
|
60
67
|
background: transparent;
|
|
61
|
-
color:
|
|
68
|
+
color: #64748b;
|
|
62
69
|
font-size: 13px;
|
|
63
70
|
font-weight: 500;
|
|
64
71
|
cursor: pointer;
|
|
65
|
-
border-radius:
|
|
66
|
-
transition: all 0.
|
|
72
|
+
border-radius: 6px;
|
|
73
|
+
transition: all 0.2s ease;
|
|
74
|
+
position: relative;
|
|
75
|
+
}
|
|
76
|
+
.mode-btn:hover {
|
|
77
|
+
color: #334155;
|
|
67
78
|
}
|
|
68
79
|
.mode-btn.active {
|
|
69
|
-
background:
|
|
70
|
-
color:
|
|
71
|
-
box-shadow: 0 1px 2px rgba(0,0,0,0.
|
|
80
|
+
background: #fff;
|
|
81
|
+
color: #1e293b;
|
|
82
|
+
box-shadow: 0 1px 3px rgba(0,0,0,0.1), 0 1px 2px rgba(0,0,0,0.06);
|
|
83
|
+
font-weight: 600;
|
|
84
|
+
}
|
|
85
|
+
.mode-btn.protect-mode.active {
|
|
86
|
+
background: #fef3c7;
|
|
87
|
+
color: #92400e;
|
|
88
|
+
}
|
|
89
|
+
.mode-label {
|
|
90
|
+
font-size: 11px;
|
|
91
|
+
color: #94a3b8;
|
|
92
|
+
margin-left: 6px;
|
|
93
|
+
font-weight: 400;
|
|
72
94
|
}
|
|
73
95
|
.header-actions {
|
|
74
96
|
display: flex;
|
|
@@ -359,19 +381,37 @@ export function renderDashboardHtml(_stats) {
|
|
|
359
381
|
/* Status Card */
|
|
360
382
|
.status-grid {
|
|
361
383
|
display: grid;
|
|
362
|
-
grid-template-columns: repeat(
|
|
363
|
-
gap:
|
|
364
|
-
|
|
365
|
-
border-radius:
|
|
384
|
+
grid-template-columns: repeat(4, 1fr);
|
|
385
|
+
gap: 0;
|
|
386
|
+
border: 1px solid var(--border);
|
|
387
|
+
border-radius: 8px;
|
|
366
388
|
overflow: hidden;
|
|
367
389
|
margin-bottom: 24px;
|
|
368
390
|
}
|
|
391
|
+
@media (max-width: 900px) {
|
|
392
|
+
.status-grid { grid-template-columns: repeat(2, 1fr); }
|
|
393
|
+
}
|
|
394
|
+
@media (max-width: 500px) {
|
|
395
|
+
.status-grid { grid-template-columns: 1fr; }
|
|
396
|
+
}
|
|
369
397
|
.status-item {
|
|
370
398
|
background: var(--card);
|
|
371
399
|
padding: 14px 16px;
|
|
372
400
|
display: flex;
|
|
373
401
|
justify-content: space-between;
|
|
374
402
|
align-items: center;
|
|
403
|
+
border-right: 1px solid var(--border);
|
|
404
|
+
border-bottom: 1px solid var(--border);
|
|
405
|
+
}
|
|
406
|
+
.status-item:nth-child(4n) { border-right: none; }
|
|
407
|
+
.status-item:nth-last-child(-n+4):nth-child(n+1) { border-bottom: none; }
|
|
408
|
+
@media (max-width: 900px) {
|
|
409
|
+
.status-item:nth-child(4n) { border-right: 1px solid var(--border); }
|
|
410
|
+
.status-item:nth-child(2n) { border-right: none; }
|
|
411
|
+
}
|
|
412
|
+
@media (max-width: 500px) {
|
|
413
|
+
.status-item { border-right: none; }
|
|
414
|
+
}
|
|
375
415
|
}
|
|
376
416
|
.status-item-label {
|
|
377
417
|
font-size: 13px;
|
|
@@ -420,10 +460,15 @@ export function renderDashboardHtml(_stats) {
|
|
|
420
460
|
</head>
|
|
421
461
|
<body>
|
|
422
462
|
<header class="header">
|
|
423
|
-
<div class="header-title">
|
|
463
|
+
<div class="header-title" style="display:flex;align-items:center;gap:6px">
|
|
464
|
+
<span style="background:#eff6ff;color:#2563eb;font-weight:600;font-size:11px;padding:3px 10px;border-radius:10px;letter-spacing:0.3px">Mapick</span>
|
|
465
|
+
<span>Firewall</span>
|
|
466
|
+
</div>
|
|
424
467
|
<div class="header-center">
|
|
425
|
-
<
|
|
426
|
-
|
|
468
|
+
<div class="mode-toggle">
|
|
469
|
+
<button class="mode-btn active" id="mode-observe">Observe</button>
|
|
470
|
+
<button class="mode-btn" id="mode-protect">Protect</button>
|
|
471
|
+
</div>
|
|
427
472
|
</div>
|
|
428
473
|
<div class="header-actions">
|
|
429
474
|
<button class="btn btn-destructive" id="btn-stop">Stop</button>
|
|
@@ -552,20 +597,20 @@ export function renderDashboardHtml(_stats) {
|
|
|
552
597
|
<div class="section-title">Monitoring</div>
|
|
553
598
|
<div class="status-grid">
|
|
554
599
|
<div class="status-item">
|
|
555
|
-
<span class="status-item-label">
|
|
556
|
-
<span class="status-item-value" id="status-
|
|
600
|
+
<span class="status-item-label">Emergency Stop</span>
|
|
601
|
+
<span class="status-item-value" id="status-estop">Inactive</span>
|
|
557
602
|
</div>
|
|
558
603
|
<div class="status-item">
|
|
559
|
-
<span class="status-item-label">
|
|
560
|
-
<span class="status-item-value" id="status-
|
|
604
|
+
<span class="status-item-label">Consecutive Failures</span>
|
|
605
|
+
<span class="status-item-value" id="status-fail">3</span>
|
|
561
606
|
</div>
|
|
562
607
|
<div class="status-item">
|
|
563
|
-
<span class="status-item-label">Token
|
|
564
|
-
<span class="status-item-value" id="status-
|
|
608
|
+
<span class="status-item-label">Token Velocity</span>
|
|
609
|
+
<span class="status-item-value" id="status-velocity">100K / 60s</span>
|
|
565
610
|
</div>
|
|
566
611
|
<div class="status-item">
|
|
567
|
-
<span class="status-item-label">
|
|
568
|
-
<span class="status-item-value" id="status-
|
|
612
|
+
<span class="status-item-label">Call Frequency</span>
|
|
613
|
+
<span class="status-item-value" id="status-frequency">30 / 60s</span>
|
|
569
614
|
</div>
|
|
570
615
|
</div>
|
|
571
616
|
<div class="monitoring-grid">
|
|
@@ -646,6 +691,9 @@ export function renderDashboardHtml(_stats) {
|
|
|
646
691
|
async function setMode(m) {
|
|
647
692
|
await saveConfig({ mode: m });
|
|
648
693
|
fetchStats();
|
|
694
|
+
// Update button styles
|
|
695
|
+
document.getElementById('mode-observe').className = 'mode-btn' + (m === 'observe' ? ' active' : '');
|
|
696
|
+
document.getElementById('mode-protect').className = 'mode-btn protect-mode' + (m === 'protect' ? ' active' : '');
|
|
649
697
|
}
|
|
650
698
|
|
|
651
699
|
async function emergencyStop() {
|
|
@@ -681,13 +729,8 @@ export function renderDashboardHtml(_stats) {
|
|
|
681
729
|
|
|
682
730
|
const modeObserve = document.getElementById('mode-observe');
|
|
683
731
|
const modeProtect = document.getElementById('mode-protect');
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
modeObserve.classList.remove('active');
|
|
687
|
-
} else {
|
|
688
|
-
modeObserve.classList.add('active');
|
|
689
|
-
modeProtect.classList.remove('active');
|
|
690
|
-
}
|
|
732
|
+
modeObserve.className = 'mode-btn' + (data.mode === 'observe' ? ' active' : '');
|
|
733
|
+
modeProtect.className = 'mode-btn protect-mode' + (data.mode === 'protect' ? ' active' : '');
|
|
691
734
|
|
|
692
735
|
const btnStop = document.getElementById('btn-stop');
|
|
693
736
|
const btnResume = document.getElementById('btn-resume');
|
|
@@ -726,14 +769,15 @@ export function renderDashboardHtml(_stats) {
|
|
|
726
769
|
|
|
727
770
|
const modeLabel = data.mode ?? 'observe';
|
|
728
771
|
const estop = data.emergency_stop;
|
|
729
|
-
document.getElementById('status-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
document.getElementById('status-
|
|
736
|
-
|
|
772
|
+
document.getElementById('status-estop').textContent = estop ? '⛔ Active' : 'Inactive';
|
|
773
|
+
document.getElementById('status-estop').style.color = estop ? 'var(--destructive)' : '';
|
|
774
|
+
document.getElementById('status-fail').textContent = (breaker.consecutive_failures ?? 3) + ' failures → ' + (breaker.cooldown_sec ?? 30) + 's';
|
|
775
|
+
document.getElementById('status-velocity').textContent = (breaker.token_velocity_threshold ?? 0) > 0
|
|
776
|
+
? (breaker.token_velocity_threshold ?? 0).toLocaleString() + ' / ' + (breaker.token_velocity_window_sec ?? 60) + 's'
|
|
777
|
+
: 'Off';
|
|
778
|
+
document.getElementById('status-frequency').textContent = (breaker.call_frequency_threshold ?? 0) > 0
|
|
779
|
+
? (breaker.call_frequency_threshold ?? 0) + ' / ' + (breaker.call_frequency_window_sec ?? 60) + 's'
|
|
780
|
+
: 'Off';
|
|
737
781
|
|
|
738
782
|
const coolingSources = data.cooling_sources ?? [];
|
|
739
783
|
const coolingList = document.getElementById('list-cooling');
|
|
@@ -777,7 +821,7 @@ export function renderDashboardHtml(_stats) {
|
|
|
777
821
|
log.innerHTML = '<div class="empty">No events</div>';
|
|
778
822
|
return;
|
|
779
823
|
}
|
|
780
|
-
log.innerHTML = events.slice(0, 100).map(e => {
|
|
824
|
+
log.innerHTML = events.slice(0, 100).reverse().map(e => {
|
|
781
825
|
const ts = e.timestamp ?? e.time;
|
|
782
826
|
const date = ts ? new Date(ts) : null;
|
|
783
827
|
const timeStr = date ? date.toTimeString().slice(0, 8) : '--:--:--';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/dashboard/html.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,mBAAmB,CAAC,MAAW;IAC7C,OAAO
|
|
1
|
+
{"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/dashboard/html.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,mBAAmB,CAAC,MAAW;IAC7C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA06BD,CAAC;AACT,CAAC"}
|
|
@@ -8,6 +8,10 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import type { FirewallState } from "../state.js";
|
|
10
10
|
import type { EventStore } from "../store.js";
|
|
11
|
+
export declare let testBlockRequested: {
|
|
12
|
+
source?: string;
|
|
13
|
+
} | null;
|
|
14
|
+
export declare function clearTestBlock(): void;
|
|
11
15
|
export interface BeforeAgentReplyEvent {
|
|
12
16
|
agentId?: string;
|
|
13
17
|
sessionId?: string;
|
|
@@ -26,4 +30,9 @@ export interface HandledReply {
|
|
|
26
30
|
reason: string;
|
|
27
31
|
}
|
|
28
32
|
export declare function createBeforeAgentReplyHandler(state: FirewallState, store: EventStore): (event: BeforeAgentReplyEvent, ctx: BeforeAgentReplyCtx) => Promise<HandledReply | undefined>;
|
|
33
|
+
/** Handle llm_input — check for test block trigger phrase */
|
|
34
|
+
export declare function createTestBlockDetector(store: EventStore): (event: {
|
|
35
|
+
prompt?: string;
|
|
36
|
+
provider?: string;
|
|
37
|
+
}, _ctx: any) => void;
|
|
29
38
|
//# sourceMappingURL=before-agent-reply.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"before-agent-reply.d.ts","sourceRoot":"","sources":["../../src/hooks/before-agent-reply.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"before-agent-reply.d.ts","sourceRoot":"","sources":["../../src/hooks/before-agent-reply.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C,eAAO,IAAI,kBAAkB,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAW,CAAC;AAIjE,wBAAgB,cAAc,IAAI,IAAI,CAErC;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,IAAI,CAAC;IACd,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,UAAU,IAGf,OAAO,qBAAqB,EAC5B,KAAK,mBAAmB,KACvB,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAoDrC;AAED,6DAA6D;AAC7D,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,UAAU,IACvB,OAAO;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,MAAM,GAAG,KAAG,IAAI,CAUhG"}
|
|
@@ -6,6 +6,13 @@
|
|
|
6
6
|
* - Daily Budget blocking
|
|
7
7
|
* - Source Cooldown blocking
|
|
8
8
|
*/
|
|
9
|
+
// Test block flag — set by llm_input hook when user types 'block test'
|
|
10
|
+
export let testBlockRequested = null;
|
|
11
|
+
// Prevent re-triggering from conversation history containing "block test"
|
|
12
|
+
let testBlockProcessed = false;
|
|
13
|
+
export function clearTestBlock() {
|
|
14
|
+
testBlockRequested = null;
|
|
15
|
+
}
|
|
9
16
|
export function createBeforeAgentReplyHandler(state, store) {
|
|
10
17
|
return async function handleBeforeAgentReply(event, ctx) {
|
|
11
18
|
const source = event.agentId ?? event.sessionKey ?? "unknown";
|
|
@@ -20,12 +27,12 @@ export function createBeforeAgentReplyHandler(state, store) {
|
|
|
20
27
|
});
|
|
21
28
|
state.globalStats.todayBlocked++;
|
|
22
29
|
const messages = {
|
|
23
|
-
emergency_stop: "
|
|
24
|
-
daily_token_limit:
|
|
25
|
-
source_cooldown:
|
|
26
|
-
consecutive_failures: "
|
|
27
|
-
token_velocity: "
|
|
28
|
-
call_frequency: "
|
|
30
|
+
emergency_stop: "🛑 Emergency stop activated. All AI calls are blocked. Use `openclaw firewall resume` to restore.",
|
|
31
|
+
daily_token_limit: `⛔ Daily token limit reached. Today's AI usage has exceeded the limit. Use \`openclaw firewall status\` to check usage or \`openclaw firewall budget reset\` to remove the limit.`,
|
|
32
|
+
source_cooldown: `🔥 Breaker tripped — source is in cooldown for ${state.breaker.getCooldownRemaining(source)}ms. Wait for cooldown or use \`openclaw firewall reset "${source}"\` to clear.`,
|
|
33
|
+
consecutive_failures: `⚠️ Source "${source}" blocked: ${state.config.breaker?.consecutiveFailures ?? 3} consecutive failures triggered breaker. Use \`openclaw firewall reset "${source}"\` to clear.`,
|
|
34
|
+
token_velocity: `⚡ Source "${source}" blocked: token rate exceeded ${state.config.breaker?.tokenVelocityThreshold?.toLocaleString() ?? "limit"} tokens/${state.config.breaker?.tokenVelocityWindowSec ?? 60}s. Use \`openclaw firewall reset "${source}"\` to clear.`,
|
|
35
|
+
call_frequency: `📞 Source "${source}" blocked: call frequency exceeded ${state.config.breaker?.callFrequencyThreshold ?? 30} calls/${state.config.breaker?.callFrequencyWindowSec ?? 60}s. Use \`openclaw firewall reset "${source}"\` to clear.`,
|
|
29
36
|
};
|
|
30
37
|
return {
|
|
31
38
|
handled: true,
|
|
@@ -36,7 +43,36 @@ export function createBeforeAgentReplyHandler(state, store) {
|
|
|
36
43
|
reason: result.reason,
|
|
37
44
|
};
|
|
38
45
|
}
|
|
46
|
+
// Test block trigger
|
|
47
|
+
if (testBlockRequested) {
|
|
48
|
+
const src = testBlockRequested.source || "unknown";
|
|
49
|
+
testBlockRequested = null;
|
|
50
|
+
store.append({ type: "blocked", source: src, reason: "test_block", layer: "hook" });
|
|
51
|
+
state.globalStats.todayBlocked++;
|
|
52
|
+
return {
|
|
53
|
+
handled: true,
|
|
54
|
+
reply: {
|
|
55
|
+
text: `🧪 Block test triggered successfully for source "${src}". The firewall is working. Use \`openclaw firewall status\` to verify the blocked count increased.`,
|
|
56
|
+
isError: true,
|
|
57
|
+
},
|
|
58
|
+
reason: "test_block",
|
|
59
|
+
};
|
|
60
|
+
}
|
|
39
61
|
return undefined;
|
|
40
62
|
};
|
|
41
63
|
}
|
|
64
|
+
/** Handle llm_input — check for test block trigger phrase */
|
|
65
|
+
export function createTestBlockDetector(store) {
|
|
66
|
+
return function detectTestBlock(event, _ctx) {
|
|
67
|
+
const prompt = event.prompt ?? "";
|
|
68
|
+
if (prompt.includes("阻断测试") || prompt.includes("block test") || prompt.includes("test block")) {
|
|
69
|
+
// Only trigger once per gateway process to avoid re-triggering from history
|
|
70
|
+
if (testBlockProcessed)
|
|
71
|
+
return;
|
|
72
|
+
testBlockProcessed = true;
|
|
73
|
+
testBlockRequested = { source: event.provider ?? "chat" };
|
|
74
|
+
store.append({ type: "test_block_triggered", reason: "user requested block test" });
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
}
|
|
42
78
|
//# sourceMappingURL=before-agent-reply.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"before-agent-reply.js","sourceRoot":"","sources":["../../src/hooks/before-agent-reply.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"before-agent-reply.js","sourceRoot":"","sources":["../../src/hooks/before-agent-reply.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* before_model_resolve hook — transparent model routing through firewall
|
|
3
|
+
*
|
|
4
|
+
* Intercepts model resolution and rewrites non-mapick models to
|
|
5
|
+
* mapick/<provider>/<model>, making the Provider Layer transparent.
|
|
6
|
+
* Users keep their existing model config — no changes needed.
|
|
7
|
+
*/
|
|
8
|
+
import type { FirewallState } from "../state.js";
|
|
9
|
+
import type { EventStore } from "../store.js";
|
|
10
|
+
export interface BeforeModelResolveEvent {
|
|
11
|
+
provider: string;
|
|
12
|
+
model: string;
|
|
13
|
+
runId?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface ModelResolveResult {
|
|
16
|
+
providerOverride?: string;
|
|
17
|
+
modelOverride?: string;
|
|
18
|
+
}
|
|
19
|
+
export declare function createBeforeModelResolveHandler(state: FirewallState, store: EventStore): (event: BeforeModelResolveEvent, _ctx: any) => ModelResolveResult | undefined;
|
|
20
|
+
//# sourceMappingURL=before-model-resolve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"before-model-resolve.d.ts","sourceRoot":"","sources":["../../src/hooks/before-model-resolve.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,UAAU,IAGf,OAAO,uBAAuB,EAC9B,MAAM,GAAG,KACR,kBAAkB,GAAG,SAAS,CAoBlC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* before_model_resolve hook — transparent model routing through firewall
|
|
3
|
+
*
|
|
4
|
+
* Intercepts model resolution and rewrites non-mapick models to
|
|
5
|
+
* mapick/<provider>/<model>, making the Provider Layer transparent.
|
|
6
|
+
* Users keep their existing model config — no changes needed.
|
|
7
|
+
*/
|
|
8
|
+
import { isMapickModelRef } from "../provider/route.js";
|
|
9
|
+
export function createBeforeModelResolveHandler(state, store) {
|
|
10
|
+
return function handleBeforeModelResolve(event, _ctx) {
|
|
11
|
+
// Already using mapick/* — no rewrite needed
|
|
12
|
+
if (isMapickModelRef(event.model))
|
|
13
|
+
return undefined;
|
|
14
|
+
// Rewrite ALL calls to mapick/<provider>/<model>
|
|
15
|
+
// observe mode: routes through Provider Layer for tracking (no blocking)
|
|
16
|
+
// protect mode: routes through Provider Layer for tracking + blocking
|
|
17
|
+
const newModel = `mapick/${event.provider}/${event.model}`;
|
|
18
|
+
store.append({
|
|
19
|
+
type: "model_rewrite",
|
|
20
|
+
reason: "transparent_firewall_routing",
|
|
21
|
+
provider: event.provider,
|
|
22
|
+
model: event.model,
|
|
23
|
+
});
|
|
24
|
+
return {
|
|
25
|
+
providerOverride: "mapick",
|
|
26
|
+
modelOverride: newModel,
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=before-model-resolve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"before-model-resolve.js","sourceRoot":"","sources":["../../src/hooks/before-model-resolve.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAaxD,MAAM,UAAU,+BAA+B,CAC7C,KAAoB,EACpB,KAAiB;IAEjB,OAAO,SAAS,wBAAwB,CACtC,KAA8B,EAC9B,IAAS;QAET,6CAA6C;QAC7C,IAAI,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAEpD,iDAAiD;QACjD,yEAAyE;QACzE,sEAAsE;QACtE,MAAM,QAAQ,GAAG,UAAU,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC3D,KAAK,CAAC,MAAM,CAAC;YACX,IAAI,EAAE,eAAe;YACrB,MAAM,EAAE,8BAA8B;YACtC,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC,CAAC;QAEH,OAAO;YACL,gBAAgB,EAAE,QAAQ;YAC1B,aAAa,EAAE,QAAQ;SACxB,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAM9C,wBAAgB,aAAa,CAC3B,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,UAAU,GAChB,IAAI,CAcN"}
|
package/dist/hooks/index.js
CHANGED
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Hook registration entry point
|
|
3
3
|
*/
|
|
4
|
-
import { createBeforeAgentReplyHandler } from "./before-agent-reply.js";
|
|
4
|
+
import { createBeforeAgentReplyHandler, createTestBlockDetector } from "./before-agent-reply.js";
|
|
5
|
+
import { createBeforeModelResolveHandler } from "./before-model-resolve.js";
|
|
5
6
|
import { createModelCallStartedHandler, createModelCallEndedHandler } from "./model-call.js";
|
|
6
7
|
import { createAgentEndHandler } from "./agent-end.js";
|
|
7
8
|
export function registerHooks(api, state, store) {
|
|
8
9
|
api.on("before_agent_reply", createBeforeAgentReplyHandler(state, store));
|
|
10
|
+
api.on("before_model_resolve", createBeforeModelResolveHandler(state, store));
|
|
9
11
|
api.on("model_call_started", createModelCallStartedHandler(state, store));
|
|
10
12
|
api.on("model_call_ended", createModelCallEndedHandler(state, store));
|
|
11
13
|
api.on("agent_end", createAgentEndHandler(state, store));
|
|
14
|
+
// llm_input — test block detection (triggers on "block test" phrase)
|
|
15
|
+
api.on("llm_input", createTestBlockDetector(store));
|
|
12
16
|
if (state.config.privacy?.enableRawConversationHooks) {
|
|
13
|
-
//
|
|
17
|
+
// llm_output — opt-in only
|
|
14
18
|
// To be implemented in future versions
|
|
15
19
|
}
|
|
16
20
|
}
|
package/dist/hooks/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,6BAA6B,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACjG,OAAO,EAAE,+BAA+B,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EAAE,6BAA6B,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAC7F,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,MAAM,UAAU,aAAa,CAC3B,GAAQ,EACR,KAAoB,EACpB,KAAiB;IAEjB,GAAG,CAAC,EAAE,CAAC,oBAAoB,EAAE,6BAA6B,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAC1E,GAAG,CAAC,EAAE,CAAC,sBAAsB,EAAE,+BAA+B,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9E,GAAG,CAAC,EAAE,CAAC,oBAAoB,EAAE,6BAA6B,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAC1E,GAAG,CAAC,EAAE,CAAC,kBAAkB,EAAE,2BAA2B,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IACtE,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAEzD,qEAAqE;IACrE,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC;IAEpD,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,0BAA0B,EAAE,CAAC;QACrD,2BAA2B;QAC3B,uCAAuC;IACzC,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-call.d.ts","sourceRoot":"","sources":["../../src/hooks/model-call.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"model-call.d.ts","sourceRoot":"","sources":["../../src/hooks/model-call.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAK9C,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAoB,SAAQ,qBAAqB;IAChE,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,SAAS,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,YAAY,GAAG,SAAS,CAAC;IAC9F,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,KAAK,CAAC,EAAE;QACN,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,UAAU,IAGf,OAAO,qBAAqB,EAC5B,KAAK,GAAG,KACP,IAAI,CAyBR;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,UAAU,IAGf,OAAO,mBAAmB,EAC1B,KAAK,GAAG,KACP,IAAI,CAuGR"}
|
package/dist/hooks/model-call.js
CHANGED
|
@@ -8,9 +8,18 @@
|
|
|
8
8
|
* - Write event log
|
|
9
9
|
*/
|
|
10
10
|
import { sourceFromModelCall } from "../source.js";
|
|
11
|
+
import { testBlockRequested, clearTestBlock } from "./before-agent-reply.js";
|
|
11
12
|
export function createModelCallStartedHandler(state, store) {
|
|
12
13
|
return function handleModelCallStarted(event, ctx) {
|
|
13
14
|
const source = sourceFromModelCall(event, ctx);
|
|
15
|
+
// Test block detection: user typed "block test" → activate emergency stop now
|
|
16
|
+
if (testBlockRequested) {
|
|
17
|
+
const src = testBlockRequested.source || source;
|
|
18
|
+
clearTestBlock();
|
|
19
|
+
store.append({ type: "blocked", source: src, reason: "test_block", layer: "hook" });
|
|
20
|
+
state.globalStats.todayBlocked++;
|
|
21
|
+
state.setEmergencyStop(true);
|
|
22
|
+
}
|
|
14
23
|
const run = state.getOrCreateRun(event.runId, source, event.sessionId, event.sessionKey);
|
|
15
24
|
state.addCallToRun(event.runId, event.callId, {
|
|
16
25
|
callId: event.callId,
|
|
@@ -55,7 +64,11 @@ export function createModelCallEndedHandler(state, store) {
|
|
|
55
64
|
state.breaker.recordSuccess(source);
|
|
56
65
|
}
|
|
57
66
|
state.updateRunCost(event.runId, estimatedTokens);
|
|
58
|
-
|
|
67
|
+
// Provider layer tracks tokens for mapick/* calls — skip to avoid double-counting
|
|
68
|
+
// Uses model prefix check (more reliable than provider field)
|
|
69
|
+
if (!event.model?.startsWith("mapick/")) {
|
|
70
|
+
state.updateSourceStats(source, estimatedTokens);
|
|
71
|
+
}
|
|
59
72
|
// Token velocity + call frequency + zero output detection
|
|
60
73
|
if (event.outcome === "completed") {
|
|
61
74
|
state.breaker.recordTokens(source, estimatedTokens);
|