Commit Graph

3399 Commits

Author SHA1 Message Date
diegosouzapw
2f3cbdb9fe merge(fix3): wire useTranslations in Traffic Inspector components (Group A) 2026-05-28 11:40:29 -03:00
diegosouzapw
f37148903d merge(fix2): system proxy revert on page exit (Group A) 2026-05-28 11:38:13 -03:00
diegosouzapw
699053fe80 merge(fix1): addDNSEntry generic for dynamic custom hosts (Group A) 2026-05-28 11:38:12 -03:00
diegosouzapw
8dbc3ae551 feat(i18n): wire useTranslations in Traffic Inspector components (fix3)
Convert CaptureModesToolbar, TopBarControls, CustomHostsManager,
HttpProxySnippetCard and SessionRecorderBar to consume useTranslations
instead of hardcoded English strings. Add 7 missing trafficInspector
keys (customHostsTitle, loading, copied, copy, httpProxyTitle,
notRecording, anyStatus) to both en.json and pt-BR.json.
2026-05-28 11:36:02 -03:00
diegosouzapw
5e51436ff3 test(mitm/api): coverage for dynamic DNS entries (fix1) 2026-05-28 11:23:52 -03:00
diegosouzapw
8e518ae008 feat(api): wire DNS propagation for traffic-inspector custom hosts (fix1) 2026-05-28 11:23:48 -03:00
diegosouzapw
785f8e4117 feat(mitm): parameterize addDNSEntry/removeDNSEntry for dynamic hosts (fix1) 2026-05-28 11:23:45 -03:00
diegosouzapw
3d65f87f63 test(ui): system proxy exit guard hook (fix2) 2026-05-28 11:21:18 -03:00
diegosouzapw
9cc85f4864 feat(i18n): add system proxy exit warning string (fix2) 2026-05-28 11:21:13 -03:00
diegosouzapw
bdd65cdd5e feat(ui): system proxy exit guard via beforeunload + sendBeacon (fix2) 2026-05-28 11:21:09 -03:00
diegosouzapw
53754ae93c merge(F10): audit report + sourceModel fix(F3) (Group A) 2026-05-28 10:26:03 -03:00
diegosouzapw
3cb3b88c9d merge(F9): docs (AGENTBRIDGE/TRAFFIC_INSPECTOR) + openapi + E2E specs + CHANGELOG (Group A) 2026-05-28 10:26:02 -03:00
diegosouzapw
8926c8bf98 chore(changelog): document Group A AgentBridge + Traffic Inspector (F9) 2026-05-28 09:14:40 -03:00
diegosouzapw
48c31c4ce5 test(e2e): smoke flows for agent-bridge + traffic-inspector + cross (F9) 2026-05-28 09:14:27 -03:00
diegosouzapw
5ff220b655 docs(api): add ~28 routes for agent-bridge + traffic-inspector to openapi.yaml (F9) 2026-05-28 09:14:18 -03:00
diegosouzapw
7a33af8ef7 docs(architecture): register agent-bridge + traffic-inspector in REPOSITORY_MAP (F9) 2026-05-28 09:14:12 -03:00
diegosouzapw
76fa6688ae docs(frameworks): add TRAFFIC_INSPECTOR.md (F9) 2026-05-28 09:14:04 -03:00
diegosouzapw
12cc1bb79c docs(frameworks): add AGENTBRIDGE.md (F9) 2026-05-28 09:13:51 -03:00
diegosouzapw
70c9bf279a fix(F3): pass sourceModel to agentBridgeHook.recordRequestStart
hookBufferStart was calling recordRequestStart without sourceModel,
causing the field to be null even when extractSourceModel returned
a value from the body. Now forwards the extracted model so the
Traffic Inspector buffer entry is populated correctly.
2026-05-28 09:06:16 -03:00
diegosouzapw
039ff0abd9 merge(F8): Traffic Inspector UI into Group A parent 2026-05-28 08:05:58 -03:00
diegosouzapw
e6bfe147d5 merge(F7): AgentBridge UI into Group A parent 2026-05-28 07:29:56 -03:00
diegosouzapw
1c0015a9ab merge(F6): Traffic Inspector REST + WS routes into Group A parent 2026-05-28 07:29:56 -03:00
diegosouzapw
105d2586b0 merge(F5): AgentBridge REST routes into Group A parent 2026-05-28 07:26:35 -03:00
diegosouzapw
bd31823259 test(ui): add traffic-inspector UI tests (56 cases passing) (F8) 2026-05-28 07:25:32 -03:00
diegosouzapw
98c5fefed4 feat(i18n): add Traffic Inspector strings for en + pt-BR (F8) 2026-05-28 07:25:27 -03:00
diegosouzapw
d73273ca20 feat(sidebar): add traffic-inspector entry to HIDEABLE + TOOLS_GROUP (F8) 2026-05-28 07:25:23 -03:00
diegosouzapw
442457af75 feat(ui): traffic-inspector hooks (stream, filters, virtual-list, resizable, session, replay) (F8) 2026-05-28 07:25:20 -03:00
diegosouzapw
4a802e84bd feat(ui): traffic-inspector shared components (waterfall, json, context bar, etc) (F8) 2026-05-28 07:25:15 -03:00
diegosouzapw
389b035bee feat(ui): traffic-inspector conversation chat bubbles + session recorder/picker (F8) 2026-05-28 07:25:09 -03:00
diegosouzapw
e5a0d3df22 feat(ui): traffic-inspector tabs (headers/request/response/timing/llm/stats) (F8) 2026-05-28 07:25:04 -03:00
diegosouzapw
2502993581 feat(ui): traffic-inspector page + capture toolbar + streaming list (F8) 2026-05-28 07:25:00 -03:00
diegosouzapw
2568e9f1f5 fix(ui): resolve react-hooks/set-state-in-effect lint errors (F7)
- RiskNoticeBanner: use lazy useState initializer for localStorage read
  instead of useEffect + setState
- ModelSelectorModal: move fetch logic to useCallback, call from useEffect
  to avoid setState directly in effect body
2026-05-28 02:00:53 -03:00
diegosouzapw
f6f5d8da7d test(ui): agent-bridge UI unit tests (F7)
18 vitest/jsdom tests across 4 files:
- agent-bridge-page.test.tsx: EmptyState, RiskNoticeBanner (render/dismiss),
  BypassListEditor (defaults, initial patterns)
- agent-card.test.tsx: render, expand, DNS toggle, wizard open
- setup-wizard.test.tsx: step1 render, Next navigation, DNS enable, Cancel
- bypass-list-editor.test.tsx: defaults, patterns, save callback, button
All 18 tests pass. Timeout set to 30000ms (initial transform overhead).
2026-05-28 01:39:44 -03:00
diegosouzapw
5046bff067 feat(i18n): pt-BR + en strings for AgentBridge (F7)
Add ~90 i18n keys under agentBridge.* namespace (server card, agent list,
agent card, setup wizard, model mapping, bypass list, upstream CA, empty
state, risk banner, sidebar title/subtitle) in en.json and pt-BR.json.
Other 39 locales get EN fallback automatically (D17).
2026-05-28 01:39:36 -03:00
diegosouzapw
dcb9685aa8 feat(redirect): /system/mitm-proxy now points to /tools/agent-bridge (F7)
Update the old MITM proxy page redirect from /dashboard/system/proxy
to /dashboard/tools/agent-bridge per plan 11 acceptance criterion.
2026-05-28 01:39:30 -03:00
diegosouzapw
91e3d9c965 feat(sidebar): add agent-bridge entry to TOOLS_GROUP (F7)
Add "agent-bridge" to HIDEABLE_SIDEBAR_ITEM_IDS and to TOOLS_GROUP.items
after cloud-agents. Only adding lines, never reordering (D5 / Hard Rule).
2026-05-28 01:39:23 -03:00
diegosouzapw
192e6286da feat(ui): agent-bridge page + server card + agent list (F7)
Add AgentBridge full UI at /dashboard/tools/agent-bridge:
- page.tsx (Server Component, fetches state + providers check)
- AgentBridgePageClient.tsx (orchestrator, all mutations)
- AgentBridgeServerCard: Start/Stop/Restart/TrustCert/Download/RegenCert
- AgentList: grid + All/Active/Setup/Investigating filter + search
- AgentCard: expandable with DNS toggle, model mappings, setup wizard
- SetupWizard: 3-step modal (Verify → DNS → Mappings)
- ModelMappingTable + ModelSelectorModal: source→target inline editing
- BypassListEditor: default + user bypass patterns textarea/chips
- UpstreamCaField: path + Test TLS + Save
- EmptyStateNoProviders: shown when zero providers configured (D15)
- RiskNoticeBanner: amber dismissible (localStorage persistence)
- shared/: DnsStatusBadge, CertStatusIcon, AgentIcon
- hooks/useAgentBridgeState: polling fetch (no SWR dependency)
- src/shared/components/RiskNoticeModal.tsx: generic risk modal (D16)
2026-05-28 01:39:17 -03:00
diegosouzapw
1d9cb7eb03 test(api): integration tests for traffic-inspector routes (F6) 2026-05-28 01:24:33 -03:00
diegosouzapw
668010bcf2 feat(api): traffic-inspector sessions + internal ingest routes (F6) 2026-05-28 01:24:26 -03:00
diegosouzapw
c16ce8a9e1 feat(api): traffic-inspector hosts + capture-modes + tls routes (F6) 2026-05-28 01:24:20 -03:00
diegosouzapw
ef79eab224 feat(api): traffic-inspector ws + requests + replay + annotation routes (F6) 2026-05-28 01:24:14 -03:00
diegosouzapw
1d6fcfd0c4 feat(authz): mark traffic-inspector LOCAL_ONLY + SPAWN_CAPABLE (F6) 2026-05-28 01:24:08 -03:00
diegosouzapw
0c38ed57ec test(api): integration tests for agent-bridge routes (F5)
4 integration test files covering: happy paths for all 8 major routes,
LOCAL_ONLY classification assertion, Zod 400 paths, cert flow (status/trust/
download/regenerate), bypass CRUD (POST/GET/DELETE), mappings PUT→GET
round-trip. Every error path asserts no stack trace leakage (Hard Rule #12).
Total: 41 tests, 41 pass.
2026-05-28 00:24:48 -03:00
diegosouzapw
19c4ff9bb0 feat(api): agent-bridge state + server + agents + cert + bypass + upstream-ca routes (F5)
12 REST routes under /api/tools/agent-bridge/ covering all AgentBridge
backend surfaces: server lifecycle, per-agent state/DNS/mappings/detect,
cert status/download/regenerate, bypass pattern CRUD, upstream CA config.
All routes use Zod validation and route errors through sanitizeErrorMessage.

feat(authz): mark agent-bridge LOCAL_ONLY + SPAWN_CAPABLE (F5)

Adds /api/tools/agent-bridge/ to both LOCAL_ONLY_API_PREFIXES and
SPAWN_CAPABLE_PREFIXES in routeGuard.ts — satisfying Hard Rules #15 + #17.
2026-05-28 00:24:38 -03:00
diegosouzapw
cb6a8c1641 merge(F4): Inspector core into Group A parent 2026-05-27 23:06:49 -03:00
diegosouzapw
6a5304b79a merge(F3): MITM handlers + targets + server.cjs hook into Group A parent 2026-05-27 23:06:49 -03:00
diegosouzapw
1196d08aad test(mitm): handlers + targets + detection unit tests (F3)
- mitm-handler-base: hookBufferStart returns InterceptedRequest with
  sanitized headers, extractSourceModel parses body.model, writeError
  emits JSON with sanitized message (Hard Rule #12).
- mitm-handler-<id>: nine per-agent happy-path tests (antigravity,
  kiro, copilot, codex, cursor, zed, claude-code, open-code) exercise
  full intercept() with mocked fetch via _mitmHandlerHarness.ts;
  asserts mapped model is forwarded and AgentBridge correlation
  headers are present. Trae test confirms intercept() rejects with a
  structured error.
- mitm-targets-resolve: ALL_TARGETS contains 9 entries; resolveTarget
  is case-insensitive and returns null for unknown hosts.
- mitm-targets-route: bypass > target > passthrough precedence
  validated against representative hostnames.
- mitm-detection: DETECTORS covers every AgentId; detectAgent never
  throws and returns DetectionResult-shaped objects for all probes.
2026-05-27 22:33:56 -03:00
diegosouzapw
75b3e916bc test(inspector): unit tests for F4 inspector core (7 specs) 2026-05-27 21:44:53 -03:00
diegosouzapw
c5f697dbc6 feat(inspector): add harExport (F4) 2026-05-27 21:44:46 -03:00
diegosouzapw
62f2fdc4c1 feat(inspector): add httpProxyServer + systemProxyConfig + agentBridgeHook (F4) 2026-05-27 21:44:42 -03:00