Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
377 commits
Select commit Hold shift + click to select a range
6a5cb62
feat(hive_view): add live frame provider for the example
senamakel Oct 11, 2026
9f89b77
feat(hive_view): add live prompt and provider views
senamakel Oct 11, 2026
28010ed
refactor(hive_view): extract referral decision into its own method
senamakel Oct 11, 2026
6ba50bb
feat(examples): add hive view output example
senamakel Oct 11, 2026
f3f1d48
refactor(diagnostic): restructure diagnostic types
senamakel Oct 11, 2026
df4d97b
refactor(diagnostic): restructure diagnostic module
senamakel Oct 11, 2026
faaeead
refactor(validation): restructure validation module
senamakel Oct 11, 2026
240e0cd
fix(validation): reject out-of-range bounds instead of clamping
senamakel Oct 11, 2026
4ad368c
fix(validation): reject memory references to undefined variables
senamakel Oct 11, 2026
bef78e4
refactor(hive_view): move hive types into their own module
senamakel Oct 11, 2026
9faa1c7
refactor(document): remove unused document module
senamakel Oct 11, 2026
d5ad55b
refactor(document): remove unused document module
senamakel Oct 11, 2026
e3434e5
refactor(patch): simplify derive patch logic
senamakel Oct 11, 2026
fb49dee
chore: I don't see an actual diff in your message — the "Diff:" secti…
senamakel Oct 11, 2026
04e5a6e
docs(hive_view): document the hive view example
senamakel Oct 11, 2026
ac1941d
chore(examples): add test package fixtures for hive_view
senamakel Oct 11, 2026
f7392ca
refactor(lang): split type checking into a dedicated module
senamakel Oct 11, 2026
d80dbd1
feat(hive): add referrals to the lab viewer simulation
senamakel Oct 11, 2026
c5b39af
fix(check): allow empty list literals in type inference
senamakel Oct 11, 2026
aec99e2
chore(examples): add hive-check tool to lab viewer
senamakel Oct 11, 2026
26f7942
chore(lang): remove unused module declaration
senamakel Oct 11, 2026
e8cdbbf
feat(lang): expose check and diagnostic modules
senamakel Oct 11, 2026
6380015
refactor(check): extract memory binding lookup into a helper
senamakel Oct 11, 2026
0dead83
test(lang): add direct edit tests for the language crate
senamakel Oct 11, 2026
af8d0fc
test(direct_edits): surface diagnostics when an edit is unexpectedly …
senamakel Oct 11, 2026
97c198c
test(check): add support helpers for check tests
senamakel Oct 11, 2026
a593c2e
chore(examples): allow overriding fake hive replay delay
senamakel Oct 11, 2026
936b7d7
test(check): add guard tests for the type checker
senamakel Oct 11, 2026
4f6044a
test(guards): update expected diagnostics for unowned rule
senamakel Oct 11, 2026
f9c3a08
test(check): add coverage for files, locations, and sequence checks
senamakel Oct 11, 2026
00cac57
test(check): reorder expected diagnostics in constitution test
senamakel Oct 11, 2026
d18ef69
style: apply rustfmt formatting across the crate
senamakel Oct 11, 2026
8db8df5
chore: files changed crates/tinyhivemind-lang/src/diagnostic/test.rs,…
senamakel Oct 11, 2026
09c14ce
docs(examples): document the lab viewer and hive modules
senamakel Oct 11, 2026
0bf74fb
refactor(hive_view): import hive types from their defining module
senamakel Oct 11, 2026
562369c
docs(tinyhivemind-lang): document hive.rs and clarify desks.rs in hiv…
senamakel Oct 11, 2026
dccac87
docs(hive_view): add README for the hive view example
senamakel Oct 11, 2026
c603490
feat(tinyhivemind-lang): add hive_check example
senamakel Oct 11, 2026
d29f1e4
feat(tinyhivemind-lang): rewrite self-edit example around whole-file …
senamakel Oct 11, 2026
81a7613
fix(hive_view): redact the account id echoed in provider error bodies
senamakel Oct 11, 2026
18655aa
docs(hive_view): format OpenRouter in redact_user doc comment
senamakel Oct 11, 2026
7a61c0b
chore: files changed crates/tinyhivemind-lang/examples/live_self_edit.rs
senamakel Oct 11, 2026
7657c5b
style(tinyhivemind-lang): reformat live_self_edit example
senamakel Oct 11, 2026
41e748e
fix(validation): reject out-of-bounds and overlapping memory accesses
senamakel Oct 11, 2026
7411e3f
docs(validation): document bounds check ordering
senamakel Oct 11, 2026
7cebdb0
refactor(tinyhivemind-lang): build hive check output with push_str
senamakel Oct 11, 2026
72fdaec
test(direct_edits): add missing semicolon in edit_json closure
senamakel Oct 11, 2026
46abb14
docs(lang): document direct hive editing and the check entry points
senamakel Oct 11, 2026
3234b12
docs(tinyhivemind-lang): add README files for crate modules
senamakel Oct 11, 2026
5b0abb5
docs(examples): add README for the lang examples
senamakel Oct 11, 2026
cc7352c
chore: files changed docs/adr/0032-hive-language-owns-the-wire-format…
senamakel Oct 11, 2026
c64ce60
chore: files changed examples/lab/viewer/server/hives.js,crates/tinyh…
senamakel Oct 11, 2026
9dd11b2
chore(wiki): add wiki submodule
senamakel Oct 11, 2026
61fcabb
test(euler): add hive package integration test
senamakel Oct 11, 2026
505d3fa
test(document): build invalid manifest with struct update syntax
senamakel Oct 11, 2026
39164ea
feat(hive_view): move live run artifacts out of target
senamakel Oct 11, 2026
0574bea
test(hive_view): cover live artifact root resolution
senamakel Oct 11, 2026
6cb71a9
docs(hive_view): document new artifact location and web search exception
senamakel Oct 11, 2026
2d68157
fix(viewer): reject web-search model ids by keyword
senamakel Oct 11, 2026
0583259
docs(examples): document viewer lab and add hives tests
senamakel Oct 11, 2026
9c1e539
test(lang): add gallery package integration tests
senamakel Oct 11, 2026
b08bc4c
docs(tinyhivemind-lang): note web access restriction in gallery tests
senamakel Oct 11, 2026
7cb8c1a
chore(examples): add openhuman example crate manifest
senamakel Oct 11, 2026
8e6c96f
docs(tinyhivemind-lang): document euler-hive web_search exception
senamakel Oct 11, 2026
47761ee
fix(hive_view): keep live artifacts in the main checkout
senamakel Oct 11, 2026
ae60983
docs: add math hive scale experiment notes
senamakel Oct 11, 2026
875a68b
chore(examples): add euler_hive package example
senamakel Oct 11, 2026
eeecab6
test(hive_view): propagate scratch setup errors in live tests
senamakel Oct 11, 2026
bf7f550
chore: I don't see an actual diff in your message — the "Diff:" secti…
senamakel Oct 11, 2026
6ae5c3f
fix(euler_hive): handle sandbox path resolution on missing home dir
senamakel Oct 11, 2026
3ebf150
feat(examples): add euler hive search example
senamakel Oct 11, 2026
91cccbc
docs(euler-hive): clarify role and seat prompts
senamakel Oct 11, 2026
60f983d
chore: files changed examples/openhuman/src/bin/euler_hive/memory.rs
senamakel Oct 11, 2026
478f626
chore(examples): add euler_hive memory example
senamakel Oct 11, 2026
af77eb0
fix(examples): handle missing recording files in viewer
senamakel Oct 11, 2026
64cc55b
fix(examples): handle missing recording metadata in viewer api
senamakel Oct 11, 2026
0e69412
fix(viewer): handle missing recording files without crashing
senamakel Oct 11, 2026
d1b6935
feat(lab): add recordings API and euler hive budget
senamakel Oct 11, 2026
1d9d03a
chore(examples): add euler_hive artifacts module
senamakel Oct 11, 2026
01994ae
feat(viewer): add hive api plugin for lab viewer
senamakel Oct 11, 2026
81c9f32
feat(euler_hive): add frame rendering for hive display
senamakel Oct 11, 2026
78eddab
feat(viewer): add hive and recordings API endpoints
senamakel Oct 11, 2026
0480609
chore(examples): add coin panel recording fixtures
senamakel Oct 11, 2026
7ab71c4
test(examples): add recordings viewer tests
senamakel Oct 11, 2026
0cc6307
chore(examples): add viewer package manifest
senamakel Oct 11, 2026
5db2708
refactor(examples): extract euler hive router into its own binary
senamakel Oct 11, 2026
fad2d8c
test(examples): add recordings viewer server tests
senamakel Oct 11, 2026
8c691c1
feat(euler_hive): add floor rendering to the hive binary
senamakel Oct 11, 2026
b4e94e9
feat(hive_view): add output module for hive view example
senamakel Oct 11, 2026
9352b70
feat(hive_view): add hive view example with tests
senamakel Oct 11, 2026
6ef96af
test(hive_view): add record test module
senamakel Oct 11, 2026
ec1c4fc
feat(examples): add euler hive package test and floor rendering
senamakel Oct 11, 2026
1d8cf92
feat(euler_hive): add floors and referrals example binaries
senamakel Oct 11, 2026
04806a0
refactor(hive_view): group run output flags into RunOutput
senamakel Oct 11, 2026
e2e62ba
chore(examples): update example code for current APIs
senamakel Oct 11, 2026
ac1e343
docs(hive_view): add README for the hive_view example
senamakel Oct 11, 2026
17fda57
feat(viewer): add hive API endpoints for the lab viewer
senamakel Oct 11, 2026
e0ce1d3
fix(examples): correct recording test and turn handling
senamakel Oct 11, 2026
82d57a0
feat(examples): add euler hive example binary
senamakel Oct 11, 2026
55c2010
feat(examples): add euler hive example binary
senamakel Oct 11, 2026
21449f5
feat(lab): add recordings API for the viewer server
senamakel Oct 11, 2026
ea24977
chore: I don't see a diff in your message — the "Diff:" section is em…
senamakel Oct 11, 2026
bb3961b
feat(examples): add euler hive example binary
senamakel Oct 11, 2026
2e33f53
feat(lab): add recording playback to the viewer
senamakel Oct 11, 2026
7c63dbf
chore: I don't see a diff in your message — the "Diff:" section is em…
senamakel Oct 11, 2026
2929e04
feat(viewer): add hive api client
senamakel Oct 11, 2026
fed6209
chore(examples): add recordings module to lab viewer
senamakel Oct 11, 2026
a660f72
chore: I don't see an actual diff in your message — the "Diff:" secti…
senamakel Oct 11, 2026
a440ba8
feat(euler_hive): add referrals, floors, and tools modules
senamakel Oct 11, 2026
79ca131
chore: I don't see a diff in your message — the Diff section is empty…
senamakel Oct 11, 2026
4c6b6a5
chore: files changed examples/lab/viewer/src/hive/controls.js
senamakel Oct 11, 2026
b38b229
chore: files changed examples/lab/viewer/src/hive/controls.js
senamakel Oct 11, 2026
a5b4d61
chore: files changed examples/lab/viewer/index.html
senamakel Oct 11, 2026
190732f
feat(examples): add hive viewer and euler hive memory, report, search
senamakel Oct 11, 2026
d089aca
feat(examples): add hive activity view and euler hive search tool
senamakel Oct 11, 2026
54d3320
test(lab): add simulation tests for hive viewer
senamakel Oct 11, 2026
19a6328
chore: ignore euler_hive example run artifacts
senamakel Oct 11, 2026
b5bab72
chore(examples): add hive check tool and euler hive binary
senamakel Oct 11, 2026
8bd9bfc
chore: files changed examples/openhuman/src/bin/euler_hive/agents.rs
senamakel Oct 11, 2026
a892178
feat(viewer): add hive index module
senamakel Oct 11, 2026
ba34d79
feat(viewer): add hive index module
senamakel Oct 11, 2026
9cb8fec
feat(viewer): add activity tracking to hive recordings
senamakel Oct 11, 2026
f0c4aa8
refactor(examples): simplify recording list rendering
senamakel Oct 11, 2026
66fdfab
docs(viewer): document hive module layout
senamakel Oct 11, 2026
89beedb
chore(examples): add hive-check tool for lab viewer
senamakel Oct 11, 2026
42e962d
chore(examples): add hive-check tool to lab viewer
senamakel Oct 11, 2026
e7af29a
chore(examples): add empty hive index module
senamakel Oct 11, 2026
3585686
refactor(examples): simplify recordings viewer logic
senamakel Oct 11, 2026
b04377e
chore(examples): add euler hive test binary
senamakel Oct 11, 2026
fddec57
chore(examples): add euler hive test binary
senamakel Oct 11, 2026
6593b50
feat(examples): add euler_hive budget tracking binary
senamakel Oct 11, 2026
3a8a451
feat(examples): add euler hive example binary
senamakel Oct 11, 2026
b5b9b2b
feat(euler_hive): add budget tracking to the hive binary
senamakel Oct 11, 2026
93ef937
test(euler_hive): add request tests for euler hive binary
senamakel Oct 11, 2026
12200d1
feat(examples): add euler hive example binary
senamakel Oct 11, 2026
5cdcd60
test(euler_hive): add request tests for hive binary
senamakel Oct 11, 2026
09ff4c2
chore(examples): add euler hive request test
senamakel Oct 11, 2026
0c8de0e
feat(examples): add euler hive example binary
senamakel Oct 11, 2026
c6d9429
docs(examples): add README for euler_hive example
senamakel Oct 11, 2026
a3f908d
docs(openhuman): document the euler_hive example
senamakel Oct 11, 2026
a455272
docs: add READMEs for hives examples and tests
senamakel Oct 11, 2026
267a8b2
docs(euler-hive): add README for the Euler hive example
senamakel Oct 11, 2026
fde668f
feat(euler_hive): add euler hive example binary
senamakel Oct 11, 2026
d9966ba
feat(euler_hive): add memory and router modules
senamakel Oct 11, 2026
55b4d36
test(euler-hive-package): return error instead of panicking on unexpe…
senamakel Oct 11, 2026
ef4bd68
chore(examples): add euler hive report binary
senamakel Oct 11, 2026
0574ef5
chore(examples): add euler hive report binary
senamakel Oct 11, 2026
773ac7c
docs(euler-hive): clarify researcher role scope
senamakel Oct 11, 2026
470fec5
fix(patch): preserve document order when deriving context modifications
senamakel Oct 11, 2026
e3d21ba
fix(euler_hive): make run ids unique and cap turn timeouts
senamakel Oct 11, 2026
949ebf4
docs(euler_hive): move run directory doc comment to timestamp
senamakel Oct 11, 2026
be6da6d
test(patch): cover appended context items keeping document order
senamakel Oct 11, 2026
512f912
test(hive_view): cover zero divisor rejection in problem bank
senamakel Oct 11, 2026
c5c4bbe
chore(examples): add viewer package manifest
senamakel Oct 11, 2026
6174e9a
fix(examples): pin encrypted file keyring for ephemeral runs
senamakel Oct 11, 2026
60795e1
docs(euler_hive): clarify how the secret store avoids the OS keychain
senamakel Oct 11, 2026
ed1396f
test(hive_check): assert empty collections with assert_eq
senamakel Oct 11, 2026
f92a2e7
test(hive_check): show contents on empty assertion failures
senamakel Oct 11, 2026
226330b
test: assert emptiness via length comparisons
senamakel Oct 11, 2026
f5ea236
test(euler_hive): cover overlapping referrals and refused asks
senamakel Oct 11, 2026
aedfa68
test: assert emptiness via length comparison
senamakel Oct 11, 2026
5e13f57
refactor(examples): simplify euler_hive floors example
senamakel Oct 11, 2026
1862f6a
refactor(euler_hive): track referral chains by id instead of pending …
senamakel Oct 11, 2026
0c47e6b
feat(euler_hive): add referral tracking to hive binary
senamakel Oct 11, 2026
2692b03
feat(euler_hive): add request test module
senamakel Oct 11, 2026
f176ed1
docs(examples): add euler hive readme
senamakel Oct 11, 2026
291512b
chore(deps): prune unused crates and bump vendored openhuman
senamakel Oct 11, 2026
c371bc8
refactor(openhuman): drop runtime_python toggle from offline configs
senamakel Oct 11, 2026
6d8fa86
refactor(openhuman): drop keyring workarounds now that secrets are in…
senamakel Oct 11, 2026
a9c5fc2
chore(examples): refresh openhuman lockfile
senamakel Oct 11, 2026
2e28362
chore: files changed examples/openhuman/src/bin/pe1006_hive.rs,exampl…
senamakel Oct 11, 2026
46000da
chore(examples): add euler hive test binary
senamakel Oct 11, 2026
aca29f6
feat(euler_hive): add budget tracking to hive tools
senamakel Oct 11, 2026
43decfb
feat(examples): add euler hive budget example
senamakel Oct 11, 2026
3b602c3
feat(hive_view): add routing test for hive view example
senamakel Oct 11, 2026
3522045
feat(examples): add math hive view example
senamakel Oct 11, 2026
2ffc93b
feat(examples): add math hive view example
senamakel Oct 11, 2026
c5f237d
chore(examples): add test package fixtures for hive_view
senamakel Oct 11, 2026
a445167
feat(hive_view): add package and routing structure tests
senamakel Oct 11, 2026
083366d
feat(examples): add hive_view comparison and math examples
senamakel Oct 11, 2026
a1e748b
fix(hive_view): refuse symlinked package files when loading
senamakel Oct 11, 2026
d79f3a8
feat(examples): add hive view record test
senamakel Oct 11, 2026
1530ea5
fix(lab): handle missing recording files in viewer server
senamakel Oct 11, 2026
e225327
test(hive_view): use struct update syntax for episode policy
senamakel Oct 11, 2026
0ae6ab6
feat(euler_hive): add floor tracking to hive simulation
senamakel Oct 11, 2026
1da62eb
refactor(examples): restructure euler_hive memory module
senamakel Oct 11, 2026
ae241d9
feat(examples): add euler hive example binary
senamakel Oct 11, 2026
a17ecda
feat(examples): add euler hive example binary
senamakel Oct 11, 2026
15f79d3
chore(examples): add euler_hive artifacts binary
senamakel Oct 11, 2026
93b9b45
feat(euler_hive): add report generation and tooling for hive runs
senamakel Oct 11, 2026
2dfd514
feat(examples): add euler hive binary with tests
senamakel Oct 11, 2026
13c3630
feat(budget): add euler_hive budget binary and tests
senamakel Oct 11, 2026
dcc2637
feat(euler_hive): add turn-based test coverage
senamakel Oct 11, 2026
8c7474a
feat(euler_hive): add floors and referrals example binaries
senamakel Oct 11, 2026
6840c7a
feat(euler_hive): add report and test modules to the hive binary
senamakel Oct 11, 2026
8825dfb
feat(examples): add euler hive test binary
senamakel Oct 11, 2026
eed9602
feat(euler_hive): add euler hive example binary
senamakel Oct 11, 2026
871176f
chore: I don't see a diff in your message — the "Diff:" section is em…
senamakel Oct 11, 2026
54f6782
feat(examples): add euler hive referrals example
senamakel Oct 11, 2026
2f5d194
feat(examples): add euler hive test binary
senamakel Oct 11, 2026
6c6bae6
docs(experiments): add euler hive live experiment notes
senamakel Oct 11, 2026
fdd9a11
docs(experiments): add euler hive live experiment notes
senamakel Oct 11, 2026
25d6b66
docs(experiments): add README for experiment tracking
senamakel Oct 11, 2026
2a4822c
docs(experiments): add euler hive live experiment writeup
senamakel Oct 11, 2026
2124691
chore: files changed examples/openhuman/src/bin/euler_hive/test.rs
senamakel Oct 11, 2026
ccb407b
Document live-run keys in .env.example
senamakel Oct 11, 2026
9bb0227
chore(deps): bump openhuman, tinytools, and tinymemory pins
senamakel Oct 11, 2026
db92340
chore(examples): add hive_view output and halt helpers
senamakel Oct 11, 2026
ca9196d
feat(examples): add halt and output modules to hive_view
senamakel Oct 11, 2026
510d439
chore: I don't see an actual diff in your message — the "Diff:" secti…
senamakel Oct 11, 2026
089945a
refactor(tinyhivemind-lang): restructure hive view run tests
senamakel Oct 11, 2026
b359f0b
docs(hive_view): document the example and its test layout
senamakel Oct 11, 2026
671b026
refactor(hive_view): collapse error weight check onto one line
senamakel Oct 11, 2026
1df3e3d
feat(viewer): add simulation module for hive lab
senamakel Oct 11, 2026
e90b76e
test(euler_hive): split monolithic test module into focused submodules
senamakel Oct 11, 2026
e6b0a55
test(euler_hive): add integration test suite for hive binary
senamakel Oct 11, 2026
050b500
test(euler_hive): split test module into a directory
senamakel Oct 11, 2026
05175f8
chore(examples): prune unused test imports and reformat
senamakel Oct 11, 2026
7afe04f
chore(examples): revert unrelated rustfmt churn in deepswe_hive and m…
senamakel Oct 11, 2026
dd25e02
docs(euler_hive): update test module description in README
senamakel Oct 11, 2026
4996a47
fix(euler_hive): match answers to questions by request id
senamakel Oct 11, 2026
50da488
test(federation): cover answers returning to the asking chain
senamakel Oct 11, 2026
249cb76
feat(euler_hive): add package command
senamakel Oct 11, 2026
e462618
chore: 姉妹ファイルの差分が空のため、変更内容を特定できません。diff を提供していただければ、Conventional Comm…
senamakel Oct 11, 2026
cb71bbd
test(memory): cover a note stored during an in-flight recall
senamakel Oct 11, 2026
86076ff
fix(euler_hive): fail the run when a closing artifact cannot be written
senamakel Oct 11, 2026
b764e34
chore(examples): remove unused recordings viewer server module
senamakel Oct 11, 2026
d3e2614
test(examples): add recordings viewer server tests
senamakel Oct 11, 2026
a9bead9
docs(examples): add README for euler_hive test
senamakel Oct 11, 2026
133b215
Merge upstream main into hive-language-docs
senamakel Oct 11, 2026
945c43c
docs(viewer): update active recording window to 20 minutes
senamakel Oct 11, 2026
3b9a191
Merge branch 'hive-language-docs' of github.com:tinyhumansai/tinyhive…
senamakel Oct 11, 2026
64be598
chore(vendor): bump openhuman submodule
senamakel Oct 11, 2026
af557e7
chore(deps): downgrade tinychannels crates to 0.1.17
senamakel Oct 11, 2026
137a71f
chore(vendor): advance openhuman submodule to the pinned 467ab703
senamakel Oct 11, 2026
f14fa70
chore(deps): bump tinychannels crates to 0.1.18
senamakel Oct 11, 2026
d3abe45
Fix SQLite rustdoc formatting
senamakel Oct 11, 2026
a6a6c21
fix(viewer): restrict paid runs to trusted local clients
senamakel Oct 11, 2026
2ac12ba
Merge branch 'hive-language-docs' into pr126-integration
senamakel Oct 11, 2026
faab4c9
fix(hive_view): bound custom math computation
senamakel Oct 11, 2026
d72e35e
docs(hives): format SQLite test module reference
senamakel Oct 11, 2026
0ff4938
docs(viewer): correct default loopback listener
senamakel Oct 11, 2026
ce25dcd
Fix current toolchain lints in OpenHuman adapter
senamakel Oct 11, 2026
1005e17
Use minute units for live language turn timeout
senamakel Oct 11, 2026
dd0fc9f
fix(hive_view): charge referral answers to shared turn budget
senamakel Oct 11, 2026
e39e0ec
fix(euler_hive): enforce model call and expired time budgets
senamakel Oct 11, 2026
d19ba40
fix(euler_hive): preserve math markup and refuse web models
senamakel Oct 11, 2026
56e322d
fix(euler_hive): bound closing memory inspection
senamakel Oct 11, 2026
1f4546d
fix(euler_hive): require a current check for trusted publication
senamakel Oct 11, 2026
9790c84
docs(viewer): describe paid run access checks
senamakel Oct 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
14 changes: 14 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,17 @@
# Example of a credential a live/network-gated test would need. Tests that
# require one must skip cleanly when it is unset.
# EXAMPLE_API_KEY=replace-me

# OpenRouter key for every live model call (hive_view --live, the OpenHuman
# examples, examples/openhuman --bin euler_hive). All inference goes here.
# OPENROUTER_API_KEY=replace-me
# Optional model override for those live runs.
# OPENROUTER_MODEL=deepseek/deepseek-v4-pro

# TinyHumans API key for euler_hive's non-inference modules: web search
# through the backend's agent integrations (Parallel, Gemini grounding) via
# the TinyHumans SDK, and CortexDB memory behind the TinyHumans backend.
# Never used for inference.
TINYHUMANS_API_KEY=replace-me
# Optional TinyHumans backend origin (default https://api.tinyhumans.ai).
# TINYHUMANS_BACKEND_URL=https://api.tinyhumans.ai
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@
/target/
/examples/*/target/
/examples/openhuman/workspace/

# Live hive_view run artifacts (requests, replies, frames, usage). Kept out
# of target/ so `cargo clean` does not wipe them; override with HIVE_RUNS_DIR.
# The euler_hive example writes its runs (problem statements, transcripts,
# sandbox programs, answers, oracles) here too; none of it may be committed.
/hive-runs/
**/*.rs.bk
*.pdb

Expand Down
9 changes: 5 additions & 4 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,14 @@ sees of the shared transcript.
Three rules decide what belongs here:

1. **The host owns storage.** The core mechanics open no database, file, or
socket. `crates/tinyhivemind-core` is a pure algebra; `crates/tinyhivemind` owns
*ports* a host implements. In particular there is no second
socket. `crates/tinyhivemind-core` is a pure algebra, and its `runtime`
module owns the *ports* a host implements. In particular there is no second
append-only journal: messages are addressed by sequence number across
surfaces the host owns, so a second log could not be made consistent with the
first.
2. **Keep host types at the adapter boundary.** The core, runtime, hive,
embed, and TypeSafe crates do not name types from a consuming application.
2. **Keep host types at the adapter boundary.** The core crate (including its
`runtime`, `hive`, `embed`, `typesafe`, and `driver` modules) and
`tinyhivemind-lang` do not name types from a consuming application.
They accept snapshots, borrowed views, or narrow ports. The
`tinyhivemind-openhuman` adapter explicitly names OpenHuman types and keeps
that dependency out of the pure crates.
Expand Down
21 changes: 10 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -155,8 +155,7 @@ option — never straight at the option:
Every member computes an urge from the salience field and its own affinity, and
whoever bids highest takes the floor. A member whose urge never clears its
threshold does not bid at all. This is the response-threshold model of division
of labour, and it is also
[Pandemonium](https://en.wikipedia.org/wiki/Pandemonium_architecture)'s
of labour, and it is also [Pandemonium](https://en.wikipedia.org/wiki/Pandemonium_architecture)'s
decision demon, which is the same idea arrived at from the AI side.

```text
Expand All @@ -168,8 +167,7 @@ auditor -- <- threshold never cleared, does not bid
floor = planner
```

Every one of those is
[fixed-point](https://en.wikipedia.org/wiki/Fixed-point_arithmetic) integer
Every one of those is [fixed-point](https://en.wikipedia.org/wiki/Fixed-point_arithmetic) integer
arithmetic. Every payload derives `Eq`, and every episode replays byte for byte
from the same transcript.

Expand Down Expand Up @@ -364,7 +362,8 @@ commits the round's state after all authorized turns are appended.

`tinyhivemind-lang` makes a hive’s definition editable data: roles, goals,
seats, memory bindings and policies, with guarded patches and an evaluated
lineage. Read the [language specification](docs/specs/hive-language.md).
lineage. A package is a `hive.json`, Markdown prompts, and a constitution no self-edit may
touch. Read the [language specification](docs/specs/hive-language.md), or start from the [gallery](crates/tinyhivemind-lang/examples/hives).

`tinyhivemind-tools` renders native `tinytools::ToolSpec` definitions and
records episode calls. `tinyhivemind-hives` coordinates durable messages and
Expand Down Expand Up @@ -452,11 +451,10 @@ the library asks the host to reinitialize instead of silently skipping history.
No. The host owns the agent lifecycle, model calls, queueing, storage, and
authorization. The core mention fold resolves a direct addressee; the host can
use that decision to schedule one turn. The optional embedding layer can
recommend a primary and bounded specialist set; the `hive` module can
select a round inside a
bounded deliberation. The host decides whether to run those turns, what models
to use, what long-term memory or search to provide, and how to persist the
result. A workspace such as Buzz could host these mechanics, but it is a
recommend a primary and bounded specialist set; the `hive` module can select a
round inside a bounded deliberation. The host decides whether to run those
turns, what models to use, what long-term memory or search to provide, and how
to persist the result. A workspace such as Buzz could host these mechanics, but it is a
separate system with its own routing and context policy.

## Use it
Expand All @@ -467,7 +465,7 @@ git submodule add https://github.com/tinyhumansai/tinyhivemind.git vendor/tinyhi

```toml
[dependencies]
tinyhivemind = { path = "vendor/tinyhivemind/crates/tinyhivemind" }
tinyhivemind-core = { path = "vendor/tinyhivemind/crates/tinyhivemind-core" }
```

```sh
Expand All @@ -486,6 +484,7 @@ That prints one deliberation episode turn by turn—the fastest way to see the m
| [Cross-desk referral](https://github.com/tinyhumansai/tinyhivemind/wiki/Cross-desk-referral) | asking another channel a question, and getting the answer back |
| [Hive episodes](https://github.com/tinyhumansai/tinyhivemind/wiki/Hive-episodes) | salience, quorum, cross-inhibition, and the attention market |
| [Trace grammar](https://github.com/tinyhumansai/tinyhivemind/wiki/Trace-grammar) | what a marker deposits, and what real models get wrong |
| [Hive language](https://github.com/tinyhumansai/tinyhivemind/wiki/Hive-language) | a hive as a portable package, its guarded edits, and the gallery |
| [Episode policy](https://github.com/tinyhumansai/tinyhivemind/wiki/Episode-policy) | every setting, and how to tune it to the size of a desk |
| [Benchmarks](https://github.com/tinyhumansai/tinyhivemind/wiki/Benchmarks) | the full report, including what it does not show |
| [Host integration](https://github.com/tinyhumansai/tinyhivemind/wiki/Host-integration) | the ports, and what your application owes the library |
Expand Down
14 changes: 7 additions & 7 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@ consumer builds.
| P1 | Chat identity: `MAIN_THREAD_ID`, `GENERAL_DESK`, `is_general_chat`, `same_conversation` | **done** |
| P2 | Desk types, then the membership algebra behind `DeskSet<'a>` | **done** |
| P3 | The `@` grammar, `Mention`/`MentionTarget`, and resolution over `Roster`/`Person` | **done** |
| P4 | `crates/tinyhivemind`: the `SessionLog` port, the paging walk, and the **attributed** transcript projection | **done** |
| P4 | The `SessionLog` port (originally `crates/tinyhivemind`, now core's `runtime` module), the paging walk, and the **attributed** transcript projection | **done** |
| P5 | Continuous sharing — re-seed on a watermark rather than only on a rebind | **done** |
| P6 | The responder ladder and a model-backed `Selector` port | **core plan retained**; unused waiting port retired |
| P7 | A bounded mention-dispatch edge | **core decision retained**; unused queue wrapper retired |
| P8 | `crates/tinyhivemind-hive`: bounded group deliberation — the trace grammar, salience, quorum with cross-inhibition, the attention market, and the episode state machine | **done** |
| P8 | Bounded group deliberation (originally `crates/tinyhivemind-hive`, now core's `hive` module) — the trace grammar, salience, quorum with cross-inhibition, the attention market, and the episode state machine | **done** |
| P9 | `!refute`, evidential grounding, grounded objections, and the benchmark arm that scored them | Historical experiment; refutation trace retained, losing quorum knobs retired |
| P10 | A transactive-memory directory folded from traces, `BidReason::Knows`, and `!defer` | Directory retained for division; losing delegation and deferral paths retired |
| P11 | `SessionMessage.parent` and the structured trace sidecar | planned |
Expand Down Expand Up @@ -106,9 +106,9 @@ advocate rather than debiting an option, and an attention market that ranks
eligible speakers. A later step may authorize a bounded round of them.

It adds **no port**. An episode is a pure fold, and the host does its waiting
through the session log and turn scheduler it already implements.
`crates/tinyhivemind-hive` is in the `pure_crates` list in
`.github/scripts/assert-pure.sh`.
through the session log and turn scheduler it already implements. It now
lives in `crates/tinyhivemind-core/src/hive/`, and `tinyhivemind-core` is in
the `pure_crates` list in `.github/scripts/assert-pure.sh`.

It is also not a claim that group deliberation produces better answers. Almost
every positive multi-agent result in the literature is confounded by compute,
Expand Down Expand Up @@ -158,8 +158,8 @@ epoch-scoped consent, under which a grant issued later cannot cover a request
minted earlier. `Ask` names exactly one person, resolved through the existing
roster and desk algebra, and never an agent.

The original phase also added an `ApprovalGate` waiting port in
`crates/tinyhivemind`. That unused wrapper has since been retired; a host
The original phase also added an `ApprovalGate` waiting port in the former
`crates/tinyhivemind` runtime crate. That unused wrapper has since been retired; a host
handles the wait after the pure decision. The ADR's lasting choice is that the
fold is total: a gate that can fail can be bypassed by failing, so `approve`
returns no `Result` and adds no `Error` variant. See
Expand Down
2 changes: 1 addition & 1 deletion crates/tinyhivemind-core/examples/bench/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ Every arm decides the same rooms from the same private evaluations.

| arm | what it is |
| --- | --- |
| `ladder` | Today's behaviour: `responder_plan` in `tinyhivemind` selects one responder off the real ladder and that agent answers alone. One deliberation turn — but two model calls when the ladder takes the `Select` rung, since the router has to be asked who answers before anybody does, and the two are sequential. |
| `ladder` | Today's behaviour: `responder_plan` in `tinyhivemind-core` selects one responder off the real ladder and that agent answers alone. One deliberation turn — but two model calls when the ladder takes the `Select` rung, since the router has to be asked who answers before anybody does, and the two are sequential. |
| `vote` | The honest matched-budget control — independent answers decided by plurality, nobody seeing anybody. It is given the *whole* budget, more turns than the deliberation actually spends. |
| `hive` | A deliberation episode at `EpisodePolicy::DEFAULT`. |
| `hive+` | The same, at the tuned policy: a majority quorum that is never unanimity, and three turns of budget per member. |
Expand Down
2 changes: 1 addition & 1 deletion crates/tinyhivemind-core/examples/bench/arms.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
//! arms over the *same* rooms and the same private evaluations:
//!
//! - **ladder** — today's behaviour. One message selects exactly one responder
//! off the deterministic ladder in `tinyhivemind`, that agent answers, and the
//! off the deterministic ladder in `tinyhivemind-core`, that agent answers, and the
//! interaction ends. One turn.
//! - **vote** — self-consistency at a matched turn budget. The same number of
//! turns the episode was allowed, each spent on one member's independent
Expand Down
10 changes: 10 additions & 0 deletions crates/tinyhivemind-core/examples/bench/cli/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# `cli/`

Command-line parsing for the bench binary. The flag table itself is in
`main.rs`'s crate doc.

| File | Purpose |
| --- | --- |
| `mod.rs` | `Options`, the parsed argument set every other module reads, and `Mode`, what `--sweep`, `--trace`, `--swarm` and the other modes pick between. |
| `flags.rs` | The per-flag handlers `Options::parse` delegates to, grouped by what they configure: scale, expertise, and the live backends. |
| `test.rs` | Flag parsing regressions: fidelity and fact-noise validation, and how `--api-base` interacts with the explicit modes. |
10 changes: 10 additions & 0 deletions crates/tinyhivemind-core/examples/bench/horizon/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# `horizon/`

The long-horizon sweep (`--stages N`): a chain of sub-decisions decided by the
same members, where context accumulates and a wrong stage poisons the next.
See [`../HORIZON.md`](../HORIZON.md) for the method.

| File | Purpose |
| --- | --- |
| `mod.rs` | The staged rooms, the `solo`, `solo+fold`, `hive+` and `hive+pooled` arms, and the end-to-end report. |
| `test.rs` | Distinct option names per stage, inherited windows, poisoning, the soloist's whole brief, and that a chain is never likelier than one of its stages. |
10 changes: 10 additions & 0 deletions crates/tinyhivemind-core/examples/bench/live_swarm/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# `live_swarm/`

Driving a live federation of desks (`--swarm`) through a real backend: several
desks, each seated over a CLI agent or the HTTP backend, that reach each other
only through a referral. See [`../SWARM.md`](../SWARM.md).

| File | Purpose |
| --- | --- |
| `mod.rs` | The drivers: what runs, from simulated federations to live desks and one traced episode. |
| `totals.rs` | What a federated comparison counts and how it prints: per-arm outcomes, running totals, the arm fan-out, and the table. |
2 changes: 1 addition & 1 deletion crates/tinyhivemind-core/examples/bench/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
//! the right answer is to pool what its members separately believe. Four arms
//! decide the same rooms from the same private evaluations:
//!
//! - `ladder` — the responder ladder in `tinyhivemind` selects one responder and
//! - `ladder` — the responder ladder in `tinyhivemind-core` selects one responder and
//! that agent answers alone. One turn. This is today's behaviour.
//! - `vote` — the honest matched-budget control: independent answers decided by
//! plurality, with nobody seeing anybody. It is given the whole budget, which
Expand Down
8 changes: 8 additions & 0 deletions crates/tinyhivemind-core/examples/bench/parallel/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# `parallel/`

Tests for [`../parallel.rs`](../parallel.rs), the scoped-thread fan-out that
spreads per-room loops across cores without changing a number.

| File | Purpose |
| --- | --- |
| `test.rs` | Results come back in input order at every job count and whatever order threads finish in; the first error in input order is reported; short slices, panicking closures, and the mutable map are covered. |
9 changes: 9 additions & 0 deletions crates/tinyhivemind-core/examples/bench/scenario/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# `scenario/`

Tests for [`../scenario.rs`](../scenario.rs), the file format for a real
problem a live room solves, with the private facts behind it. The shipped
scenarios live in [`../scenarios/`](../scenarios/).

| File | Purpose |
| --- | --- |
| `test.rs` | Every shipped scenario parses, records an answer that is on offer, and gives every member something of its own. |
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# `swarm/format/`

Tests for [`../format.rs`](../format.rs), the wire text a swarm's members
exchange across a referral and the trace line a run keeps.

| File | Purpose |
| --- | --- |
| `test.rs` | Reading and fact clauses round-trip without disturbing each other, several desks can rule out several options, and an unowned disqualification is dropped. |
10 changes: 10 additions & 0 deletions crates/tinyhivemind-core/examples/bench/variety/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# `variety/`

The variety sweep (`--facets F`): one task made of several independent
sub-decisions at once, each needing a different kind of attention. See
[`../VARIETY.md`](../VARIETY.md).

| File | Purpose |
| --- | --- |
| `mod.rs` | The faceted rooms, facet ownership, the arms, and the all-facets report. |
| `test.rs` | Distinct option names per facet and against stages, owners reading their facet more tightly, and what one seat holds against a soloist. |
6 changes: 3 additions & 3 deletions crates/tinyhivemind-core/examples/driver_bench/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# `bench`
# `driver_bench`

What the completion driver's policy costs, measured rather than asserted, with
no model and no credential.
Expand All @@ -9,8 +9,8 @@ no model and no credential.
| `sim.rs` | a stochastic room whose turns land at different times, and a router that returns well-formed evaluations so real acceptance runs |

```sh
cargo run --release -p tinyhivemind-openhuman --example bench
cargo run --release -p tinyhivemind-openhuman --example bench -- --episodes 2000 --members 8
cargo run --release -p tinyhivemind-core --example driver_bench
cargo run --release -p tinyhivemind-core --example driver_bench -- --episodes 2000 --members 8
```

Every arm runs the same seeded rooms through the same `CompletionDriver`, so a
Expand Down
2 changes: 1 addition & 1 deletion crates/tinyhivemind-core/src/aside/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ imposes no ceiling on members or messages, and `must_surface` and
Two rules give the mechanism its shape and neither is enforced here, because
neither is a decision this fold could make:

- **A redaction is a row, not an absence.** `tinyhivemind`'s projection elides
- **A redaction is a row, not an absence.** The runtime's projection elides
content and keeps the row, so a reader outside an audience still sees that
the exchange happened, who wrote it and to whom. That is what makes an aside
auditable rather than a covert channel.
Expand Down
15 changes: 15 additions & 0 deletions crates/tinyhivemind-core/src/driver/conduct/test/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# `driver/conduct/test/`

Unit tests for the conductor, driven by a host that is only an in-memory
journal. `mod.rs` declares the behaviour groups below; each file is one group.

| File | Purpose |
| --- | --- |
| `mod.rs` | Module doc and the submodule declarations. |
| `support.rs` | Shared fixtures: a hive of named seats, a router that always asks for clarification, the journal, and one wave driven the way a host drives it. |
| `door.rs` | Who starts an episode: routed starters, a task at sequence zero, refused starters, and every plan shape. |
| `desk.rs` | Desk work: stalled-seat nudges, placed and unplaced broadcasts, handoffs, the broadcast budget, the turn wall, and the commit protocol. |
| `conversations.rs` | Conversations opened by an ask: running first, concluding to the asker, group asks, silent askees, refused replies, and thread prefetch. |
| `parked.rs` | Parked seats held by the host, released where they stopped, and snapshots taken and refused between waves. |
| `links.rs` | The links a host reads back to draw the desk: conversation roots on rows, and the rows events name. |
| `wire.rs` | Pinned wire forms of turns, notes, commits, events, refusals, snapshots, and the conduct policy. |
8 changes: 8 additions & 0 deletions crates/tinyhivemind-core/src/driver/engine/brief/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# `driver/engine/brief/`

Tests for [`../brief.rs`](../brief.rs), which renders what the episode itself
has to tell a seat before its turn.

| File | Purpose |
| --- | --- |
| `test.rs` | The brief says what the episode knows and only that: the assignment and the parent a seat must name, concluded and in-progress conversations with their transcripts, thread and group-thread briefs, the standing contract, elsewhere context, and naming seats by name or id. |
2 changes: 1 addition & 1 deletion crates/tinyhivemind-core/src/hive/exchange/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ folded; rounds are carried", below, for why that one cannot come out of the log.
which members it names, and how many rows the episode may still write. It does
no waiting and **chooses no peer**: who a member wants to contact is that
member's judgement, and the audience it writes is validated by
`tinyhivemind::aside::aside` exactly as an aside riding alongside a turn is.
`tinyhivemind_core::aside::aside` exactly as an aside riding alongside a turn is.

`ExchangeRound::Open::members` is in desk order and contains only members that
are active on the episode's desk and still under their own contact cap. A host
Expand Down
2 changes: 1 addition & 1 deletion crates/tinyhivemind-core/src/runtime/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# `tinyhivemind` feature modules
# `runtime` feature modules

One directory per feature area, wired together and re-exported from
[`mod.rs`](mod.rs). Each answers a different question a host needs answered
Expand Down
2 changes: 1 addition & 1 deletion crates/tinyhivemind-core/src/runtime/error/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ The crate-wide `Error` and `Result<T>`.

## Why it exists

Every fallible public function in `tinyhivemind` returns the same `Result<T>`,
Every fallible public function in core's `runtime` module returns the same `Result<T>`,
so a host writes one match arm, not one per module. The enum names the ways a
*host* implementation of a port can violate its contract, including bad
pages and stale cursors. It also reports an overflowing present set, a digest
Expand Down
2 changes: 1 addition & 1 deletion crates/tinyhivemind-core/tests/migrated_runtime/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Runtime integration tests

These tests use only the public `tinyhivemind` API.
These tests use only the public `tinyhivemind_core::runtime` API.

| File | Coverage |
| --- | --- |
Expand Down
Loading
Loading