Commit Graph

50 Commits

Author SHA1 Message Date
武阳 4e9ea0e3bb Restructure web app directories 2026-05-06 12:01:22 +08:00
武阳 2ea3a63447 Add router session mining tools 2026-04-30 18:25:13 +08:00
武阳 97bf5b9a54 Show data agent review summaries in sessions 2026-04-30 15:11:46 +08:00
武阳 5bdc0ffb01 Add data agent input and export workflow 2026-04-30 15:11:37 +08:00
武阳 c1951d6e4d Pause data generation for human review 2026-04-29 19:31:29 +08:00
武阳 12f6ced252 Add data agent record tools 2026-04-29 19:31:16 +08:00
武阳 a040d80096 Add directory-based project skills 2026-04-28 10:17:23 +08:00
Abdelrahman Abdallah 84a563578e Implemented the next missing parity slice around a local web GUI for the agent. 2026-04-20 05:14:57 +02:00
Abdelrahman Abdallah 20aaad62b3 Implemented the next missing parity slice around the /skills slash command listing.
/skills now enumerates bundled_skills.BUNDLED_SKILLS (matching the npm
SkillsMenu component, which lists skills — not slash commands).
Previously it mislabeled the slash-command catalog as "Available Skills".

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-20 01:09:13 +02:00
Abdelrahman Abdallah cfd3bb9ca7 Implemented the next missing parity slice around clearing session env vars on /clear.
Wires clear_session_env_vars() into LocalCodingAgent.clear_runtime_state so the
/clear slash command now drops session-scoped env vars alongside the rest of the
ephemeral runtime state, matching commands/clear/caches.ts:127.
2026-04-20 00:52:28 +02:00
Abdelrahman Abdallah 72e6fffb34 Implemented the next missing parity slice around session env var subprocess merging.
Wires session_env_vars.py into agent_tools._build_subprocess_env so that
variables set via the session registry now reach spawned children, matching
utils/shell/bashProvider.ts:249. Per-call extra_env still wins so explicit
tool overrides take precedence over session defaults.
2026-04-20 00:51:11 +02:00
Abdelrahman Abdallah 66920a3360 Implemented the next missing parity slice around display formatters. 2026-04-20 00:43:56 +02:00
Abdelrahman Abdallah ce59ead1ce Implemented the next missing parity slice around session-scoped environment variables. 2026-04-20 00:42:39 +02:00
Abdelrahman Abdallah dc86874641 Implemented the next missing parity slice around IDE path conversion (Windows ↔ WSL). 2026-04-20 00:40:05 +02:00
Abdelrahman Abdallah 1b98fb36fd Implemented the next missing parity slice around portable git utilities. 2026-04-20 00:39:01 +02:00
Abdelrahman Abdallah de6f02781b Implemented the next missing parity slice around platform detection and system directories. 2026-04-20 00:37:01 +02:00
Abdelrahman Abdallah 83d93cca85 Implemented the next missing parity slice around small portable utilities. 2026-04-20 00:35:01 +02:00
Abdelrahman Abdallah 78f3c6ec68 Implemented the next missing parity slice around model pricing tiers. 2026-04-20 00:29:47 +02:00
Abdelrahman Abdallah f770b794ae Implemented the next missing parity slice around SDK core types. 2026-04-20 00:27:41 +02:00
Abdelrahman Abdallah 9541d5d701 Implemented the next missing parity slice around sandbox configuration types. 2026-04-20 00:25:14 +02:00
Abdelrahman Abdallah b2a5a431c6 Implemented the next missing parity slice around setup-time runtime checks. 2026-04-20 00:23:45 +02:00
Abdelrahman Abdallah 266e1ac563 Implemented the next missing parity slice around remote-control slash commands. 2026-04-20 00:19:40 +02:00
Abdelrahman Abdallah a6a67d4c55 Implemented the next missing parity slice around discovery slash commands. 2026-04-20 00:16:47 +02:00
Abdelrahman Abdallah e3d9472113 Implemented the next missing parity slice around settings slash commands.
Adds /theme, /voice, /sandbox-toggle (alias /sandbox), /keybindings,
and /btw ported from npm src/commands/. Settings-touching commands
write through the existing ConfigRuntime to .claude/settings.local.json
(theme, voiceEnabled, sandbox.excludedCommands). /keybindings creates
a JSON template on first invocation. /btw flips into a prompt-style
result that asks the model to answer the side question without
mutating workspace state.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-19 23:50:11 +02:00
Abdelrahman Abdallah 1072793487 Implemented the next missing parity slice around informational slash commands.
Adds 15 commands ported from npm src/commands/: /output-style,
/release-notes, /feedback (alias /bug), /upgrade, /stickers,
/mobile (aliases /ios, /android), /desktop (alias /app),
/install-github-app, /install-slack-app, /privacy-settings,
/extra-usage, /passes, /rate-limit-options, /chrome, and
/reload-plugins. Browser launches honor CI / CLAUDE_CODE_NO_BROWSER
and fall back to a printed link when a browser is unavailable.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-19 23:39:07 +02:00
Abdelrahman Abdallah 872f4f89b5 Implemented the next missing parity slice around agent configurations. 2026-04-17 05:15:17 +02:00
Abdelrahman Abdallah 02674ba594 Implemented the next missing parity slice around agent configurations. 2026-04-17 05:03:19 +02:00
Abdelrahman Abdallah b5e5824a56 Implemented the next parity slice: prompt-budget preflight and context collapse.
Core changes:

  - Added claw-code/src/token_budget.py for projected prompt size, chat-framing overhead, output reserve, and soft/hard input limits.
  - Wired preflight prompt-length validation and auto-compact/context collapse into claw-code/src/agent_runtime.py.
  - Extended claw-code/src/compact.py so compaction reports usage back to the runtime.
  - Added inspection surfaces in claw-code/src/agent_slash_commands.py and claw-code/src/main.py:
      - /token-budget and /budget
      - token-budget
  - Hardened claw-code/src/tokenizer_runtime.py so arbitrary simple model names fall back cleanly instead of trying a slow Transformers
    lookup.
  - Exported the new helpers in claw-code/src/__init__.py.

  Docs and tracking:

  - Updated claw-code/PARITY_CHECKLIST.md to mark prompt-length validation, token-budget calculation, and auto-compact/context collapse as
    done.
  - Updated claw-code/README.md and claw-code/TESTING_GUIDE.md with the new commands and behavior.

  Tests:

  - Added claw-code/tests/test_token_budget.py.
  - Updated claw-code/tests/test_agent_runtime.py, claw-code/tests/test_agent_slash_commands.py, claw-code/tests/test_main.py, and claw-code/
    tests/test_agent_context_usage.py.
  - Verified with:
      - /data/fs201059/aa17626/miniconda3/bin/python3 -m compileall src tests
      - /data/fs201059/aa17626/miniconda3/bin/python3 -m unittest -v tests.test_token_budget
        tests.test_agent_runtime.AgentRuntimeTests.test_agent_rejects_prompt_before_backend_when_preflight_input_budget_is_exceeded
        tests.test_agent_runtime.AgentRuntimeTests.test_agent_auto_compacts_context_before_next_model_call tests.test_agent_slash_commands
        tests.test_main tests.test_compact tests.test_tokenizer_runtime tests.test_agent_context_usage
      - Result: 71 tests, OK
2026-04-11 01:38:19 +02:00
Abdelrahman Abdallah aacf0a212a Created src/prompt_constants.py (550+ lines) porting all constants from npm src/constants/:
┌──────────────────┬───────────────────────────┬───────────────────────────────────────────────┐
│ Category         │ npm Source                │ Items                                         │
├──────────────────┼───────────────────────────┼───────────────────────────────────────────────┤
│ Product metadata │ product.ts                │ URLs, base URLs                               │
├──────────────────┼───────────────────────────┼───────────────────────────────────────────────┤
│ System prefixes  │ system.ts                 │ 3 prompt prefixes                             │
├──────────────────┼───────────────────────────┼───────────────────────────────────────────────┤
│ Cyber risk       │ cyberRiskInstruction.ts   │ Safety instruction                            │
├──────────────────┼───────────────────────────┼───────────────────────────────────────────────┤
│ API limits       │ apiLimits.ts              │ 10 image/PDF/media limits                     │
├──────────────────┼───────────────────────────┼───────────────────────────────────────────────┤
│ Tool limits      │ toolLimits.ts             │ 6 result size constants                       │
├──────────────────┼───────────────────────────┼───────────────────────────────────────────────┤
│ Spinner verbs    │ spinnerVerbs.ts           │ 187 whimsical gerunds                         │
├──────────────────┼───────────────────────────┼───────────────────────────────────────────────┤
│ Completion verbs │ turnCompletionVerbs.ts    │ 8 past-tense verbs                            │
├──────────────────┼───────────────────────────┼───────────────────────────────────────────────┤
│ Figures/symbols  │ figures.ts                │ 25 Unicode UI symbols                         │
├──────────────────┼───────────────────────────┼───────────────────────────────────────────────┤
│ XML tags         │ xml.ts                    │ 30+ tag constants                             │
├──────────────────┼───────────────────────────┼───────────────────────────────────────────────┤
│ Messages         │ messages.ts               │ NO_CONTENT_MESSAGE                            │
├──────────────────┼───────────────────────────┼───────────────────────────────────────────────┤
│ Date utilities   │ common.ts                 │ 4 functions                                   │
├──────────────────┼───────────────────────────┼───────────────────────────────────────────────┤
│ Section caching  │ systemPromptSections.ts   │ Memoized/volatile sections                    │
├──────────────────┼───────────────────────────┼───────────────────────────────────────────────┤
│ Output styles    │ outputStyles.ts           │ 3 built-in configs                            │
├──────────────────┼───────────────────────────┼───────────────────────────────────────────────┤
│ Prompt helpers   │ prompts.ts                │ Knowledge cutoff, language, scratchpad, hooks │
└──────────────────┴───────────────────────────┴───────────────────────────────────────────────┘

91 new tests in tests/test_prompt_constants.py. All 17 SQL todos done.
2026-04-08 00:02:53 +02:00
Abdelrahman Abdallah c17c2768eb Implemented the next parity slice.
New runtime/code:

  - src/ask_user_runtime.py
  - src/team_runtime.py

  New real tools in src/agent_tools.py:

  - ask_user_question
  - team_create
  - team_delete
  - team_list
  - team_get
  - send_message
  - team_messages
  - notebook_edit
2026-04-07 03:48:20 +02:00
Abdelrahman Abdallah a5629295ac Implemented the next parity slice.
New runtime/code:

  - src/ask_user_runtime.py
  - src/team_runtime.py

  New real tools in src/agent_tools.py:

  - ask_user_question
  - team_create
  - team_delete
  - team_list
  - team_get
  - send_message
  - team_messages
  - notebook_edit
2026-04-07 02:51:30 +02:00
Abdelrahman Abdallah a54c90b18f update the codebase and clean up it 2026-04-06 03:42:44 +02:00
copilot-swe-agent[bot] 696f272b88 Add comprehensive security tests for agent_tools.py
- Add 26 tests covering _resolve_path, _ensure_shell_allowed, and
  _is_sensitive_env_var across path traversal, destructive command
  blocking, and secret-name detection.
- Fix bug in _ensure_shell_allowed: regex patterns for chmod -R and
  chown -R used uppercase -R but the command is lowered before matching,
  so these patterns never matched. Changed to lowercase -r.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Co-authored-by: abdoelsayed2016 <27821589+abdoelsayed2016@users.noreply.github.com>
2026-04-05 16:14:22 +00:00
copilot-swe-agent[bot] 42abcde18c Add comprehensive tests for openai_compat helper functions
Tests cover _join_url, _normalize_content, _parse_tool_arguments,
_parse_usage, _build_response_format, and _optional_int with 31 test
cases including edge cases and error paths.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Co-authored-by: abdoelsayed2016 <27821589+abdoelsayed2016@users.noreply.github.com>
2026-04-05 16:11:11 +00:00
copilot-swe-agent[bot] d0cd08947a Add comprehensive tests for agent_plugin_cache module
Tests cover all 15 specified scenarios:
- discover_plugin_cache with no cache, list format, dict with plugins/entries keys, key-as-name format
- _coerce_entry for strings, dicts with name/plugin/id, disabled plugins, invalid entries
- load_plugin_cache_summary rendering with correct counts
- Preview truncation (MAX_PLUGIN_PREVIEW_CHARS) and line truncation (MAX_PLUGIN_LINES)
- Malformed JSON graceful skipping
- additional_working_directories search

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Co-authored-by: abdoelsayed2016 <27821589+abdoelsayed2016@users.noreply.github.com>
2026-04-05 16:09:20 +00:00
copilot-swe-agent[bot] d2ac4ca9ab Add comprehensive tests for execution_registry module
Cover build_execution_registry, case-insensitive lookups, unknown name
handling, MirroredCommand/MirroredTool attributes, empty registry behavior,
and PORTED_COMMANDS/PORTED_TOOLS count matching.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Co-authored-by: abdoelsayed2016 <27821589+abdoelsayed2016@users.noreply.github.com>
2026-04-05 16:06:36 +00:00
copilot-swe-agent[bot] af25cf60e8 Add comprehensive tests for session_store module
Cover all 12 areas: StoredSession/StoredAgentSession round-trips,
model/runtime config serialization, usage_from_payload, _optional_int,
_optional_float, _deserialize_output_schema, default handling, and
non-dict message filtering. 50 test cases total.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Co-authored-by: abdoelsayed2016 <27821589+abdoelsayed2016@users.noreply.github.com>
2026-04-05 16:04:31 +00:00
copilot-swe-agent[bot] e9721f474c Add comprehensive tests for AgentManager, ManagedAgentRecord, and ManagedAgentGroup
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Co-authored-by: abdoelsayed2016 <27821589+abdoelsayed2016@users.noreply.github.com>
2026-04-05 16:02:04 +00:00
copilot-swe-agent[bot] 840e5fc5af Add comprehensive tests for CommandGraph and build_command_graph
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Co-authored-by: abdoelsayed2016 <27821589+abdoelsayed2016@users.noreply.github.com>
2026-04-05 16:00:05 +00:00
copilot-swe-agent[bot] b4269ecd88 Add comprehensive tests for ToolPool and assemble_tool_pool
Tests cover:
- assemble_tool_pool returns ToolPool with correct types
- Default mode produces non-empty tools
- simple_mode and include_mcp flags stored correctly
- simple_mode reduces tool set to BashTool/FileReadTool/FileEditTool
- include_mcp=False excludes MCP tools
- Permission context filters blocked tools
- as_markdown includes header, flags, and tool count
- as_markdown shows at most 15 tools
- Empty tools tuple renders correctly
- Tool lines contain name and source_hint
- Frozen dataclass prevents mutation

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Co-authored-by: abdoelsayed2016 <27821589+abdoelsayed2016@users.noreply.github.com>
2026-04-05 15:56:57 +00:00
copilot-swe-agent[bot] be6dc4cc19 Add comprehensive tests for ToolPermissionContext
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Co-authored-by: abdoelsayed2016 <27821589+abdoelsayed2016@users.noreply.github.com>
2026-04-05 15:54:32 +00:00
copilot-swe-agent[bot] e646410abb Add comprehensive tests for CostTracker class
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Co-authored-by: abdoelsayed2016 <27821589+abdoelsayed2016@users.noreply.github.com>
2026-04-05 15:53:05 +00:00
copilot-swe-agent[bot] 93de5ca4f8 fix: address security vulnerabilities and code quality weaknesses
- Fix path traversal in _glob_search by validating resolved paths stay within workspace root
- Fix ReDoS vulnerability in _grep_search by adding regex compilation error handling
- Replace 6 assert statements with explicit validation (assertions are disabled with -O flag)
- Replace bare except Exception with specific exception types (OSError, KeyError, ValueError)
- Block file:// scheme in web_fetch to prevent SSRF attacks
- Filter sensitive environment variables from subprocess execution
- Update test to verify file:// scheme rejection

Agent-Logs-Url: https://github.com/HarnessLab/claw-code-agent/sessions/94dfb41f-57dd-48ea-ab0d-d2f2249ef950

Co-authored-by: abdoelsayed2016 <27821589+abdoelsayed2016@users.noreply.github.com>
2026-04-05 11:03:09 +00:00
Abdelrahman Abdallah 783145fe6a add mcp and online search 2026-04-05 02:35:49 +02:00
Abdelrahman Abdallah 3f31cee395 add claw-code-agent/src/plan_runtime.py and claw-code-agent/src/background_runtime.py. The agent now has a real
persistent plan runtime with update_plan, plan_get, and plan_clear, plus plan-to-task sync wired through claw-code-agent/src/
  agent_tools.py, claw-code-agent/src/agent_runtime.py, claw-code-agent/src/agent_context.py, claw-code-agent/src/agent_prompting.py, and claw-code-agent/src/
  agent_slash_commands.py. New local plan slash commands are /plan and /planner.
2026-04-03 18:31:25 +02:00
Abdelrahman Abdallah 4de3da10e4 add test guide cases 2026-04-03 16:50:19 +02:00
Abdelrahman Abdallah 5ad10c660c add File-history snapshot ids and replay summaries for file edits 2026-04-02 22:19:32 +02:00
Abdelrahman Abdallah 9d90d6a10a add ىثص ؤخقث شلثىف قعىفهةث 2026-04-02 22:08:24 +02:00
Abdelrahman Abdallah 2c6763eb08 add new agent components 2026-04-02 21:12:48 +02:00
Abdelrahman Abdallah 27aff5611b first commit 2026-04-01 21:51:49 +02:00