Charlie Marsh
beeba1d2fc
Share model-visible tool specs across prompts ( #37807 )
...
## Why
Building a prompt cloned every model-visible `ToolSpec`, even though the tool
set is immutable for the lifetime of its router.
## What changed
- Store model-visible tool specs as an `Arc<[ToolSpec]>` in `ToolRouter` and
`Prompt` so prompt construction only clones the shared pointer.
- Keep separately built routers on distinct shared slices so refreshed tool
sets remain independent.
## Testing
Extend router tests to verify allocation sharing within a router, allocation
separation across rebuilt routers, and the existing deferred-tool filtering.
GitOrigin-RevId: 1e04cd7c4d1b3fa0b494c5c51670232d38ba8ebb
2026-08-10 10:50:49 +00:00
..
2026-07-29 13:53:15 +00:00
2026-07-23 19:19:35 +00:00
2026-07-21 22:44:43 +00:00
2026-08-06 02:30:18 +00:00
2026-07-29 13:53:15 +00:00
2026-08-10 10:42:42 +00:00
2026-08-04 15:23:43 +00:00
2026-07-21 08:50:21 +00:00
2026-08-10 03:28:19 +00:00
2026-07-30 19:47:30 +00:00
2026-08-10 03:28:19 +00:00
2026-07-29 18:29:26 +00:00
2026-08-10 01:44:30 +00:00
2026-08-10 01:39:55 +00:00
2026-07-30 21:49:53 +00:00
2026-08-04 22:23:40 +00:00
2026-08-07 13:54:24 +00:00
2026-08-05 18:09:26 +00:00
2026-08-05 18:09:26 +00:00
2026-07-21 08:28:51 +00:00
2026-08-08 16:58:26 +00:00
2026-08-09 23:39:25 +00:00
2026-08-07 23:27:39 +00:00
2026-08-05 16:09:01 +00:00
2026-08-07 19:56:29 +00:00
2026-07-30 21:49:53 +00:00
2026-08-07 18:33:46 +00:00
2026-08-07 19:36:52 +00:00
2026-08-04 22:58:02 +00:00
2026-08-09 00:57:15 +00:00
2026-08-07 00:23:38 +00:00
2026-08-03 11:39:51 +00:00
2026-08-10 10:50:49 +00:00
2026-08-04 16:28:46 +00:00
2026-08-10 03:28:19 +00:00
2026-08-07 11:30:17 +00:00
2026-08-07 03:40:06 +00:00
2026-08-09 03:05:10 +00:00
2026-08-09 03:05:10 +00:00
2026-07-20 06:13:29 +00:00
2026-08-07 21:36:33 +00:00
2026-08-10 00:12:01 +00:00
2026-08-10 01:44:30 +00:00
2026-08-07 19:56:29 +00:00
2026-07-31 21:37:56 +00:00
2026-07-23 23:35:29 +00:00
2026-08-08 16:58:26 +00:00
2026-08-09 00:57:15 +00:00
2026-08-07 18:33:46 +00:00
2026-07-31 04:20:56 +00:00
2026-08-07 01:30:07 +00:00
2026-07-22 04:17:34 +00:00
2026-08-07 02:30:18 +00:00
2026-08-06 03:11:42 +00:00
2026-08-07 22:41:20 +00:00
2026-07-17 20:52:42 +00:00
2026-08-05 14:20:59 +00:00
2026-08-04 22:07:56 +00:00
2026-08-05 20:03:13 +00:00
2026-08-06 03:57:10 +00:00
2026-07-30 04:26:36 +00:00
2026-08-07 00:28:32 +00:00
2026-08-05 04:54:33 +00:00
2026-07-22 19:14:11 +00:00
2026-08-08 16:58:26 +00:00
2026-08-07 18:33:46 +00:00
2026-08-08 16:58:26 +00:00
2026-08-06 03:11:42 +00:00
2026-08-06 03:11:42 +00:00
2026-07-30 22:45:04 +00:00
2026-08-04 15:14:57 +00:00
2026-08-08 16:58:26 +00:00
2026-08-08 16:58:26 +00:00
2026-08-10 06:47:21 +00:00
2026-08-07 19:56:29 +00:00
2026-08-04 03:49:53 +00:00
2026-08-07 14:08:13 +00:00
2026-08-07 01:26:42 +00:00
2026-08-05 20:03:13 +00:00
2026-08-10 03:28:19 +00:00
2026-08-07 20:10:08 +00:00
2026-07-22 16:18:08 +00:00
2026-07-24 00:16:42 +00:00
2026-07-27 18:37:11 +00:00
2026-08-08 17:18:02 +00:00
2026-08-08 17:18:02 +00:00
2026-08-08 17:18:02 +00:00
2026-07-28 20:49:22 +00:00
2026-07-29 13:53:15 +00:00
2026-07-30 04:26:36 +00:00