@solongate/proxy 0.75.0 → 0.75.1

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 CHANGED
@@ -7454,6 +7454,10 @@ function LivePanel({ active: active2 }) {
7454
7454
  {
7455
7455
  value: search,
7456
7456
  onChange: (v) => {
7457
+ if (v.endsWith("/")) {
7458
+ setEditingSearch(false);
7459
+ return;
7460
+ }
7457
7461
  setSearch(v);
7458
7462
  setScroll(0);
7459
7463
  setDetailScroll(0);
@@ -7461,7 +7465,7 @@ function LivePanel({ active: active2 }) {
7461
7465
  onSubmit: () => setEditingSearch(false)
7462
7466
  }
7463
7467
  ),
7464
- /* @__PURE__ */ jsx2(Text2, { color: theme.dim, children: " (enter done \xB7 empty = clear)" })
7468
+ /* @__PURE__ */ jsx2(Text2, { color: theme.dim, children: " (enter/\u200B/ done \xB7 empty = clear)" })
7465
7469
  ] }) : search ? /* @__PURE__ */ jsxs2(Text2, { wrap: "truncate", children: [
7466
7470
  /* @__PURE__ */ jsx2(Text2, { color: theme.warn, children: "search: " }),
7467
7471
  /* @__PURE__ */ jsx2(Text2, { color: theme.accentBright, bold: true, children: search }),
@@ -7503,6 +7507,7 @@ function LivePanel({ active: active2 }) {
7503
7507
  const tl = d.slice(dScroll, dScroll + tlRows);
7504
7508
  return /* @__PURE__ */ jsxs2(Box2, { flexDirection: "column", paddingX: 1, children: [
7505
7509
  titleBar,
7510
+ searchRow,
7506
7511
  /* @__PURE__ */ jsxs2(Text2, { wrap: "truncate", children: [
7507
7512
  /* @__PURE__ */ jsx2(Text2, { backgroundColor: BG, color: "#AAC8FA", bold: true, children: ` SESSION ${detail.id.slice(0, 8)} ` }),
7508
7513
  /* @__PURE__ */ jsx2(Text2, { color: detail.source === "local" ? theme.ok : "#4f6db8", children: " " + detail.source.toUpperCase() }),
@@ -7535,7 +7540,6 @@ function LivePanel({ active: active2 }) {
7535
7540
  /* @__PURE__ */ jsx2(Text2, { color: theme.dim, children: " \u2502" })
7536
7541
  ] }),
7537
7542
  /* @__PURE__ */ jsx2(PaneTitle, { label: "TIMELINE", extra: `${d.length} calls \xB7 newest first${dScroll ? ` \xB7 \u25BC${dScroll} older` : ""} \xB7 \u2191\u2193 scroll \xB7 / search \xB7 \u2190 back`, width: innerW }),
7538
- searchRow,
7539
7543
  /* @__PURE__ */ jsxs2(Box2, { flexDirection: "column", height: tlRows, overflow: "hidden", children: [
7540
7544
  tl.length === 0 ? /* @__PURE__ */ jsx2(Text2, { color: theme.dim, children: detailCloud.length === 0 ? spin + " loading history\u2026" : "no entries" }) : null,
7541
7545
  tl.map((e) => /* @__PURE__ */ jsx2(StreamLine, { e, loc: isLoc(e) }, e.id))
@@ -7570,6 +7574,7 @@ function LivePanel({ active: active2 }) {
7570
7574
  /* @__PURE__ */ jsx2(Text2, { color: guard.data?.up_to_date ? theme.ok : theme.warn, children: guard.data ? `v${guard.data.installed ?? "?"}${guard.data.up_to_date ? "" : "\u2192v" + guard.data.latest} ${guard.data.device_count}dev` : "\xB7" }),
7571
7575
  /* @__PURE__ */ jsx2(Text2, { color: theme.dim, children: " \u2502" })
7572
7576
  ] }),
7577
+ searchRow,
7573
7578
  /* @__PURE__ */ jsxs2(Box2, { height: 1 + chartH, children: [
7574
7579
  /* @__PURE__ */ jsxs2(Box2, { flexDirection: "column", width: leftW, marginRight: 2, children: [
7575
7580
  /* @__PURE__ */ jsx2(PaneTitle, { label: "TRAFFIC", extra: `${trafficLabel} \xB7 peak ${Math.max(0, ...traffic)} \xB7 red = denials`, width: leftW }),
@@ -7648,8 +7653,7 @@ function LivePanel({ active: active2 }) {
7648
7653
  width: innerW
7649
7654
  }
7650
7655
  ),
7651
- /* @__PURE__ */ jsxs2(Box2, { flexDirection: "column", height: streamRows, overflow: "hidden", children: [
7652
- searchRow,
7656
+ /* @__PURE__ */ jsxs2(Box2, { flexDirection: "column", height: searchRow ? streamRows - 1 : streamRows, overflow: "hidden", children: [
7653
7657
  localOn === false ? /* @__PURE__ */ jsxs2(Text2, { wrap: "truncate", children: [
7654
7658
  /* @__PURE__ */ jsx2(Text2, { color: theme.warn, children: "local logs off" }),
7655
7659
  /* @__PURE__ */ jsx2(Text2, { color: theme.dim, children: " \u2014 enable: dashboard \u2192 Settings \u2192 Local logs \xB7 hooks write ~/.solongate/local-logs \xB7 view: `solongate logs-server`" })
package/dist/tui/index.js CHANGED
@@ -879,6 +879,10 @@ function LivePanel({ active: active2 }) {
879
879
  {
880
880
  value: search,
881
881
  onChange: (v) => {
882
+ if (v.endsWith("/")) {
883
+ setEditingSearch(false);
884
+ return;
885
+ }
882
886
  setSearch(v);
883
887
  setScroll(0);
884
888
  setDetailScroll(0);
@@ -886,7 +890,7 @@ function LivePanel({ active: active2 }) {
886
890
  onSubmit: () => setEditingSearch(false)
887
891
  }
888
892
  ),
889
- /* @__PURE__ */ jsx2(Text2, { color: theme.dim, children: " (enter done \xB7 empty = clear)" })
893
+ /* @__PURE__ */ jsx2(Text2, { color: theme.dim, children: " (enter/\u200B/ done \xB7 empty = clear)" })
890
894
  ] }) : search ? /* @__PURE__ */ jsxs2(Text2, { wrap: "truncate", children: [
891
895
  /* @__PURE__ */ jsx2(Text2, { color: theme.warn, children: "search: " }),
892
896
  /* @__PURE__ */ jsx2(Text2, { color: theme.accentBright, bold: true, children: search }),
@@ -928,6 +932,7 @@ function LivePanel({ active: active2 }) {
928
932
  const tl = d.slice(dScroll, dScroll + tlRows);
929
933
  return /* @__PURE__ */ jsxs2(Box2, { flexDirection: "column", paddingX: 1, children: [
930
934
  titleBar,
935
+ searchRow,
931
936
  /* @__PURE__ */ jsxs2(Text2, { wrap: "truncate", children: [
932
937
  /* @__PURE__ */ jsx2(Text2, { backgroundColor: BG, color: "#AAC8FA", bold: true, children: ` SESSION ${detail.id.slice(0, 8)} ` }),
933
938
  /* @__PURE__ */ jsx2(Text2, { color: detail.source === "local" ? theme.ok : "#4f6db8", children: " " + detail.source.toUpperCase() }),
@@ -960,7 +965,6 @@ function LivePanel({ active: active2 }) {
960
965
  /* @__PURE__ */ jsx2(Text2, { color: theme.dim, children: " \u2502" })
961
966
  ] }),
962
967
  /* @__PURE__ */ jsx2(PaneTitle, { label: "TIMELINE", extra: `${d.length} calls \xB7 newest first${dScroll ? ` \xB7 \u25BC${dScroll} older` : ""} \xB7 \u2191\u2193 scroll \xB7 / search \xB7 \u2190 back`, width: innerW }),
963
- searchRow,
964
968
  /* @__PURE__ */ jsxs2(Box2, { flexDirection: "column", height: tlRows, overflow: "hidden", children: [
965
969
  tl.length === 0 ? /* @__PURE__ */ jsx2(Text2, { color: theme.dim, children: detailCloud.length === 0 ? spin + " loading history\u2026" : "no entries" }) : null,
966
970
  tl.map((e) => /* @__PURE__ */ jsx2(StreamLine, { e, loc: isLoc(e) }, e.id))
@@ -995,6 +999,7 @@ function LivePanel({ active: active2 }) {
995
999
  /* @__PURE__ */ jsx2(Text2, { color: guard.data?.up_to_date ? theme.ok : theme.warn, children: guard.data ? `v${guard.data.installed ?? "?"}${guard.data.up_to_date ? "" : "\u2192v" + guard.data.latest} ${guard.data.device_count}dev` : "\xB7" }),
996
1000
  /* @__PURE__ */ jsx2(Text2, { color: theme.dim, children: " \u2502" })
997
1001
  ] }),
1002
+ searchRow,
998
1003
  /* @__PURE__ */ jsxs2(Box2, { height: 1 + chartH, children: [
999
1004
  /* @__PURE__ */ jsxs2(Box2, { flexDirection: "column", width: leftW, marginRight: 2, children: [
1000
1005
  /* @__PURE__ */ jsx2(PaneTitle, { label: "TRAFFIC", extra: `${trafficLabel} \xB7 peak ${Math.max(0, ...traffic)} \xB7 red = denials`, width: leftW }),
@@ -1073,8 +1078,7 @@ function LivePanel({ active: active2 }) {
1073
1078
  width: innerW
1074
1079
  }
1075
1080
  ),
1076
- /* @__PURE__ */ jsxs2(Box2, { flexDirection: "column", height: streamRows, overflow: "hidden", children: [
1077
- searchRow,
1081
+ /* @__PURE__ */ jsxs2(Box2, { flexDirection: "column", height: searchRow ? streamRows - 1 : streamRows, overflow: "hidden", children: [
1078
1082
  localOn === false ? /* @__PURE__ */ jsxs2(Text2, { wrap: "truncate", children: [
1079
1083
  /* @__PURE__ */ jsx2(Text2, { color: theme.warn, children: "local logs off" }),
1080
1084
  /* @__PURE__ */ jsx2(Text2, { color: theme.dim, children: " \u2014 enable: dashboard \u2192 Settings \u2192 Local logs \xB7 hooks write ~/.solongate/local-logs \xB7 view: `solongate logs-server`" })
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@solongate/proxy",
3
- "version": "0.75.0",
3
+ "version": "0.75.1",
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": {