Commit Graph

189 Commits

Author SHA1 Message Date
Abdelrahman Abdallah bc44a6a062 Documented the local web GUI in the README. 2026-04-20 05:20:38 +02: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 1500aa5301 Merge pull request #27 from HarnessLab/update_17_4
slash commands
2026-04-20 01:16:31 +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 0f433d8cba Merge pull request #25 from HarnessLab/update_17_4
Implemented the next missing parity slice around agent configurations.
2026-04-17 05:04:36 +02:00
Abdelrahman Abdallah 02674ba594 Implemented the next missing parity slice around agent configurations. 2026-04-17 05:03:19 +02:00
Abdelrahman Abdallah fabbda53a5 Merge pull request #24 from HarnessLab/agent_update
8 new commands, Bundled Skills ,  Plan/Task Tools and Session Memory Compact
2026-04-15 03:32:10 +02:00
Abdelrahman Elsayed Mahmoud Abdallah 17e0da9b5b update agnt 2026-04-15 03:31:08 +02:00
Abdelrahman Abdallah 05a460ab4f Merge pull request #23 from HarnessLab/agent_update
Here's a summary of all the features I ported from the TypeScript s…
2026-04-15 02:31:16 +02:00
Abdelrahman Elsayed Mahmoud Abdallah a4aaf814d7 Here's a summary of all the features I ported from the TypeScript source to Python: 2026-04-15 02:29:22 +02:00
Abdelrahman Abdallah 18530f5435 Merge pull request #22 from HarnessLab/feature/readme-update-april-2026
Implemented the next parity slice: prompt-budget preflight and conte…
2026-04-11 01:38:57 +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 a19b1669c4 Merge pull request #20 from HarnessLab/feature/readme-update-april-2026
Feature/readme update april 2026
2026-04-08 00:45:25 +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 90489e7bfc Add 7 new benchmark suites for Gemma 4 comparison
New suites:
- MMLU-Pro: Professional-level 10-choice QA (14 subjects)
- GPQA-Diamond: Graduate-level science QA
- BigBench Extra Hard: Challenging reasoning tasks
- MMMLU: Multilingual MMLU across 10 languages
- HLE: Humanity's Last Exam (extremely hard)
- Tau2: Tool-augmented reasoning (retail/airline/finance)
- Codeforces: Competitive programming with ELO scoring

Updates:
- AIME now supports aime_2026.jsonl for 2026 problems
- Registry expanded to 17 suites in 5 categories
- download_datasets.py supports HF downloads for new suites
- README.md updated with full documentation

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-07 04:55:31 +02:00
Abdelrahman Abdallah 7750e34fbc Merge pull request #18 from HarnessLab/feature/readme-update-april-2026
Implemented the next parity slice.
2026-04-07 03:49:37 +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 67e6dd6ae1 Merge pull request #17 from HarnessLab/feature/readme-update-april-2026
Implemented the next parity slice.
2026-04-07 02:53:07 +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 7437651ec9 Merge pull request #16 from HarnessLab/feature/readme-update-april-2026
update the codebase and clean up it
2026-04-06 03:43:22 +02:00
Abdelrahman Abdallah a54c90b18f update the codebase and clean up it 2026-04-06 03:42:44 +02:00
Abdelrahman Abdallah 2217a0c98c Merge pull request #15 from HarnessLab/copilot/evaluate-agent-using-claude
Add 10 standard evaluation benchmark suites (HumanEval, MBPP, SWE-Bench, Aider, LiveCodeBench, MATH, GSM8K, AIME, IFEval, BFCL)
2026-04-05 22:00:31 +02:00
copilot-swe-agent[bot] 589a74f4a8 Fix review comments: remove empty string concat, fix variable scoping in BFCL evaluate
Agent-Logs-Url: https://github.com/HarnessLab/claw-code-agent/sessions/6890e3d0-3058-4b1f-b7e5-27171c079c62

Co-authored-by: abdoelsayed2016 <27821589+abdoelsayed2016@users.noreply.github.com>
2026-04-05 19:59:16 +00:00
copilot-swe-agent[bot] 231b977b92 Add 10 standard evaluation benchmark suites with CLI runner and README
Implements HumanEval, MBPP, SWE-Bench, Aider, LiveCodeBench (coding),
MATH, GSM8K, AIME (math), and IFEval, BFCL (instruction following).

Each suite includes built-in problem subsets (108 total) and supports
loading full datasets from JSONL files. Includes comprehensive README
with all commands.

Agent-Logs-Url: https://github.com/HarnessLab/claw-code-agent/sessions/6890e3d0-3058-4b1f-b7e5-27171c079c62

Co-authored-by: abdoelsayed2016 <27821589+abdoelsayed2016@users.noreply.github.com>
2026-04-05 19:58:00 +00:00
Abdelrahman Abdallah 3e32154618 Merge pull request #13 from HarnessLab/copilot/ensure-features-are-presented
Add dedicated test coverage for all untested feature modules
2026-04-05 18:54:22 +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