@steerable/runtime-darwin-arm64 0.9.2 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/package.json +1 -1
  2. package/python-runtime/manifest.json +1 -1
  3. package/python-runtime/python/lib/python3.12/site-packages/{steerable_agent_harness-0.9.2.dist-info → steerable_agent_harness-0.10.0.dist-info}/METADATA +1 -1
  4. package/python-runtime/python/lib/python3.12/site-packages/{steerable_agent_harness-0.9.2.dist-info → steerable_agent_harness-0.10.0.dist-info}/RECORD +7 -7
  5. package/python-runtime/python/lib/python3.12/site-packages/{steerable_agent_protocol-0.9.2.dist-info → steerable_agent_protocol-0.10.0.dist-info}/METADATA +1 -1
  6. package/python-runtime/python/lib/python3.12/site-packages/steerable_agent_protocol-0.10.0.dist-info/RECORD +11 -0
  7. package/python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime/__init__.py +48 -0
  8. package/python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime/budget.py +124 -0
  9. package/python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime/child_notice.py +84 -0
  10. package/python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime/child_record.py +174 -0
  11. package/python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime/engines.py +499 -0
  12. package/python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime/history.py +114 -1
  13. package/python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime/orchestration.py +496 -33
  14. package/python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime/pool.py +662 -16
  15. package/python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime/registry.py +345 -0
  16. package/python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime/storage/__init__.py +52 -0
  17. package/python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime/storage/in_memory.py +74 -0
  18. package/python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime/storage/sqlalchemy_store.py +153 -0
  19. package/python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime/storage/sqlite_store.py +117 -1
  20. package/python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime/subagent.py +157 -6
  21. package/python-runtime/python/lib/python3.12/site-packages/{steerable_agent_runtime-0.9.2.dist-info → steerable_agent_runtime-0.10.0.dist-info}/METADATA +38 -3
  22. package/python-runtime/python/lib/python3.12/site-packages/{steerable_agent_runtime-0.9.2.dist-info → steerable_agent_runtime-0.10.0.dist-info}/RECORD +26 -16
  23. package/python-runtime/python/lib/python3.12/site-packages/steerable_sidecar/sidecar.py +545 -6
  24. package/python-runtime/python/lib/python3.12/site-packages/steerable_sidecar-0.10.0.dist-info/METADATA +97 -0
  25. package/python-runtime/python/lib/python3.12/site-packages/{steerable_sidecar-0.9.2.dist-info → steerable_sidecar-0.10.0.dist-info}/RECORD +9 -9
  26. package/runtime.json +57 -37
  27. package/python-runtime/python/lib/python3.12/site-packages/steerable_agent_protocol-0.9.2.dist-info/RECORD +0 -11
  28. package/python-runtime/python/lib/python3.12/site-packages/steerable_sidecar-0.9.2.dist-info/METADATA +0 -58
  29. /package/python-runtime/python/lib/python3.12/site-packages/{steerable_agent_harness-0.9.2.dist-info → steerable_agent_harness-0.10.0.dist-info}/INSTALLER +0 -0
  30. /package/python-runtime/python/lib/python3.12/site-packages/{steerable_agent_harness-0.9.2.dist-info → steerable_agent_harness-0.10.0.dist-info}/WHEEL +0 -0
  31. /package/python-runtime/python/lib/python3.12/site-packages/{steerable_agent_protocol-0.9.2.dist-info → steerable_agent_protocol-0.10.0.dist-info}/INSTALLER +0 -0
  32. /package/python-runtime/python/lib/python3.12/site-packages/{steerable_agent_protocol-0.9.2.dist-info → steerable_agent_protocol-0.10.0.dist-info}/WHEEL +0 -0
  33. /package/python-runtime/python/lib/python3.12/site-packages/{steerable_agent_runtime-0.9.2.dist-info → steerable_agent_runtime-0.10.0.dist-info}/INSTALLER +0 -0
  34. /package/python-runtime/python/lib/python3.12/site-packages/{steerable_agent_runtime-0.9.2.dist-info → steerable_agent_runtime-0.10.0.dist-info}/WHEEL +0 -0
  35. /package/python-runtime/python/lib/python3.12/site-packages/{steerable_sidecar-0.9.2.dist-info → steerable_sidecar-0.10.0.dist-info}/INSTALLER +0 -0
  36. /package/python-runtime/python/lib/python3.12/site-packages/{steerable_sidecar-0.9.2.dist-info → steerable_sidecar-0.10.0.dist-info}/WHEEL +0 -0
  37. /package/python-runtime/python/lib/python3.12/site-packages/{steerable_sidecar-0.9.2.dist-info → steerable_sidecar-0.10.0.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,97 @@
1
+ Metadata-Version: 2.4
2
+ Name: steerable-sidecar
3
+ Version: 0.10.0
4
+ Summary: Steerable agent runtime sidecar — JSON-RPC over stdio.
5
+ License: Apache-2.0
6
+ Requires-Python: >=3.10
7
+ Description-Content-Type: text/markdown
8
+ Requires-Dist: pydantic>=2.10.0
9
+ Requires-Dist: httpx[socks]>=0.27
10
+ Requires-Dist: Pillow>=10.4
11
+ Requires-Dist: steerable-agent-protocol<1.0.0,>=0.1.0
12
+ Requires-Dist: steerable-agent-harness<1.0.0,>=0.1.0
13
+ Requires-Dist: steerable-agent-runtime<1.0.0,>=0.1.0
14
+ Requires-Dist: ag-ui-protocol>=0.1.21
15
+ Requires-Dist: agent-client-protocol>=0.12.1
16
+
17
+ # steerable-sidecar
18
+
19
+ The portable Python entrypoint for the **steerable** framework. Designed to be
20
+ spawned by an Electron / desktop host (or directly from a CLI) and addressed
21
+ via stdio JSON-RPC 2.0.
22
+
23
+ ## Quick start
24
+
25
+ ```bash
26
+ pip install steerable-sidecar
27
+ python -m steerable_sidecar
28
+ ```
29
+
30
+ Or use the console script:
31
+
32
+ ```bash
33
+ steerable-sidecar
34
+ ```
35
+
36
+ The process:
37
+
38
+ 1. Initializes the in-memory storage and a default tool router.
39
+ 2. Prints the **ready signal** on **stderr** as a single line:
40
+ `__SIDECAR_READY__:<json>` matching `spec/sidecar/SidecarHealth`.
41
+ 3. Begins reading JSON-RPC frames from stdin (one frame per line).
42
+ 4. Writes responses and notifications to stdout.
43
+
44
+ See `spec/sidecar/README.md` for the full method/notification catalog.
45
+
46
+ ## Upgrading from 0.9
47
+
48
+ Sub-agents became persistent objects: they outlive the turn that spawned them,
49
+ are recorded in a durable index, and can be listed and resumed after a restart.
50
+ Every change below is additive except where noted.
51
+
52
+ - **New RPC `agent.children.list`** — every child recorded for a parent
53
+ session, with a composed status (`running` from a live handle, `interrupted`
54
+ when the row never settled and no handle exists) and `resumable`.
55
+ Params: `{parentRecordId? | recordId?, prefix?, includeFinished?,
56
+ answerPreviewChars?}`. This is the durable answer the per-turn pool cannot
57
+ give once the spawning turn ends.
58
+ - **New RPC `agent.children.interrupt`** — cooperatively stop one running
59
+ child of a chat's live turn. Params `{chatId, childId}`; returns
60
+ `{interrupted, reason?}`. `interrupted: false` means the child is not
61
+ running in this process, which is the honest answer for a row that settled
62
+ between render and click.
63
+ - **New notification `agent.child` kinds** — `child_needs_input` (with the
64
+ child's `intro`), and `usage` on the terminal kinds. A host that renders the
65
+ child list reads the bill from the event instead of walking the index.
66
+ - **`stream.done` gains fields, changes none.** `usage` grows
67
+ `childPromptTokens` / `childCompletionTokens` / `childTotalTokens`,
68
+ `children[]` (per-child split) and `unknownUsageChildren` (children whose
69
+ engine reports no tokens at all). `treeUsage: {limit, spent, byAgent}` is
70
+ present only when the request carried `budgetTokens`.
71
+ - **`budgetTokens` now bounds the whole turn tree**, not each loop.
72
+ - **`orchestration` accepts an object**: `{enabled, maxDepth, maxParallel,
73
+ childMaxRounds, childMaxToolErrors, forkTurns}`. A bare boolean still means
74
+ `1 / 4`, so an older client keeps working.
75
+ - **Sub-agent profiles accept `model` / `reasoningEffort`** (both optional;
76
+ omit to follow the parent) and **`engine: {kind: "acp", command, …}`** to run
77
+ that profile on an external ACP agent instead of a local loop. Any `kind`
78
+ other than `"acp"` fails at load with `unsupported_engine` rather than
79
+ running locally.
80
+ - **`agent_spawn` accepts `model` / `reasoningEffort` when
81
+ `context: "fork"`**, and reports `cacheNote: "cold"` plus `forkRoute` when
82
+ the child re-reads the parent prefix on a different route. Changing the route
83
+ without a fork fails closed.
84
+
85
+ ## Embedding
86
+
87
+ ```python
88
+ import asyncio
89
+ from steerable_sidecar import Sidecar
90
+
91
+ async def main() -> None:
92
+ sidecar = Sidecar()
93
+ sidecar.tools.register(my_tool)
94
+ await sidecar.serve()
95
+
96
+ asyncio.run(main())
97
+ ```
@@ -1,14 +1,14 @@
1
1
  ../../../bin/steerable-sidecar,sha256=585U51qsZ6YLxjRRp6qNsSx231-LesLDofKABRJGKPg,264
2
2
  ../../../bin/steerable-sidecar-acp,sha256=NyQYfZ5KrcRCUhtmpNf2dU05RdUwekozg8GtUdFcxh0,267
3
3
  ../../../bin/steerable-sidecar-headless,sha256=fnPsDRsBH1__rlO-Zhh_8LzgplWrXILWJpad3oFSvF4,264
4
- steerable_sidecar-0.9.2.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
5
- steerable_sidecar-0.9.2.dist-info/METADATA,sha256=bY8CfPNMMv-Z9ZSEaTo0uOMtYA4yTW66a6lXeJ0lgBU,1511
6
- steerable_sidecar-0.9.2.dist-info/RECORD,,
7
- steerable_sidecar-0.9.2.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
- steerable_sidecar-0.9.2.dist-info/WHEEL,sha256=mOdXR9C3wMVov7cSY8PY-XCzo3SmmWCHvGQr5csJoao,91
9
- steerable_sidecar-0.9.2.dist-info/direct_url.json,sha256=umqbARqsWhcK_jFKFeiV9YGTUxj61Z2PFhSzhmtE-dc,296
10
- steerable_sidecar-0.9.2.dist-info/entry_points.txt,sha256=qrH9-x-0XSrW3-G1-QmU4j8A7b731wKPnc_XS_oAkO8,190
11
- steerable_sidecar-0.9.2.dist-info/top_level.txt,sha256=0QLlBP9tgRT5PLQXFYLc_FTgTH87Qn6JGsgJj4ZvhDs,18
4
+ steerable_sidecar-0.10.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
5
+ steerable_sidecar-0.10.0.dist-info/METADATA,sha256=qN2Zrvn1Oju4X7lsELeQol8upKopfL-WAl-4SPz9vPc,3877
6
+ steerable_sidecar-0.10.0.dist-info/RECORD,,
7
+ steerable_sidecar-0.10.0.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
+ steerable_sidecar-0.10.0.dist-info/WHEEL,sha256=mOdXR9C3wMVov7cSY8PY-XCzo3SmmWCHvGQr5csJoao,91
9
+ steerable_sidecar-0.10.0.dist-info/direct_url.json,sha256=QJswYH-m1btyopQsUDiROoHYtZ-qXueJ0bgs5vDdT3E,297
10
+ steerable_sidecar-0.10.0.dist-info/entry_points.txt,sha256=qrH9-x-0XSrW3-G1-QmU4j8A7b731wKPnc_XS_oAkO8,190
11
+ steerable_sidecar-0.10.0.dist-info/top_level.txt,sha256=0QLlBP9tgRT5PLQXFYLc_FTgTH87Qn6JGsgJj4ZvhDs,18
12
12
  steerable_sidecar/__init__.py,sha256=p-szaR3e6eP8xV0O9GyEKgdEISz3iaDXvsZv8XhBEKo,669
13
13
  steerable_sidecar/__main__.py,sha256=qzdZBagiiY-v60K__iEjRSLxh3e-davno32o3s2SpQI,4294
14
14
  steerable_sidecar/__pycache__/__init__.cpython-312.pyc,,
@@ -69,7 +69,7 @@ steerable_sidecar/run_code_driver.py,sha256=L46TH_st_7Kw9SdhPcDK8GQP0I-7xTmjRIAz
69
69
  steerable_sidecar/sandbox.py,sha256=9Ts-ddkaqWp9E-BcmZamj2SWuVugcHBCLo6LqBzMEs0,30164
70
70
  steerable_sidecar/search_tools.py,sha256=CKqca5zjGTZsA7uLKh_UkXz9AFt4Fe1PBVqTQTHVYNs,6118
71
71
  steerable_sidecar/shell_session.py,sha256=Q1MIQXwHWag1QUbUfApQ75Q0aYSFXZaoeo7oV6wTPhU,10538
72
- steerable_sidecar/sidecar.py,sha256=JLKRZ83e0ovkq_A22rFcax0GM6Zkv_uRMarjlr-AkpM,164892
72
+ steerable_sidecar/sidecar.py,sha256=nCb1iH3_Ls8Ug571Bi95Z1DvnC7-VzENnrldmv8eQmU,189423
73
73
  steerable_sidecar/stream_chunks.py,sha256=SghkPzrRkmBdXN6FoR8Sldpxi-WT8GRzEYtA3tEyQVU,4681
74
74
  steerable_sidecar/todo_tools.py,sha256=A0XKJd5ZK6TVj3qH9zNvoCKd_Cebq_P5FhWvYoVv1hQ,1598
75
75
  steerable_sidecar/tool_contract.json,sha256=BEj64csxA_jr8hh_gHKsPu97jqNyIHa7YE_U5oYsvok,8135
package/runtime.json CHANGED
@@ -8,7 +8,7 @@
8
8
  },
9
9
  {
10
10
  "path": "python-runtime/manifest.json",
11
- "sha256": "626b24c89d696f1cbdb8ed36143bf030571935fee9f75d10463ff0c02c847981"
11
+ "sha256": "0169aa7764f3865253fe80f11ed265c90e6b9bc83fdfe5c78aff86557c8babf4"
12
12
  },
13
13
  {
14
14
  "path": "python-runtime/python/bin/2to3",
@@ -6815,19 +6815,19 @@
6815
6815
  "sha256": "3e972a442ac2e0d22211245269400f662d05799427e2047109496a5529e02978"
6816
6816
  },
6817
6817
  {
6818
- "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_harness-0.9.2.dist-info/INSTALLER",
6818
+ "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_harness-0.10.0.dist-info/INSTALLER",
6819
6819
  "sha256": "ceebae7b8927a3227e5303cf5e0f1f7b34bb542ad7250ac03fbcde36ec2f1508"
6820
6820
  },
6821
6821
  {
6822
- "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_harness-0.9.2.dist-info/METADATA",
6823
- "sha256": "ac3d4208f4a31899bb181670ec5c6f350ee46f2780a1b4c057f4706c27115521"
6822
+ "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_harness-0.10.0.dist-info/METADATA",
6823
+ "sha256": "6561ca015461c55e5f03742cf8e5b3f366743b7d4d24dcabfcce3cc1f7061007"
6824
6824
  },
6825
6825
  {
6826
- "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_harness-0.9.2.dist-info/RECORD",
6827
- "sha256": "e54667591c646e6f33a4c546a06391cdaadf69f8f276c74306ce9ccad6ef2276"
6826
+ "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_harness-0.10.0.dist-info/RECORD",
6827
+ "sha256": "ddb11cae847a4fd5bc9bc05c19299ea8c2c08e07f9d8c615dd2a802951c979f3"
6828
6828
  },
6829
6829
  {
6830
- "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_harness-0.9.2.dist-info/WHEEL",
6830
+ "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_harness-0.10.0.dist-info/WHEEL",
6831
6831
  "sha256": "98e75747d0b7c0c568bfb71263c3d8f970b3a374a6996087bc642be5cb09a1aa"
6832
6832
  },
6833
6833
  {
@@ -6839,24 +6839,24 @@
6839
6839
  "sha256": "8deca72a770e3f41d61295dc16cec0ef2df3e339684749e309aaf680c7017dba"
6840
6840
  },
6841
6841
  {
6842
- "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_protocol-0.9.2.dist-info/INSTALLER",
6842
+ "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_protocol-0.10.0.dist-info/INSTALLER",
6843
6843
  "sha256": "ceebae7b8927a3227e5303cf5e0f1f7b34bb542ad7250ac03fbcde36ec2f1508"
6844
6844
  },
6845
6845
  {
6846
- "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_protocol-0.9.2.dist-info/METADATA",
6847
- "sha256": "50cf4e85d86fe4e46eb238c95291e50968319892874d80ab82d9c3d7bd3a2e0f"
6846
+ "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_protocol-0.10.0.dist-info/METADATA",
6847
+ "sha256": "8199a014325de11da12d9737262ac59956ea796a91798992c9f4d6c82961111a"
6848
6848
  },
6849
6849
  {
6850
- "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_protocol-0.9.2.dist-info/RECORD",
6851
- "sha256": "59c86b11f888e1132eee0dfc70d6794d25dc496a41298301742b0596b789c079"
6850
+ "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_protocol-0.10.0.dist-info/RECORD",
6851
+ "sha256": "e65d6e8e0d8d750da8f6784242fb5715a9563f1afce374c7b2afa9aee35f74c3"
6852
6852
  },
6853
6853
  {
6854
- "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_protocol-0.9.2.dist-info/WHEEL",
6854
+ "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_protocol-0.10.0.dist-info/WHEEL",
6855
6855
  "sha256": "98e75747d0b7c0c568bfb71263c3d8f970b3a374a6996087bc642be5cb09a1aa"
6856
6856
  },
6857
6857
  {
6858
6858
  "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime/__init__.py",
6859
- "sha256": "1d2f1120fc9801c49f16cce85f6c72b63b8e5f8c5ff2a574cd1035139721cc4f"
6859
+ "sha256": "960bd69edb8ca495257671a2d283a14b849ceaa227c76f603db3350ed1e04d91"
6860
6860
  },
6861
6861
  {
6862
6862
  "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime/antihallucination.py",
@@ -6878,6 +6878,10 @@
6878
6878
  "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime/branch.py",
6879
6879
  "sha256": "8bb9129ba0f079cbd9cb44373cfd58652e92e5c676a937c767fb696531836ef3"
6880
6880
  },
6881
+ {
6882
+ "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime/budget.py",
6883
+ "sha256": "10b4b46b689582c04862ffbfb36967d9fb61bda09c2a647b7362f4df05f7e6bc"
6884
+ },
6881
6885
  {
6882
6886
  "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime/cache_control.py",
6883
6887
  "sha256": "8b29e2e77f0363b43803e72d02c6eb2c74e8e33b4e0d8cc1109a00e51b013add"
@@ -6886,6 +6890,14 @@
6886
6890
  "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime/calibration.py",
6887
6891
  "sha256": "beb5861a110f9c9443c94d49dbbdd2ed378eadc4c1ecb82f9abaf89ffba97a06"
6888
6892
  },
6893
+ {
6894
+ "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime/child_notice.py",
6895
+ "sha256": "0df839a91a3cc7186915e58ed9826d636416e823774d541a50ca982930dc5f84"
6896
+ },
6897
+ {
6898
+ "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime/child_record.py",
6899
+ "sha256": "dc07469a55b74e25cb1b42f97d8ccc8e17649ba41b8dc3bab80962b02a61faac"
6900
+ },
6889
6901
  {
6890
6902
  "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime/compaction.py",
6891
6903
  "sha256": "7abe4a6cf3ace8b1d7da4adcf04d84c227bc751f79cdc4ca57b34baf8aa6c75c"
@@ -6910,6 +6922,10 @@
6910
6922
  "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime/delegation_gate.py",
6911
6923
  "sha256": "a40c9e6ee9b22a785e4dc9a4118781fa95bcb401db2d65be5ec625d43308574a"
6912
6924
  },
6925
+ {
6926
+ "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime/engines.py",
6927
+ "sha256": "e924a8727ac26d3c0d6dc7659e6adce55a2c9551ce8a5633c0579d3133942cd9"
6928
+ },
6913
6929
  {
6914
6930
  "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime/errors.py",
6915
6931
  "sha256": "f4d4224ad51145c30fc67c707c8623badf6201031eb5e80c8d29f93b0422fcf0"
@@ -6932,7 +6948,7 @@
6932
6948
  },
6933
6949
  {
6934
6950
  "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime/history.py",
6935
- "sha256": "1d530b52129ce8de8841abb5f80424830691eac0ffc17c115ed1501aed155a28"
6951
+ "sha256": "675ae7f4d888b65042254afd1b62199a8fb75e485c434516cd4fc2d055f8aea1"
6936
6952
  },
6937
6953
  {
6938
6954
  "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime/hooks.py",
@@ -7016,7 +7032,7 @@
7016
7032
  },
7017
7033
  {
7018
7034
  "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime/orchestration.py",
7019
- "sha256": "58a21a4f072582f0f7d06b26022c9de71ddb59b50f2e505de775c75c69a87f0a"
7035
+ "sha256": "38d1e4ecea8a8febb21505fa9e9cee36d8ab51351e6b1fce0825d10eafca10ac"
7020
7036
  },
7021
7037
  {
7022
7038
  "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime/otel.py",
@@ -7028,7 +7044,7 @@
7028
7044
  },
7029
7045
  {
7030
7046
  "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime/pool.py",
7031
- "sha256": "0a2818f400e819e8c312ee64fa24dfe2b7a9c0b68b62c0d761b6bfcb45bd3234"
7047
+ "sha256": "96e0158a2c8c07b13316ed00ccdb072b5cb3284a06fe99af1fd2786edaa9b8ee"
7032
7048
  },
7033
7049
  {
7034
7050
  "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime/pricing.py",
@@ -7042,6 +7058,10 @@
7042
7058
  "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime/recording.py",
7043
7059
  "sha256": "cbb8911c90ff373971a59bc5bedab2f789987c255a829f5b2422bf05f248a7bc"
7044
7060
  },
7061
+ {
7062
+ "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime/registry.py",
7063
+ "sha256": "1d505a28a2de0024ad9c34a3410b3720326d5a6c8d160ce5b0aaed86af2eeddf"
7064
+ },
7045
7065
  {
7046
7066
  "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime/reminders.py",
7047
7067
  "sha256": "c79759c3de8b8a991c5140120dc541ca4be8cf2060dfad9bc8981a8b4ca80a30"
@@ -7072,19 +7092,19 @@
7072
7092
  },
7073
7093
  {
7074
7094
  "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime/storage/__init__.py",
7075
- "sha256": "ff702f9012926d6eedac09d46c55b358753b2eaee9f62668c795b73823149cbf"
7095
+ "sha256": "6bc51589a9fd7d7476262122c7538ba286f50bf66581347ac9c26b5b314f37a1"
7076
7096
  },
7077
7097
  {
7078
7098
  "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime/storage/in_memory.py",
7079
- "sha256": "d021e9c27058545284c9e332d75c77d431ee10a9b3cf4e2dbec668dc09f94a4c"
7099
+ "sha256": "e8c8036a702256aa586a04de31c963864eb61821990b4a9a233ef6526d23c9a2"
7080
7100
  },
7081
7101
  {
7082
7102
  "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime/storage/sqlalchemy_store.py",
7083
- "sha256": "a1b5cdfba6fc68727cdd94e2a1326d821570f12373ad411837265a9287149691"
7103
+ "sha256": "45a804862d5b2d74bbfc44fe52c37c496bcdaf635b9d717fdb235ee825e36131"
7084
7104
  },
7085
7105
  {
7086
7106
  "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime/storage/sqlite_store.py",
7087
- "sha256": "8701e6c78a80c618457b2f7ba60e3eedbe29258b12ff60494bfa83540fc36c16"
7107
+ "sha256": "a817a91acf36b3a9d18943bdd83b657ae1850d0407885a42353ca26fd4f7cda6"
7088
7108
  },
7089
7109
  {
7090
7110
  "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime/storage/write_lease.py",
@@ -7092,7 +7112,7 @@
7092
7112
  },
7093
7113
  {
7094
7114
  "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime/subagent.py",
7095
- "sha256": "314e3b3de42fc999ac7b7f89913b6fa962b46880174b14be172b1390d3fce337"
7115
+ "sha256": "2ee7ca25acce10e7f871ee9727db3f198db6b8f639c3e7736dd896e440abd658"
7096
7116
  },
7097
7117
  {
7098
7118
  "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime/todo.py",
@@ -7139,19 +7159,19 @@
7139
7159
  "sha256": "cb4f2b017ce033f3c47bb50076119e8b1d9b01cfdc942ea05d00e7f8221e6131"
7140
7160
  },
7141
7161
  {
7142
- "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime-0.9.2.dist-info/INSTALLER",
7162
+ "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime-0.10.0.dist-info/INSTALLER",
7143
7163
  "sha256": "ceebae7b8927a3227e5303cf5e0f1f7b34bb542ad7250ac03fbcde36ec2f1508"
7144
7164
  },
7145
7165
  {
7146
- "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime-0.9.2.dist-info/METADATA",
7147
- "sha256": "c65089d751c0d38b2e6c4a51455374a8c99b136adeec0ca296d99eec0bb4fd1c"
7166
+ "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime-0.10.0.dist-info/METADATA",
7167
+ "sha256": "401636c479f1e3c8855f031573509d4576f3487d7061a21bf9bd30ae582a30a5"
7148
7168
  },
7149
7169
  {
7150
- "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime-0.9.2.dist-info/RECORD",
7151
- "sha256": "1e5ca3d7ebe2f3ce128ba7094a650c450276387597856cad7c40babfd69181b4"
7170
+ "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime-0.10.0.dist-info/RECORD",
7171
+ "sha256": "1e9c674b0831a863ac37dba1e2573bda69d904fb9adaee4a1f19a7331d9c718e"
7152
7172
  },
7153
7173
  {
7154
- "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime-0.9.2.dist-info/WHEEL",
7174
+ "path": "python-runtime/python/lib/python3.12/site-packages/steerable_agent_runtime-0.10.0.dist-info/WHEEL",
7155
7175
  "sha256": "98e75747d0b7c0c568bfb71263c3d8f970b3a374a6996087bc642be5cb09a1aa"
7156
7176
  },
7157
7177
  {
@@ -7288,7 +7308,7 @@
7288
7308
  },
7289
7309
  {
7290
7310
  "path": "python-runtime/python/lib/python3.12/site-packages/steerable_sidecar/sidecar.py",
7291
- "sha256": "24b29167cdded28be4abf036dab15c6b1d0633a664bffb9131aae396bf809293"
7311
+ "sha256": "9c26f5887dff2ecf14839ef5062f796750ef9c2efe57310d9eb95d9aff1e4265"
7292
7312
  },
7293
7313
  {
7294
7314
  "path": "python-runtime/python/lib/python3.12/site-packages/steerable_sidecar/stream_chunks.py",
@@ -7319,23 +7339,23 @@
7319
7339
  "sha256": "d00b8b7d1d932a9f9c9ba8c1f812ed63a7f8fb84026a787373ae0bf3b353edca"
7320
7340
  },
7321
7341
  {
7322
- "path": "python-runtime/python/lib/python3.12/site-packages/steerable_sidecar-0.9.2.dist-info/INSTALLER",
7342
+ "path": "python-runtime/python/lib/python3.12/site-packages/steerable_sidecar-0.10.0.dist-info/INSTALLER",
7323
7343
  "sha256": "ceebae7b8927a3227e5303cf5e0f1f7b34bb542ad7250ac03fbcde36ec2f1508"
7324
7344
  },
7325
7345
  {
7326
- "path": "python-runtime/python/lib/python3.12/site-packages/steerable_sidecar-0.9.2.dist-info/METADATA",
7327
- "sha256": "6d8f027cf34c32ff99f59484693a34b8e32d600e324d6eba6ba957789d258015"
7346
+ "path": "python-runtime/python/lib/python3.12/site-packages/steerable_sidecar-0.10.0.dist-info/METADATA",
7347
+ "sha256": "a8dd99aef9f53a3bb85fb96c10b790a25f2ea4aa297cbf96025fb848fcfdbcf7"
7328
7348
  },
7329
7349
  {
7330
- "path": "python-runtime/python/lib/python3.12/site-packages/steerable_sidecar-0.9.2.dist-info/RECORD",
7331
- "sha256": "d8b8bfe9d5c7e01d8ff1b81ec344e0d52dc457c8c34c26c73fc991be8a74030e"
7350
+ "path": "python-runtime/python/lib/python3.12/site-packages/steerable_sidecar-0.10.0.dist-info/RECORD",
7351
+ "sha256": "388626790a511aeb556c23650230fb59c44b7af2c69f95cd224e88bbc9592098"
7332
7352
  },
7333
7353
  {
7334
- "path": "python-runtime/python/lib/python3.12/site-packages/steerable_sidecar-0.9.2.dist-info/WHEEL",
7354
+ "path": "python-runtime/python/lib/python3.12/site-packages/steerable_sidecar-0.10.0.dist-info/WHEEL",
7335
7355
  "sha256": "98e75747d0b7c0c568bfb71263c3d8f970b3a374a6996087bc642be5cb09a1aa"
7336
7356
  },
7337
7357
  {
7338
- "path": "python-runtime/python/lib/python3.12/site-packages/steerable_sidecar-0.9.2.dist-info/entry_points.txt",
7358
+ "path": "python-runtime/python/lib/python3.12/site-packages/steerable_sidecar-0.10.0.dist-info/entry_points.txt",
7339
7359
  "sha256": "aab1fdfb1fb45d2ad6dfe1b5f90994e23f00edbef7d7028f9dcfd74bfa0090ef"
7340
7360
  },
7341
7361
  {
@@ -8759,7 +8779,7 @@
8759
8779
  "sha256": "482786a0d83d8536eddc78aafdf702d247ddc1f33d45115bdfe86c92a3d6043f"
8760
8780
  }
8761
8781
  ],
8762
- "packageVersion": "0.9.2",
8782
+ "packageVersion": "0.10.0",
8763
8783
  "runCodePython": "python-runtime/python/bin/python3",
8764
8784
  "schemaVersion": 1,
8765
8785
  "sidecarPython": "python-runtime/python/bin/python3",
@@ -1,11 +0,0 @@
1
- steerable_agent_protocol-0.9.2.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
2
- steerable_agent_protocol-0.9.2.dist-info/METADATA,sha256=UM9Ohdhv5ORusjjJUpHlCWgxmJKHTYCrgtnD1706Lg8,315
3
- steerable_agent_protocol-0.9.2.dist-info/RECORD,,
4
- steerable_agent_protocol-0.9.2.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
- steerable_agent_protocol-0.9.2.dist-info/WHEEL,sha256=mOdXR9C3wMVov7cSY8PY-XCzo3SmmWCHvGQr5csJoao,91
6
- steerable_agent_protocol-0.9.2.dist-info/direct_url.json,sha256=uaSvGLE608xm4B0Z3Ugq5v4ez60GyOki8gUkZ2F7MfA,303
7
- steerable_agent_protocol-0.9.2.dist-info/top_level.txt,sha256=K8P6-3hLZwuhUEWM2CS2wjFpBzJ83fyzZbdS2Txh4VU,25
8
- steerable_agent_protocol/__init__.py,sha256=adci5VbbNw9seedRNj8OsibxVH3B1M531_adq3fIU1c,25
9
- steerable_agent_protocol/__pycache__/__init__.cpython-312.pyc,,
10
- steerable_agent_protocol/__pycache__/generated.cpython-312.pyc,,
11
- steerable_agent_protocol/generated.py,sha256=jeynKncOP0HWEpXcFs7A7y3z4zloR0njCar2gMcBfbo,6005
@@ -1,58 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: steerable-sidecar
3
- Version: 0.9.2
4
- Summary: Steerable agent runtime sidecar — JSON-RPC over stdio.
5
- License: Apache-2.0
6
- Requires-Python: >=3.10
7
- Description-Content-Type: text/markdown
8
- Requires-Dist: pydantic>=2.10.0
9
- Requires-Dist: httpx[socks]>=0.27
10
- Requires-Dist: Pillow>=10.4
11
- Requires-Dist: steerable-agent-protocol<1.0.0,>=0.1.0
12
- Requires-Dist: steerable-agent-harness<1.0.0,>=0.1.0
13
- Requires-Dist: steerable-agent-runtime<1.0.0,>=0.1.0
14
- Requires-Dist: ag-ui-protocol>=0.1.21
15
- Requires-Dist: agent-client-protocol>=0.12.1
16
-
17
- # steerable-sidecar
18
-
19
- The portable Python entrypoint for the **steerable** framework. Designed to be
20
- spawned by an Electron / desktop host (or directly from a CLI) and addressed
21
- via stdio JSON-RPC 2.0.
22
-
23
- ## Quick start
24
-
25
- ```bash
26
- pip install steerable-sidecar
27
- python -m steerable_sidecar
28
- ```
29
-
30
- Or use the console script:
31
-
32
- ```bash
33
- steerable-sidecar
34
- ```
35
-
36
- The process:
37
-
38
- 1. Initializes the in-memory storage and a default tool router.
39
- 2. Prints the **ready signal** on **stderr** as a single line:
40
- `__SIDECAR_READY__:<json>` matching `spec/sidecar/SidecarHealth`.
41
- 3. Begins reading JSON-RPC frames from stdin (one frame per line).
42
- 4. Writes responses and notifications to stdout.
43
-
44
- See `spec/sidecar/README.md` for the full method/notification catalog.
45
-
46
- ## Embedding
47
-
48
- ```python
49
- import asyncio
50
- from steerable_sidecar import Sidecar
51
-
52
- async def main() -> None:
53
- sidecar = Sidecar()
54
- sidecar.tools.register(my_tool)
55
- await sidecar.serve()
56
-
57
- asyncio.run(main())
58
- ```