From 4945188f09144624e4d7fdde0e0d78412b6f07f4 Mon Sep 17 00:00:00 2001 From: Steven Enamakel Date: Fri, 18 Sep 2026 21:32:11 +0300 Subject: [PATCH 1/8] chore(wiki): update subproject commit Update the wiki subproject to point to a new commit, incorporating the latest changes from the upstream repository. Auto-committed-on: dragonfly Co-authored-by: Medulla --- wiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wiki b/wiki index cbd58d14..38257669 160000 --- a/wiki +++ b/wiki @@ -1 +1 @@ -Subproject commit cbd58d14999804d907eb4c6fb9daa60b13f29593 +Subproject commit 382576698e49f51c3b816b793bab2667ee37a61f From 7afe8c8937c72197fd4e5ce7a448985be76eb9c4 Mon Sep 17 00:00:00 2001 From: Steven Enamakel Date: Fri, 18 Sep 2026 21:49:57 +0300 Subject: [PATCH 2/8] Fix DeepSWE sandbox checkout access Co-authored-by: Medulla --- examples/openhuman/README.md | 10 +++--- .../openhuman/src/bin/deepswe_hive/README.md | 8 +++-- .../openhuman/src/bin/deepswe_hive/sandbox.rs | 23 ++++++++++-- .../src/bin/deepswe_hive/sandbox/preflight.rs | 9 ++++- .../openhuman/src/bin/deepswe_hive/test.rs | 36 ++++++++++++++++++- 5 files changed, 74 insertions(+), 12 deletions(-) diff --git a/examples/openhuman/README.md b/examples/openhuman/README.md index 2c857021..6df03b23 100644 --- a/examples/openhuman/README.md +++ b/examples/openhuman/README.md @@ -109,10 +109,12 @@ cannot resume stale state and no preexisting outbox child can be reused. Every agent file read/write/edit and shell/test call uses a fresh container with `--network none`, 1 GiB memory, 2 CPUs, 256 PIDs, dropped capabilities, -no-new-privileges, an `env -i` process environment, and the checkout at -`/workspace`. A read-only empty mount covers `/workspace/.git`, including when -the checkout's `.git` is a worktree pointer, so agent commands cannot reach or -mutate the source history. Model-supplied file content is limited to exactly +no-new-privileges, the host process's numeric UID/GID, an `env -i` process +environment, and the checkout at `/workspace`. A read-only empty mount covers +`/workspace/.git`, including when the checkout's `.git` is a worktree pointer, +so agent commands cannot reach or mutate the source history. The file tools +also reject targets whose resolved path leaves `/workspace`, including through +a symlink. Model-supplied file content is limited to exactly 1 MiB (1,048,576 bytes), staged before Docker starts in a host-owned temporary file outside the checkout, and mounted read-only at `/tmp/deepswe-input`; the fixed container wrapper consumes that path, so Docker receives no agent-chosen diff --git a/examples/openhuman/src/bin/deepswe_hive/README.md b/examples/openhuman/src/bin/deepswe_hive/README.md index c52c62aa..736538f9 100644 --- a/examples/openhuman/src/bin/deepswe_hive/README.md +++ b/examples/openhuman/src/bin/deepswe_hive/README.md @@ -10,9 +10,11 @@ | `test.rs` | Exercises parsing, refusal paths, confinement arguments, patch capture, and output shape. | The model provider remains in the host process. Agent file and shell tools run -only inside the configured Docker image, with the disposable checkout mounted -at `/workspace`, its real `.git` hidden by a read-only empty mount, and no -provider credential copied into the cleared action environment. The runner +only inside the configured Docker image as the host process's numeric UID/GID, +with the disposable checkout mounted at `/workspace`, its real `.git` hidden by +a read-only empty mount, and no provider credential copied into the cleared +action environment. File read, write, and edit targets are resolved inside the +container and rejected when a symlink would leave `/workspace`. The runner does not perform destructive Git operations, but an agent can modify or delete files inside the disposable workspace it was explicitly given. diff --git a/examples/openhuman/src/bin/deepswe_hive/sandbox.rs b/examples/openhuman/src/bin/deepswe_hive/sandbox.rs index 918279c4..2fe68dba 100644 --- a/examples/openhuman/src/bin/deepswe_hive/sandbox.rs +++ b/examples/openhuman/src/bin/deepswe_hive/sandbox.rs @@ -125,6 +125,7 @@ pub(super) struct DockerSandbox { config: SandboxConfig, mask: Arc, git: GitLayout, + user: String, } #[derive(Debug)] @@ -145,7 +146,13 @@ impl DockerSandbox { pub(super) fn file_read(&self, path: &str) -> anyhow::Result { validate_relative(path)?; let output = self.action( - ["sh", "-c", "cat -- \"/workspace/$1\"", "deepswe-read", path], + [ + "sh", + "-c", + "target=/workspace/$1; resolved=$(realpath -m -- \"$target\") || exit; case \"$resolved\" in /workspace/*) cat -- \"$target\" ;; *) exit 1 ;; esac", + "deepswe-read", + path, + ], &[], )?; require_success(output, "read file").map(|output| output.stdout) @@ -157,7 +164,7 @@ impl DockerSandbox { [ "sh", "-c", - "target=/workspace/$1; mkdir -p -- \"$(dirname -- \"$target\")\" && cat > \"$target\"", + "target=/workspace/$1; resolved=$(realpath -m -- \"$target\") || exit; case \"$resolved\" in /workspace/*) mkdir -p -- \"$(dirname -- \"$target\")\" && cat > \"$target\" ;; *) exit 1 ;; esac", "deepswe-write", path, ], @@ -328,6 +335,7 @@ fn mask_source(sandbox: &DockerSandbox) -> PathBuf { fn action_args(sandbox: &DockerSandbox, create: bool) -> anyhow::Result> { Ok(container_args( &sandbox.config, + &sandbox.user, false, [ mount(&sandbox.config.repo_path, "/workspace", true)?, @@ -361,11 +369,18 @@ fn inspector_args(sandbox: &DockerSandbox) -> anyhow::Result> { false, )?); } - Ok(container_args(&sandbox.config, false, mounts, false)) + Ok(container_args( + &sandbox.config, + &sandbox.user, + false, + mounts, + false, + )) } fn container_args( config: &SandboxConfig, + user: &str, remove: bool, mounts: impl IntoIterator, create: bool, @@ -387,6 +402,8 @@ fn container_args( "ALL".into(), "--security-opt".into(), "no-new-privileges".into(), + "--user".into(), + user.into(), ]); for value in mounts { args.extend(["--mount".into(), value]); diff --git a/examples/openhuman/src/bin/deepswe_hive/sandbox/preflight.rs b/examples/openhuman/src/bin/deepswe_hive/sandbox/preflight.rs index 9ead0188..fe233162 100644 --- a/examples/openhuman/src/bin/deepswe_hive/sandbox/preflight.rs +++ b/examples/openhuman/src/bin/deepswe_hive/sandbox/preflight.rs @@ -1,6 +1,7 @@ //! Bounded Docker daemon and sandbox readiness checks. use std::io::Read; +use std::os::unix::fs::MetadataExt; use std::process::{ExitStatus, Stdio}; use std::sync::Arc; use std::sync::atomic::{AtomicBool, AtomicU64, Ordering}; @@ -91,7 +92,13 @@ fn preflight( let mask = Arc::new(tempfile::tempdir()?); prepare_mask(&mask, git.dot_git_is_file)?; - let sandbox = DockerSandbox { config, mask, git }; + let owner = std::fs::metadata(mask.path())?; + let sandbox = DockerSandbox { + config, + mask, + git, + user: format!("{}:{}", owner.uid(), owner.gid()), + }; let control = tempfile::tempdir()?; let cidfile = control.path().join("preflight.cid"); let nonce = std::time::SystemTime::now() diff --git a/examples/openhuman/src/bin/deepswe_hive/test.rs b/examples/openhuman/src/bin/deepswe_hive/test.rs index cfdfca41..7f5f6712 100644 --- a/examples/openhuman/src/bin/deepswe_hive/test.rs +++ b/examples/openhuman/src/bin/deepswe_hive/test.rs @@ -1,6 +1,6 @@ //! Contract tests for DeepSWE input, output, Git, and confinement behavior. -use std::os::unix::fs::PermissionsExt; +use std::os::unix::fs::{MetadataExt, PermissionsExt}; use std::path::Path; use std::process::Command; use std::time::{Duration, Instant}; @@ -470,6 +470,40 @@ fn inspector_timeout_kills_a_hung_docker_cli() { assert!(started.elapsed() < Duration::from_secs(15)); } +#[test] +fn sandbox_runs_as_the_checkout_owner() { + let (directory, task) = fixture(); + let docker = directory.path().join("fake-docker-owner"); + let removed = directory.path().join("fake-container-removed"); + std::fs::write( + &docker, + format!( + "#!/bin/sh\ncase \"$1\" in\nversion) printf fixture ;;\ncreate) rm -f '{}'; printf abcdef1234567890 ;;\ninspect) if test -e '{}'; then printf 'Error: No such object: %s' \"$2\" >&2; exit 1; fi; printf '[{{\"HostConfig\":{{\"NetworkMode\":\"none\"}},\"Mounts\":[{{\"Destination\":\"/workspace\",\"RW\":true}},{{\"Destination\":\"/workspace/.git\",\"RW\":false}}]}}]' ;;\nstart) printf sandbox-ready ;;\nrm) touch '{}' ;;\n*) exit 1 ;;\nesac\n", + removed.display(), + removed.display(), + removed.display(), + ), + ) + .expect("fake Docker"); + let mut permissions = std::fs::metadata(&docker).expect("metadata").permissions(); + permissions.set_mode(0o755); + std::fs::set_permissions(&docker, permissions).expect("executable fake Docker"); + let sandbox = DockerSandbox::preflight(SandboxConfig { + repo_path: task.repo_path.clone(), + image: "local-fixture".into(), + docker, + }) + .expect("preflight"); + let metadata = std::fs::metadata(&task.repo_path).expect("checkout metadata"); + let expected = format!("{}:{}", metadata.uid(), metadata.gid()); + let args = action_arguments(&sandbox).expect("action arguments"); + + assert!( + args.windows(2) + .any(|pair| pair == ["--user", expected.as_str()]) + ); +} + #[test] fn live_real_docker_fixture_flow_confines_actions_and_captures_new_files() { if std::env::var_os("DEEPSWE_REAL_DOCKER_TEST").is_none() { From 6249f97cef883af77c3c0c8dedc3c6cdff5b3d4d Mon Sep 17 00:00:00 2001 From: Steven Enamakel Date: Fri, 18 Sep 2026 22:39:40 +0300 Subject: [PATCH 3/8] Leave cleanup time inside DeepSWE turns Co-authored-by: Medulla --- examples/openhuman/src/bin/deepswe_hive/sandbox.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/examples/openhuman/src/bin/deepswe_hive/sandbox.rs b/examples/openhuman/src/bin/deepswe_hive/sandbox.rs index 2fe68dba..b577ec40 100644 --- a/examples/openhuman/src/bin/deepswe_hive/sandbox.rs +++ b/examples/openhuman/src/bin/deepswe_hive/sandbox.rs @@ -25,7 +25,10 @@ pub(super) use preflight::preflight_with_limits; pub(super) use test_support::shell_with_limits_at; const DEFAULT_IMAGE: &str = "tinyhivemind-deepswe:local"; -const COMMAND_TIMEOUT_SECONDS: &str = "600"; +// Keep both Docker deadlines inside the 600-second model-turn deadline so the +// MCP server retains time to remove a timed-out container before it is stopped. +const COMMAND_TIMEOUT_SECONDS: &str = "540"; +const ACTION_TIMEOUT: Duration = Duration::from_secs(570); pub(super) const INSPECTOR_TIMEOUT: Duration = Duration::from_secs(600); pub(super) const MAX_PATCH_BYTES: u64 = 32 * 1024 * 1024; pub(super) const MAX_ACTION_OUTPUT_BYTES: u64 = 1024 * 1024; @@ -261,7 +264,7 @@ exit "${statuses[0]}" } fn action(&self, args: [&str; N], input: &[u8]) -> anyhow::Result { - self.action_with_limits(args, input, INSPECTOR_TIMEOUT, MAX_ACTION_OUTPUT_BYTES) + self.action_with_limits(args, input, ACTION_TIMEOUT, MAX_ACTION_OUTPUT_BYTES) } fn action_with_limits( From b40555ab24024cd7c83e9d2dae8cfaf26a60d2d5 Mon Sep 17 00:00:00 2001 From: Steven Enamakel Date: Fri, 18 Sep 2026 22:39:52 +0300 Subject: [PATCH 4/8] Record DeepSWE OpenHuman smoke results Co-authored-by: Medulla --- .../2026-09-18-deepswe-openhuman-smoke.md | 108 ++++++++++++++++++ docs/experiments/README.md | 1 + 2 files changed, 109 insertions(+) create mode 100644 docs/experiments/2026-09-18-deepswe-openhuman-smoke.md diff --git a/docs/experiments/2026-09-18-deepswe-openhuman-smoke.md b/docs/experiments/2026-09-18-deepswe-openhuman-smoke.md new file mode 100644 index 00000000..32e37acc --- /dev/null +++ b/docs/experiments/2026-09-18-deepswe-openhuman-smoke.md @@ -0,0 +1,108 @@ +# DeepSWE OpenHuman smoke + +**Date:** 2026-09-18 + +**Status:** Recorded + +**Code:** `deepswe_hive` on `issue-57-deepswe-eval`, default model +`openai/gpt-oss-120b:nitro`, 24 committed-turn cap + +**Spec:** [issue 57](https://github.com/tinyhumansai/tinyhivemind/issues/57) + +**Decision:** Do not treat the local acceptance fixture as benchmark evidence; +fix bounded-run finalization before expanding the DeepSWE slice. + +## Question + +Can the OpenHuman-backed four-seat hive produce canonically correct patches on +a small real DeepSWE v1.1 slice while every agent action remains inside an +offline Docker workspace? + +## Corpus and slice + +The gated official dataset could not be fetched without Hugging Face +credentials. This run used the public third-party materialization +`luolc/deep-swe-1-1-materialized`, which identifies its source as +`datacurve-ai/deep-swe` commit +`435ee89ec2f2e2289f33b0da4f992f0b7b7266b9`. The materialization contains 113 +tasks. Its parquet SHA-256 was verified as +`954184ffb6fd88c798171dfc8577793b29631bff35c8d02f6fa4bbf88a44abd0`. + +This was a three-task smoke, not a score over the full 113-task benchmark. The +slice was the first three task IDs in lexical order, spanning two upstream +repositories: + +| task | repository | base commit | +| --- | --- | --- | +| `abs-module-cache-flags` | `abs-lang/abs` | `cb1b3b671d0ee9fa9da9f7b02f86967953ffd10a` | +| `abs-stepped-slices` | `abs-lang/abs` | `cb1b3b671d0ee9fa9da9f7b02f86967953ffd10a` | +| `actionlint-action-pinning-lint` | `rhysd/actionlint` | `0bdc95715fa58f64e3fd6e63b0f89be8733cbbab` | + +Each checkout was extracted from its task image and verified at the stated +commit with no tracked, untracked, ignored, or gitlink entries. Focused public +baseline tests passed before the run. + +## Isolation + +Agent actions ran as the checkout owner in ephemeral containers with Docker +network mode `none`, a cleared environment, all capabilities dropped, +`no-new-privileges`, bounded memory/CPU/PIDs, and `.git` masked. Agents received +only repository read/write/edit/shell/test MCP tools plus the two hive actions. +They had no browser, web search, fetch, host shell, credentials, dataset, +reference solution, or hidden-verifier mount. Provider HTTP ran in the host +process, outside the agent containers. + +The task images stored their preloaded Go modules below `/root/go`. Derived +agent images changed only directory/module-cache read permissions so the +unprivileged checkout owner could run tests offline. Canonical grading used the +unaltered task images in fresh, networkless containers. + +## Results + +The official task reward is binary. All three captured patches were empty, and +all three canonical graders returned zero: + +| task | wall time | runner termination | patch | F2P | P2P | partial diagnostic | reward | +| --- | ---: | --- | ---: | ---: | ---: | ---: | ---: | +| `abs-module-cache-flags` | 2:21.79 | next round of 4 exceeded cap | 0 B | 0/20 | 3/3 | 0.1304 | **0** | +| `abs-stepped-slices` | 8:40.23 | next round of 3 exceeded cap | 0 B | 0/6 | 6/6 | 0.5000 | **0** | +| `actionlint-action-pinning-lint` | 1:05.79 | next round of 3 exceeded cap | 0 B | 0/55 | 145/145 | 0.7250 | **0** | + +**Smoke score: 0/3 (0%).** The partial column is grader diagnostics, not the +DeepSWE reward and not an alternative score. + +The runner rejected a pending round when it would cross the 24-turn cap. It +exited before serializing `result.json` or the committed-turn counter, so an +exact per-task committed-turn count is unavailable. Raw evidence establishes +only that each run stopped below or at 24 turns before its next three- or +four-seat round. Archived OpenHuman session snapshots numbered 29, 35, and 29; +these include protocol retries and must not be reported as committed turns. + +The local one-task acceptance fixture passed 1/1 during runner validation. It +is a synthetic, visible-test fixture and is not benchmark evidence; the real +smoke result above supersedes it for any claim about DeepSWE performance. + +## What happened + +The seats repeatedly announced completion without making source changes. The +reviewer and tester sometimes reported success despite finding no implementation +or seeing network-blocked dependency attempts. The completion protocol did not +reach quorum before the cap, and the strict round-width check then terminated +the run. This is a useful failure: the harness prevented unbounded calls and +the canonical hidden tests rejected the empty work. + +One Task 2 shell command recursively searched the task image until its +600-second timeout. Because the Docker action timeout and model-turn timeout +were identical, the MCP process could be stopped before cleanup and left one +exited container. It was removed, and the runner now uses nested 540-second +command and 570-second action deadlines inside the unchanged 600-second turn +deadline. The final Docker audit found no `deepswe-*` containers. + +## Consequences + +Before a larger slice, the runner should write a terminal result at budget +exhaustion, including committed turns, retry counts, and the captured patch, +rather than exiting before serialization. The agent protocol also needs a +grounded-progress check: completion claims without a non-empty diff or relevant +test evidence should not advance the episode. Neither change alters this +recorded score. diff --git a/docs/experiments/README.md b/docs/experiments/README.md index f60e87c3..cafd271b 100644 --- a/docs/experiments/README.md +++ b/docs/experiments/README.md @@ -38,6 +38,7 @@ does. | [2026-09-09](2026-09-09-desk-lessons.md) | What should be built next after PE 1006? | Working notes and measurements from runs 21–27 | | [2026-09-08](2026-09-08-pe1006-tool-room.md) | Does a tool-call room with a standing account beat a fenced one? | PE 1006 solved; re-reading fell to 3% of calls, but no fold ever fired | | [2026-09-17](2026-09-17-jev-decision-evaluation.md) | What does Jev buy and cost against GPT-5-mini strict JSON on typed hive decisions? | 43–55× lower tail latency and 99.2% lower estimated cost, with an 11.45-point accuracy tradeoff concentrated in evidence scoring | +| [2026-09-18](2026-09-18-deepswe-openhuman-smoke.md) | Can the offline OpenHuman hive solve a real three-task DeepSWE smoke? | No: 0/3; every run exhausted the bounded round budget with an empty patch | ## Reading order From e62514b63e052476b13b23a0c602be0579cca698 Mon Sep 17 00:00:00 2001 From: Steven Enamakel Date: Fri, 18 Sep 2026 22:44:30 +0300 Subject: [PATCH 5/8] Record DeepSWE provider cost Co-authored-by: Medulla --- .../2026-09-18-deepswe-openhuman-smoke.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docs/experiments/2026-09-18-deepswe-openhuman-smoke.md b/docs/experiments/2026-09-18-deepswe-openhuman-smoke.md index 32e37acc..32b418fb 100644 --- a/docs/experiments/2026-09-18-deepswe-openhuman-smoke.md +++ b/docs/experiments/2026-09-18-deepswe-openhuman-smoke.md @@ -71,6 +71,18 @@ all three canonical graders returned zero: **Smoke score: 0/3 (0%).** The partial column is grader diagnostics, not the DeepSWE reward and not an alternative score. +Provider-reported usage was: + +| task | billed requests | input tokens | output tokens | cached input subset | cost | +| --- | ---: | ---: | ---: | ---: | ---: | +| `abs-module-cache-flags` | 120 | 1,087,847 | 25,059 | 615,936 | $1.976399 | +| `abs-stepped-slices` | 162 | 2,379,696 | 29,732 | 1,095,936 | $4.626041 | +| `actionlint-action-pinning-lint` | 125 | 1,452,767 | 21,953 | 759,808 | $2.636114 | +| **total** | **407** | **4,920,310** | **76,744** | **2,471,680** | **$9.238554** | + +The cached count is a subset of input tokens, not additional usage. Every cost +record identified its source as `provider_charged`. + The runner rejected a pending round when it would cross the 24-turn cap. It exited before serializing `result.json` or the committed-turn counter, so an exact per-task committed-turn count is unavailable. Raw evidence establishes From e4ef9597ae110addf9afe23f362c82e23e437631 Mon Sep 17 00:00:00 2001 From: Steven Enamakel Date: Sun, 20 Sep 2026 19:12:25 +0300 Subject: [PATCH 6/8] Update OpenHuman embedding revision Co-authored-by: Medulla --- Cargo.lock | 685 +++++++++--------- Cargo.toml | 2 +- examples/openhuman/Cargo.lock | 663 +++++++++-------- examples/openhuman/Cargo.toml | 2 +- examples/openhuman/src/bin/deepswe_hive.rs | 40 +- .../src/bin/deepswe_hive/test/retry.rs | 35 +- 6 files changed, 762 insertions(+), 665 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 28daec11..b981bbe2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -320,12 +320,6 @@ version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" -[[package]] -name = "core_detect" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f8f80099a98041a3d1622845c271458a2d73e688351bf3cb999266764b81d48" - [[package]] name = "cpufeatures" version = "0.2.17" @@ -481,16 +475,7 @@ version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16f5094c54661b38d03bd7e50df373292118db60b585c08a411c6d840017fe7d" dependencies = [ - "dirs-sys 0.5.0", -] - -[[package]] -name = "dirs" -version = "5.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" -dependencies = [ - "dirs-sys 0.4.1", + "dirs-sys", ] [[package]] @@ -499,19 +484,7 @@ version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" dependencies = [ - "dirs-sys 0.5.0", -] - -[[package]] -name = "dirs-sys" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" -dependencies = [ - "libc", - "option-ext", - "redox_users 0.4.6", - "windows-sys 0.48.0", + "dirs-sys", ] [[package]] @@ -522,7 +495,7 @@ checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" dependencies = [ "libc", "option-ext", - "redox_users 0.5.3", + "redox_users", "windows-sys 0.61.2", ] @@ -574,21 +547,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "encoding_rs" -version = "0.8.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5ef0006ac9ab233c38522f5ae99cae3625151de8f706cacee1cba4b8e2832a" -dependencies = [ - "cfg-if", - "core_detect", - "multiversion", - "multiversion_no_op", - "rustversion", - "scopeguard", - "simdutf8", -] - [[package]] name = "equivalent" version = "1.0.2" @@ -602,7 +560,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] @@ -1061,11 +1019,9 @@ dependencies = [ "percent-encoding", "pin-project-lite", "socket2", - "system-configuration", "tokio", "tower-service", "tracing", - "windows-registry", ] [[package]] @@ -1386,49 +1342,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "motosan-ai-oauth" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "244943168db97b6874d3a88f5fff7029ab002d84c9c572e3bfe6e8cd92af0bae" -dependencies = [ - "base64 0.22.1", - "percent-encoding", - "rand 0.9.5", - "reqwest", - "serde", - "sha2 0.10.9", - "thiserror 2.0.20", - "tokio", -] - -[[package]] -name = "multiversion" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4ca4bea16ffc3f443cf7d866912118196bfef4c6a1556ca00f9f9b00bb43f7c" -dependencies = [ - "multiversion-macros", -] - -[[package]] -name = "multiversion-macros" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d416831a7317ef4b08bee00b69cbbb9c8763da7959a7026244d6266869f9c83" -dependencies = [ - "proc-macro2", - "quote", - "rustversion", - "syn 3.0.4", -] - -[[package]] -name = "multiversion_no_op" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "743fb55ba31b18fb1ecef6bdc9aa2743314978ac084044301a7eee33fb99a20d" - [[package]] name = "native-tls" version = "0.2.18" @@ -1465,16 +1378,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "nu-ansi-term" -version = "0.46.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" -dependencies = [ - "overload", - "winapi", -] - [[package]] name = "nu-ansi-term" version = "0.50.3" @@ -1493,6 +1396,25 @@ dependencies = [ "autocfg", ] +[[package]] +name = "objc2-core-foundation" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" +dependencies = [ + "bitflags", +] + +[[package]] +name = "objc2-io-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33fafba39597d6dc1fb709123dfa8289d39406734be322956a69f0931c73bb15" +dependencies = [ + "libc", + "objc2-core-foundation", +] + [[package]] name = "once_cell" version = "1.21.4" @@ -1508,7 +1430,7 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openhuman" version = "0.63.29" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ "aes-gcm", "aho-corasick", @@ -1523,7 +1445,7 @@ dependencies = [ "chrono-tz", "cron", "directories", - "dirs 5.0.1", + "dirs", "dotenvy", "ed25519-dalek", "flate2", @@ -1533,14 +1455,12 @@ dependencies = [ "glob", "hex", "hkdf", - "hmac", "hostname", "iana-time-zone", "keyring", "libc", "log", - "motosan-ai-oauth", - "nu-ansi-term 0.46.0", + "nu-ansi-term", "once_cell", "openhuman-rpc", "parking_lot", @@ -1555,20 +1475,26 @@ dependencies = [ "serde_repr", "serde_yaml", "sha2 0.10.9", - "sysinfo", + "sysinfo 0.33.1", "tar", "tempfile", - "thiserror 2.0.20", + "thiserror", + "tinyagents-definition", "tinyagents-graph", "tinyagents-harness", - "tinyagents-language", + "tinyagents-orchestration", "tinyagents-registry", + "tinyagents-runtime", "tinyagents-session", "tinybus", "tinychannels-bus", "tinyconnectors-bus", - "tinyhumans-sdk", - "tinyinference 0.2.1 (git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128)", + "tinyinference-core", + "tinyinference-embeddings", + "tinyinference-llm", + "tinyinference-local", + "tinyinference-providers", + "tinyinference-voice", "tinyjuice-bus", "tinymcp", "tinymcp-bus", @@ -1576,7 +1502,9 @@ dependencies = [ "tinymemory-bus", "tinymemory-sources", "tinyruntime-bus", - "tinytools 0.1.0 (git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128)", + "tinyskills", + "tinytools 0.3.0 (git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c)", + "tinytools-agent 0.3.0 (git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c)", "tokio", "tokio-stream", "tokio-tungstenite", @@ -1587,18 +1515,17 @@ dependencies = [ "url", "urlencoding", "uuid", - "wait-timeout", "walkdir", "windows-sys 0.61.2", "x25519-dalek", "zeroize", - "zip", + "zip 2.4.2", ] [[package]] name = "openhuman-embed" version = "0.63.29" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ "anyhow", "log", @@ -1606,7 +1533,7 @@ dependencies = [ "serde", "serde_json", "tempfile", - "thiserror 2.0.20", + "thiserror", "tokio", "url", "uuid", @@ -1615,7 +1542,7 @@ dependencies = [ [[package]] name = "openhuman-rpc" version = "0.63.29" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ "serde", "serde_json", @@ -1670,12 +1597,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" -[[package]] -name = "overload" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" - [[package]] name = "parking_lot" version = "0.12.5" @@ -1820,7 +1741,7 @@ dependencies = [ "rustc-hash", "rustls", "socket2", - "thiserror 2.0.20", + "thiserror", "tokio", "tracing", "web-time", @@ -1842,7 +1763,7 @@ dependencies = [ "rustls", "rustls-pki-types", "slab", - "thiserror 2.0.20", + "thiserror", "tinyvec", "tracing", "web-time", @@ -1956,17 +1877,6 @@ dependencies = [ "bitflags", ] -[[package]] -name = "redox_users" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" -dependencies = [ - "getrandom 0.2.17", - "libredox", - "thiserror 1.0.69", -] - [[package]] name = "redox_users" version = "0.5.3" @@ -1974,7 +1884,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60dc65c0ff1a7ae1294b0c67b9f14baf70b644404010370171787bfac1038fc0" dependencies = [ "libredox", - "thiserror 2.0.20", + "thiserror", ] [[package]] @@ -2034,7 +1944,6 @@ checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" dependencies = [ "base64 0.22.1", "bytes", - "encoding_rs", "futures-channel", "futures-core", "futures-util", @@ -2048,7 +1957,6 @@ dependencies = [ "hyper-util", "js-sys", "log", - "mime", "mime_guess", "native-tls", "percent-encoding", @@ -2096,7 +2004,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c51c9ae4df8a7fba42103df5c621fa3c37eccf3a3c650879e90fc48b11cc192c" dependencies = [ "hashbrown 0.16.1", - "thiserror 2.0.20", + "thiserror", ] [[package]] @@ -2139,7 +2047,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] @@ -2452,12 +2360,6 @@ version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea" -[[package]] -name = "simdutf8" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" - [[package]] name = "siphasher" version = "1.0.3" @@ -2572,28 +2474,21 @@ dependencies = [ "libc", "memchr", "ntapi", - "windows", -] - -[[package]] -name = "system-configuration" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b" -dependencies = [ - "bitflags", - "core-foundation 0.9.4", - "system-configuration-sys", + "windows 0.57.0", ] [[package]] -name = "system-configuration-sys" -version = "0.6.0" +name = "sysinfo" +version = "0.38.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" +checksum = "92ab6a2f8bfe508deb3c6406578252e491d299cbbf3bc0529ecc3313aee4a52f" dependencies = [ - "core-foundation-sys", "libc", + "memchr", + "ntapi", + "objc2-core-foundation", + "objc2-io-kit", + "windows 0.62.2", ] [[package]] @@ -2617,16 +2512,7 @@ dependencies = [ "getrandom 0.4.3", "once_cell", "rustix", - "windows-sys 0.52.0", -] - -[[package]] -name = "thiserror" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" -dependencies = [ - "thiserror-impl 1.0.69", + "windows-sys 0.61.2", ] [[package]] @@ -2635,18 +2521,7 @@ version = "2.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f" dependencies = [ - "thiserror-impl 2.0.20", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.119", + "thiserror-impl", ] [[package]] @@ -2669,35 +2544,43 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "tinyagents-definition" +version = "2.1.2" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" +dependencies = [ + "async-trait", + "serde", +] + [[package]] name = "tinyagents-graph" version = "2.1.2" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ + "anyhow", "async-trait", - "chrono", "futures", - "reqwest", "rusqlite", "serde", "serde_json", - "sha2 0.11.0", "tinyagents-harness", - "tinyagents-language", - "tinyagents-tracing", - "tinyinference 0.2.1 (git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128)", + "tinyinference-llm", + "tinytools 0.3.0 (git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c)", "tokio", + "tracing", ] [[package]] name = "tinyagents-harness" version = "2.1.2" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ + "anyhow", "async-trait", "base64 0.22.1", - "bytes", "chrono", + "dirs", "flate2", "futures", "regex", @@ -2706,63 +2589,95 @@ dependencies = [ "serde", "serde_json", "sha2 0.11.0", - "thiserror 2.0.20", - "tinyagents-tracing", - "tinyinference 0.2.1 (git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128)", - "tinytools 0.1.0 (git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128)", + "tempfile", + "thiserror", + "tinyagents-definition", + "tinyinference-embeddings", + "tinyinference-llm", + "tinytools 0.3.0 (git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c)", + "tinytools-agent 0.3.0 (git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c)", "tokio", + "tracing", + "uuid", + "wait-timeout", ] [[package]] -name = "tinyagents-language" +name = "tinyagents-orchestration" version = "2.1.2" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ + "anyhow", + "async-trait", + "chrono", + "parking_lot", "serde", "serde_json", + "thiserror", + "tinyagents-graph", "tinyagents-harness", + "tinyagents-runtime", + "tinyagents-session", + "tinyinference-llm", + "tinytools 0.3.0 (git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c)", + "tokio", + "uuid", ] [[package]] name = "tinyagents-registry" version = "2.1.2" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ + "anyhow", + "chrono", "serde", "serde_json", - "tinyagents-graph", + "tinyagents-definition", "tinyagents-harness", - "tinyagents-language", - "tinyinference 0.2.1 (git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128)", + "tinyinference-llm", + "tinytools 0.3.0 (git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c)", +] + +[[package]] +name = "tinyagents-runtime" +version = "2.1.2" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" +dependencies = [ + "async-trait", + "chrono", + "thiserror", + "tinyagents-harness", + "tinyagents-session", + "tinyinference-llm", + "tinytools 0.3.0 (git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c)", + "tokio", ] [[package]] name = "tinyagents-session" version = "2.1.2" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ + "anyhow", + "async-trait", "chrono", "rusqlite", "serde", "serde_json", "tinyagents-harness", - "tinyagents-tracing", + "tracing", ] -[[package]] -name = "tinyagents-tracing" -version = "2.1.2" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" - [[package]] name = "tinybus" version = "0.1.1" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ "async-trait", "serde", "serde_json", - "thiserror 2.0.20", + "thiserror", "tinybus-macros", "tokio", "tracing", @@ -2771,7 +2686,7 @@ dependencies = [ [[package]] name = "tinybus-macros" version = "0.1.1" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ "proc-macro2", "quote", @@ -2781,7 +2696,7 @@ dependencies = [ [[package]] name = "tinychannels-bus" version = "0.1.2" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ "anyhow", "async-trait", @@ -2795,7 +2710,7 @@ dependencies = [ "serde", "serde_json", "sha2 0.10.9", - "thiserror 2.0.20", + "thiserror", "tokio", "tracing", "uuid", @@ -2804,7 +2719,7 @@ dependencies = [ [[package]] name = "tinyconnectors-bus" version = "0.10.0" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ "serde", "serde_json", @@ -2819,10 +2734,10 @@ dependencies = [ "regex", "serde", "serde_json", - "thiserror 2.0.20", + "thiserror", "tinyhivemind-core", - "tinyinference 0.2.1 (git+https://github.com/tinyhumansai/tinyinference?rev=cc8aca484bb995fbab3b7358f0d72ab5056b587c)", - "tinytools 0.1.0 (git+https://github.com/tinyhumansai/tinytools?rev=7dbd5407a5bd6e819acb60154e501ff946f86d3a)", + "tinyinference", + "tinytools 0.1.0", "tokio", ] @@ -2833,7 +2748,7 @@ dependencies = [ "regex", "serde", "serde_json", - "thiserror 2.0.20", + "thiserror", ] [[package]] @@ -2842,7 +2757,7 @@ version = "0.2.1" dependencies = [ "serde", "serde_json", - "thiserror 2.0.20", + "thiserror", "tinyhivemind", "tokio", ] @@ -2853,7 +2768,7 @@ version = "0.2.1" dependencies = [ "serde", "serde_json", - "thiserror 2.0.20", + "thiserror", "tinyhivemind", "tinyhivemind-core", "tinyjevclient", @@ -2867,7 +2782,7 @@ dependencies = [ "openhuman-embed", "serde", "serde_json", - "thiserror 2.0.20", + "thiserror", "tinyhivemind", "tinyhivemind-core", "tinyhivemind-embed", @@ -2881,60 +2796,134 @@ version = "0.2.1" dependencies = [ "serde", "serde_json", - "thiserror 2.0.20", + "thiserror", "tinyhivemind", "tinyhivemind-embed", "tokio", ] [[package]] -name = "tinyhumans-sdk" -version = "0.1.0" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +name = "tinyinference" +version = "0.2.1" +source = "git+https://github.com/tinyhumansai/tinyinference?rev=cc8aca484bb995fbab3b7358f0d72ab5056b587c#cc8aca484bb995fbab3b7358f0d72ab5056b587c" dependencies = [ - "base64 0.22.1", + "async-trait", + "bytes", "futures", - "percent-encoding", + "httpdate", + "reqwest", + "serde", + "serde_json", + "sha2 0.11.0", + "thiserror", + "tokio", +] + +[[package]] +name = "tinyinference-core" +version = "0.3.0" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" +dependencies = [ + "anyhow", + "httpdate", + "url", +] + +[[package]] +name = "tinyinference-embeddings" +version = "0.3.0" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" +dependencies = [ + "async-trait", + "once_cell", + "regex", "reqwest", "serde", "serde_json", - "thiserror 2.0.20", + "thiserror", + "tinyinference-core", "tokio", + "tracing", "url", ] [[package]] -name = "tinyinference" -version = "0.2.1" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +name = "tinyinference-llm" +version = "0.3.0" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ "async-trait", "bytes", "futures", - "httpdate", "reqwest", "serde", "serde_json", "sha2 0.11.0", - "thiserror 2.0.20", + "thiserror", + "tinyinference-core", + "tinytools-agent 0.3.0 (git+https://github.com/tinyhumansai/tinytools?rev=a5d04a7f3af0abc1dd748f87f94871b36ae9fe71)", "tokio", + "tracing", ] [[package]] -name = "tinyinference" -version = "0.2.1" -source = "git+https://github.com/tinyhumansai/tinyinference?rev=cc8aca484bb995fbab3b7358f0d72ab5056b587c#cc8aca484bb995fbab3b7358f0d72ab5056b587c" +name = "tinyinference-local" +version = "0.3.0" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ - "async-trait", + "base64 0.23.1", "bytes", + "flate2", "futures", - "httpdate", + "futures-util", + "hex", + "log", + "once_cell", + "parking_lot", + "reqwest", + "serde", + "serde_json", + "sha2 0.11.0", + "sysinfo 0.38.4", + "tar", + "thiserror", + "tinyinference-core", + "tinyinference-embeddings", + "tinyinference-llm", + "tokio", + "tracing", + "url", + "uuid", + "zip 8.6.0", +] + +[[package]] +name = "tinyinference-providers" +version = "0.3.0" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" +dependencies = [ + "base64 0.23.1", + "rand 0.10.2", "reqwest", "serde", "serde_json", "sha2 0.11.0", - "thiserror 2.0.20", + "url", +] + +[[package]] +name = "tinyinference-voice" +version = "0.3.0" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" +dependencies = [ + "base64 0.23.1", + "reqwest", + "serde", + "serde_json", + "tinyinference-core", + "tinyinference-local", "tokio", + "uuid", ] [[package]] @@ -2946,14 +2935,14 @@ dependencies = [ "reqwest", "serde", "serde_json", - "thiserror 2.0.20", + "thiserror", "tokio", ] [[package]] name = "tinyjuice-bus" version = "0.2.5" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ "serde", ] @@ -2961,11 +2950,11 @@ dependencies = [ [[package]] name = "tinymcp" version = "0.3.2" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ "anyhow", "base64 0.23.1", - "dirs 6.0.0", + "dirs", "futures-util", "parking_lot", "reqwest", @@ -2973,7 +2962,7 @@ dependencies = [ "serde", "serde_json", "sha2 0.11.0", - "thiserror 2.0.20", + "thiserror", "tinymcp-bus", "tokio", "tracing", @@ -2983,7 +2972,7 @@ dependencies = [ [[package]] name = "tinymcp-bus" version = "0.3.2" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ "schemars", "serde", @@ -2993,7 +2982,7 @@ dependencies = [ [[package]] name = "tinymemory-api" version = "0.1.1" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ "anyhow", "async-trait", @@ -3007,21 +2996,21 @@ dependencies = [ [[package]] name = "tinymemory-bus" version = "0.1.0" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ "anyhow", "chrono", "serde", "serde_json", "sha2 0.11.0", - "thiserror 2.0.20", + "thiserror", "uuid", ] [[package]] name = "tinymemory-sources" version = "0.1.0" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ "anyhow", "async-trait", @@ -3043,12 +3032,27 @@ dependencies = [ [[package]] name = "tinyruntime-bus" version = "0.2.4" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ "serde", "serde_json", ] +[[package]] +name = "tinyskills" +version = "0.2.1" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" +dependencies = [ + "serde", + "serde_json", + "serde_yaml", + "sha2 0.10.9", + "thiserror", + "tokio", + "tracing", + "url", +] + [[package]] name = "tinystr" version = "0.8.4" @@ -3072,8 +3076,8 @@ dependencies = [ [[package]] name = "tinytools" -version = "0.1.0" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +version = "0.3.0" +source = "git+https://github.com/tinyhumansai/tinytools?rev=a5d04a7f3af0abc1dd748f87f94871b36ae9fe71#a5d04a7f3af0abc1dd748f87f94871b36ae9fe71" dependencies = [ "anyhow", "async-trait", @@ -3081,6 +3085,39 @@ dependencies = [ "serde_json", ] +[[package]] +name = "tinytools" +version = "0.3.0" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" +dependencies = [ + "anyhow", + "async-trait", + "serde", + "serde_json", +] + +[[package]] +name = "tinytools-agent" +version = "0.3.0" +source = "git+https://github.com/tinyhumansai/tinytools?rev=a5d04a7f3af0abc1dd748f87f94871b36ae9fe71#a5d04a7f3af0abc1dd748f87f94871b36ae9fe71" +dependencies = [ + "regex", + "serde", + "serde_json", + "tinytools 0.3.0 (git+https://github.com/tinyhumansai/tinytools?rev=a5d04a7f3af0abc1dd748f87f94871b36ae9fe71)", +] + +[[package]] +name = "tinytools-agent" +version = "0.3.0" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" +dependencies = [ + "regex", + "serde", + "serde_json", + "tinytools 0.3.0 (git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c)", +] + [[package]] name = "tinyvec" version = "1.13.2" @@ -3311,7 +3348,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb7f578e5945fb242538965c2d0b04418d38ec25c79d160cd279bf0731c8d319" dependencies = [ "matchers", - "nu-ansi-term 0.50.3", + "nu-ansi-term", "once_cell", "regex-automata", "sharded-slab", @@ -3342,9 +3379,15 @@ dependencies = [ "rustls", "rustls-pki-types", "sha1", - "thiserror 2.0.20", + "thiserror", ] +[[package]] +name = "typed-path" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e28f89b80c87b8fb0cf04ab448d5dd0dd0ade2f8891bae878de66a75a28600e" + [[package]] name = "typenum" version = "1.20.1" @@ -3603,7 +3646,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] @@ -3622,6 +3665,27 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "527fadee13e0c05939a6a05d5bd6eec6cd2e3dbd648b9f8e447c6518133d8580" +dependencies = [ + "windows-collections", + "windows-core 0.62.2", + "windows-future", + "windows-numerics", +] + +[[package]] +name = "windows-collections" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b2d95af1a8a14a3c7367e1ed4fc9c20e0a26e79551b1454d72583c97cc6610" +dependencies = [ + "windows-core 0.62.2", +] + [[package]] name = "windows-core" version = "0.57.0" @@ -3647,6 +3711,17 @@ dependencies = [ "windows-strings", ] +[[package]] +name = "windows-future" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d6f90251fe18a279739e78025bd6ddc52a7e22f921070ccdc67dde84c605cb" +dependencies = [ + "windows-core 0.62.2", + "windows-link", + "windows-threading", +] + [[package]] name = "windows-implement" version = "0.57.0" @@ -3698,14 +3773,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" [[package]] -name = "windows-registry" -version = "0.6.1" +name = "windows-numerics" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720" +checksum = "6e2e40844ac143cdb44aead537bbf727de9b044e107a0f1220392177d15b0f26" dependencies = [ + "windows-core 0.62.2", "windows-link", - "windows-result 0.4.1", - "windows-strings", ] [[package]] @@ -3735,15 +3809,6 @@ dependencies = [ "windows-link", ] -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - [[package]] name = "windows-sys" version = "0.52.0" @@ -3771,21 +3836,6 @@ dependencies = [ "windows-link", ] -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - [[package]] name = "windows-targets" version = "0.52.6" @@ -3820,10 +3870,13 @@ dependencies = [ ] [[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" +name = "windows-threading" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" +checksum = "3949bd5b99cafdf1c7ca86b43ca564028dfe27d66958f2470940f73d86d75b37" +dependencies = [ + "windows-link", +] [[package]] name = "windows_aarch64_gnullvm" @@ -3837,12 +3890,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - [[package]] name = "windows_aarch64_msvc" version = "0.52.6" @@ -3855,12 +3902,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - [[package]] name = "windows_i686_gnu" version = "0.52.6" @@ -3885,12 +3926,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - [[package]] name = "windows_i686_msvc" version = "0.52.6" @@ -3903,12 +3938,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - [[package]] name = "windows_x86_64_gnu" version = "0.52.6" @@ -3921,12 +3950,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" @@ -3939,12 +3962,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - [[package]] name = "windows_x86_64_msvc" version = "0.52.6" @@ -4127,7 +4144,21 @@ dependencies = [ "flate2", "indexmap", "memchr", - "thiserror 2.0.20", + "thiserror", + "zopfli", +] + +[[package]] +name = "zip" +version = "8.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d04a6b5381502aa6087c94c669499eb1602eb9c5e8198e534de571f7154809b" +dependencies = [ + "crc32fast", + "flate2", + "indexmap", + "memchr", + "typed-path", "zopfli", ] diff --git a/Cargo.toml b/Cargo.toml index 72fc333c..a796de42 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -47,7 +47,7 @@ tinyhivemind-typesafe = { path = "crates/tinyhivemind-typesafe" } # Canonical OpenHuman agent handles for the first-class embedding adapter. The # adapter keeps default features off because it only binds already-built agents; # the consuming host chooses the runtime capabilities it enables. -openhuman-embed = { git = "https://github.com/tinyhumansai/openhuman", rev = "93e9938f388f3989b7c0acff3f72007a31bb3128", default-features = false } +openhuman-embed = { git = "https://github.com/tinyhumansai/openhuman", rev = "b8eeec0b8d1254a516a9f06477823b74ee7ed62c", default-features = false } # Derive macros for the crate-wide error type in `crates/tinyhivemind-core/src/error/`. # Every dependency entry should carry a comment like this one saying why it is # here. diff --git a/examples/openhuman/Cargo.lock b/examples/openhuman/Cargo.lock index 174cd513..c5acc44e 100644 --- a/examples/openhuman/Cargo.lock +++ b/examples/openhuman/Cargo.lock @@ -330,12 +330,6 @@ version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" -[[package]] -name = "core_detect" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f8f80099a98041a3d1622845c271458a2d73e688351bf3cb999266764b81d48" - [[package]] name = "cpufeatures" version = "0.2.17" @@ -509,16 +503,7 @@ version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16f5094c54661b38d03bd7e50df373292118db60b585c08a411c6d840017fe7d" dependencies = [ - "dirs-sys 0.5.0", -] - -[[package]] -name = "dirs" -version = "5.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" -dependencies = [ - "dirs-sys 0.4.1", + "dirs-sys", ] [[package]] @@ -527,19 +512,7 @@ version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" dependencies = [ - "dirs-sys 0.5.0", -] - -[[package]] -name = "dirs-sys" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" -dependencies = [ - "libc", - "option-ext", - "redox_users 0.4.6", - "windows-sys 0.48.0", + "dirs-sys", ] [[package]] @@ -550,7 +523,7 @@ checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" dependencies = [ "libc", "option-ext", - "redox_users 0.5.3", + "redox_users", "windows-sys 0.61.2", ] @@ -602,21 +575,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "encoding_rs" -version = "0.8.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5ef0006ac9ab233c38522f5ae99cae3625151de8f706cacee1cba4b8e2832a" -dependencies = [ - "cfg-if", - "core_detect", - "multiversion", - "multiversion_no_op", - "rustversion", - "scopeguard", - "simdutf8", -] - [[package]] name = "equivalent" version = "1.0.2" @@ -1096,11 +1054,9 @@ dependencies = [ "percent-encoding", "pin-project-lite", "socket2", - "system-configuration", "tokio", "tower-service", "tracing", - "windows-registry", ] [[package]] @@ -1421,49 +1377,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "motosan-ai-oauth" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "244943168db97b6874d3a88f5fff7029ab002d84c9c572e3bfe6e8cd92af0bae" -dependencies = [ - "base64 0.22.1", - "percent-encoding", - "rand 0.9.5", - "reqwest", - "serde", - "sha2 0.10.9", - "thiserror 2.0.20", - "tokio", -] - -[[package]] -name = "multiversion" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4ca4bea16ffc3f443cf7d866912118196bfef4c6a1556ca00f9f9b00bb43f7c" -dependencies = [ - "multiversion-macros", -] - -[[package]] -name = "multiversion-macros" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d416831a7317ef4b08bee00b69cbbb9c8763da7959a7026244d6266869f9c83" -dependencies = [ - "proc-macro2", - "quote", - "rustversion", - "syn 3.0.6", -] - -[[package]] -name = "multiversion_no_op" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "743fb55ba31b18fb1ecef6bdc9aa2743314978ac084044301a7eee33fb99a20d" - [[package]] name = "native-tls" version = "0.2.18" @@ -1500,16 +1413,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "nu-ansi-term" -version = "0.46.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" -dependencies = [ - "overload", - "winapi", -] - [[package]] name = "nu-ansi-term" version = "0.50.3" @@ -1538,6 +1441,25 @@ dependencies = [ "libc", ] +[[package]] +name = "objc2-core-foundation" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" +dependencies = [ + "bitflags", +] + +[[package]] +name = "objc2-io-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33fafba39597d6dc1fb709123dfa8289d39406734be322956a69f0931c73bb15" +dependencies = [ + "libc", + "objc2-core-foundation", +] + [[package]] name = "once_cell" version = "1.21.4" @@ -1553,7 +1475,7 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openhuman" version = "0.63.29" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ "aes-gcm", "aho-corasick", @@ -1568,7 +1490,7 @@ dependencies = [ "chrono-tz", "cron", "directories", - "dirs 5.0.1", + "dirs", "dotenvy", "ed25519-dalek", "flate2", @@ -1578,14 +1500,12 @@ dependencies = [ "glob", "hex", "hkdf", - "hmac", "hostname", "iana-time-zone", "keyring", "libc", "log", - "motosan-ai-oauth", - "nu-ansi-term 0.46.0", + "nu-ansi-term", "once_cell", "openhuman-rpc", "parking_lot", @@ -1600,20 +1520,26 @@ dependencies = [ "serde_repr", "serde_yaml", "sha2 0.10.9", - "sysinfo", + "sysinfo 0.33.1", "tar", "tempfile", - "thiserror 2.0.20", + "thiserror", + "tinyagents-definition", "tinyagents-graph", "tinyagents-harness", - "tinyagents-language", + "tinyagents-orchestration", "tinyagents-registry", + "tinyagents-runtime", "tinyagents-session", "tinybus", "tinychannels-bus", "tinyconnectors-bus", - "tinyhumans-sdk", - "tinyinference", + "tinyinference-core", + "tinyinference-embeddings", + "tinyinference-llm", + "tinyinference-local", + "tinyinference-providers", + "tinyinference-voice", "tinyjuice-bus", "tinymcp", "tinymcp-bus", @@ -1621,7 +1547,9 @@ dependencies = [ "tinymemory-bus", "tinymemory-sources", "tinyruntime-bus", - "tinytools", + "tinyskills", + "tinytools 0.3.0 (git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c)", + "tinytools-agent 0.3.0 (git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c)", "tokio", "tokio-stream", "tokio-tungstenite", @@ -1632,18 +1560,17 @@ dependencies = [ "url", "urlencoding", "uuid", - "wait-timeout", "walkdir", "windows-sys 0.61.2", "x25519-dalek", "zeroize", - "zip", + "zip 2.4.2", ] [[package]] name = "openhuman-embed" version = "0.63.29" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ "anyhow", "log", @@ -1651,7 +1578,7 @@ dependencies = [ "serde", "serde_json", "tempfile", - "thiserror 2.0.20", + "thiserror", "tokio", "url", "uuid", @@ -1660,7 +1587,7 @@ dependencies = [ [[package]] name = "openhuman-rpc" version = "0.63.29" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ "serde", "serde_json", @@ -1715,12 +1642,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" -[[package]] -name = "overload" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" - [[package]] name = "parking_lot" version = "0.12.5" @@ -1865,7 +1786,7 @@ dependencies = [ "rustc-hash", "rustls", "socket2", - "thiserror 2.0.20", + "thiserror", "tokio", "tracing", "web-time", @@ -1887,7 +1808,7 @@ dependencies = [ "rustls", "rustls-pki-types", "slab", - "thiserror 2.0.20", + "thiserror", "tinyvec", "tracing", "web-time", @@ -2001,17 +1922,6 @@ dependencies = [ "bitflags", ] -[[package]] -name = "redox_users" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" -dependencies = [ - "getrandom 0.2.17", - "libredox", - "thiserror 1.0.69", -] - [[package]] name = "redox_users" version = "0.5.3" @@ -2019,7 +1929,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60dc65c0ff1a7ae1294b0c67b9f14baf70b644404010370171787bfac1038fc0" dependencies = [ "libredox", - "thiserror 2.0.20", + "thiserror", ] [[package]] @@ -2079,7 +1989,6 @@ checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" dependencies = [ "base64 0.22.1", "bytes", - "encoding_rs", "futures-channel", "futures-core", "futures-util", @@ -2093,7 +2002,6 @@ dependencies = [ "hyper-util", "js-sys", "log", - "mime", "mime_guess", "native-tls", "percent-encoding", @@ -2141,7 +2049,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c51c9ae4df8a7fba42103df5c621fa3c37eccf3a3c650879e90fc48b11cc192c" dependencies = [ "hashbrown 0.16.1", - "thiserror 2.0.20", + "thiserror", ] [[package]] @@ -2507,12 +2415,6 @@ version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea" -[[package]] -name = "simdutf8" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" - [[package]] name = "siphasher" version = "1.0.3" @@ -2627,28 +2529,21 @@ dependencies = [ "libc", "memchr", "ntapi", - "windows", + "windows 0.57.0", ] [[package]] -name = "system-configuration" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b" -dependencies = [ - "bitflags", - "core-foundation 0.9.4", - "system-configuration-sys", -] - -[[package]] -name = "system-configuration-sys" -version = "0.6.0" +name = "sysinfo" +version = "0.38.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" +checksum = "92ab6a2f8bfe508deb3c6406578252e491d299cbbf3bc0529ecc3313aee4a52f" dependencies = [ - "core-foundation-sys", "libc", + "memchr", + "ntapi", + "objc2-core-foundation", + "objc2-io-kit", + "windows 0.62.2", ] [[package]] @@ -2675,33 +2570,13 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "thiserror" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" -dependencies = [ - "thiserror-impl 1.0.69", -] - [[package]] name = "thiserror" version = "2.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f" dependencies = [ - "thiserror-impl 2.0.20", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.119", + "thiserror-impl", ] [[package]] @@ -2724,35 +2599,43 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "tinyagents-definition" +version = "2.1.2" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" +dependencies = [ + "async-trait", + "serde", +] + [[package]] name = "tinyagents-graph" version = "2.1.2" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ + "anyhow", "async-trait", - "chrono", "futures", - "reqwest", "rusqlite", "serde", "serde_json", - "sha2 0.11.0", "tinyagents-harness", - "tinyagents-language", - "tinyagents-tracing", - "tinyinference", + "tinyinference-llm", + "tinytools 0.3.0 (git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c)", "tokio", + "tracing", ] [[package]] name = "tinyagents-harness" version = "2.1.2" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ + "anyhow", "async-trait", "base64 0.22.1", - "bytes", "chrono", + "dirs", "flate2", "futures", "regex", @@ -2761,58 +2644,90 @@ dependencies = [ "serde", "serde_json", "sha2 0.11.0", - "thiserror 2.0.20", - "tinyagents-tracing", - "tinyinference", - "tinytools", + "tempfile", + "thiserror", + "tinyagents-definition", + "tinyinference-embeddings", + "tinyinference-llm", + "tinytools 0.3.0 (git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c)", + "tinytools-agent 0.3.0 (git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c)", "tokio", + "tracing", + "uuid", + "wait-timeout", ] [[package]] -name = "tinyagents-language" +name = "tinyagents-orchestration" version = "2.1.2" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ + "anyhow", + "async-trait", + "chrono", + "parking_lot", "serde", "serde_json", + "thiserror", + "tinyagents-graph", "tinyagents-harness", + "tinyagents-runtime", + "tinyagents-session", + "tinyinference-llm", + "tinytools 0.3.0 (git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c)", + "tokio", + "uuid", ] [[package]] name = "tinyagents-registry" version = "2.1.2" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ + "anyhow", + "chrono", "serde", "serde_json", - "tinyagents-graph", + "tinyagents-definition", "tinyagents-harness", - "tinyagents-language", - "tinyinference", + "tinyinference-llm", + "tinytools 0.3.0 (git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c)", +] + +[[package]] +name = "tinyagents-runtime" +version = "2.1.2" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" +dependencies = [ + "async-trait", + "chrono", + "thiserror", + "tinyagents-harness", + "tinyagents-session", + "tinyinference-llm", + "tinytools 0.3.0 (git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c)", + "tokio", ] [[package]] name = "tinyagents-session" version = "2.1.2" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ + "anyhow", + "async-trait", "chrono", "rusqlite", "serde", "serde_json", "tinyagents-harness", - "tinyagents-tracing", + "tracing", ] -[[package]] -name = "tinyagents-tracing" -version = "2.1.2" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" - [[package]] name = "tinybus" version = "0.1.1" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ "async-trait", "flate2", @@ -2820,19 +2735,19 @@ dependencies = [ "serde_json", "tar", "tempfile", - "thiserror 2.0.20", + "thiserror", "tinybus-macros", "tokio", "toml 0.8.23", "tracing", "ureq", - "zip", + "zip 2.4.2", ] [[package]] name = "tinybus-macros" version = "0.1.1" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ "proc-macro2", "quote", @@ -2842,7 +2757,7 @@ dependencies = [ [[package]] name = "tinychannels-bus" version = "0.1.2" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ "anyhow", "async-trait", @@ -2856,7 +2771,7 @@ dependencies = [ "serde", "serde_json", "sha2 0.10.9", - "thiserror 2.0.20", + "thiserror", "tokio", "tracing", "uuid", @@ -2865,7 +2780,7 @@ dependencies = [ [[package]] name = "tinyconnectors-bus" version = "0.10.0" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ "serde", "serde_json", @@ -2876,7 +2791,7 @@ name = "tinyhivemind" version = "0.2.1" dependencies = [ "serde", - "thiserror 2.0.20", + "thiserror", "tinyhivemind-core", ] @@ -2885,7 +2800,7 @@ name = "tinyhivemind-core" version = "0.2.1" dependencies = [ "serde", - "thiserror 2.0.20", + "thiserror", ] [[package]] @@ -2893,7 +2808,7 @@ name = "tinyhivemind-embed" version = "0.2.1" dependencies = [ "serde", - "thiserror 2.0.20", + "thiserror", "tinyhivemind", ] @@ -2902,7 +2817,7 @@ name = "tinyhivemind-hive" version = "0.2.1" dependencies = [ "serde", - "thiserror 2.0.20", + "thiserror", "tinyhivemind", "tinyhivemind-core", ] @@ -2913,7 +2828,7 @@ version = "0.2.1" dependencies = [ "openhuman-embed", "serde", - "thiserror 2.0.20", + "thiserror", "tinyhivemind", "tinyhivemind-core", "tinyhivemind-embed", @@ -2947,48 +2862,122 @@ version = "0.2.1" dependencies = [ "serde", "serde_json", - "thiserror 2.0.20", + "thiserror", "tinyhivemind", "tinyhivemind-embed", ] [[package]] -name = "tinyhumans-sdk" -version = "0.1.0" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +name = "tinyinference-core" +version = "0.3.0" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ - "base64 0.22.1", - "futures", - "percent-encoding", + "anyhow", + "httpdate", + "url", +] + +[[package]] +name = "tinyinference-embeddings" +version = "0.3.0" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" +dependencies = [ + "async-trait", + "once_cell", + "regex", "reqwest", "serde", "serde_json", - "thiserror 2.0.20", + "thiserror", + "tinyinference-core", "tokio", + "tracing", "url", ] [[package]] -name = "tinyinference" -version = "0.2.1" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +name = "tinyinference-llm" +version = "0.3.0" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ "async-trait", "bytes", "futures", - "httpdate", "reqwest", "serde", "serde_json", "sha2 0.11.0", - "thiserror 2.0.20", + "thiserror", + "tinyinference-core", + "tinytools-agent 0.3.0 (git+https://github.com/tinyhumansai/tinytools?rev=a5d04a7f3af0abc1dd748f87f94871b36ae9fe71)", + "tokio", + "tracing", +] + +[[package]] +name = "tinyinference-local" +version = "0.3.0" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" +dependencies = [ + "base64 0.23.1", + "bytes", + "flate2", + "futures", + "futures-util", + "hex", + "log", + "once_cell", + "parking_lot", + "reqwest", + "serde", + "serde_json", + "sha2 0.11.0", + "sysinfo 0.38.4", + "tar", + "thiserror", + "tinyinference-core", + "tinyinference-embeddings", + "tinyinference-llm", + "tokio", + "tracing", + "url", + "uuid", + "zip 8.6.0", +] + +[[package]] +name = "tinyinference-providers" +version = "0.3.0" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" +dependencies = [ + "base64 0.23.1", + "rand 0.10.2", + "reqwest", + "serde", + "serde_json", + "sha2 0.11.0", + "url", +] + +[[package]] +name = "tinyinference-voice" +version = "0.3.0" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" +dependencies = [ + "base64 0.23.1", + "reqwest", + "serde", + "serde_json", + "tinyinference-core", + "tinyinference-local", "tokio", + "uuid", ] [[package]] name = "tinyjuice-bus" version = "0.2.5" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ "serde", ] @@ -2996,11 +2985,11 @@ dependencies = [ [[package]] name = "tinymcp" version = "0.3.2" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ "anyhow", "base64 0.23.1", - "dirs 6.0.0", + "dirs", "futures-util", "parking_lot", "reqwest", @@ -3008,7 +2997,7 @@ dependencies = [ "serde", "serde_json", "sha2 0.11.0", - "thiserror 2.0.20", + "thiserror", "tinymcp-bus", "tokio", "tracing", @@ -3018,7 +3007,7 @@ dependencies = [ [[package]] name = "tinymcp-bus" version = "0.3.2" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ "schemars", "serde", @@ -3028,7 +3017,7 @@ dependencies = [ [[package]] name = "tinymemory-api" version = "0.1.1" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ "anyhow", "async-trait", @@ -3042,21 +3031,21 @@ dependencies = [ [[package]] name = "tinymemory-bus" version = "0.1.0" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ "anyhow", "chrono", "serde", "serde_json", "sha2 0.11.0", - "thiserror 2.0.20", + "thiserror", "uuid", ] [[package]] name = "tinymemory-sources" version = "0.1.0" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ "anyhow", "async-trait", @@ -3078,12 +3067,27 @@ dependencies = [ [[package]] name = "tinyruntime-bus" version = "0.2.4" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ "serde", "serde_json", ] +[[package]] +name = "tinyskills" +version = "0.2.1" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" +dependencies = [ + "serde", + "serde_json", + "serde_yaml", + "sha2 0.10.9", + "thiserror", + "tokio", + "tracing", + "url", +] + [[package]] name = "tinystr" version = "0.8.4" @@ -3096,8 +3100,19 @@ dependencies = [ [[package]] name = "tinytools" -version = "0.1.0" -source = "git+https://github.com/tinyhumansai/openhuman?rev=93e9938f388f3989b7c0acff3f72007a31bb3128#93e9938f388f3989b7c0acff3f72007a31bb3128" +version = "0.3.0" +source = "git+https://github.com/tinyhumansai/tinytools?rev=a5d04a7f3af0abc1dd748f87f94871b36ae9fe71#a5d04a7f3af0abc1dd748f87f94871b36ae9fe71" +dependencies = [ + "anyhow", + "async-trait", + "serde", + "serde_json", +] + +[[package]] +name = "tinytools" +version = "0.3.0" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" dependencies = [ "anyhow", "async-trait", @@ -3105,6 +3120,28 @@ dependencies = [ "serde_json", ] +[[package]] +name = "tinytools-agent" +version = "0.3.0" +source = "git+https://github.com/tinyhumansai/tinytools?rev=a5d04a7f3af0abc1dd748f87f94871b36ae9fe71#a5d04a7f3af0abc1dd748f87f94871b36ae9fe71" +dependencies = [ + "regex", + "serde", + "serde_json", + "tinytools 0.3.0 (git+https://github.com/tinyhumansai/tinytools?rev=a5d04a7f3af0abc1dd748f87f94871b36ae9fe71)", +] + +[[package]] +name = "tinytools-agent" +version = "0.3.0" +source = "git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c#b8eeec0b8d1254a516a9f06477823b74ee7ed62c" +dependencies = [ + "regex", + "serde", + "serde_json", + "tinytools 0.3.0 (git+https://github.com/tinyhumansai/openhuman?rev=b8eeec0b8d1254a516a9f06477823b74ee7ed62c)", +] + [[package]] name = "tinyvec" version = "1.13.3" @@ -3367,7 +3404,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb7f578e5945fb242538965c2d0b04418d38ec25c79d160cd279bf0731c8d319" dependencies = [ "matchers", - "nu-ansi-term 0.50.3", + "nu-ansi-term", "once_cell", "regex-automata", "sharded-slab", @@ -3398,9 +3435,15 @@ dependencies = [ "rustls", "rustls-pki-types", "sha1", - "thiserror 2.0.20", + "thiserror", ] +[[package]] +name = "typed-path" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e28f89b80c87b8fb0cf04ab448d5dd0dd0ade2f8891bae878de66a75a28600e" + [[package]] name = "typenum" version = "1.20.1" @@ -3713,6 +3756,27 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "527fadee13e0c05939a6a05d5bd6eec6cd2e3dbd648b9f8e447c6518133d8580" +dependencies = [ + "windows-collections", + "windows-core 0.62.2", + "windows-future", + "windows-numerics", +] + +[[package]] +name = "windows-collections" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b2d95af1a8a14a3c7367e1ed4fc9c20e0a26e79551b1454d72583c97cc6610" +dependencies = [ + "windows-core 0.62.2", +] + [[package]] name = "windows-core" version = "0.57.0" @@ -3738,6 +3802,17 @@ dependencies = [ "windows-strings", ] +[[package]] +name = "windows-future" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d6f90251fe18a279739e78025bd6ddc52a7e22f921070ccdc67dde84c605cb" +dependencies = [ + "windows-core 0.62.2", + "windows-link", + "windows-threading", +] + [[package]] name = "windows-implement" version = "0.57.0" @@ -3789,14 +3864,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" [[package]] -name = "windows-registry" -version = "0.6.1" +name = "windows-numerics" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720" +checksum = "6e2e40844ac143cdb44aead537bbf727de9b044e107a0f1220392177d15b0f26" dependencies = [ + "windows-core 0.62.2", "windows-link", - "windows-result 0.4.1", - "windows-strings", ] [[package]] @@ -3826,15 +3900,6 @@ dependencies = [ "windows-link", ] -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - [[package]] name = "windows-sys" version = "0.52.0" @@ -3862,21 +3927,6 @@ dependencies = [ "windows-link", ] -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - [[package]] name = "windows-targets" version = "0.52.6" @@ -3911,10 +3961,13 @@ dependencies = [ ] [[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" +name = "windows-threading" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" +checksum = "3949bd5b99cafdf1c7ca86b43ca564028dfe27d66958f2470940f73d86d75b37" +dependencies = [ + "windows-link", +] [[package]] name = "windows_aarch64_gnullvm" @@ -3928,12 +3981,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - [[package]] name = "windows_aarch64_msvc" version = "0.52.6" @@ -3946,12 +3993,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - [[package]] name = "windows_i686_gnu" version = "0.52.6" @@ -3976,12 +4017,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - [[package]] name = "windows_i686_msvc" version = "0.52.6" @@ -3994,12 +4029,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - [[package]] name = "windows_x86_64_gnu" version = "0.52.6" @@ -4012,12 +4041,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" @@ -4030,12 +4053,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - [[package]] name = "windows_x86_64_msvc" version = "0.52.6" @@ -4250,7 +4267,21 @@ dependencies = [ "flate2", "indexmap", "memchr", - "thiserror 2.0.20", + "thiserror", + "zopfli", +] + +[[package]] +name = "zip" +version = "8.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d04a6b5381502aa6087c94c669499eb1602eb9c5e8198e534de571f7154809b" +dependencies = [ + "crc32fast", + "flate2", + "indexmap", + "memchr", + "typed-path", "zopfli", ] diff --git a/examples/openhuman/Cargo.toml b/examples/openhuman/Cargo.toml index 7940cf3f..f3f77993 100644 --- a/examples/openhuman/Cargo.toml +++ b/examples/openhuman/Cargo.toml @@ -13,7 +13,7 @@ publish = false anyhow = "1" futures = "0.3" # The live hive uses OpenHuman's native runtime, agents, sessions, and TinyCortex module. -openhuman-embed = { git = "https://github.com/tinyhumansai/openhuman", rev = "93e9938f388f3989b7c0acff3f72007a31bb3128", default-features = false, features = ["mcp", "modules"] } +openhuman-embed = { git = "https://github.com/tinyhumansai/openhuman", rev = "b8eeec0b8d1254a516a9f06477823b74ee7ed62c", default-features = false, features = ["mcp", "modules"] } # Public research sources are mirrored into the isolated run workspace before turns start. reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] } serde = { version = "1", features = ["derive"] } diff --git a/examples/openhuman/src/bin/deepswe_hive.rs b/examples/openhuman/src/bin/deepswe_hive.rs index ffc2c462..35299c12 100644 --- a/examples/openhuman/src/bin/deepswe_hive.rs +++ b/examples/openhuman/src/bin/deepswe_hive.rs @@ -508,24 +508,44 @@ fn instantiate( .allow_tools(["broadcast", "complete_episode"]) .description("Local TinyHiveMind completion tools"); let tools = vec!["mcp_list_tools".into(), "mcp_call_tool".into()]; + let agent_id = format!("deepswe-{id}"); + let system_prompt = format!( + "You are the {id} seat in a hermetic DeepSWE hive. Use mcp_list_tools \ + to discover the deepswe and tinyhive servers, then use mcp_call_tool \ + to invoke their tools. End by actually invoking mcp_call_tool exactly \ + once with server tinyhive, tool broadcast or complete_episode, and a \ + concrete evidence message. Do not print the call as JSON or prose. \ + Your turn is invalid until its tool result says accepted from @{id}; \ + after acceptance, make no more tool calls." + ); + let registry_id = agent_id.clone(); + let registry_prompt = system_prompt.clone(); + let registry_tools = tools.clone(); runtime .agent( - AgentSpec::new(format!("deepswe-{id}")) + AgentSpec::new(agent_id) .definition( AgentDefinitionSpec::new() - .system_prompt(format!( - "You are the {id} seat in a hermetic DeepSWE hive. Use mcp_list_tools \ - to discover the deepswe and tinyhive servers, then use mcp_call_tool \ - to invoke their tools. End by actually invoking mcp_call_tool exactly \ - once with server tinyhive, tool broadcast or complete_episode, and a \ - concrete evidence message. Do not print the call as JSON or prose. \ - Your turn is invalid until its tool result says accepted from @{id}; \ - after acceptance, make no more tool calls." - )) + .system_prompt(system_prompt) .tools(ToolScopeSpec::Named(tools.clone())) .max_iterations(16) .temperature(0.0), ) + // OpenHuman's hosted turn preparation resolves the already-supplied + // explicit definition through its config-backed catalogue once more. + .config(move |config| { + let entry = serde_json::from_value(serde_json::json!({ + "id": registry_id.clone(), + "name": registry_id, + "description": "Hermetic DeepSWE hive seat", + "source": "custom", + "enabled": true, + "system_prompt": registry_prompt, + "tool_allowlist": registry_tools, + })) + .expect("static DeepSWE registry entry should deserialize"); + config.agent_registry.entries.push(entry); + }) .mcp(workspace) .mcp(hive) .action_dir(sandbox.repo_path()), diff --git a/examples/openhuman/src/bin/deepswe_hive/test/retry.rs b/examples/openhuman/src/bin/deepswe_hive/test/retry.rs index 06ba297f..8a9e0e8a 100644 --- a/examples/openhuman/src/bin/deepswe_hive/test/retry.rs +++ b/examples/openhuman/src/bin/deepswe_hive/test/retry.rs @@ -232,7 +232,10 @@ fn accepted_action_survives_post_tool_provider_failure_without_retry() { .await .expect("adapter task") .expect_err("empty patch makes the completed episode fail"); - assert!(error.to_string().contains("episode result is failed")); + assert!( + error.to_string().contains("episode result is failed"), + "unexpected runner error: {error:#}" + ); let result: Value = serde_json::from_slice(&std::fs::read(&output).expect("result file")) .expect("result JSON"); @@ -248,7 +251,11 @@ fn accepted_action_survives_post_tool_provider_failure_without_retry() { } assert!(transcript.contains("COMPLETE: lead complete")); assert!(transcript.contains("Provider continuation failed after the accepted action")); - assert!(transcript.contains("429")); + assert!(transcript.contains("hosted agent invocation failed at the model provider")); + assert!( + !transcript.contains("429"), + "hosted errors redact provider details" + ); let accepted = std::fs::read_to_string(output_directory.path().join("outboxes").join("lead.jsonl")) .expect("accepted lead action remains in the outbox"); @@ -523,7 +530,7 @@ fn multiple_native_actions_fail_immediately_without_retry_or_commit() { } #[test] -fn empty_provider_response_retries_only_that_seat_and_commits_once() { +fn upstream_empty_response_retry_commits_each_seat_once() { let _guard = retry_test_guard(); let runtime = tokio::runtime::Builder::new_multi_thread() .enable_all() @@ -556,7 +563,7 @@ fn empty_provider_response_retries_only_that_seat_and_commits_once() { assert_eq!(result["turns"], 4, "provider failure is not committed"); let state = state.lock().expect("script state"); - assert_eq!(state.turn_starts.get("lead"), Some(&2)); + assert_eq!(state.turn_starts.get("lead"), Some(&3)); for seat in ["implementer", "tester", "reviewer"] { assert_eq!(state.turn_starts.get(seat), Some(&1), "@{seat} reran"); } @@ -593,7 +600,11 @@ fn non_retryable_provider_auth_failure_is_immediate() { .expect_err("authentication failure must abort"); let message = error.to_string(); assert!(message.starts_with("@lead provider failure on attempt 1/3:")); - assert!(message.contains("401"), "missing source: {message}"); + assert!(message.contains("hosted agent invocation failed at the model provider")); + assert!( + !message.contains("401"), + "hosted errors redact provider details" + ); assert!(!output.exists()); let state = state.lock().expect("script state"); @@ -602,7 +613,7 @@ fn non_retryable_provider_auth_failure_is_immediate() { } #[test] -fn retryable_provider_exhaustion_is_bounded_without_a_commit() { +fn sanitized_provider_failure_fails_closed_without_a_commit() { let _guard = retry_test_guard(); let runtime = tokio::runtime::Builder::new_multi_thread() .enable_all() @@ -628,13 +639,17 @@ fn retryable_provider_exhaustion_is_bounded_without_a_commit() { }) .await .expect("adapter task") - .expect_err("retryable provider failure must exhaust"); + .expect_err("a provider failure with no retry classification must abort"); let message = error.to_string(); assert!( - message.starts_with("@lead provider failure on attempt 3/3:"), + message.starts_with("@lead provider failure on attempt 1/3:"), "unexpected error: {message}" ); - assert!(message.contains("429"), "missing source: {message}"); + assert!(message.contains("hosted agent invocation failed at the model provider")); + assert!( + !message.contains("429"), + "hosted errors redact provider details" + ); assert!(!output.exists()); let state = state.lock().expect("script state"); @@ -644,7 +659,7 @@ fn retryable_provider_exhaustion_is_bounded_without_a_commit() { .filter(|(seat, _)| seat == "lead") .filter_map(|(_, request)| request["messages"].as_array()?.last()?["content"].as_str()) .collect::>(); - assert_eq!(lead_prompts.len(), MAX_SEAT_ATTEMPTS as usize); + assert_eq!(lead_prompts.len(), 1); for seat in ["implementer", "tester", "reviewer"] { assert_eq!(state.turn_starts.get(seat), Some(&1), "@{seat} reran"); } From 276ed9a49b6f3ec70d40a7c35ac08d7aa5387b59 Mon Sep 17 00:00:00 2001 From: Steven Enamakel Date: Sun, 20 Sep 2026 19:12:38 +0300 Subject: [PATCH 7/8] Record OpenHuman main DeepSWE rerun Co-authored-by: Medulla --- ...2026-09-20-deepswe-openhuman-main-rerun.md | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 docs/experiments/2026-09-20-deepswe-openhuman-main-rerun.md diff --git a/docs/experiments/2026-09-20-deepswe-openhuman-main-rerun.md b/docs/experiments/2026-09-20-deepswe-openhuman-main-rerun.md new file mode 100644 index 00000000..fdd7247d --- /dev/null +++ b/docs/experiments/2026-09-20-deepswe-openhuman-main-rerun.md @@ -0,0 +1,73 @@ +# DeepSWE OpenHuman upstream-main rerun + +**Date:** 2026-09-20 + +**Status:** Recorded + +**Code:** `deepswe_hive` with OpenHuman +`b8eeec0b8d1254a516a9f06477823b74ee7ed62c`, default model +`openai/gpt-oss-120b:nitro`, 24 committed-turn cap + +**Spec:** [issue 57](https://github.com/tinyhumansai/tinyhivemind/issues/57) + +## Question + +Does updating the OpenHuman dependency to its 2026-09-20 `upstream/main` +revision improve the three-task Docker-isolated smoke, and what fraction of +provider input tokens are served from cache? + +## Method + +This reran the same three tasks, base commits, model, public baselines, task +images, and hidden verifiers as the 2026-09-18 smoke. Each checkout was freshly +extracted from its task image and verified clean at its exact base commit. +Focused public baseline tests passed inside the derived agent image before the +run. + +Agent actions ran as the checkout owner in ephemeral Docker containers with +network mode `none`; provider HTTP remained in the host process. Agents had no +browser, search, host shell, credentials, reference solution, dataset, or +hidden-verifier mount. Canonical grading ran later in separate networkless +containers using the unaltered official task images. + +OpenHuman `b8eeec0` requires an embedded agent's explicit definition to also +be present in its config-backed catalogue during hosted turn preparation. The +runner now registers that equivalent catalogue entry. The same revision also +sanitizes hosted provider failures, so an error without a retained retryability +classification fails closed rather than being guessed retryable. All 45 runner +tests passed before the paid rerun. + +## Results + +| task | wall time | runner termination | patch | F2P | P2P | partial diagnostic | reward | +| --- | ---: | --- | ---: | ---: | ---: | ---: | ---: | +| `abs-module-cache-flags` | 10:44.98 | implementer emitted zero actions after 3 attempts | 0 B | 0/20 | 3/3 | 0.1304 | **0** | +| `abs-stepped-slices` | 1:14.47 | tester emitted zero actions after 3 attempts | 0 B | 0/6 | 6/6 | 0.5000 | **0** | +| `actionlint-action-pinning-lint` | 0:59.22 | episode exceeded 24 turns | 216 B | 0/55 | 0/145 | 0.0000 | **0** | + +**Smoke score: 0/3 (0%).** The partial column is grader diagnostics, not an +alternative DeepSWE score. The third patch added only a three-line placeholder +file, and the hidden suite did not build; the other two runs produced no patch. + +Provider-reported usage was: + +| task | usage records | input tokens | cached input subset | cache hit rate | output tokens | cost | +| --- | ---: | ---: | ---: | ---: | ---: | ---: | +| `abs-module-cache-flags` | 318 | 3,059,862 | 1,814,784 | 59.31% | 66,524 | $2.638765 | +| `abs-stepped-slices` | 188 | 2,147,908 | 882,176 | 41.07% | 31,752 | $2.269064 | +| `actionlint-action-pinning-lint` | 280 | 3,269,594 | 1,596,672 | 48.83% | 52,342 | $3.141449 | +| **total** | **786** | **8,477,364** | **4,293,632** | **50.65%** | **150,618** | **$8.049278** | + +Every usage-record id was unique. Cache hit rate is +`cached_input_tokens / input_tokens`; cached input is a subset of input, not +additional usage. The aggregate rate was 50.6482%, about 0.42 percentage points +higher than the original smoke's 50.23%. + +## Observation + +The dependency update did not improve canonical correctness. Agents spent more +input tokens than in the first smoke, but two rounds failed the native-action +protocol and the only captured patch was a placeholder. One Task 1 action also +ran a recursive grep outside `/workspace` within the container image until the +existing 540-second command timeout stopped it. The container still had no +network or host/verifier mount and was removed by cleanup. From 24cfa7c533a663c623bf8e2082674cdf12c2f2ad Mon Sep 17 00:00:00 2001 From: Steven Enamakel Date: Sun, 20 Sep 2026 19:14:18 +0300 Subject: [PATCH 8/8] Correct DeepSWE usage accounting Co-authored-by: Medulla --- .../2026-09-20-deepswe-openhuman-main-rerun.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/docs/experiments/2026-09-20-deepswe-openhuman-main-rerun.md b/docs/experiments/2026-09-20-deepswe-openhuman-main-rerun.md index fdd7247d..bd53c95f 100644 --- a/docs/experiments/2026-09-20-deepswe-openhuman-main-rerun.md +++ b/docs/experiments/2026-09-20-deepswe-openhuman-main-rerun.md @@ -51,14 +51,16 @@ file, and the hidden suite did not build; the other two runs produced no patch. Provider-reported usage was: -| task | usage records | input tokens | cached input subset | cache hit rate | output tokens | cost | +| task | charged requests | input tokens | cached input subset | cache hit rate | output tokens | cost | | --- | ---: | ---: | ---: | ---: | ---: | ---: | -| `abs-module-cache-flags` | 318 | 3,059,862 | 1,814,784 | 59.31% | 66,524 | $2.638765 | -| `abs-stepped-slices` | 188 | 2,147,908 | 882,176 | 41.07% | 31,752 | $2.269064 | -| `actionlint-action-pinning-lint` | 280 | 3,269,594 | 1,596,672 | 48.83% | 52,342 | $3.141449 | -| **total** | **786** | **8,477,364** | **4,293,632** | **50.65%** | **150,618** | **$8.049278** | - -Every usage-record id was unique. Cache hit rate is +| `abs-module-cache-flags` | 159 | 1,529,931 | 907,392 | 59.31% | 33,262 | $2.638765 | +| `abs-stepped-slices` | 94 | 1,073,954 | 441,088 | 41.07% | 15,876 | $2.269064 | +| `actionlint-action-pinning-lint` | 140 | 1,634,797 | 798,336 | 48.83% | 26,171 | $3.141449 | +| **total** | **393** | **4,238,682** | **2,146,816** | **50.65%** | **75,309** | **$8.049278** | + +OpenHuman also wrote one zero-cost `estimated` mirror for every charged record; +the table counts only `provider_charged` records so calls and tokens are not +double-counted. Cache hit rate is `cached_input_tokens / input_tokens`; cached input is a subset of input, not additional usage. The aggregate rate was 50.6482%, about 0.42 percentage points higher than the original smoke's 50.23%.