diff --git a/README.md b/README.md index 02646cc..5043395 100644 --- a/README.md +++ b/README.md @@ -145,7 +145,7 @@ A Bot is any endpoint speaking [AG-UI](https://github.com/ag-ui-protocol/ag-ui), - **Bring your own agent**: any AG-UI endpoint is a Bot, on a framework or hand written. Endpoints are validated with the same target checks used for browser navigation, and an auth header is stored write-only. - **Components instead of prose**: compiled React components live in `app/src/components/gallery/`, sandboxed ones are authored in `/admin/playground` and published with no deployment. Every call asks the server whether the component exists, is published, and is not withheld from that Bot. Data functions are granted per component. - **Governed MCP with OAuth**: a curated catalogue ships for Atlassian, Box, Slack, Salesforce and ServiceNow. Servers can use a write-only bearer token or OAuth discovery, dynamic registration and PKCE; encrypted tokens, grants, policy, approvals and audit stay server-side. -- **Skills are instructions, not capabilities**: personal skills attach only to Bots their author owns, deployment skills are admin-owned, and both are invoked with `/` in the composer. +- **Skills are instructions, not capabilities**: personal skills attach only to Bots their author owns, deployment skills are admin-owned, and both are invoked with `/` in the composer. Authors can record which connected tools a skill expects without granting access to any of them. - **Durable work control center**: `/work` combines queued and active runs, reusable manual/scheduled/webhook routines, user-to-Bot and Bot-to-Bot handoffs, shared project artifacts, and actionable notifications. A leased executor adds heartbeats, bounded attempts, timeout budgets, retries and crash recovery. - **Governed autonomy without a second runtime**: proactive monitors stay quiet when nothing needs attention; paired Telegram, Slack, Discord, and signed webhook messages use the ordinary task queue and a retrying outbox; skill and memory learning stays in review; transient model failures can follow a visible fallback route; and large tool catalogs/results are bounded without bypassing grants or policy. - **Shared project teams**: assign several coworkers to a project, open one team channel, and explicitly choose which coworker answers each turn. Computers, credentials, and browser sessions remain isolated per Bot. diff --git a/app/index.html b/app/index.html index cd14d71..d8cb3e9 100644 --- a/app/index.html +++ b/app/index.html @@ -4,6 +4,14 @@
+ Loading connected tools… +
+ ) : plugins.error ? ( ++ Connected tools could not be loaded. +
+ ) : servers.length === 0 ? ( ++ No connected server currently offers tools. Most skills only need + instructions, so you can still save this one. +
+ ) : ( +{server.title}
+Not connected here
++ These saved requirements are unavailable because a connector is + missing or stopped offering the tool. Click one to remove it. +
++ This records what the skill needs. It does not grant access: the Bot can + only call tools it was already given, and every call still passes policy + and audit checks. +
+Ask it to open a page and watch it work.
+ {newChatError} +
+ ) : null} {/* * Under the header rather than at the end of the transcript, which is where the missing answer * was going to be and where the channel draws its own version of this. The packaged chat owns @@ -187,7 +218,7 @@ function RouteComponent() {