| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat(sensor): capture Gemini CLI conversations and tool activity (#121) * feat(sensor): capture Gemini CLI conversations and tool activity Summary: ADR currently misses Gemini CLI sessions. Add the gemini source for current JSONL journals and legacy JSON conversation snapshots, including tool arguments/results, status, approval requests, usage, and nested subagents. Consolidate repeated messages without losing recorded activity across rewinds, and refresh resumed session exports. Document native macOS/Linux/Windows paths and GEMINI_CLI_HOME semantics. Add synthetic contract fixtures and a CI matrix on all three operating systems. No runtime dependencies or agent configuration changes are required. Test Plan: 244 Sensor tests pass locally on Python 3.11; changed Python files pass Ruff. Native platform jobs exercise discovery, parsing and export. Tests replay synthetic records from the documented upstream contract; an authenticated live Gemini session is not part of local validation. Revert Plan: Revert this commit to remove the gemini source; existing exported JSON remains usable. * fix(sensor): preserve Gemini mixed and image-only content parts | 4 天前 | |
feat(sensor): add opt-in OpenTelemetry log export (#120) Summary: Intent: - Let Sensor users forward normalized records to SIEM pipelines without changing default behavior. - Keep export explicitly opt-in and preserve complete parser output without exporter-side redaction. Changes: - Add validated JSON configuration and an optional OTLP/HTTP dependency extra. - Emit agent sessions and system configurations as OpenTelemetry logs during the existing one-shot run. - Flush before exit, surface endpoint failures, and document configuration, deduplication, and privacy behavior. Test Plan: - Sent an AgentEvent to a local OTLP/HTTP receiver and decoded the full unredacted protobuf payload. - Verified a base installation runs without OpenTelemetry packages and gives install guidance when export is enabled. --- <sub>Generated by the 🪄 [pr-create](https://sg.uberinternal.com/code.uber.internal/uber-code/devexp-agent-marketplace/-/blob/claude-code/plugins/dev/uber-dev/skills/pr-create/SKILL.md) skill in devexp-agent-marketplace</sub> | 4 天前 | |
feat(sensor): capture Gemini CLI conversations and tool activity (#121) * feat(sensor): capture Gemini CLI conversations and tool activity Summary: ADR currently misses Gemini CLI sessions. Add the gemini source for current JSONL journals and legacy JSON conversation snapshots, including tool arguments/results, status, approval requests, usage, and nested subagents. Consolidate repeated messages without losing recorded activity across rewinds, and refresh resumed session exports. Document native macOS/Linux/Windows paths and GEMINI_CLI_HOME semantics. Add synthetic contract fixtures and a CI matrix on all three operating systems. No runtime dependencies or agent configuration changes are required. Test Plan: 244 Sensor tests pass locally on Python 3.11; changed Python files pass Ruff. Native platform jobs exercise discovery, parsing and export. Tests replay synthetic records from the documented upstream contract; an authenticated live Gemini session is not part of local validation. Revert Plan: Revert this commit to remove the gemini source; existing exported JSON remains usable. * fix(sensor): preserve Gemini mixed and image-only content parts | 4 天前 | |
Initial public release: ADR Sensor, Detector, and ADR-Bench Research artifacts for "ADR: An Agentic Detection System for Enterprise Agentic AI Security" (MLSys 2026). Includes: - ADR Sensor (Sensor/): telemetry capture for AI agent / MCP activity - ADR Detector (Detection/): dual-agent detection framework - ADR-Bench: 133 MCP servers, 303 benchmark tasks, four detector baselines - Reproducibility guide, open-source review, baseline replication docs - Isolation/non-production notice (research artifact, pinned deps carry known CVEs acceptable under isolated threat model) Naming aligned with the paper: system = ADR, benchmark = ADR-Bench. The internal codebase previously used "ADS" / "ADS-Bench" (pre-rename); this release renames all user-facing and most internal identifiers (package name adr-benchmark, CLI --detector adr / --benchmark adr_bench, module paths guardrail/adr_agent/adr_baseline, ADRBaseline class, adr_framework config key, threat IDs ADR.T00XX, display strings) to match the paper. A few internal-only identifiers remain (ADSConfig, load_ads_tasks, the ads_reasoning_workspace runtime dir name); these are not user-facing and do not affect imports, CLI, or config wiring. Historical captured-session content inside the packed benchmark JSONL (paths, the benchmark_name field) is preserved as-is since it is non-functional artifact data. Benchmark fixture documents: two real arXiv papers licensed under CC-BY-4.0 are bundled as sample documents for benign document-conversion tasks (see NOTICE.md Components 6 and 7 for attributions). Paper: https://arxiv.org/abs/2605.17380 | 1 个月前 | |
feat(sensor): add opencode support and complete the platform matrix (#30) * feat(sensor): add opencode support and complete the platform matrix Brings the open-source Sensor up to date with the agents and operating systems it now needs to cover. All changes are additive: no source key, session-id format or event uuid changes, so existing detection pipelines are unaffected. New source: opencode (github.com/sst/opencode) Reads both storage backends — the current SQLite database (opencode.db, or opencode-<channel>.db on non-stable channels, opened read-only) and the older JSON file tree in both its project-scoped and legacy layouts. Honors $XDG_DATA_HOME and $OPENCODE_DB. Tools are classified against the built-in registry, so anything else with an underscore is recorded as an MCP tool with its server_name split out. Windows support for the parsers that were missing it cursor ~/AppData/Roaming/Cursor/User/globalStorage/state.vscdb cline ~/AppData/Roaming/Cursor/User/globalStorage/saoudrizwan.claude-dev/tasks warp ~/AppData/Local/warp/Warp/data/warp.sqlite desktop ~/AppData/Roaming/Claude/local-agent-mode-sessions Each parser now resolves against an ordered candidate list instead of an either/or pair. Warp also gains the sandboxed macOS group-container path (~/Library/Group Containers/2BBY89MBSN.dev.warp/...), which is where the database actually lives on current builds — it was previously unreachable. Claude Desktop agent mode: Dispatch sessions Delegated background agents are stored one level deeper, under agent/local_ditto_<uuid>/, and were not discovered at all. They now surface under the existing claude_desktop source with a claude_desktop_dispatch_ session-id prefix and an is_dispatch flag, so unattended runs can be scored separately from interactive ones. Interactive session ids are unchanged. Session context also picks up plugins, skills, claude_code_version, the memory/skills/plugins toggles and the available slash commands. Observer: ingest_all() iterates a SOURCES table and resolves each parser as self.<source>_parser, replacing seven near-identical branches. Platform-only sources are declared in PLATFORM_RESTRICTED_SOURCES and the CLI derives its --source choices from SOURCES, so adding an agent touches neither. Also: 44 new tests, a Python 3.9-3.13 CI matrix for the Sensor job (the package already declared >=3.9 but only 3.12 was exercised), OS and Python classifiers in pyproject, and docs for the new source, platform matrix, session_context and environment variables. * fix(sensor): resolve Windows app-data roots from the environment; test 3.10 Addresses review on #30. %APPDATA% and %LOCALAPPDATA% point outside the user profile on roaming-profile and redirected-folder setups, so the profile-relative AppData paths added for Cursor, Cline, Warp and Claude Desktop would silently find nothing on exactly the managed Windows fleets this sensor targets. The new utils/platform_paths.py consults the environment first and keeps the profile-relative location only as a fallback, matching how the parsers already honor XDG_DATA_HOME / XDG_CACHE_HOME / OPENCODE_DB. Adopts the env-first approach from #25 by @krishnesh1, and extends it beyond Cursor/Cline to Warp (%LOCALAPPDATA%) and Claude Desktop. Closes the failure mode reported in #21 by @Rahul-s-007. Also adds Python 3.10 to the Sensor CI matrix so every version advertised in the package classifiers is exercised, documents APPDATA/LOCALAPPDATA in the Sensor README, and adds six tests covering env-set/unset/empty resolution plus an end-to-end redirected-%APPDATA% discovery test. Co-authored-by: krishnesh1 <krishnesh1@users.noreply.github.com> Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * ci(sensor): report aggregate "Sensor tests" check for branch protection Branch protection requires a status context named exactly "Sensor tests" - the job name before it became a per-version matrix. The matrix legs report as "Sensor tests (py3.X)", so the required context was never reported and the PR sat at "Expected - Waiting for status to be reported" with every real check green. Add a gate job with the original name that needs the matrix and fails unless every leg succeeded. Runs under if: always() because a skipped job would otherwise satisfy the required check even when a leg fails. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: krishnesh1 <krishnesh1@users.noreply.github.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com> | 1 个月前 | |
Initial public release: ADR Sensor, Detector, and ADR-Bench Research artifacts for "ADR: An Agentic Detection System for Enterprise Agentic AI Security" (MLSys 2026). Includes: - ADR Sensor (Sensor/): telemetry capture for AI agent / MCP activity - ADR Detector (Detection/): dual-agent detection framework - ADR-Bench: 133 MCP servers, 303 benchmark tasks, four detector baselines - Reproducibility guide, open-source review, baseline replication docs - Isolation/non-production notice (research artifact, pinned deps carry known CVEs acceptable under isolated threat model) Naming aligned with the paper: system = ADR, benchmark = ADR-Bench. The internal codebase previously used "ADS" / "ADS-Bench" (pre-rename); this release renames all user-facing and most internal identifiers (package name adr-benchmark, CLI --detector adr / --benchmark adr_bench, module paths guardrail/adr_agent/adr_baseline, ADRBaseline class, adr_framework config key, threat IDs ADR.T00XX, display strings) to match the paper. A few internal-only identifiers remain (ADSConfig, load_ads_tasks, the ads_reasoning_workspace runtime dir name); these are not user-facing and do not affect imports, CLI, or config wiring. Historical captured-session content inside the packed benchmark JSONL (paths, the benchmark_name field) is preserved as-is since it is non-functional artifact data. Benchmark fixture documents: two real arXiv papers licensed under CC-BY-4.0 are bundled as sample documents for benign document-conversion tasks (see NOTICE.md Components 6 and 7 for attributions). Paper: https://arxiv.org/abs/2605.17380 | 1 个月前 | |
feat(sensor): capture Gemini CLI conversations and tool activity (#121) * feat(sensor): capture Gemini CLI conversations and tool activity Summary: ADR currently misses Gemini CLI sessions. Add the gemini source for current JSONL journals and legacy JSON conversation snapshots, including tool arguments/results, status, approval requests, usage, and nested subagents. Consolidate repeated messages without losing recorded activity across rewinds, and refresh resumed session exports. Document native macOS/Linux/Windows paths and GEMINI_CLI_HOME semantics. Add synthetic contract fixtures and a CI matrix on all three operating systems. No runtime dependencies or agent configuration changes are required. Test Plan: 244 Sensor tests pass locally on Python 3.11; changed Python files pass Ruff. Native platform jobs exercise discovery, parsing and export. Tests replay synthetic records from the documented upstream contract; an authenticated live Gemini session is not part of local validation. Revert Plan: Revert this commit to remove the gemini source; existing exported JSON remains usable. * fix(sensor): preserve Gemini mixed and image-only content parts | 4 天前 | |
feat(sensor): add opt-in OpenTelemetry log export (#120) Summary: Intent: - Let Sensor users forward normalized records to SIEM pipelines without changing default behavior. - Keep export explicitly opt-in and preserve complete parser output without exporter-side redaction. Changes: - Add validated JSON configuration and an optional OTLP/HTTP dependency extra. - Emit agent sessions and system configurations as OpenTelemetry logs during the existing one-shot run. - Flush before exit, surface endpoint failures, and document configuration, deduplication, and privacy behavior. Test Plan: - Sent an AgentEvent to a local OTLP/HTTP receiver and decoded the full unredacted protobuf payload. - Verified a base installation runs without OpenTelemetry packages and gives install guidance when export is enabled. --- <sub>Generated by the 🪄 [pr-create](https://sg.uberinternal.com/code.uber.internal/uber-code/devexp-agent-marketplace/-/blob/claude-code/plugins/dev/uber-dev/skills/pr-create/SKILL.md) skill in devexp-agent-marketplace</sub> | 4 天前 | |
chore(deps): bump urllib3 from 2.6.3 to 2.7.0 in /Sensor (#124) Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.6.3 to 2.7.0. - [Release notes](https://github.com/urllib3/urllib3/releases) - [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst) - [Commits](https://github.com/urllib3/urllib3/compare/2.6.3...2.7.0) --- updated-dependencies: - dependency-name: urllib3 dependency-version: 2.7.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> | 4 天前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 4 天前 | ||
| 4 天前 | ||
| 4 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 4 天前 | ||
| 4 天前 | ||
| 4 天前 |