Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
280 commits
Select commit Hold shift + click to select a range
c9542fd
chore: update Chargebee pitch view
senamakel Sep 10, 2026
39fc6d7
feat(hivemind): a seat reads the conversations it is part of elsewhere
sanil-23 Sep 10, 2026
42285da
test(finance): expand company switch test coverage
senamakel Sep 10, 2026
67e3ec4
feat(chat): fold a private aside onto the move it rode under
sanil-23 Sep 10, 2026
d59dc30
feat(retail-co): enable private asides, and seat triage on returns
sanil-23 Sep 10, 2026
5a14035
test: cover escape from stuck onboarding gate
senamakel Sep 10, 2026
a2a0387
fix(retail-co): address desks as `@#id`, and route on order status
sanil-23 Sep 10, 2026
a089fa6
feat(console): name the responding teammate across a reload
sanil-23 Sep 10, 2026
bcefe8f
refactor(onboarding): update onboarding gate
senamakel Sep 10, 2026
fbe8ddc
chore: drop the temporary screenshot script
senamakel Sep 10, 2026
9b8aa28
Merge branch 'ui-changes' into pr-2247
senamakel Sep 10, 2026
2360ade
chore: files changed frontend/src/lib/chat.ts
senamakel Sep 10, 2026
6d32249
Merge remote-tracking branch 'origin/main' into pr-2247
senamakel Sep 10, 2026
882aee5
feat(harness): add agent session built-in
senamakel Sep 10, 2026
e196933
refactor(harness): use shared desk constant and event seq constructor
senamakel Sep 10, 2026
1ca7377
feat(harness): expose agent_session module
senamakel Sep 10, 2026
b933e64
refactor(harness): continue agent session across chats instead of cle…
senamakel Sep 10, 2026
1121807
feat(harness): track per-agent session watermark
senamakel Sep 10, 2026
770765f
feat(harness): add session_delta to ChatSeedRequest
senamakel Sep 10, 2026
b9cc291
feat(harness): prepend session cues to inbound turn text
senamakel Sep 10, 2026
d685750
feat(harness): add speech tools module
senamakel Sep 10, 2026
1a6cf54
test(harness): add session state to iteration cap turn test agent
senamakel Sep 10, 2026
e055876
fix(harness): stop speech tools from requesting approval
senamakel Sep 10, 2026
9ccd91c
feat(company): add company-level speech config
senamakel Sep 10, 2026
16438f8
feat(harness): register speech tools when manifest enables speech
senamakel Sep 10, 2026
6ac1721
feat(harness): pass speech flag into build_agent
senamakel Sep 10, 2026
bed9c81
chore: files changed src/harness/built_in/build.rs
senamakel Sep 10, 2026
ac793c2
fix(harness): pass speech enabled flag when building agents
senamakel Sep 10, 2026
4edb397
chore: files changed src/harness/built_in/build.rs,src/harness/built_…
senamakel Sep 10, 2026
813b8fd
chore: files changed src/harness/speech_tools.rs,src/runtime/delegati…
senamakel Sep 10, 2026
a9ca023
chore: files changed src/harness/built_in/mod.rs
senamakel Sep 10, 2026
afded98
chore: files changed src/harness/built_in/mod.rs,src/runtime/delegati…
senamakel Sep 10, 2026
09b344e
feat(runtime): collect per-turn channel utterances in a task-local sink
senamakel Sep 10, 2026
b03b062
chore: files changed src/harness/speech_tools.rs
senamakel Sep 10, 2026
8c8a7f4
chore: files changed src/harness/built_in/mod.rs
senamakel Sep 10, 2026
861a543
chore: files changed src/runtime/delegation.rs
senamakel Sep 10, 2026
8491f49
chore: files changed src/harness/built_in/mod.rs
senamakel Sep 10, 2026
67a3afb
chore: files changed src/harness/built_in/mod.rs
senamakel Sep 10, 2026
b024265
chore: files changed src/harness/built_in/agent_session.rs,src/harnes…
senamakel Sep 10, 2026
232c346
chore: files changed src/runtime/delegation.rs
senamakel Sep 10, 2026
19c3a7b
chore: files changed src/server/operator.rs
senamakel Sep 10, 2026
e2be3bd
chore: files changed src/harness/built_in/agent_session.rs,src/server…
senamakel Sep 10, 2026
2b831f9
chore: files changed src/server/operator.rs
senamakel Sep 10, 2026
871e9f1
chore: files changed src/harness/built_in/agent_session.rs
senamakel Sep 10, 2026
336fb92
chore: files changed src/harness/built_in/agent_session.rs
senamakel Sep 10, 2026
b1ca15a
chore: files changed src/harness/built_in/agent_session.rs
senamakel Sep 10, 2026
2dfec12
chore: files changed src/server/operator.rs
senamakel Sep 10, 2026
2a8e0f1
chore: files changed src/harness/speech_tools.rs
senamakel Sep 10, 2026
8e0dec8
chore: files changed src/harness/speech_tools.rs
senamakel Sep 10, 2026
db9c438
chore: files changed frontend/src/api/client.ts,frontend/src/api/type…
senamakel Sep 10, 2026
79bc831
chore: files changed frontend/src/api/client.ts
senamakel Sep 10, 2026
10f1bb0
chore: files changed frontend/src/views/team/AgentSession.tsx
senamakel Sep 10, 2026
f58fc7d
chore: files changed frontend/src/views/team/AgentDetailView.tsx
senamakel Sep 10, 2026
953be3d
chore: files changed frontend/test/unit/agent-session-tab.test.ts
senamakel Sep 10, 2026
c984e71
docs(spec): add speech runtime specification
senamakel Sep 10, 2026
f7e9f30
chore: files changed docs/spec/README.md,docs/spec/runtime/manifest.md
senamakel Sep 10, 2026
d2d16ce
chore: files changed src/harness/built_in/mod.rs
senamakel Sep 10, 2026
6dcd224
chore: files changed src/harness/built_in/mod.rs
senamakel Sep 10, 2026
87676fe
chore: files changed src/harness/built_in/mod.rs
senamakel Sep 10, 2026
809493d
chore: files changed src/harness/built_in/mod.rs
senamakel Sep 10, 2026
35bd569
chore: files changed src/harness/built_in/mod.rs
senamakel Sep 10, 2026
3c03ebd
chore: files changed src/harness/built_in/mod.rs
senamakel Sep 10, 2026
54ee29d
chore: files changed src/harness/built_in/agent_session.rs
senamakel Sep 10, 2026
26b0c39
chore: files changed src/harness/built_in/mod.rs,src/server/operator.rs
senamakel Sep 10, 2026
2067086
chore: files changed src/server/chat_history.rs
senamakel Sep 10, 2026
ac196ba
chore: files changed src/harness/built_in/build.rs
senamakel Sep 10, 2026
34ae260
chore: files changed src/harness/built_in/build.rs
senamakel Sep 10, 2026
5f66b28
chore: files changed src/harness/built_in/build.rs,src/harness/speech…
senamakel Sep 10, 2026
925a283
chore: files changed src/server/chat_history.rs
senamakel Sep 10, 2026
5375136
chore: files changed frontend/test/e2e/agent-session.spec.ts
senamakel Sep 10, 2026
33db80e
chore: files changed src/harness/built_in/agent_session.rs
senamakel Sep 10, 2026
336c21a
chore: files changed frontend/test/e2e/agent-session.spec.ts
senamakel Sep 10, 2026
a4f41f3
chore: files changed frontend/test/e2e/agent-session.spec.ts
senamakel Sep 10, 2026
c515063
chore: files changed docs/spec/runtime/speech.md,frontend/test/unit/a…
senamakel Sep 10, 2026
c144bb3
chore: files changed frontend/src/views/team/AgentSession.tsx
senamakel Sep 11, 2026
fa65408
chore: files changed frontend/src/views/team/AgentSession.tsx
senamakel Sep 11, 2026
71eaa52
chore: files changed frontend/src/views/team/AgentSession.tsx
senamakel Sep 11, 2026
5d549dc
chore: files changed frontend/test/unit/agent-session-tab.test.ts
senamakel Sep 11, 2026
eceebaa
chore: files changed frontend/test/unit/agent-session-tab.test.ts
senamakel Sep 11, 2026
ffec241
chore: files changed frontend/test/e2e/agent-session.spec.ts
senamakel Sep 11, 2026
31abbfa
chore: files changed docs/spec/runtime/speech.md
senamakel Sep 11, 2026
8f731d1
chore: files changed frontend/src/views/team/AgentSession.tsx
senamakel Sep 11, 2026
e6f7232
chore: files changed frontend/src/views/room/RawTurns.tsx
senamakel Sep 11, 2026
23cae61
chore: files changed frontend/src/views/team/AgentSession.tsx
senamakel Sep 11, 2026
6a261f7
chore: files changed frontend/src/views/room/ChatHeader.tsx
senamakel Sep 11, 2026
6679f44
chore: files changed frontend/src/views/RoomView.tsx
senamakel Sep 11, 2026
fb55323
chore: files changed frontend/src/views/RoomView.tsx
senamakel Sep 11, 2026
10ba787
chore: files changed frontend/src/views/RoomView.tsx
senamakel Sep 11, 2026
4d274b3
chore: files changed frontend/src/views/RoomView.tsx
senamakel Sep 11, 2026
49b88cf
chore: files changed frontend/test/unit/agent-session-tab.test.ts,fro…
senamakel Sep 11, 2026
24ab622
chore: files changed frontend/test/e2e/agent-session.spec.ts
senamakel Sep 11, 2026
599869d
chore: files changed frontend/test/e2e/agent-session.spec.ts
senamakel Sep 11, 2026
07d0482
chore: files changed docs/spec/runtime/speech.md
senamakel Sep 11, 2026
eb515a1
chore: files changed src/server/chat_history.rs
senamakel Sep 11, 2026
8031bdf
chore: files changed src/server/chat_history.rs
senamakel Sep 11, 2026
2b21629
chore: files changed src/server/chat_history.rs
senamakel Sep 11, 2026
9fe09af
chore: files changed src/harness/built_in/chat_seed.rs
senamakel Sep 11, 2026
88bbfa7
chore: files changed src/server/operator.rs
senamakel Sep 11, 2026
600d6bd
chore: files changed src/harness/built_in/agent_session.rs
senamakel Sep 11, 2026
2bdb08f
chore: files changed src/harness/built_in/agent_session.rs
senamakel Sep 11, 2026
0cc828e
chore: files changed src/harness/built_in/agent_session.rs
senamakel Sep 11, 2026
41300d0
chore: files changed frontend/src/api/types.ts
senamakel Sep 11, 2026
1c95d40
chore: files changed frontend/src/views/room/RawTurns.tsx
senamakel Sep 11, 2026
9025a7f
chore: files changed frontend/test/unit/raw-turns-toggle.test.ts
senamakel Sep 11, 2026
2132025
chore: files changed src/harness/speech_tools.rs
senamakel Sep 11, 2026
a10cf22
chore: files changed src/harness/speech_tools.rs
senamakel Sep 11, 2026
cb83258
chore: files changed src/harness/speech_tools.rs
senamakel Sep 11, 2026
e2222e9
chore: files changed src/harness/speech_tools.rs
senamakel Sep 11, 2026
d78748e
chore: files changed src/harness/speech_tools.rs
senamakel Sep 11, 2026
cd61590
chore: files changed src/harness/speech_tools.rs
senamakel Sep 11, 2026
4ecc044
chore: files changed src/harness/speech_tools.rs
senamakel Sep 11, 2026
e813ffe
chore: files changed docs/spec/runtime/speech.md
senamakel Sep 11, 2026
e0227df
chore: files changed vendor/openhuman
senamakel Sep 11, 2026
dc1ca92
chore: files changed Cargo.lock
senamakel Sep 11, 2026
c46ce08
chore: files changed src/harness/session_key.rs
senamakel Sep 11, 2026
d8f7bab
chore: files changed src/harness/mod.rs
senamakel Sep 11, 2026
f1bdd85
chore: files changed src/harness/built_in/build.rs
senamakel Sep 11, 2026
29c48ed
chore: files changed src/harness/built_in/confine.rs
senamakel Sep 11, 2026
ff4025e
chore: files changed src/harness/built_in/mod.rs
senamakel Sep 11, 2026
4ed5900
chore: files changed src/harness/built_in/iteration_cap_turn_test.rs
senamakel Sep 11, 2026
61f6623
chore: files changed src/harness/speech_tools.rs
senamakel Sep 11, 2026
02b6e9f
chore: files changed src/harness/built_in/mod.rs
senamakel Sep 11, 2026
39ec0e4
chore: files changed docs/spec/integrations/openhuman.md
senamakel Sep 11, 2026
b1f030e
chore: files changed src/harness/built_in/chat_seed.rs
senamakel Sep 11, 2026
63fe6ef
chore: files changed src/server/chat_history.rs
senamakel Sep 11, 2026
dc54869
chore: files changed src/harness/built_in/chat_seed.rs
senamakel Sep 11, 2026
6d68df2
feat(server): expose openhuman session key on agent session rows
senamakel Sep 11, 2026
71622ba
chore: files changed src/server/operator.rs
senamakel Sep 11, 2026
3f419c9
chore: files changed frontend/src/api/types.ts
senamakel Sep 11, 2026
e0e4bf9
chore: files changed frontend/src/views/room/RawTurns.tsx
senamakel Sep 11, 2026
3b57460
chore: files changed frontend/test/unit/raw-turns-toggle.test.ts
senamakel Sep 11, 2026
27f870a
chore: files changed vendor/openhuman
senamakel Sep 11, 2026
230a90f
chore: files changed vendor/openhuman
senamakel Sep 11, 2026
42804ec
chore: files changed vendor/openhuman
senamakel Sep 11, 2026
2c515c3
chore(vendor): bump openhuman submodule
senamakel Sep 11, 2026
76ebd34
chore(vendor): bump openhuman submodule
senamakel Sep 11, 2026
be8231a
test(working-indicator): cover teammate name in working indicator
senamakel Sep 11, 2026
adefbaa
chore(vendor): bump openhuman submodule
senamakel Sep 11, 2026
8578375
chore(deps): bump transitive dependencies in lockfile
senamakel Sep 11, 2026
f4c2d72
chore(vendor): bump openhuman submodule
senamakel Sep 11, 2026
ee1d815
refactor(session_key): move session key module out of harness
senamakel Sep 11, 2026
5c77dba
chore(harness): remove unused module
senamakel Sep 11, 2026
2b32795
fix(lib): handle empty input without panicking
senamakel Sep 11, 2026
b9ef51f
chore(vendor): bump openhuman submodule
senamakel Sep 11, 2026
4f7a400
refactor(server): update session key module path
senamakel Sep 11, 2026
cb3bfe7
chore(vendor): bump openhuman submodule
senamakel Sep 11, 2026
10afccb
feat(harness): add agent session built-in
senamakel Sep 11, 2026
68a262d
chore(harness): register built-in harness module
senamakel Sep 11, 2026
4023ffb
chore(speech_tools): remove unused speech tool helpers
senamakel Sep 11, 2026
bfe528a
fix(chat_history): handle empty history when loading messages
senamakel Sep 11, 2026
2af2682
fix(chat_history): handle empty history when loading messages
senamakel Sep 11, 2026
6130344
fix(chat_history): handle empty history when loading messages
senamakel Sep 11, 2026
ffaa588
fix(chat_history): handle empty history without panicking
senamakel Sep 11, 2026
7078f38
fix(chat_history): handle empty history when loading messages
senamakel Sep 11, 2026
22f57dd
fix(chat_history): handle empty history when loading messages
senamakel Sep 11, 2026
60224a8
fix(server): handle operator errors without panicking
senamakel Sep 11, 2026
0edd223
fix(server): handle operator errors without panicking
senamakel Sep 11, 2026
d3f9457
feat(api): add types for paginated responses
senamakel Sep 11, 2026
fa0ffa8
feat(room): add raw turns view
senamakel Sep 11, 2026
59fda32
test(raw-turns): cover raw turns toggle behaviour
senamakel Sep 11, 2026
bdd6f5c
test(server): reflow session key expectation onto one line
senamakel Sep 11, 2026
cc5b36c
fix(chat_history): handle empty history when loading messages
senamakel Sep 11, 2026
339eb9b
refactor(room): extract room header into its own component
senamakel Sep 11, 2026
88a5b40
refactor(room): extract room header into its own component
senamakel Sep 11, 2026
4de0f77
test(raw-turns): cover raw turns toggle behaviour
senamakel Sep 11, 2026
5a4a43a
docs(spec): document speech runtime behaviour
senamakel Sep 11, 2026
49e37a7
refactor(server): extract operator state into dedicated module
senamakel Sep 11, 2026
a0a09ee
fix(server): handle operator errors without panicking
senamakel Sep 11, 2026
15f2782
chore(speech_tools): remove unused speech tool helpers
senamakel Sep 11, 2026
8992a8d
feat(harness): add agent session built-in
senamakel Sep 11, 2026
c0dc67d
chore(vendor): bump openhuman submodule
senamakel Sep 11, 2026
d216c39
style(speech_tools): reformat test helper to satisfy rustfmt
senamakel Sep 11, 2026
f6d5555
Merge remote-tracking branch 'origin/main' into pr-2247
senamakel Sep 11, 2026
7a85040
chore(deps): update Cargo.lock
senamakel Sep 11, 2026
3cbdb38
feat(harness): add agent session built-in
senamakel Sep 11, 2026
25ed226
feat(harness): add agent session built-in
senamakel Sep 11, 2026
86be0b0
chore(harness): register built-in harness modules
senamakel Sep 11, 2026
96ae228
chore(harness): register built-in harness modules
senamakel Sep 11, 2026
955ae73
chore(harness): register built-in modules
senamakel Sep 11, 2026
13b1264
chore(speech_tools): remove unused speech tool helpers
senamakel Sep 11, 2026
4fc1824
chore(speech_tools): remove unused speech tool helpers
senamakel Sep 11, 2026
5ffa4d8
chore(speech_tools): remove unused speech tool helpers
senamakel Sep 11, 2026
532643a
test(speech_tools): use overlay teammates in dm tests
senamakel Sep 11, 2026
53063de
chore(speech_tools): remove unused speech tool helpers
senamakel Sep 11, 2026
c260c0d
feat(harness): add agent session built-in
senamakel Sep 11, 2026
c914d86
refactor(build): extract build command handling into a helper
senamakel Sep 11, 2026
6231bf3
refactor(build): extract build command handling into a helper
senamakel Sep 11, 2026
67fd306
refactor(build): extract build command handling into a helper
senamakel Sep 11, 2026
2ee806c
chore(speech_tools): remove unused speech tool helpers
senamakel Sep 11, 2026
828edff
feat(room): show elapsed time in working indicator
senamakel Sep 11, 2026
20c5998
feat(room): show elapsed time in working indicator
senamakel Sep 11, 2026
58bf49d
test(working-indicator): cover teammate name in working indicator
senamakel Sep 11, 2026
3be0759
test(working-indicator): cover teammate name in working indicator
senamakel Sep 11, 2026
27158b8
test(working-indicator): cover teammate name in working indicator
senamakel Sep 11, 2026
f03186f
test(working-indicator): cover teammate name in working indicator
senamakel Sep 11, 2026
4b4b0e0
feat(team): add agent session view
senamakel Sep 11, 2026
b8ffe78
fix(chat_history): handle empty history when loading messages
senamakel Sep 11, 2026
0bed8cc
chore(speech_tools): remove unused speech tool helpers
senamakel Sep 11, 2026
bb8426a
fix(speech_tools): handle empty speech input without panicking
senamakel Sep 11, 2026
78dd53f
chore(speech_tools): remove unused speech tool helpers
senamakel Sep 11, 2026
a8f860c
chore(speech_tools): remove unused speech tool helpers
senamakel Sep 11, 2026
6d36056
chore(speech_tools): remove unused speech tool helpers
senamakel Sep 11, 2026
e926227
chore(speech_tools): remove unused speech tool helpers
senamakel Sep 11, 2026
678334b
chore(companies): add retail_co company profile
senamakel Sep 11, 2026
cd3cea8
feat(scripts): add tau2 simulation runner
senamakel Sep 11, 2026
71e767f
feat(room): show step timeline in room view
senamakel Sep 11, 2026
b2abfa3
feat(team): add agent session view
senamakel Sep 11, 2026
9bd8191
refactor(runtime): simplify delegation state handling
senamakel Sep 11, 2026
bb83616
refactor(runtime): extract delegation helpers into a module
senamakel Sep 11, 2026
d85404c
test(e2e): add agent session end-to-end coverage
senamakel Sep 11, 2026
cc7d5c3
test(auth): cover agent session routes in the auth matrix
senamakel Sep 11, 2026
a6dd978
test(auth): cover agent session routes in the auth matrix
senamakel Sep 11, 2026
5529522
test(auth): update expected route-method row count
senamakel Sep 11, 2026
2c484bb
test(auth): update expected concrete path count
senamakel Sep 11, 2026
671df0f
test(auth): update expected snapshot line count
senamakel Sep 11, 2026
19253c9
chore(speech_tools): remove unused speech tool helpers
senamakel Sep 11, 2026
dfe52f7
chore(speech_tools): remove unused speech tool helpers
senamakel Sep 11, 2026
c2156d7
fix(speech_tools): handle empty transcript results
senamakel Sep 11, 2026
7227d03
chore(speech_tools): remove unused speech tool helpers
senamakel Sep 11, 2026
0caf8c3
chore(speech_tools): remove unused speech tool helpers
senamakel Sep 11, 2026
b23062d
chore(speech_tools): remove unused speech tool helpers
senamakel Sep 11, 2026
c4f0c95
refactor(speech_tools): extract speech tool definitions into a dedica…
senamakel Sep 11, 2026
0074829
test(agent-session-tab): cover session tab rendering
senamakel Sep 11, 2026
bee7197
feat(episode): add episode tracking for hivemind
senamakel Sep 11, 2026
0d6abd0
chore: files changed src/hivemind/episode.rs
senamakel Sep 11, 2026
5956051
fix(e2e): correct inference test expectations
senamakel Sep 11, 2026
4cd6c66
chore(speech_tools): add missing newline at end of file
senamakel Sep 11, 2026
62c92e5
fix(harness): handle empty speech input in speech_tools
senamakel Sep 11, 2026
539de62
chore: files changed src/hivemind/episode.rs
senamakel Sep 11, 2026
26b773d
fix(episode): handle missing episode metadata gracefully
senamakel Sep 11, 2026
11869a7
fix(episode): wrap long closure in chain call
senamakel Sep 11, 2026
a5a2ff7
fix(harness): restore speech tool output handling
senamakel Sep 11, 2026
d08ca90
fix(speech_tools): correct speech synthesis alignment for edge cases
senamakel Sep 11, 2026
ef497b7
refactor(speech-tools): replace inline text extraction with helper fu…
senamakel Sep 11, 2026
42cfacb
fix(harness): restore speech tool output capture
senamakel Sep 11, 2026
588748b
fix(speech_tools): handle empty input in speech synthesis
senamakel Sep 11, 2026
a9b6589
fix(episode): restore missing episode metadata
senamakel Sep 11, 2026
9f06ab9
fix(harness): restore speech tool output handling
senamakel Sep 11, 2026
e8cb17e
refactor(speech_tools): reformat chained any calls for readability
senamakel Sep 11, 2026
21b2be5
feat(harness): add agent session built-in
senamakel Sep 11, 2026
4d6c414
feat(harness): add agent session built-in
senamakel Sep 11, 2026
f7cd143
fix(harness): restore speech tool output capture
senamakel Sep 11, 2026
9c4db4f
chore(harness): restore build script for built-in tests
senamakel Sep 11, 2026
cd1b214
Merge remote-tracking branch 'refs/remotes/upstream/main' into pr/2247
senamakel Sep 14, 2026
c75e9fe
fix(episode): guard bare direct-line target against desk collisions
senamakel Sep 14, 2026
78f4fa2
fix(company): correct indentation in credential_slug
senamakel Sep 14, 2026
9c373c9
chore(deps): update syn from 3.0.3 to 3.0.4 in Cargo.lock
senamakel Sep 14, 2026
5191c52
chore(test): restore inference e2e test
senamakel Sep 14, 2026
41d68d3
test: remove inference-managed-round-trip test
senamakel Sep 14, 2026
c0d540c
feat(company): add selected provider to inference declarations
senamakel Sep 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
198 changes: 121 additions & 77 deletions Cargo.lock

Large diffs are not rendered by default.

4 changes: 3 additions & 1 deletion companies/retail_co/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,9 @@ console's Inference card or over the API:
```bash
curl -X PUT localhost:8099/api/v1/companies/retail-co/inference \
-H 'content-type: application/json' \
-d "{\"provider\":\"openrouter\",\"base_url\":\"https://openrouter.ai/api/v1\",\"key\":\"$OPENROUTER_API_KEY\"}"
-d "{\"provider\":\"openrouter\",\"base_url\":\"https://openrouter.ai/api/v1\",\"key\":\"$OPENROUTER_API_KEY\",
\"models\":{\"chat-v1\":\"deepseek/deepseek-v4-flash\",\"reasoning-v1\":\"deepseek/deepseek-v4-flash\",
\"agentic-v1\":\"deepseek/deepseek-v4-flash\",\"vision-v1\":\"deepseek/deepseek-v4-flash\"}}"
```

**Send the `models` table with the key.** `PUT …/inference` stores the whole
Expand Down
25 changes: 15 additions & 10 deletions companies/retail_co/agents/amendments.toml
Original file line number Diff line number Diff line change
Expand Up @@ -114,22 +114,27 @@ You share the **order_ops** desk with `cancellations`. A case arriving here is d
floor and let the room settle which remedy applies. You hold different tools
and neither of you can reach the other's, so it has to be argued for.

- **@returns** — delivered orders. Seats: `exchanges`, `refunds`
- **@#returns** — delivered orders. Seats: `exchanges`, `refunds`

## Handing work on

Two ways out of this turn, and they do different things.

**To a desk — when the choice between its remedies is the question.** Write that
desk's mention in your reply, on its own line: `@returns …`. The mention IS the
hand-off. It puts the case on that desk's channel, its seats deliberate it
between them, and what the room settles on comes back to you as their answer.
Reach for this whenever you do not know which remedy applies — deciding that is
what the room is for.

Write it as `@returns`, exactly. A desk named in passing — "returns can do this",
or the name in bold — resolves to nothing and reaches nobody: the hand-off is
dropped silently and the work never happens.
desk's mention in your reply, on its own line: `@#returns …`. The mention IS the
hand-off, and it is smaller than it sounds: ONE teammate on that desk takes ONE
turn and answers. That desk does not deliberate your question between its seats
and no room settles it — what comes back is one colleague's reading, on the
record, for you to weigh.

Ask when that desk holds a fact yours does not, and ask EARLY. The answer is
information and not a vote: it supports nothing here until you or a teammate
spends a line acting on it.

Write it as `@#returns`, exactly. The `@#` form addresses a desk and cannot be
shadowed by a teammate who happens to share the name. A desk named in passing —
"returns can do this", or the name in bold — resolves to nothing and reaches
nobody: the hand-off is dropped silently and the work never happens.

**To one named person — when you already know who owns it.** Call
`delegate_to_teammate` with their roster id. One turn from that person, no room.
Expand Down
25 changes: 15 additions & 10 deletions companies/retail_co/agents/cancellations.toml
Original file line number Diff line number Diff line change
Expand Up @@ -100,22 +100,27 @@ You share the **order_ops** desk with `amendments`. A case arriving here is deli
floor and let the room settle which remedy applies. You hold different tools
and neither of you can reach the other's, so it has to be argued for.

- **@returns** — delivered orders. Seats: `exchanges`, `refunds`
- **@#returns** — delivered orders. Seats: `exchanges`, `refunds`

## Handing work on

Two ways out of this turn, and they do different things.

**To a desk — when the choice between its remedies is the question.** Write that
desk's mention in your reply, on its own line: `@returns …`. The mention IS the
hand-off. It puts the case on that desk's channel, its seats deliberate it
between them, and what the room settles on comes back to you as their answer.
Reach for this whenever you do not know which remedy applies — deciding that is
what the room is for.

Write it as `@returns`, exactly. A desk named in passing — "returns can do this",
or the name in bold — resolves to nothing and reaches nobody: the hand-off is
dropped silently and the work never happens.
desk's mention in your reply, on its own line: `@#returns …`. The mention IS the
hand-off, and it is smaller than it sounds: ONE teammate on that desk takes ONE
turn and answers. That desk does not deliberate your question between its seats
and no room settles it — what comes back is one colleague's reading, on the
record, for you to weigh.

Ask when that desk holds a fact yours does not, and ask EARLY. The answer is
information and not a vote: it supports nothing here until you or a teammate
spends a line acting on it.

Write it as `@#returns`, exactly. The `@#` form addresses a desk and cannot be
shadowed by a teammate who happens to share the name. A desk named in passing —
"returns can do this", or the name in bold — resolves to nothing and reaches
nobody: the hand-off is dropped silently and the work never happens.

**To one named person — when you already know who owns it.** Call
`delegate_to_teammate` with their roster id. One turn from that person, no room.
Expand Down
25 changes: 15 additions & 10 deletions companies/retail_co/agents/exchanges.toml
Original file line number Diff line number Diff line change
Expand Up @@ -102,22 +102,27 @@ You share the **returns** desk with `refunds`. A case arriving here is deliberat
floor and let the room settle which remedy applies. You hold different tools
and neither of you can reach the other's, so it has to be argued for.

- **@order_ops** — pending orders, not yet shipped. Seats: `cancellations`, `amendments`
- **@#order_ops** — pending orders, not yet shipped. Seats: `cancellations`, `amendments`

## Handing work on

Two ways out of this turn, and they do different things.

**To a desk — when the choice between its remedies is the question.** Write that
desk's mention in your reply, on its own line: `@returns …`. The mention IS the
hand-off. It puts the case on that desk's channel, its seats deliberate it
between them, and what the room settles on comes back to you as their answer.
Reach for this whenever you do not know which remedy applies — deciding that is
what the room is for.

Write it as `@returns`, exactly. A desk named in passing — "returns can do this",
or the name in bold — resolves to nothing and reaches nobody: the hand-off is
dropped silently and the work never happens.
desk's mention in your reply, on its own line: `@#order_ops …`. The mention IS the
hand-off, and it is smaller than it sounds: ONE teammate on that desk takes ONE
turn and answers. That desk does not deliberate your question between its seats
and no room settles it — what comes back is one colleague's reading, on the
record, for you to weigh.

Ask when that desk holds a fact yours does not, and ask EARLY. The answer is
information and not a vote: it supports nothing here until you or a teammate
spends a line acting on it.

Write it as `@#order_ops`, exactly. The `@#` form addresses a desk and cannot be
shadowed by a teammate who happens to share the name. A desk named in passing —
"order_ops can do this", or the name in bold — resolves to nothing and reaches
nobody: the hand-off is dropped silently and the work never happens.

**To one named person — when you already know who owns it.** Call
`delegate_to_teammate` with their roster id. One turn from that person, no room.
Expand Down
25 changes: 15 additions & 10 deletions companies/retail_co/agents/refunds.toml
Original file line number Diff line number Diff line change
Expand Up @@ -104,22 +104,27 @@ You share the **returns** desk with `exchanges`. A case arriving here is deliber
floor and let the room settle which remedy applies. You hold different tools
and neither of you can reach the other's, so it has to be argued for.

- **@order_ops** — pending orders, not yet shipped. Seats: `cancellations`, `amendments`
- **@#order_ops** — pending orders, not yet shipped. Seats: `cancellations`, `amendments`

## Handing work on

Two ways out of this turn, and they do different things.

**To a desk — when the choice between its remedies is the question.** Write that
desk's mention in your reply, on its own line: `@returns …`. The mention IS the
hand-off. It puts the case on that desk's channel, its seats deliberate it
between them, and what the room settles on comes back to you as their answer.
Reach for this whenever you do not know which remedy applies — deciding that is
what the room is for.

Write it as `@returns`, exactly. A desk named in passing — "returns can do this",
or the name in bold — resolves to nothing and reaches nobody: the hand-off is
dropped silently and the work never happens.
desk's mention in your reply, on its own line: `@#order_ops …`. The mention IS the
hand-off, and it is smaller than it sounds: ONE teammate on that desk takes ONE
turn and answers. That desk does not deliberate your question between its seats
and no room settles it — what comes back is one colleague's reading, on the
record, for you to weigh.

Ask when that desk holds a fact yours does not, and ask EARLY. The answer is
information and not a vote: it supports nothing here until you or a teammate
spends a line acting on it.

Write it as `@#order_ops`, exactly. The `@#` form addresses a desk and cannot be
shadowed by a teammate who happens to share the name. A desk named in passing —
"order_ops can do this", or the name in bold — resolves to nothing and reaches
nobody: the hand-off is dropped silently and the work never happens.

**To one named person — when you already know who owns it.** Call
`delegate_to_teammate` with their roster id. One turn from that person, no room.
Expand Down
27 changes: 16 additions & 11 deletions companies/retail_co/agents/triage.toml
Original file line number Diff line number Diff line change
Expand Up @@ -93,23 +93,28 @@ You are `triage` on the **triage** desk.
You are the only seat on your desk, so nothing is deliberated here — you
answer in one turn.

- **@order_ops** — pending orders, not yet shipped. Seats: `cancellations`, `amendments`
- **@returns** — delivered orders. Seats: `exchanges`, `refunds`
- **@#order_ops** — pending orders, not yet shipped. Seats: `cancellations`, `amendments`
- **@#returns** — delivered orders. Seats: `exchanges`, `refunds`

## Handing work on

Two ways out of this turn, and they do different things.

**To a desk — when the choice between its remedies is the question.** Write that
desk's mention in your reply, on its own line: `@returns …`. The mention IS the
hand-off. It puts the case on that desk's channel, its seats deliberate it
between them, and what the room settles on comes back to you as their answer.
Reach for this whenever you do not know which remedy applies — deciding that is
what the room is for.

Write it as `@returns`, exactly. A desk named in passing — "returns can do this",
or the name in bold — resolves to nothing and reaches nobody: the hand-off is
dropped silently and the work never happens.
desk's mention in your reply, on its own line — `@#order_ops …` for an order
still pending, `@#returns …` for one already delivered. That choice is the whole
of your job, so make it on the order's status and nothing else.

The mention IS the hand-off, and it is smaller than it sounds: ONE teammate on
that desk takes ONE turn and answers. That desk does not deliberate your question
between its seats and no room settles it — what comes back is one colleague's
reading, on the record, for you to weigh. The answer is information and not a
vote: it supports nothing until somebody spends a line acting on it.

Write it as `@#order_ops` or `@#returns`, exactly. The `@#` form addresses a desk
and cannot be shadowed by a teammate who happens to share the name. A desk named
in passing — "returns can do this", or the name in bold — resolves to nothing and
reaches nobody: the hand-off is dropped silently and the work never happens.

**To one named person — when you already know who owns it.** Call
`delegate_to_teammate` with their roster id. One turn from that person, no room.
Expand Down
45 changes: 45 additions & 0 deletions companies/retail_co/company.toml
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,21 @@ turn_budget = 12
quorum = 2
blind_round = true

[group_chat.hive.aside]
# The private agent-to-agent line: a seat may add ONE `!aside @peer` line under
# its move. Off unless a desk asks — `AsidePolicy::DEFAULT` permits nothing,
# deliberately, because the mechanism does not get the benefit of the doubt.
#
# Every person and the operator still read every row in full. This is a
# deliberation device, never a security boundary: an exchange no human could
# audit is the covert channel the design exists to avoid. A peer outside the
# aside still sees that it happened, who was in it, and where it settled.
#
# Defaults left alone: a pair (`max_members = 1`, excluding the author), two
# rows (`max_messages = 2` — a question and an answer), and `must_surface`,
# which makes a pair deposit one desk-visible line before opening another.
enabled = true

[group_chat.hive.referral]
enabled = true
reach = "desks"
Expand Down Expand Up @@ -185,6 +200,21 @@ turn_budget = 12
quorum = 2
blind_round = true

[group_chat.hive.aside]
# The private agent-to-agent line: a seat may add ONE `!aside @peer` line under
# its move. Off unless a desk asks — `AsidePolicy::DEFAULT` permits nothing,
# deliberately, because the mechanism does not get the benefit of the doubt.
#
# Every person and the operator still read every row in full. This is a
# deliberation device, never a security boundary: an exchange no human could
# audit is the covert channel the design exists to avoid. A peer outside the
# aside still sees that it happened, who was in it, and where it settled.
#
# Defaults left alone: a pair (`max_members = 1`, excluding the author), two
# rows (`max_messages = 2` — a question and an answer), and `must_surface`,
# which makes a pair deposit one desk-visible line before opening another.
enabled = true

[group_chat.hive.referral]
enabled = true
reach = "desks"
Expand All @@ -210,6 +240,21 @@ turn_budget = 12
quorum = 2
blind_round = true

[group_chat.hive.aside]
# The private agent-to-agent line: a seat may add ONE `!aside @peer` line under
# its move. Off unless a desk asks — `AsidePolicy::DEFAULT` permits nothing,
# deliberately, because the mechanism does not get the benefit of the doubt.
#
# Every person and the operator still read every row in full. This is a
# deliberation device, never a security boundary: an exchange no human could
# audit is the covert channel the design exists to avoid. A peer outside the
# aside still sees that it happened, who was in it, and where it settled.
#
# Defaults left alone: a pair (`max_members = 1`, excluding the author), two
# rows (`max_messages = 2` — a question and an answer), and `must_surface`,
# which makes a pair deposit one desk-visible line before opening another.
enabled = true

[group_chat.hive.referral]
enabled = true
reach = "desks"
Expand Down
Loading
Loading