Commit Graph

3345 Commits

Author SHA1 Message Date
Richard Tang fe74718fd9 chore: lint
CI / Lint Python (push) Waiting to run
CI / Test Python Framework (ubuntu-latest) (push) Waiting to run
CI / Test Python Framework (windows-latest) (push) Waiting to run
CI / Test Tools (ubuntu-latest) (push) Waiting to run
CI / Test Tools (windows-latest) (push) Waiting to run
CI / Validate Agent Exports (push) Blocked by required conditions
2026-05-04 17:57:56 -07:00
Richard Tang 07c97e2e9b feat: llm logging 2026-05-04 17:57:20 -07:00
Richard Tang 07600c5ab5 feat: encourage action plan prompts 2026-05-04 17:55:44 -07:00
Richard Tang e7d4ce0057 chore: lint 2026-05-04 12:36:28 -07:00
Richard Tang d9813288d9 fix: install system mcp when they fail 2026-05-04 12:35:21 -07:00
Richard Tang 41fbdcb940 fix(frontend): mcp tools server title format 2026-05-04 12:35:21 -07:00
Hundao 4a9b22719b fix(antigravity): unblock Gemini chats — schema sanitizer + UA bump (#7170)
* fix(antigravity): translate JSON Schema unions to Gemini nullable

Tool parameter schemas using JSON Schema 2020-12 unions like
"type": ["string", "null"] crash Gemini's function_declarations parser
with HTTP 400. Two existing tools trip this:

- core/framework/tasks/tools/colony_tools.py:52 (owner in _update_schema)
- core/framework/tasks/tools/session_tools.py:84-87 (same shape)

Add an adapter-level sanitizer that walks the schema tree and converts
union-with-null to OpenAPI 3.0 "nullable": true (which Gemini accepts).
Recurses into properties, items, additionalProperties, and the
anyOf/oneOf/allOf combinators. Source schemas remain valid JSON Schema
so OpenAI/Anthropic backends are unaffected.

* fix(antigravity): bump spoofed UA past Google's deprecation cutoff

Google has deprecated client version "Antigravity/1.18.3" — chats now
return "This version of Antigravity is no longer supported" instead of
a real model response.

Bump the spoofed User-Agent to "Antigravity/1.23.2" + "Electron/39.2.3"
(current desktop release) and add a comment that this needs periodic
re-bumping. A more durable fix (auto-detect from the installed app's
Info.plist) is a follow-up.

* fix(antigravity): fail loud on multi-type non-null Gemini schema unions

Per review on PR #7170: silently picking the first type from a union
like ["string", "integer", "null"] changes the contract for callers
that rely on the other types, and the failure is hard to diagnose at
the Gemini side. Replace the silent narrowing with a ValueError that
points the schema author at anyOf or a single type.

A repo scan finds no current Gemini-bound schemas using multi-type
non-null unions, so this branch is preventative for future authors.

* chore(antigravity): drop em dash from test docstring
2026-05-05 01:16:48 +08:00
Hundao 8cb0531959 fix(ci): unblock main CI, sort imports + install Playwright Chromium (#7172)
* fix(lint): organize imports in queen_orchestrator.create_queen

Ruff I001 blocks CI on every PR against main. The deferred imports
inside create_queen were not in alphabetical order between the queen
package and the framework package; ruff auto-fix moves
framework.config below the framework.agents.queen.nodes block.

No behavior change.

* fix(ci): install Playwright Chromium before Test Tools job

The new chart_tools smoke tests added in feabf327 require a Chromium
build for ECharts/Mermaid rendering, but the test-tools workflow only
ran `uv sync` and went straight to pytest. Three tests
(test_render_echarts_bar_chart, test_render_echarts_accepts_string_spec,
test_render_mermaid_flowchart) crash on every PR with:

    BrowserType.launch: Executable doesn't exist at
    /home/runner/.cache/ms-playwright/chromium_headless_shell-1208/...

Split the install/run into separate steps and add `playwright install
chromium` before pytest. Use `--with-deps` on Linux to pull system
libraries; Windows runners only need the browser binary.

* fix(tests): adapt test_file_state_cache to new file_ops API

The file_ops rewrite in feabf327 dropped the standalone hashline_edit
tool (the file_system_toolkits/hashline_edit/ directory was removed)
and switched edit_file to a mode-first signature
(mode, path, old_string, new_string, ...).

The test fixture still tried to look up "hashline_edit" via the MCP
tool manager and crashed with KeyError before any test could run, and
the edit_file calls were positional in the old order so they hit
"unknown mode 'e.py'" once the fixture was fixed.

Drop the stale hashline_edit lookup and pass mode="replace" explicitly
to every edit_file call. All 11 tests pass locally.

* fix(tests): skip terminal_tools tests on Windows (POSIX-only)

The new terminal_tools package added in feabf327 imports the Unix-only
`resource` module in tools/src/terminal_tools/common/limits.py to set
RLIMIT_CPU / RLIMIT_AS / RLIMIT_FSIZE on subprocesses. Five of the
six terminal_tools test files therefore crash on windows-latest with
`ModuleNotFoundError: No module named 'resource'` once their fixtures
trigger the import chain.

test_terminal_tools_pty.py already has the right module-level skip
(PTY is POSIX-only). Apply the same `pytestmark = skipif(win32)` to
the other five so the whole suite skips cleanly on Windows. The
terminal-tools package is bash-only by design (zsh refused at the
shell-resolver level), so a Windows port is out of scope.
2026-05-05 00:32:59 +08:00
Richard Tang feabf32768 fix: worker context token 2026-05-03 11:45:37 -07:00
Richard Tang eee55ea8c7 chore: fix wrong model name 2026-05-03 11:35:05 -07:00
Richard Tang 78fffa63ec chore: ci and release doc
Release / Create Release (push) Waiting to run
v0.11.0
2026-05-01 18:06:39 -07:00
Richard Tang 9a75d45351 chore: lint 2026-05-01 17:53:44 -07:00
Timothy 3a94f52009 feat: sync tool result contentful display 2026-05-01 17:44:19 -07:00
Timothy 522e0f511e fix: y-axis 2026-05-01 15:48:36 -07:00
Timothy e6310f1243 fix: normalize chart spec in renderer 2026-05-01 15:36:09 -07:00
Richard Tang 12ffacccab feat: tools config frontend grouping and tools cleanup 2026-05-01 15:28:40 -07:00
Timothy 8c36b1575c Merge branch 'feature/merge-to-file-ops' into feat/file-ops 2026-05-01 14:57:21 -07:00
Timothy 6540f7b31e feat: pura linea 2026-05-01 14:57:06 -07:00
Richard Tang a09eac06f1 feat: improve web search and consolidate browser open 2026-05-01 14:55:20 -07:00
Richard Tang b939a875a7 refactor: update autocompaction tools and concurrency tools 2026-05-01 14:27:38 -07:00
Richard Tang b826e70d8c feat: remove old lifecyle tools 2026-05-01 14:07:34 -07:00
Richard Tang 6f2f037c9c feat: remvoe other default tools 2026-05-01 13:35:04 -07:00
Richard Tang c147364d8c feat: browser tools audit and improvements 2026-05-01 13:22:31 -07:00
Richard Tang 35bd497750 feat: refactor edit file and update default tools 2026-05-01 12:40:53 -07:00
Richard Tang 574c4bbe33 Merge remote-tracking branch 'origin/feature/sync-20260430' into feat/file-ops 2026-05-01 07:42:20 -07:00
Richard Tang d22a01682a feat: major file ops refactor 2026-05-01 07:41:42 -07:00
Timothy 0c6f0f8aef refactor: rename shell tools to terminal tools 2026-04-30 19:52:34 -07:00
Richard Tang 0e8efa7bcc feat: vision fallback auth 2026-04-30 19:52:12 -07:00
Timothy 7b1dda7bf3 fix: mcp registry initialization 2026-04-30 19:52:04 -07:00
Timothy 725dd1f410 fix: shell split command 2026-04-30 19:52:01 -07:00
Timothy de4b2dc151 chore: give shell tools to queen 2026-04-30 19:51:57 -07:00
Timothy 0784cea314 fix: initial install 2026-04-30 19:51:55 -07:00
Timothy 20bbf08278 feat: perita manus 2026-04-30 19:51:44 -07:00
Richard Tang f8233bda56 feat: consolidate search and list file tools 2026-04-30 15:43:15 -07:00
Richard Tang 76a7dd4bd5 feat: loose the max token for vision fallback as some models spend output on internal thinking 2026-04-30 13:24:49 -07:00
Richard Tang 73511a3c59 feat: vision fallback with intent 2026-04-30 13:02:57 -07:00
Richard Tang a0817fcde4 feat: vision model retry and fallback 2026-04-30 12:38:30 -07:00
Richard Tang 628ce9ca12 feat: use simple snapshot for auto_snapshot_mode 2026-04-30 10:43:14 -07:00
Richard Tang cc4213a942 fix: llm debugger tool call display 2026-04-30 10:31:21 -07:00
Richard Tang d12d5b7e8b fix: llm debugger timeline order 2026-04-30 08:05:38 -07:00
Harshit Shukla 038c5fd807 fix(credentials): align EnvVarStorage exists with load semantics (#5680)
* Return boolean from exists method for credential check

* Add test for empty value handling in EnvVarStorage

Add test to verify exists() and load() consistency for empty values in EnvVarStorage.
2026-04-30 19:40:28 +08:00
Leayx 3d5f2595c9 bug(test_zoho_crm_tool): remove orphan test directory under src (#7142)
Problem
- The Zoho CRM tool was refactored to an MCP-based architecture, making the old in-tree test suite obsolete
- The remaining tests under src were not executed by pytest. Testpaths only includes tools/tests, effectively making them dead code
- A proper MCP test suite already exists under tools/tests, providing coverage

Decision
- Removed the unused test directory under src/aden_tools/tools/zoho_crm_tool/tests
- Aligns project structure with existing tools, where tests are only located in tools/tests
- Avoids confusion and prevents future contributors from relying on outdated or non-executed tests
2026-04-30 18:57:49 +08:00
Hundao 7881177f1f fix: unbreak main CI — skills HIVE_HOME refactor + run_parallel_workers task text (#7149)
* fix(skills): restore module-level path constants for HIVE_HOME refactor

ae2aa30e replaced module-level USER_SKILLS_DIR / INSTALL_NOTICE_SENTINEL
in installer.py and _NOTICE_SENTINEL_PATH / _TRUSTED_REPOS_PATH in
trust.py with lazy helper functions, but left callers and tests still
referencing the original symbols. CI fails with ImportError /
AttributeError.

Restore them as module-level constants computed from HIVE_HOME so the
desktop-shell override still works, callers in cli.py keep importing
the same names, and existing test monkeypatches stay valid.

Refs #7148

* fix(colony): preserve task text in run_parallel_workers spawn data

run_parallel_workers stamps __template_task_id into spec['data'] before
calling spawn_batch. Once that mutation makes spec['data'] non-empty,
colony_runtime.spawn()'s ``input_data or {"task": task}`` fallback no
longer fires and the task description disappears from the worker's
first user message. Workers loop on empty responses and never emit
SUBAGENT_REPORT.

Hoist the ``setdefault("task")`` step out of the template-publish try
block so task text survives even if the template store fails
non-fatally. Inner loop only stamps __template_task_id.

Refs #7148
2026-04-30 18:43:54 +08:00
Richard Tang 2cfea915f4 chore: ruff format 2026-04-29 19:23:31 -07:00
Richard Tang ac46a1be72 Merge branch 'feat/ask-user-chat-display' 2026-04-29 19:22:51 -07:00
Richard Tang 7b0b472167 chore: lint 2026-04-29 19:16:00 -07:00
Richard Tang 697aae33fe feat: prompts simplification 2026-04-29 19:13:01 -07:00
Richard Tang d26e7f33d2 fix: incubating mode approval guidence injection 2026-04-29 18:43:26 -07:00
Richard Tang 6357597e88 chore: improve llm visibility 2026-04-29 18:37:29 -07:00
Richard Tang 579f1d7512 feat(tasks): refactor task folder 2026-04-29 17:33:34 -07:00