Skip to content

Commit 64ce3d0

Browse files
committed
Merge main into api-review/20260903T094116Z
Resolve conflicts with the AI SRE artifact gallery publish: - consolidated openapi.{en,zh}.json: union of both additions (artifact ops + RUM remote-config / schedule by-person / member_id) - api-catalog: keep both sections; endpoint count 353 - fix lint: document RemoteConfig.activation enum value 'immediate'
2 parents a16105f + 13b27ef commit 64ce3d0

70 files changed

Lines changed: 134046 additions & 127940 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎api-reference/openapi.en.json‎

Lines changed: 56755 additions & 55378 deletions
Large diffs are not rendered by default.

‎api-reference/openapi.zh.json‎

Lines changed: 56694 additions & 55317 deletions
Large diffs are not rendered by default.

‎api-reference/rum.openapi.en.json‎

Lines changed: 7232 additions & 7232 deletions
Large diffs are not rendered by default.

‎api-reference/rum.openapi.zh.json‎

Lines changed: 7232 additions & 7232 deletions
Large diffs are not rendered by default.

‎api-reference/safari.openapi.en.json‎

Lines changed: 2632 additions & 1255 deletions
Large diffs are not rendered by default.

‎api-reference/safari.openapi.zh.json‎

Lines changed: 2634 additions & 1257 deletions
Large diffs are not rendered by default.

‎docs.json‎

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2698,6 +2698,23 @@
26982698
"POST /safari/a2a-agent/delete"
26992699
]
27002700
},
2701+
{
2702+
"group": "产物",
2703+
"icon": "images",
2704+
"pages": [
2705+
"POST /safari/artifact/gallery/list",
2706+
"POST /safari/artifact/gallery/get",
2707+
"POST /safari/artifact/gallery/file-state",
2708+
"POST /safari/artifact/sign",
2709+
"GET /safari/artifact/stream",
2710+
"POST /safari/artifact/gallery/publish-from-file",
2711+
"POST /safari/artifact/gallery/update",
2712+
"POST /safari/artifact/gallery/delete",
2713+
"POST /safari/artifact/gallery/share/enable",
2714+
"POST /safari/artifact/gallery/share/sync",
2715+
"POST /safari/artifact/gallery/share/revoke"
2716+
]
2717+
},
27012718
{
27022719
"group": "知识",
27032720
"icon": "book",
@@ -4083,6 +4100,23 @@
40834100
"POST /safari/a2a-agent/delete"
40844101
]
40854102
},
4103+
{
4104+
"group": "Artifacts",
4105+
"icon": "images",
4106+
"pages": [
4107+
"POST /safari/artifact/gallery/list",
4108+
"POST /safari/artifact/gallery/get",
4109+
"POST /safari/artifact/gallery/file-state",
4110+
"POST /safari/artifact/sign",
4111+
"GET /safari/artifact/stream",
4112+
"POST /safari/artifact/gallery/publish-from-file",
4113+
"POST /safari/artifact/gallery/update",
4114+
"POST /safari/artifact/gallery/delete",
4115+
"POST /safari/artifact/gallery/share/enable",
4116+
"POST /safari/artifact/gallery/share/sync",
4117+
"POST /safari/artifact/gallery/share/revoke"
4118+
]
4119+
},
40864120
{
40874121
"group": "Knowledge",
40884122
"icon": "book",

‎en/ai-sre/agents.mdx‎

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ sidebarTitle: Agent
2424
</Card>
2525
</CardGroup>
2626

27-
Delegation does not make you wait: after AI SRE hands a task to a remote agent, the conversation continues immediately, so you can keep working or delegate several tasks at once. When the remote agent finishes, its result appears in the conversation as a new message. Each A2A delegation appears in the conversation stream as a **task card** carrying an `A2A` badge, showing the remote agent name, task intent, run status (initializing / in progress / completed / failed / interrupted), and usage metrics such as tool call count, tokens, and elapsed time. Click the card to view the full delegation trace in the right-hand panel.
27+
Delegation does not make you wait: after AI SRE hands a task to a remote agent, the conversation continues immediately, so you can keep working or delegate several tasks at once. When the remote agent finishes, its result appears in the conversation as a new message. Each A2A delegation appears in the conversation stream as a **task card** carrying an `A2A` badge, showing the remote agent name, task intent, run status (initializing / in progress / awaiting input / awaiting authorization / completed / failed (including orphaned) / interrupted / killed), and usage metrics such as tool call count, tokens, and elapsed time. Click the card to view the full delegation trace in the right-hand panel.
2828

2929
<Tip>
3030
**Instructions have two levels and act as the agent-selection signal.** Before delegating, AI SRE sees a list of available agents where each entry is just `name: summary` — the summary comes from a `summary:` line at the top of the instructions (if omitted, the beginning of the body is excerpted automatically). AI SRE uses it to decide **whether and when** to delegate to this agent, so state clearly when to prefer it, what it excels at, and what it is not suited for. The body that follows the summary is not kept in the list — it is delivered to AI SRE in full only the **first time it delegates to this agent**, so you can write it as long and detailed as needed (procedures, hard rules, examples) without slowing down everyday conversations. See "[Writing Instructions](#writing-instructions)" below for the format.
@@ -49,7 +49,7 @@ The platform ships several **bootstrap Subagents** that work out of the box:
4949
| `general` | General-purpose worker with full tool access. Use it to offload work whose intermediate steps would otherwise pollute the parent's context (long reports, multi-file edits, end-to-end builds, repeated probing). Dispatch several in parallel for independent units of work |
5050
| `explore` | Read-only investigator restricted to `grep` / `glob` / `read`; it cannot write or execute. Returns a compact summary rather than raw search output — ideal for locating evidence inside a codebase or knowledge dump |
5151

52-
**In the conversation**: each dispatch also appears as a **task card** in the conversation stream and shares the same status lifecycle as an A2A delegation (initializing / in progress / completed / failed / interrupted). The difference is the badge — a Subagent task card carries an `Agent` badge, whereas an A2A delegation carries an `A2A` badge.
52+
**In the conversation**: each dispatch also appears as a **task card** in the conversation stream and shares the same status lifecycle as an A2A delegation (initializing / in progress / awaiting input / awaiting authorization / completed / failed (including orphaned) / interrupted / killed). The difference is the badge — a Subagent task card carries an `Agent` badge, whereas an A2A delegation carries an `A2A` badge.
5353

5454
**Runtime limits**:
5555

@@ -69,7 +69,7 @@ On the A2A Agents list page, click **Add A2A Agent** and fill in the form:
6969
| Field | Type | Default | Description |
7070
| --- | --- | --- | --- |
7171
| Name | string | — | A2A agent identifier (e.g., `metrics-analyzer`). Required |
72-
| Scope | Account / Team | — | Scope: **Account** (visible account-wide) or a specific **Team** (visible and editable only to members of that team). Required — see "Scope" below |
72+
| Scope | Shared / Team | — | Scope: **Shared** (i.e., account level — visible account-wide) or a specific **Team** (visible and editable only to members of that team). Required — see "Scope" below |
7373
| Execution Environment | Cloud / BYOC Runners (multiple) | All environments | Controls where this A2A agent is available. Select Cloud and one or more visible BYOC Runners; leave empty to make it available everywhere. It does not route delegated calls: an A2A call still runs in the current AI SRE session's environment. For a remote agent available only on a private network, select only the Runner(s) that can reach it |
7474
| Instructions | string | — | The agent-selection signal shown to AI SRE, as **a single document**: an optional `summary:` frontmatter block plus a body. The summary appears in the available-agent list; the body is delivered in full only on first delegation. Required; the whole document is at most 50 KB, and `summary` is at most 1,024 characters and must not contain `<` or `>`. See "[Writing Instructions](#writing-instructions)" below for the format |
7575
| Card URL | string | — | The Agent Card URL of the remote A2A agent, or just the service origin for agents that follow the default well-known location (for example, `https://agents.example.com`). If the URL includes a path, the platform reads that exact URL; if only an origin is provided, it resolves `/.well-known/agent-card.json` by A2A convention. Required. The platform only validates that the URL is well-formed (scheme is http/https, host is non-empty) — it does not classify hosts or IPs; actual network reachability and egress restrictions depend on the current AI SRE session's execution environment. The Execution Environment field above only limits where this agent is available. The remote agent must implement A2A Protocol 1.0 — see "[Protocol Version and Agent Card Requirements](#protocol-version-and-agent-card-requirements)" below |
@@ -185,7 +185,7 @@ After FlashAI is prepared, enter the **FlashAI domain** in the panel (for exampl
185185
https://demo.flashcat.cloud/api/fc-model/a2a/.well-known/agent-card.json
186186
```
187187

188-
The template only prefills common values. You still choose the **Scope** (Account or Team) and configure authentication in the form. A2A agents can be installed multiple times for different scopes, so the FlashAI panel does not disappear just because one FlashAI agent already exists. Agent names must still be unique within the account; if the same FlashAI domain needs to be installed more than once, adjust the name in the form.
188+
The template only prefills common values. You still choose the **Scope** (Shared or Team) and configure authentication in the form. A2A agents can be installed multiple times for different scopes, so the FlashAI panel does not disappear just because one FlashAI agent already exists. Agent names must still be unique within the account; if the same FlashAI domain needs to be installed more than once, adjust the name in the form.
189189

190190
<Tip>
191191
Do not remove the instructions generated by the FlashAI template, especially the `summary:` line at the top — once registered, FlashAI always appears in the available-agent list, but whether AI SRE actually delegates to it hinges directly on that summary line. When the instructions are too short or too generic, AI SRE may keep reasoning locally or incorrectly delegate ordinary metrics / logs questions to FlashAI.
@@ -283,7 +283,7 @@ The full lifecycle of A2A agents is managed on the **Plugins → Agents** page.
283283

284284
<AccordionGroup>
285285
<Accordion title="Create" icon="plus">
286-
Click **Add A2A Agent**, fill in the name, scope, instructions, Card URL, auth settings, and save. You must select a definite scope (account or team) before submitting — the submit button remains disabled until a scope is chosen.
286+
Click **Add A2A Agent**, fill in the name, scope, instructions, Card URL, auth settings, and save. You must select a definite scope (shared or team) before submitting — the submit button remains disabled until a scope is chosen.
287287
</Accordion>
288288
<Accordion title="Enable / Disable" icon="toggle-on">
289289
Use the toggle in the list to switch an A2A agent's enabled state. Only **enabled** agents appear in AI SRE's available-agent list and can receive delegated tasks; disabling one makes it immediately invisible to delegation.
@@ -295,15 +295,15 @@ The full lifecycle of A2A agents is managed on the **Plugins → Agents** page.
295295
Remove an A2A agent from the current scope. **Active sessions that delegated to it will fail.** Deletion requires confirmation.
296296
</Accordion>
297297
<Accordion title="Filter by scope and search" icon="filter">
298-
The scope filter bar at the top of the list lets you switch between "All", "Account only", and "Specific team", making it easy to focus on relevant resources when managing many. Each row also has a label showing its scope (account / team name). The search box to the right of the filter bar filters the list by keywords in the name, instructions, or Card URL.
298+
The scope filter bar at the top of the list lets you switch between "All", "Shared", and "Specific team", making it easy to focus on relevant resources when managing many. Each row also has a label showing its scope (shared / team name). The search box to the right of the filter bar filters the list by keywords in the name, instructions, or Card URL.
299299
</Accordion>
300300
</AccordionGroup>
301301

302302
## Scope
303303

304304
---
305305

306-
A2A agents share the same **two-level scope** model as other resources (skills, Knowledge Packs, MCP, environments), divided into account level and team level:
306+
A2A agents share the same **two-level scope** model as other resources (skills, Knowledge Packs, MCP, environments), divided into account level and team level. In the console UI, the account-level option is labeled "**Shared**" / "**Shared scope**" — synonymous with account level (visible account-wide):
307307

308308
| Scope | Visibility |
309309
| --- | --- |

‎en/ai-sre/automations.mdx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,7 @@ Automation rules share the same two-level scope model as the other resources und
239239

240240
| Dimension | Rule |
241241
|---|---|
242-
| Ownership | **Personal rules** (`team_id=0`) belong to their creator; **team rules** (`team_id>0`) belong to that team. To create a team rule or move a rule into a team, the **operator themselves** must be a real member of the target team (join-to-govern); account Owners and admins have no exemption. You can change a rule's scope: personal rules can be moved to a team and team rules to another team — these moves into a team verify the **current operator's** membership in the target team, not the rule Owner's membership. The reverse conversion, a **team rule to personal, is reserved for the rule Owner alone**: when a non-owner edits a team rule, the scope selector does not offer the "Personal" option, and the backend likewise rejects the conversion from anyone but the Owner. If you need a personal copy, use the **Clone** button on the rule's detail page and pick the Personal scope in the prefilled create form before saving. A team rule does not stop with its creator: even after the creator has left the team, the team carries on running the rule. Only personal rules are disabled when their Owner is no longer an active account member — the system disables the rule automatically once a trigger attempt's preflight finds the Owner inactive. |
242+
| Ownership | **Personal rules** (`team_id=0`) belong to their creator; **team rules** (`team_id>0`) belong to that team. **Scope is fixed at creation and cannot be changed afterward**: when editing a rule, the scope selector is disabled with the hint "Scope can't be changed after creation. To use a different one, clone this automation and pick a new scope for the copy." To switch scopes, use the **Clone** button on the rule's detail page — cloning opens a prefilled create form where you pick the new scope for the copy before saving (the update API no longer accepts `team_id`, so the scope cannot be changed even by bypassing the UI). To create a team rule, the **operator themselves** must be a real member of the target team (join-to-govern); account Owners and admins have no exemption. A team rule does not stop with its creator: even after the creator has left the team, the team carries on running the rule. Only personal rules are disabled when their Owner is no longer an active account member — the system disables the rule automatically once a trigger attempt's preflight finds the Owner inactive. |
243243
| Visibility / list | The account Owner and admins see all rules; ordinary members see rules they created and rules of teams they belong to. |
244244
| Edit / manage (team rules) | Only **current members** of the rule's owning team can act on the rule (enable / disable, edit, delete, run now); once the creator has left the team, they keep no standing privilege. The account Owner and admins have no exemption and must join the team first. |
245245
| Edit / manage (personal rules) | Only the creator can manage a personal rule. The account Owner and admins have **no** exemption for other members' personal rules — they cannot even view its detail page; opening one returns "access denied" outright, not just a grayed-out button. |

0 commit comments

Comments
 (0)