@solongate/proxy 0.82.99 → 0.83.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/index.js +22 -16
- package/dist/tui/index.js +22 -16
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -10148,7 +10148,8 @@ function RateLimitPanel({ focused }) {
|
|
|
10148
10148
|
const anomalies2 = (insightsQ.data?.["anomalies"] ?? []).slice().sort((a, b) => b.count - a.count || new Date(b.minute).getTime() - new Date(a.minute).getTime());
|
|
10149
10149
|
const hasLoad = (draft?.perMinute ?? 0) > 0;
|
|
10150
10150
|
const showExtras = rows >= 20;
|
|
10151
|
-
const
|
|
10151
|
+
const spacerRows = showExtras ? 1 : 0;
|
|
10152
|
+
const fixed = 1 + 4 + (showExtras ? (hasLoad ? 1 : 0) + 5 : 0) + 1 + 1 + spacerRows + 1 + 1;
|
|
10152
10153
|
const burstBudget = Math.max(1, rows - fixed);
|
|
10153
10154
|
const maxOff = Math.max(0, anomalies2.length - burstBudget);
|
|
10154
10155
|
const total = 4 + anomalies2.length;
|
|
@@ -10217,23 +10218,28 @@ function RateLimitPanel({ focused }) {
|
|
|
10217
10218
|
anomalies2.length === 0 ? /* @__PURE__ */ jsxs5(Text5, { color: theme.dim, children: [
|
|
10218
10219
|
" ",
|
|
10219
10220
|
insightsQ.loading ? "loading\u2026" : insightsQ.error ? `couldn't load bursts: ${String(insightsQ.error).slice(0, 60)}` : "no bursts in the last 7 days"
|
|
10220
|
-
] }) :
|
|
10221
|
-
|
|
10222
|
-
|
|
10223
|
-
|
|
10224
|
-
|
|
10225
|
-
|
|
10226
|
-
|
|
10227
|
-
|
|
10228
|
-
|
|
10229
|
-
|
|
10230
|
-
|
|
10231
|
-
|
|
10232
|
-
|
|
10233
|
-
|
|
10221
|
+
] }) : (
|
|
10222
|
+
// Bounded here as well as on the outer frame, so a list longer than
|
|
10223
|
+
// the budget is clipped inside its own box instead of shoving the
|
|
10224
|
+
// footer out of the panel and taking the scroll window with it.
|
|
10225
|
+
/* @__PURE__ */ jsx5(Box5, { flexDirection: "column", height: burstBudget + 1, overflow: "hidden", children: /* @__PURE__ */ jsx5(
|
|
10226
|
+
Table,
|
|
10227
|
+
{
|
|
10228
|
+
columns: [{ header: "WHEN", width: 15 }, { header: "RESULT", width: 9 }, { header: "CALLS", width: 7 }, { header: "AGENT", width: Math.max(8, bw - 31) }],
|
|
10229
|
+
rows: shown.map((a, i) => {
|
|
10230
|
+
const isSel = off + i === bcur;
|
|
10231
|
+
return [
|
|
10232
|
+
{ value: (isSel ? "\u25B8 " : " ") + when(new Date(a.minute).getTime()), color: isSel ? theme.accentBright : void 0, dim: !isSel },
|
|
10233
|
+
{ value: a.blocked ? "Blocked" : "Bypassed", color: a.blocked ? theme.bad : theme.warn },
|
|
10234
|
+
{ value: `${a.count}/${a.limit}`, color: theme.warn },
|
|
10235
|
+
{ value: truncate2(a.agent, Math.max(8, bw - 31)), dim: !isSel }
|
|
10236
|
+
];
|
|
10237
|
+
})
|
|
10238
|
+
}
|
|
10239
|
+
) })
|
|
10234
10240
|
)
|
|
10235
10241
|
] }),
|
|
10236
|
-
/* @__PURE__ */ jsx5(Text5, { children: " " }),
|
|
10242
|
+
spacerRows ? /* @__PURE__ */ jsx5(Text5, { children: " " }) : null,
|
|
10237
10243
|
/* @__PURE__ */ jsxs5(Text5, { wrap: "truncate", children: [
|
|
10238
10244
|
/* @__PURE__ */ jsx5(Text5, { color: theme.dim, children: "limit now " }),
|
|
10239
10245
|
/* @__PURE__ */ jsx5(Text5, { children: lim > 0 ? `${lim}/min` : "no per-minute limit" }),
|
package/dist/tui/index.js
CHANGED
|
@@ -3326,7 +3326,8 @@ function RateLimitPanel({ focused }) {
|
|
|
3326
3326
|
const anomalies2 = (insightsQ.data?.["anomalies"] ?? []).slice().sort((a, b) => b.count - a.count || new Date(b.minute).getTime() - new Date(a.minute).getTime());
|
|
3327
3327
|
const hasLoad = (draft?.perMinute ?? 0) > 0;
|
|
3328
3328
|
const showExtras = rows >= 20;
|
|
3329
|
-
const
|
|
3329
|
+
const spacerRows = showExtras ? 1 : 0;
|
|
3330
|
+
const fixed = 1 + 4 + (showExtras ? (hasLoad ? 1 : 0) + 5 : 0) + 1 + 1 + spacerRows + 1 + 1;
|
|
3330
3331
|
const burstBudget = Math.max(1, rows - fixed);
|
|
3331
3332
|
const maxOff = Math.max(0, anomalies2.length - burstBudget);
|
|
3332
3333
|
const total = 4 + anomalies2.length;
|
|
@@ -3395,23 +3396,28 @@ function RateLimitPanel({ focused }) {
|
|
|
3395
3396
|
anomalies2.length === 0 ? /* @__PURE__ */ jsxs5(Text5, { color: theme.dim, children: [
|
|
3396
3397
|
" ",
|
|
3397
3398
|
insightsQ.loading ? "loading\u2026" : insightsQ.error ? `couldn't load bursts: ${String(insightsQ.error).slice(0, 60)}` : "no bursts in the last 7 days"
|
|
3398
|
-
] }) :
|
|
3399
|
-
|
|
3400
|
-
|
|
3401
|
-
|
|
3402
|
-
|
|
3403
|
-
|
|
3404
|
-
|
|
3405
|
-
|
|
3406
|
-
|
|
3407
|
-
|
|
3408
|
-
|
|
3409
|
-
|
|
3410
|
-
|
|
3411
|
-
|
|
3399
|
+
] }) : (
|
|
3400
|
+
// Bounded here as well as on the outer frame, so a list longer than
|
|
3401
|
+
// the budget is clipped inside its own box instead of shoving the
|
|
3402
|
+
// footer out of the panel and taking the scroll window with it.
|
|
3403
|
+
/* @__PURE__ */ jsx5(Box5, { flexDirection: "column", height: burstBudget + 1, overflow: "hidden", children: /* @__PURE__ */ jsx5(
|
|
3404
|
+
Table,
|
|
3405
|
+
{
|
|
3406
|
+
columns: [{ header: "WHEN", width: 15 }, { header: "RESULT", width: 9 }, { header: "CALLS", width: 7 }, { header: "AGENT", width: Math.max(8, bw - 31) }],
|
|
3407
|
+
rows: shown.map((a, i) => {
|
|
3408
|
+
const isSel = off + i === bcur;
|
|
3409
|
+
return [
|
|
3410
|
+
{ value: (isSel ? "\u25B8 " : " ") + when(new Date(a.minute).getTime()), color: isSel ? theme.accentBright : void 0, dim: !isSel },
|
|
3411
|
+
{ value: a.blocked ? "Blocked" : "Bypassed", color: a.blocked ? theme.bad : theme.warn },
|
|
3412
|
+
{ value: `${a.count}/${a.limit}`, color: theme.warn },
|
|
3413
|
+
{ value: truncate(a.agent, Math.max(8, bw - 31)), dim: !isSel }
|
|
3414
|
+
];
|
|
3415
|
+
})
|
|
3416
|
+
}
|
|
3417
|
+
) })
|
|
3412
3418
|
)
|
|
3413
3419
|
] }),
|
|
3414
|
-
/* @__PURE__ */ jsx5(Text5, { children: " " }),
|
|
3420
|
+
spacerRows ? /* @__PURE__ */ jsx5(Text5, { children: " " }) : null,
|
|
3415
3421
|
/* @__PURE__ */ jsxs5(Text5, { wrap: "truncate", children: [
|
|
3416
3422
|
/* @__PURE__ */ jsx5(Text5, { color: theme.dim, children: "limit now " }),
|
|
3417
3423
|
/* @__PURE__ */ jsx5(Text5, { children: lim > 0 ? `${lim}/min` : "no per-minute limit" }),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@solongate/proxy",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.83.0",
|
|
4
4
|
"description": "AI tool security proxy: protect any AI tool server with customizable policies, path/command constraints, rate limiting, and audit logging. No code changes required.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|