Ettore Di Giacinto
24c837e453
feat(studio): grant built-in capabilities to a saved agent
...
A saved agent now has a Builtins list: the capabilities its owner gave
it (memory.write, profile.write, skills.write, pages.write,
dashboard.write, triggers.propose, triggers.run, talkback.channels,
talkback.new_channel, files.upload, act.files, act.addons, act.send,
act.spend and the opt-in group saved_agents). The list is empty by
default, and nothing turns a grant on for a template, an import or a
write that omits the field.
A chat of the agent holds the grants the user may use at the turn
(agent scope). A tool exists when the grant is held, the chat did not
switch its group off and the run can hold rights: a sub-agent or a run
that started by itself never does. propose_change and revert_change
now exist only for a chat that holds the grant of at least one kind,
and the schema lists only those kinds.
propose_change gains the kinds skill, page and dashboard. A skill is a
SKILL.md for the personal or the agent layer, and a skill with
locked: true is refused, also as a shadow of a locked personal skill.
A page is a set of files checked against the Pages rules and written
as one change set. The dashboard is a home.json checked against its
schema. All three are re-checked when the owner confirms or edits.
GET /api/chats/agents/builtin-grants lists each grant with its title,
description and sensitive flag. The agent record, the write body and
the export file carry builtins; an old file imports as before and an
unknown name is dropped in an import and refused in a write.
Assisted-by: Claude:claude-sonnet-5-5 go gofmt swag
2026-11-03 14:56:42 +00:00
..
2026-11-03 14:56:42 +00:00
2026-11-03 14:56:42 +00:00
2026-11-02 21:03:50 +01:00
2026-11-03 14:53:20 +00:00
2026-11-03 13:57:28 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 10:58:46 +00:00
2026-11-02 23:50:40 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 14:56:42 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 10:43:37 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 08:39:12 +00:00
2026-11-01 18:30:08 +01:00
2026-11-01 18:30:08 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 14:56:42 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 14:33:05 +00:00
2026-11-03 08:39:12 +00:00
2026-11-03 14:33:05 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 14:56:42 +00:00
2026-11-03 08:38:53 +00:00
2026-11-03 14:56:42 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 14:42:21 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 14:33:05 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 10:15:03 +00:00
2026-11-01 18:30:08 +01:00
2026-11-01 18:30:08 +01:00
2026-11-03 13:57:28 +00:00
2026-11-03 14:45:43 +00:00
2026-11-03 14:45:43 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 14:33:05 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 14:33:05 +00:00
2026-11-01 18:30:08 +01:00
2026-11-03 14:33:05 +00:00
2026-11-03 14:33:05 +00:00
2026-11-03 14:33:05 +00:00
2026-11-03 14:33:05 +00:00
2026-11-03 14:33:05 +00:00
2026-11-03 14:33:05 +00:00
2026-11-03 08:30:08 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 14:56:42 +00:00
2026-11-03 14:56:42 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 11:47:50 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 14:45:43 +00:00
2026-11-03 14:45:43 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 11:31:37 +00:00
2026-11-03 14:00:45 +00:00
2026-11-03 14:33:05 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 14:56:42 +00:00
2026-11-03 14:56:42 +00:00
2026-11-03 14:56:42 +00:00
2026-11-03 14:56:42 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 08:38:53 +00:00
2026-11-01 18:30:08 +01:00
2026-11-01 18:30:08 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 18:30:08 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 14:32:01 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 10:43:37 +00:00
2026-11-01 18:30:08 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 18:30:08 +01:00
2026-11-03 14:32:01 +00:00
2026-11-03 14:42:21 +00:00
2026-11-03 14:32:01 +00:00
2026-11-03 14:32:01 +00:00
2026-11-03 14:53:20 +00:00
2026-11-03 14:53:20 +00:00
2026-11-03 11:47:50 +00:00
2026-11-03 11:47:50 +00:00
2026-11-03 11:47:50 +00:00
2026-11-03 11:47:51 +00:00
2026-11-02 01:16:55 +00:00
2026-11-03 14:00:31 +00:00
2026-11-03 13:52:56 +00:00
2026-11-03 14:00:31 +00:00
2026-11-03 13:52:56 +00:00
2026-11-03 11:47:50 +00:00
2026-11-03 14:56:42 +00:00
2026-11-03 14:32:01 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 14:32:01 +00:00
2026-11-03 11:54:33 +00:00
2026-11-03 14:32:01 +00:00
2026-11-03 11:54:33 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 14:32:01 +00:00
2026-11-02 01:16:55 +00:00
2026-11-03 14:42:21 +00:00
2026-11-03 14:53:20 +00:00
2026-11-03 14:42:21 +00:00
2026-11-03 11:30:11 +00:00
2026-11-03 11:54:33 +00:00
2026-11-03 14:00:31 +00:00
2026-11-03 11:47:50 +00:00
2026-11-03 11:47:50 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 13:57:28 +00:00
2026-11-03 14:56:42 +00:00
2026-11-03 13:57:28 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 14:00:45 +00:00
2026-11-03 14:33:05 +00:00
2026-11-03 10:58:46 +00:00
2026-11-03 10:58:46 +00:00
2026-11-03 10:58:46 +00:00
2026-11-03 10:58:46 +00:00
2026-11-02 18:48:39 +01:00
2026-11-03 10:43:37 +00:00
2026-11-03 10:43:37 +00:00
2026-11-03 10:58:46 +00:00
2026-11-03 10:58:46 +00:00
2026-11-03 11:31:36 +00:00
2026-11-03 11:31:37 +00:00
2026-11-02 23:50:40 +00:00
2026-11-02 23:50:40 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 14:56:42 +00:00
2026-11-03 14:56:42 +00:00
2026-11-03 14:56:42 +00:00
2026-11-03 14:33:05 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 08:39:12 +00:00
2026-11-03 14:56:42 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 18:30:08 +01:00
2026-11-03 14:45:43 +00:00
2026-11-03 11:31:36 +00:00
2026-11-03 08:38:53 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-02 18:48:39 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-02 18:48:39 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 14:45:43 +00:00
2026-11-03 10:58:46 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 14:00:31 +00:00
2026-11-03 14:33:05 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 18:30:08 +01:00
2026-11-01 18:30:08 +01:00
2026-11-03 14:33:05 +00:00
2026-11-03 11:31:36 +00:00
2026-11-01 18:30:08 +01:00
2026-11-01 18:30:08 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 08:30:08 +00:00
2026-11-03 14:42:21 +00:00
2026-11-02 18:48:39 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 10:07:46 +00:00
2026-11-03 10:07:46 +00:00
2026-11-03 14:56:42 +00:00
2026-11-02 18:48:39 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-02 21:03:50 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 08:39:30 +00:00
2026-11-03 08:38:53 +00:00
2026-11-01 18:30:08 +01:00
2026-11-03 14:33:05 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-02 21:03:50 +01:00
2026-11-03 14:42:21 +00:00
2026-11-03 14:33:05 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 14:33:05 +00:00
2026-11-02 23:50:40 +00:00
2026-11-03 14:45:43 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 18:30:08 +01:00
2026-11-03 14:42:21 +00:00
2026-11-03 14:42:21 +00:00
2026-11-01 18:30:08 +01:00
2026-11-03 14:00:31 +00:00
2026-11-02 23:50:40 +00:00
2026-11-03 14:33:05 +00:00
2026-11-03 14:33:05 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 14:42:21 +00:00
2026-11-03 14:49:34 +00:00
2026-11-03 14:56:42 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 18:30:08 +01:00
2026-11-01 12:08:23 +01:00