From f62af9d27cce49b2209526347c1cd3d8c17a2949 Mon Sep 17 00:00:00 2001 From: ysyneu Date: Mon, 5 Oct 2026 18:12:34 -0700 Subject: [PATCH] =?UTF-8?q?docs(api):=20name=20AI=20SRE=20knowledge=20endp?= =?UTF-8?q?oints=20Knowledge=20/=20=E7=9F=A5=E8=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace the "knowledge pack" / 知识包 wording in the /safari/knowledge/* operation summaries, descriptions and schema field descriptions with Knowledge (en) and 知识 (zh), and update the matching api-catalog rows. Operation IDs, paths, slugs and schema keys are unchanged. --- api-reference/openapi.en.json | 166 +++++++++++++-------------- api-reference/openapi.zh.json | 162 +++++++++++++------------- api-reference/safari.openapi.en.json | 166 +++++++++++++-------------- api-reference/safari.openapi.zh.json | 162 +++++++++++++------------- en/openapi/api-catalog.mdx | 10 +- zh/openapi/api-catalog.mdx | 10 +- 6 files changed, 338 insertions(+), 338 deletions(-) diff --git a/api-reference/openapi.en.json b/api-reference/openapi.en.json index 5c2bdd216..7513b534f 100644 --- a/api-reference/openapi.en.json +++ b/api-reference/openapi.en.json @@ -5017,10 +5017,10 @@ "type": "object" }, "ContextResolvedItem": { - "description": "Snapshot of the three-tier knowledge-pack resolution for this session.", + "description": "Snapshot of the three-tier knowledge resolution for this session.", "properties": { "account_pack_id": { - "description": "Resolved account-scoped pack id.", + "description": "Resolved account-scope knowledge ID.", "type": "string" }, "incident_id": { @@ -5028,19 +5028,19 @@ "type": "string" }, "resolved_at_ms": { - "description": "Unix timestamp in milliseconds when the packs were resolved.", + "description": "Unix timestamp in milliseconds when the knowledge was resolved.", "format": "int64", "type": "integer" }, "team_pack_id": { - "description": "Resolved team-scoped pack id.", + "description": "Resolved team-scope knowledge ID.", "type": "string" }, "versions": { "additionalProperties": { "type": "integer" }, - "description": "Per-pack resolved version map.", + "description": "Resolved version map, one entry per knowledge.", "type": "object" } }, @@ -12829,18 +12829,18 @@ "type": "object" }, "KnowledgeFileDeleteRequest": { - "description": "File to remove from a knowledge pack.", + "description": "Knowledge file to remove.", "properties": { "force": { - "description": "Delete even when other pack files reference this file; the referrers are then returned as warnings instead of blocking the delete.", + "description": "Delete even when other knowledge files reference this file; the referrers are then returned as warnings instead of blocking the delete.", "type": "boolean" }, "pack_id": { - "description": "Knowledge pack ID; defaults to the caller's account-scope pack.", + "description": "Knowledge ID; defaults to the caller's account-scope knowledge.", "type": "string" }, "rel_path": { - "description": "Path of the file relative to the pack root.", + "description": "Path of the file relative to the knowledge root.", "type": "string" } }, @@ -12853,7 +12853,7 @@ "description": "Deletion result; empty unless warnings were raised.", "properties": { "warnings": { - "description": "Non-blocking warnings after deletion; `code=still_referenced_by` means the (force-)deleted file is still @ref-referenced by other files in the pack (`refs` lists the referrers). Absent when there are no warnings (omitempty).", + "description": "Non-blocking warnings after deletion; `code=still_referenced_by` means the (force-)deleted file is still @ref-referenced by other files in the knowledge (`refs` lists the referrers). Absent when there are no warnings (omitempty).", "items": { "$ref": "#/components/schemas/KnowledgeWarning" }, @@ -12866,11 +12866,11 @@ "description": "Which file to fetch.", "properties": { "pack_id": { - "description": "Knowledge pack ID; defaults to the caller's account-scope pack.", + "description": "Knowledge ID; defaults to the caller's account-scope knowledge.", "type": "string" }, "rel_path": { - "description": "Path of the file relative to the pack root.", + "description": "Path of the file relative to the knowledge root.", "type": "string" } }, @@ -12897,7 +12897,7 @@ "type": "object" }, "KnowledgeFileItem": { - "description": "Metadata of one file inside a knowledge pack. Content is fetched separately via file/get.", + "description": "Metadata of one knowledge file. Content is fetched separately via file/get.", "properties": { "checksum": { "description": "SHA-256 hex digest of the file content.", @@ -12912,11 +12912,11 @@ "type": "string" }, "pack_id": { - "description": "ID of the knowledge pack that contains the file.", + "description": "ID of the knowledge that contains the file.", "type": "string" }, "rel_path": { - "description": "Path relative to the pack root, e.g. `runbooks/restart.md`.", + "description": "Path relative to the knowledge root, e.g. `runbooks/restart.md`.", "type": "string" }, "size_bytes": { @@ -12948,7 +12948,7 @@ "type": "object" }, "KnowledgeFileListRequest": { - "description": "Which pack's files to list.", + "description": "Which knowledge's files to list.", "properties": { "limit": { "description": "Page size. Accepted but currently ignored — the response always contains the full file list.", @@ -12959,24 +12959,24 @@ "type": "integer" }, "pack_id": { - "description": "Knowledge pack ID; defaults to the caller's account-scope pack.", + "description": "Knowledge ID; defaults to the caller's account-scope knowledge.", "type": "string" } }, "type": "object" }, "KnowledgeFileListResponse": { - "description": "Files in the pack.", + "description": "Files in the knowledge.", "properties": { "files": { - "description": "Array of files in the specified knowledge pack; empty array when the pack has no files.", + "description": "Array of files in the specified knowledge; empty array when it has no files.", "items": { "$ref": "#/components/schemas/KnowledgeFileItem" }, "type": "array" }, "total": { - "description": "Total number of files in the pack.", + "description": "Total number of files in the knowledge.", "format": "int64", "type": "integer" } @@ -12999,11 +12999,11 @@ "type": "string" }, "pack_id": { - "description": "Knowledge pack ID; defaults to the caller's account-scope pack.", + "description": "Knowledge ID; defaults to the caller's account-scope knowledge.", "type": "string" }, "rel_path": { - "description": "Destination path relative to the pack root; existing files are overwritten.", + "description": "Destination path relative to the knowledge root; existing files are overwritten.", "type": "string" } }, @@ -13019,7 +13019,7 @@ "$ref": "#/components/schemas/KnowledgeFileItem" }, "warnings": { - "description": "Non-blocking warnings after a successful write; `code=unresolved_reference` means an @ref in the file content points to a file that does not exist in the pack. Absent when there are no warnings (omitempty).", + "description": "Non-blocking warnings after a successful write; `code=unresolved_reference` means an @ref in the file content points to a file that does not exist in the knowledge. Absent when there are no warnings (omitempty).", "items": { "$ref": "#/components/schemas/KnowledgeWarning" }, @@ -13032,15 +13032,15 @@ "type": "object" }, "KnowledgeGetRequest": { - "description": "No request fields — the account-scope pack is always targeted.", + "description": "No request fields — the account-scope knowledge is always targeted.", "properties": {}, "type": "object" }, "KnowledgeGetResponse": { - "description": "Account-scope pack metadata plus its file list.", + "description": "Account-scope knowledge metadata plus its file list.", "properties": { "files": { - "description": "Array of files in this knowledge pack; empty array when the pack has no files.", + "description": "Array of files in this knowledge; empty array when it has no files.", "items": { "$ref": "#/components/schemas/KnowledgeFileItem" }, @@ -13057,10 +13057,10 @@ "type": "object" }, "KnowledgePackDeleteRequest": { - "description": "Pack to delete.", + "description": "Knowledge to delete.", "properties": { "pack_id": { - "description": "Knowledge pack ID to delete.", + "description": "Knowledge ID to delete.", "type": "string" } }, @@ -13073,7 +13073,7 @@ "description": "Deletion result.", "properties": { "ok": { - "description": "True when the pack was deleted.", + "description": "True when the knowledge was deleted.", "type": "boolean" } }, @@ -13083,10 +13083,10 @@ "type": "object" }, "KnowledgePackEnsureRequest": { - "description": "Scope at which to ensure a knowledge pack exists.", + "description": "Scope at which to ensure knowledge exists.", "properties": { "scope": { - "description": "Scope of the pack to ensure. One of: `account` (account-level pack; scope_id is forced to the caller's account ID and only account admins may create it; first creation seeds a default DUTY.md), `team` (team-level pack; the `scope_id` team ID is required and the caller must belong to that team).", + "description": "Scope of the knowledge to ensure. One of: `account` (account-level knowledge; scope_id is forced to the caller's account ID and only account admins may create it; first creation seeds a default DUTY.md), `team` (team-level knowledge; the `scope_id` team ID is required and the caller must belong to that team).", "enum": [ "account", "team" @@ -13105,41 +13105,41 @@ "type": "object" }, "KnowledgePackItem": { - "description": "A knowledge pack — a versioned file tree staged into every AI SRE sandbox at session start. One pack exists per (account, scope, scope_id).", + "description": "Knowledge — a versioned file tree staged into every AI SRE sandbox at session start. One knowledge exists per (account, scope, scope_id).", "properties": { "account_id": { - "description": "Account that owns the pack.", + "description": "Account that owns the knowledge.", "format": "int64", "type": "integer" }, "can_edit": { - "description": "Whether the caller can edit this pack.", + "description": "Whether the caller can edit this knowledge.", "type": "boolean" }, "created_at_ms": { - "description": "Unix timestamp in milliseconds when the pack was created.", + "description": "Unix timestamp in milliseconds when the knowledge was created.", "format": "int64", "type": "integer" }, "created_by": { - "description": "Person ID of the member who created the pack.", + "description": "Person ID of the member who created the knowledge.", "format": "int64", "type": "integer" }, "duty_version": { - "description": "Pack version at which DUTY.md was last authored or re-affirmed. When `version` is greater, DUTY.md no longer reflects every file in the pack.", + "description": "Knowledge version at which DUTY.md was last authored or re-affirmed. When `version` is greater, DUTY.md no longer reflects every file in the knowledge.", "type": "integer" }, "file_count": { - "description": "Number of files in the pack.", + "description": "Number of files in the knowledge.", "type": "integer" }, "pack_id": { - "description": "Knowledge pack ID (`kpk_` prefix).", + "description": "Knowledge ID (`kpk_` prefix).", "type": "string" }, "scope": { - "description": "Pack scope. `channel` is a legacy scope; new packs are `account` or `team`.", + "description": "Knowledge scope. `channel` is a legacy scope; new knowledge is `account` or `team` scope.", "enum": [ "account", "team", @@ -13162,12 +13162,12 @@ "type": "integer" }, "updated_at_ms": { - "description": "Unix timestamp in milliseconds when the pack was last modified.", + "description": "Unix timestamp in milliseconds when the knowledge was last modified.", "format": "int64", "type": "integer" }, "version": { - "description": "Pack version, incremented on every file change.", + "description": "Knowledge version, incremented on every file change.", "type": "integer" } }, @@ -13188,10 +13188,10 @@ "type": "object" }, "KnowledgePackListRequest": { - "description": "Filter and pagination for the pack list.", + "description": "Filter and pagination for the knowledge list.", "properties": { "include_account": { - "description": "Include the account-scope pack; defaults to true.", + "description": "Include the account-scope knowledge; defaults to true.", "type": [ "boolean", "null" @@ -13206,12 +13206,12 @@ "type": "integer" }, "query": { - "description": "Case-insensitive substring filter over pack ID, scope, scope ID/account ID, and team name.", + "description": "Case-insensitive substring filter over knowledge ID, scope, scope ID/account ID, and team name.", "maxLength": 128, "type": "string" }, "scope": { - "description": "Restrict to one scope; `all` (default) overrides `include_account`. One of: `all` (account scope plus visible team scopes), `account` (account-level packs only), `team` (team-level packs only, can be combined with `team_ids`).", + "description": "Restrict to one scope; `all` (default) overrides `include_account`. One of: `all` (account scope plus visible team scopes), `account` (account-level knowledge only), `team` (team-level knowledge only, can be combined with `team_ids`).", "enum": [ "all", "account", @@ -13231,17 +13231,17 @@ "type": "object" }, "KnowledgePackListResponse": { - "description": "Visible packs and the total after filtering.", + "description": "Visible knowledge and the total after filtering.", "properties": { "packs": { - "description": "Array of visible knowledge packs after filtering (current page), used with `total` for pagination.", + "description": "Array of visible knowledge after filtering (current page), used with `total` for pagination.", "items": { "$ref": "#/components/schemas/KnowledgePackItem" }, "type": "array" }, "total": { - "description": "Total number of packs after filtering, before pagination.", + "description": "Total number of knowledge entries after filtering, before pagination.", "format": "int64", "type": "integer" } @@ -13253,14 +13253,14 @@ "type": "object" }, "KnowledgePackUpdateRequest": { - "description": "Move a knowledge pack to a different scope.", + "description": "Move knowledge to a different scope.", "properties": { "pack_id": { - "description": "Knowledge pack ID to update.", + "description": "Knowledge ID to update.", "type": "string" }, "scope": { - "description": "Destination scope; omit for a no-op that returns the current pack.", + "description": "Destination scope; omit for a no-op that returns the current knowledge.", "enum": [ "account", "team" @@ -13288,7 +13288,7 @@ "description": "Non-blocking annotation returned by file uploads and deletions, e.g. references that point at a removed file.", "properties": { "code": { - "description": "Warning code. One of: `unresolved_reference` (an @ref in the written file's content points to a file that does not exist in the pack; `ref` carries it), `still_referenced_by` (the deleted file is still @ref-referenced by other files in the pack; `refs` lists the referrers).", + "description": "Warning code. One of: `unresolved_reference` (an @ref in the written file's content points to a file that does not exist in the knowledge; `ref` carries it), `still_referenced_by` (the deleted file is still @ref-referenced by other files in the knowledge; `refs` lists the referrers).", "enum": [ "unresolved_reference", "still_referenced_by" @@ -23757,7 +23757,7 @@ "$ref": "#/components/schemas/SessionItem" }, "suggest_init": { - "description": "Account-wide onboarding flag: true when the account has zero knowledge packs in any scope; not specific to this session.", + "description": "Account-wide onboarding flag: true when the account has no knowledge in any scope; not specific to this session.", "type": "boolean" }, "pending_messages": { @@ -24111,7 +24111,7 @@ "type": "array" }, "suggest_init": { - "description": "Account-wide onboarding flag: true when the account has zero knowledge packs in any scope; not dependent on this call's filters.", + "description": "Account-wide onboarding flag: true when the account has no knowledge in any scope; not dependent on this call's filters.", "type": "boolean" }, "total": { @@ -52619,7 +52619,7 @@ }, "/safari/knowledge/file/delete": { "post": { - "description": "Delete a file from a knowledge pack by its relative path.", + "description": "Delete a knowledge file by its relative path.", "operationId": "knowledge-file-write-delete", "requestBody": { "content": { @@ -52687,7 +52687,7 @@ "AI SRE/Knowledge" ], "x-mint": { - "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **300 requests/minute**; **20 requests/second** per account |\n| Permissions | **Knowledge Manage** (`ai-sre`) |\n\n## Usage\n\n- Deleting is idempotent — removing a file that does not exist succeeds.\n- When other pack files still reference the target, the delete fails with `ReferenceExist` listing the referrers; set `force` to proceed (the referrers are returned as warnings).\n- Omitting `pack_id` targets the account-scope pack; editing the account pack requires account owner/admin, editing a team pack requires team membership.\n- Every call is recorded in the account audit log.\n", + "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **300 requests/minute**; **20 requests/second** per account |\n| Permissions | **Knowledge Manage** (`ai-sre`) |\n\n## Usage\n\n- Deleting is idempotent — removing a file that does not exist succeeds.\n- When other knowledge files still reference the target, the delete fails with `ReferenceExist` listing the referrers; set `force` to proceed (the referrers are returned as warnings).\n- Omitting `pack_id` targets the account-scope knowledge; editing the account knowledge requires account owner/admin, editing team knowledge requires team membership.\n- Every call is recorded in the account audit log.\n", "href": "/en/api-reference/ai-sre/knowledge/knowledge-file-write-delete", "metadata": { "sidebarTitle": "Delete knowledge file" @@ -52774,7 +52774,7 @@ "AI SRE/Knowledge" ], "x-mint": { - "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **1,000 requests/minute**; **50 requests/second** per account |\n| Permissions | None — any valid `app_key` can call this operation |\n\n## Usage\n\n- Content is returned in `content_b64` (base64); pack files are guaranteed UTF-8 text.\n- Omitting `pack_id` targets the account-scope pack; reading a team-scope pack requires team membership.\n- A missing file returns `ResourceNotFound` (HTTP 400).\n", + "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **1,000 requests/minute**; **50 requests/second** per account |\n| Permissions | None — any valid `app_key` can call this operation |\n\n## Usage\n\n- Content is returned in `content_b64` (base64); knowledge files are guaranteed UTF-8 text.\n- Omitting `pack_id` targets the account-scope knowledge; reading team-scope knowledge requires team membership.\n- A missing file returns `ResourceNotFound` (HTTP 400).\n", "href": "/en/api-reference/ai-sre/knowledge/knowledge-file-read-get", "metadata": { "sidebarTitle": "Get knowledge file" @@ -52784,7 +52784,7 @@ }, "/safari/knowledge/file/list": { "post": { - "description": "List the files in a knowledge pack with metadata such as size and checksum.", + "description": "List knowledge files with metadata such as size and checksum.", "operationId": "knowledge-file-read-list", "requestBody": { "content": { @@ -52873,7 +52873,7 @@ "AI SRE/Knowledge" ], "x-mint": { - "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **1,000 requests/minute**; **50 requests/second** per account |\n| Permissions | None — any valid `app_key` can call this operation |\n\n## Usage\n\n- Omitting `pack_id` targets the caller's account-scope pack (created lazily if absent).\n- Reading a team-scope pack requires membership of that team.\n- `p`/`limit` are accepted but the current implementation always returns the full file list.\n", + "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **1,000 requests/minute**; **50 requests/second** per account |\n| Permissions | None — any valid `app_key` can call this operation |\n\n## Usage\n\n- Omitting `pack_id` targets the caller's account-scope knowledge (created lazily if absent).\n- Reading team-scope knowledge requires membership of that team.\n- `p`/`limit` are accepted but the current implementation always returns the full file list.\n", "href": "/en/api-reference/ai-sre/knowledge/knowledge-file-read-list", "metadata": { "sidebarTitle": "List knowledge files" @@ -52883,7 +52883,7 @@ }, "/safari/knowledge/file/put": { "post": { - "description": "Create or overwrite a file in a knowledge pack with base64-encoded content.", + "description": "Create or overwrite a knowledge file with base64-encoded content.", "operationId": "knowledge-file-write-put", "requestBody": { "content": { @@ -52964,7 +52964,7 @@ "AI SRE/Knowledge" ], "x-mint": { - "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **300 requests/minute**; **20 requests/second** per account |\n| Permissions | **Knowledge Manage** (`ai-sre`) |\n\n## Usage\n\n- The file body is sent as base64 text in the JSON field `content_b64` — this is not a multipart upload.\n- Writing an existing `rel_path` overwrites it; `content_type` is inferred from the extension when omitted (`.md` → `text/markdown`).\n- Content must decode to valid UTF-8 text; binary payloads are rejected with `InvalidParameter`.\n- Editing the account-scope pack requires account owner/admin; editing a team pack requires team membership.\n- Every call is recorded in the account audit log.\n", + "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **300 requests/minute**; **20 requests/second** per account |\n| Permissions | **Knowledge Manage** (`ai-sre`) |\n\n## Usage\n\n- The file body is sent as base64 text in the JSON field `content_b64` — this is not a multipart upload.\n- Writing an existing `rel_path` overwrites it; `content_type` is inferred from the extension when omitted (`.md` → `text/markdown`).\n- Content must decode to valid UTF-8 text; binary payloads are rejected with `InvalidParameter`.\n- Editing the account-scope knowledge requires account owner/admin; editing team knowledge requires team membership.\n- Every call is recorded in the account audit log.\n", "href": "/en/api-reference/ai-sre/knowledge/knowledge-file-write-put", "metadata": { "sidebarTitle": "Upload knowledge file" @@ -52974,7 +52974,7 @@ }, "/safari/knowledge/get": { "post": { - "description": "Return the account-scope knowledge pack metadata and its file list.", + "description": "Return the metadata and file list of the account-scope knowledge.", "operationId": "knowledge-pack-read-get", "requestBody": { "content": { @@ -53069,22 +53069,22 @@ "AppKeyAuth": [] } ], - "summary": "Get account knowledge pack", + "summary": "Get account knowledge", "tags": [ "AI SRE/Knowledge" ], "x-mint": { - "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **1,000 requests/minute**; **50 requests/second** per account |\n| Permissions | None — any valid `app_key` can call this operation |\n\n## Usage\n\n- Always targets the caller's account-scope pack — there is no `pack_id` parameter; use `POST /safari/knowledge/pack/list` to discover team packs.\n- The account pack is created lazily on first access, so a valid account never gets not-found here.\n", + "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **1,000 requests/minute**; **50 requests/second** per account |\n| Permissions | None — any valid `app_key` can call this operation |\n\n## Usage\n\n- Always targets the caller's account-scope knowledge — there is no `pack_id` parameter; use `POST /safari/knowledge/pack/list` to discover team knowledge.\n- The account knowledge is created lazily on first access, so a valid account never gets not-found here.\n", "href": "/en/api-reference/ai-sre/knowledge/knowledge-pack-read-get", "metadata": { - "sidebarTitle": "Get account knowledge pack" + "sidebarTitle": "Get account knowledge" } } } }, "/safari/knowledge/pack/delete": { "post": { - "description": "Delete a knowledge pack and all of its files.", + "description": "Delete knowledge and all of its files.", "operationId": "knowledge-pack-write-delete", "requestBody": { "content": { @@ -53149,22 +53149,22 @@ "AppKeyAuth": [] } ], - "summary": "Delete knowledge pack", + "summary": "Delete knowledge", "tags": [ "AI SRE/Knowledge" ], "x-mint": { - "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **300 requests/minute**; **20 requests/second** per account |\n| Permissions | **Knowledge Manage** (`ai-sre`) |\n\n## Usage\n\n- Deleting a pack removes every file it contains; the operation cannot be undone.\n- Deleting the account-scope pack is allowed; it is re-created empty on next access.\n- Every call is recorded in the account audit log.\n", + "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **300 requests/minute**; **20 requests/second** per account |\n| Permissions | **Knowledge Manage** (`ai-sre`) |\n\n## Usage\n\n- Deleting knowledge removes every file it contains; the operation cannot be undone.\n- Deleting the account-scope knowledge is allowed; it is re-created empty on next access.\n- Every call is recorded in the account audit log.\n", "href": "/en/api-reference/ai-sre/knowledge/knowledge-pack-write-delete", "metadata": { - "sidebarTitle": "Delete knowledge pack" + "sidebarTitle": "Delete knowledge" } } } }, "/safari/knowledge/pack/ensure": { "post": { - "description": "Idempotently create the knowledge pack at the given scope, or return the existing one.", + "description": "Idempotently create the knowledge at the given scope, or return the existing one.", "operationId": "knowledge-pack-write-ensure", "requestBody": { "content": { @@ -53241,22 +53241,22 @@ "AppKeyAuth": [] } ], - "summary": "Ensure knowledge pack", + "summary": "Ensure knowledge", "tags": [ "AI SRE/Knowledge" ], "x-mint": { - "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **300 requests/minute**; **20 requests/second** per account |\n| Permissions | **Knowledge Manage** (`ai-sre`) |\n\n## Usage\n\n- Idempotent: if a pack already exists at (`scope`, `scope_id`), it is returned unchanged.\n- For `account` scope, `scope_id` is ignored (the account ID is used) and a default `DUTY.md` is seeded on first creation.\n- Creating the account-scope pack requires account owner/admin; creating into a team requires membership of that team.\n- Every call is recorded in the account audit log.\n", + "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **300 requests/minute**; **20 requests/second** per account |\n| Permissions | **Knowledge Manage** (`ai-sre`) |\n\n## Usage\n\n- Idempotent: if knowledge already exists at (`scope`, `scope_id`), it is returned unchanged.\n- For `account` scope, `scope_id` is ignored (the account ID is used) and a default `DUTY.md` is seeded on first creation.\n- Creating the account-scope knowledge requires account owner/admin; creating into a team requires membership of that team.\n- Every call is recorded in the account audit log.\n", "href": "/en/api-reference/ai-sre/knowledge/knowledge-pack-write-ensure", "metadata": { - "sidebarTitle": "Ensure knowledge pack" + "sidebarTitle": "Ensure knowledge" } } } }, "/safari/knowledge/pack/list": { "post": { - "description": "List knowledge packs visible to the caller across account and team scopes.", + "description": "List the knowledge visible to the caller across account and team scopes.", "operationId": "knowledge-pack-read-list", "requestBody": { "content": { @@ -53352,22 +53352,22 @@ "AppKeyAuth": [] } ], - "summary": "List knowledge packs", + "summary": "List knowledge", "tags": [ "AI SRE/Knowledge" ], "x-mint": { - "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **1,000 requests/minute**; **50 requests/second** per account |\n| Permissions | None — any valid `app_key` can call this operation |\n\n## Usage\n\n- Visibility matches the console: admins see the account pack plus every team pack; non-admins see the account pack plus their own teams, and requested `team_ids` are silently intersected with their teams.\n- `scope` selects `all` (default), `account`-only, or `team`-only, overriding `include_account`.\n- `query` applies a case-insensitive substring filter over pack ID, scope, and team name; `p`/`limit` paginate the filtered result.\n", + "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **1,000 requests/minute**; **50 requests/second** per account |\n| Permissions | None — any valid `app_key` can call this operation |\n\n## Usage\n\n- Visibility matches the console: admins see the account knowledge plus every team's knowledge; non-admins see the account knowledge plus their own teams' knowledge, and requested `team_ids` are silently intersected with their teams.\n- `scope` selects `all` (default), `account`-only, or `team`-only, overriding `include_account`.\n- `query` applies a case-insensitive substring filter over knowledge ID, scope, and team name; `p`/`limit` paginate the filtered result.\n", "href": "/en/api-reference/ai-sre/knowledge/knowledge-pack-read-list", "metadata": { - "sidebarTitle": "List knowledge packs" + "sidebarTitle": "List knowledge" } } } }, "/safari/knowledge/pack/update": { "post": { - "description": "Move a knowledge pack to a different account or team scope.", + "description": "Move knowledge to a different account or team scope.", "operationId": "knowledge-pack-write-update", "requestBody": { "content": { @@ -53446,15 +53446,15 @@ "AppKeyAuth": [] } ], - "summary": "Update knowledge pack", + "summary": "Update knowledge", "tags": [ "AI SRE/Knowledge" ], "x-mint": { - "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **300 requests/minute**; **20 requests/second** per account |\n| Permissions | **Knowledge Manage** (`ai-sre`) |\n\n## Usage\n\n- `scope` is the only mutable field; omitting it is a no-op that returns the current pack.\n- For `team` scope, `scope_id` is required; for `account` scope it is set to the account ID automatically.\n- The move fails with `ReferenceExist` when the destination scope already has a pack — packs are never merged.\n- Every call is recorded in the account audit log.\n", + "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **300 requests/minute**; **20 requests/second** per account |\n| Permissions | **Knowledge Manage** (`ai-sre`) |\n\n## Usage\n\n- `scope` is the only mutable field; omitting it is a no-op that returns the current knowledge.\n- For `team` scope, `scope_id` is required; for `account` scope it is set to the account ID automatically.\n- The move fails with `ReferenceExist` when the destination scope already has knowledge — knowledge is never merged.\n- Every call is recorded in the account audit log.\n", "href": "/en/api-reference/ai-sre/knowledge/knowledge-pack-write-update", "metadata": { - "sidebarTitle": "Update knowledge pack" + "sidebarTitle": "Update knowledge" } } } @@ -54491,7 +54491,7 @@ "AI SRE/Sessions" ], "x-mint": { - "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **1,000 requests/minute**; **50 requests/second** per account |\n| Permissions | None — any valid `app_key` can call this operation |\n\n## Usage\n\n- Pagination uses `p`/`limit` (max 100); `scope` defaults to `all`.\n- `all` returns your personal sessions plus team sessions you can access; account admins see all team sessions, but not other users' personal sessions.\n- `team_ids` narrows the visible set and never expands access.\n- `is_running` reflects the live run-set; `has_unread` is computed per calling user; the `current_turn_*` fields are always zero here — only `session/get` computes them while a session is running.\n- `suggest_init` is an account-wide onboarding flag (true only when the account has zero knowledge packs anywhere) — it doesn't depend on the list filters.\n", + "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **1,000 requests/minute**; **50 requests/second** per account |\n| Permissions | None — any valid `app_key` can call this operation |\n\n## Usage\n\n- Pagination uses `p`/`limit` (max 100); `scope` defaults to `all`.\n- `all` returns your personal sessions plus team sessions you can access; account admins see all team sessions, but not other users' personal sessions.\n- `team_ids` narrows the visible set and never expands access.\n- `is_running` reflects the live run-set; `has_unread` is computed per calling user; the `current_turn_*` fields are always zero here — only `session/get` computes them while a session is running.\n- `suggest_init` is an account-wide onboarding flag (true only when the account has no knowledge in any scope) — it doesn't depend on the list filters.\n", "href": "/en/api-reference/ai-sre/sessions/session-read-list", "metadata": { "sidebarTitle": "List sessions" diff --git a/api-reference/openapi.zh.json b/api-reference/openapi.zh.json index afedef7f7..fff8dc46f 100644 --- a/api-reference/openapi.zh.json +++ b/api-reference/openapi.zh.json @@ -5017,10 +5017,10 @@ "type": "object" }, "ContextResolvedItem": { - "description": "该会话三层知识包解析结果的快照。", + "description": "该会话三层知识解析结果的快照。", "properties": { "account_pack_id": { - "description": "解析出的账户级知识包 ID。", + "description": "解析出的账户级知识 ID。", "type": "string" }, "incident_id": { @@ -5028,19 +5028,19 @@ "type": "string" }, "resolved_at_ms": { - "description": "知识包解析时间,Unix 毫秒时间戳。", + "description": "知识解析时间,Unix 毫秒时间戳。", "format": "int64", "type": "integer" }, "team_pack_id": { - "description": "解析出的团队级知识包 ID。", + "description": "解析出的团队级知识 ID。", "type": "string" }, "versions": { "additionalProperties": { "type": "integer" }, - "description": "各知识包解析版本映射。", + "description": "各份知识的解析版本映射。", "type": "object" } }, @@ -12829,18 +12829,18 @@ "type": "object" }, "KnowledgeFileDeleteRequest": { - "description": "要从知识包中删除的文件。", + "description": "要删除的知识文件。", "properties": { "force": { - "description": "即使其他包内文件仍引用该文件也强制删除;此时引用方会以警告形式返回,而不再阻止删除。", + "description": "即使其他知识文件仍引用该文件也强制删除;此时引用方会以警告形式返回,而不再阻止删除。", "type": "boolean" }, "pack_id": { - "description": "知识包 ID;默认为调用者的账户范围知识包。", + "description": "知识 ID;默认为调用者的账户范围知识。", "type": "string" }, "rel_path": { - "description": "文件相对于知识包根目录的路径。", + "description": "文件相对于知识根目录的路径。", "type": "string" } }, @@ -12853,7 +12853,7 @@ "description": "删除结果;无警告时为空对象。", "properties": { "warnings": { - "description": "删除后的非阻塞警告数组;`code=still_referenced_by` 表示被(强制)删除的文件仍被包内其他文件 @ref 引用(`refs` 列出引用方)。无警告时该字段缺省(omitempty)。", + "description": "删除后的非阻塞警告数组;`code=still_referenced_by` 表示被(强制)删除的文件仍被知识内其他文件 @ref 引用(`refs` 列出引用方)。无警告时该字段缺省(omitempty)。", "items": { "$ref": "#/components/schemas/KnowledgeWarning" }, @@ -12866,11 +12866,11 @@ "description": "要获取的文件。", "properties": { "pack_id": { - "description": "知识包 ID;默认为调用者的账户范围知识包。", + "description": "知识 ID;默认为调用者的账户范围知识。", "type": "string" }, "rel_path": { - "description": "文件相对于知识包根目录的路径。", + "description": "文件相对于知识根目录的路径。", "type": "string" } }, @@ -12897,7 +12897,7 @@ "type": "object" }, "KnowledgeFileItem": { - "description": "知识包内单个文件的元数据;文件内容需通过 file/get 单独获取。", + "description": "单个知识文件的元数据;文件内容需通过 file/get 单独获取。", "properties": { "checksum": { "description": "文件内容的 SHA-256 十六进制摘要。", @@ -12912,11 +12912,11 @@ "type": "string" }, "pack_id": { - "description": "文件所属的知识包 ID。", + "description": "文件所属的知识 ID。", "type": "string" }, "rel_path": { - "description": "相对于知识包根目录的路径,如 `runbooks/restart.md`。", + "description": "相对于知识根目录的路径,如 `runbooks/restart.md`。", "type": "string" }, "size_bytes": { @@ -12948,7 +12948,7 @@ "type": "object" }, "KnowledgeFileListRequest": { - "description": "要列出文件的知识包。", + "description": "要列出文件的知识。", "properties": { "limit": { "description": "每页条数。目前接受但忽略——响应始终返回完整文件列表。", @@ -12959,24 +12959,24 @@ "type": "integer" }, "pack_id": { - "description": "知识包 ID;默认为调用者的账户范围知识包。", + "description": "知识 ID;默认为调用者的账户范围知识。", "type": "string" } }, "type": "object" }, "KnowledgeFileListResponse": { - "description": "知识包内的文件。", + "description": "知识内的文件。", "properties": { "files": { - "description": "指定知识包内的文件数组;无文件时为空数组。", + "description": "指定知识内的文件数组;无文件时为空数组。", "items": { "$ref": "#/components/schemas/KnowledgeFileItem" }, "type": "array" }, "total": { - "description": "知识包内文件总数。", + "description": "知识内文件总数。", "format": "int64", "type": "integer" } @@ -12999,11 +12999,11 @@ "type": "string" }, "pack_id": { - "description": "知识包 ID;默认为调用者的账户范围知识包。", + "description": "知识 ID;默认为调用者的账户范围知识。", "type": "string" }, "rel_path": { - "description": "相对于知识包根目录的目标路径;已存在的文件会被覆盖。", + "description": "相对于知识根目录的目标路径;已存在的文件会被覆盖。", "type": "string" } }, @@ -13019,7 +13019,7 @@ "$ref": "#/components/schemas/KnowledgeFileItem" }, "warnings": { - "description": "写入成功后的非阻塞警告数组;`code=unresolved_reference` 表示文件内容中的 @ref 引用了包内不存在的文件。无警告时该字段缺省(omitempty)。", + "description": "写入成功后的非阻塞警告数组;`code=unresolved_reference` 表示文件内容中的 @ref 引用了知识内不存在的文件。无警告时该字段缺省(omitempty)。", "items": { "$ref": "#/components/schemas/KnowledgeWarning" }, @@ -13032,15 +13032,15 @@ "type": "object" }, "KnowledgeGetRequest": { - "description": "无请求字段——固定查询账户范围知识包。", + "description": "无请求字段——固定查询账户范围知识。", "properties": {}, "type": "object" }, "KnowledgeGetResponse": { - "description": "账户范围知识包元数据及其文件列表。", + "description": "账户范围知识元数据及其文件列表。", "properties": { "files": { - "description": "该知识包内的文件数组;无文件时为空数组。", + "description": "该知识内的文件数组;无文件时为空数组。", "items": { "$ref": "#/components/schemas/KnowledgeFileItem" }, @@ -13057,10 +13057,10 @@ "type": "object" }, "KnowledgePackDeleteRequest": { - "description": "要删除的知识包。", + "description": "要删除的知识。", "properties": { "pack_id": { - "description": "要删除的知识包 ID。", + "description": "要删除的知识 ID。", "type": "string" } }, @@ -13073,7 +13073,7 @@ "description": "删除结果。", "properties": { "ok": { - "description": "知识包删除成功时为 true。", + "description": "知识删除成功时为 true。", "type": "boolean" } }, @@ -13083,10 +13083,10 @@ "type": "object" }, "KnowledgePackEnsureRequest": { - "description": "要确保存在知识包的范围。", + "description": "要确保存在知识的范围。", "properties": { "scope": { - "description": "知识包范围。可选值:`account`(账户级知识包,scope_id 固定为调用方账户 ID,仅账户管理员可创建;首次创建会播种默认 DUTY.md)、`team`(团队级知识包,必须提供 `scope_id` 团队 ID,调用者需属于该团队)。", + "description": "知识范围。可选值:`account`(账户级知识,scope_id 固定为调用方账户 ID,仅账户管理员可创建;首次创建会播种默认 DUTY.md)、`team`(团队级知识,必须提供 `scope_id` 团队 ID,调用者需属于该团队)。", "enum": [ "account", "team" @@ -13105,15 +13105,15 @@ "type": "object" }, "KnowledgePackItem": { - "description": "知识包——一棵带版本号的文件树,AI SRE 会话启动时会注入到每个沙箱中。每个(账户, scope, scope_id)仅有一个知识包。", + "description": "知识——一棵带版本号的文件树,AI SRE 会话启动时会注入到每个沙箱中。每个(账户, scope, scope_id)仅有一份知识。", "properties": { "account_id": { - "description": "知识包所属账户 ID。", + "description": "知识所属账户 ID。", "format": "int64", "type": "integer" }, "can_edit": { - "description": "调用者是否有权限编辑该知识包。", + "description": "调用者是否有权限编辑该知识。", "type": "boolean" }, "created_at_ms": { @@ -13127,19 +13127,19 @@ "type": "integer" }, "duty_version": { - "description": "最后一次撰写或确认 DUTY.md 时的知识库版本。当 `version` 大于该值时,说明 DUTY.md 已不能反映知识库的全部文件。", + "description": "最后一次撰写或确认 DUTY.md 时的知识版本。当 `version` 大于该值时,说明 DUTY.md 已不能反映知识的全部文件。", "type": "integer" }, "file_count": { - "description": "包内文件数量。", + "description": "知识内文件数量。", "type": "integer" }, "pack_id": { - "description": "知识包 ID(`kpk_` 前缀)。", + "description": "知识 ID(`kpk_` 前缀)。", "type": "string" }, "scope": { - "description": "知识包范围;`channel` 为历史遗留范围,新建知识包为 `account` 或 `team`。", + "description": "知识范围;`channel` 为历史遗留范围,新建知识为 `account` 或 `team`。", "enum": [ "account", "team", @@ -13157,7 +13157,7 @@ "type": "string" }, "total_bytes": { - "description": "包内所有文件的总字节数。", + "description": "知识内所有文件的总字节数。", "format": "int64", "type": "integer" }, @@ -13167,7 +13167,7 @@ "type": "integer" }, "version": { - "description": "知识包版本号,文件每次变更时递增。", + "description": "知识版本号,文件每次变更时递增。", "type": "integer" } }, @@ -13188,10 +13188,10 @@ "type": "object" }, "KnowledgePackListRequest": { - "description": "知识包列表的过滤与分页参数。", + "description": "知识列表的过滤与分页参数。", "properties": { "include_account": { - "description": "是否包含账户范围的知识包;默认为 true。", + "description": "是否包含账户范围的知识;默认为 true。", "type": [ "boolean", "null" @@ -13206,12 +13206,12 @@ "type": "integer" }, "query": { - "description": "对知识包 ID、范围、范围 ID/账户 ID 和团队名称做大小写不敏感的子串过滤。", + "description": "对知识 ID、范围、范围 ID/账户 ID 和团队名称做大小写不敏感的子串过滤。", "maxLength": 128, "type": "string" }, "scope": { - "description": "限定范围;`all`(默认)会覆盖 `include_account`。可选值:`all`(账户范围 + 可见团队范围)、`account`(仅账户级知识包)、`team`(仅团队级知识包,可配合 `team_ids` 过滤)。", + "description": "限定范围;`all`(默认)会覆盖 `include_account`。可选值:`all`(账户范围 + 可见团队范围)、`account`(仅账户级知识)、`team`(仅团队级知识,可配合 `team_ids` 过滤)。", "enum": [ "all", "account", @@ -13231,17 +13231,17 @@ "type": "object" }, "KnowledgePackListResponse": { - "description": "可见的知识包及过滤后的总数。", + "description": "可见的知识及过滤后的总数。", "properties": { "packs": { - "description": "过滤后当前可见的知识包数组(当前页),与 `total` 配合分页。", + "description": "过滤后当前可见的知识数组(当前页),与 `total` 配合分页。", "items": { "$ref": "#/components/schemas/KnowledgePackItem" }, "type": "array" }, "total": { - "description": "过滤后、分页前的知识包总数。", + "description": "过滤后、分页前的知识总数。", "format": "int64", "type": "integer" } @@ -13253,14 +13253,14 @@ "type": "object" }, "KnowledgePackUpdateRequest": { - "description": "将知识包移动到其他范围。", + "description": "将知识移动到其他范围。", "properties": { "pack_id": { - "description": "要更新的知识包 ID。", + "description": "要更新的知识 ID。", "type": "string" }, "scope": { - "description": "目标范围;不传则为空操作,返回当前知识包。", + "description": "目标范围;不传则为空操作,返回当前知识。", "enum": [ "account", "team" @@ -13288,7 +13288,7 @@ "description": "文件上传/删除返回的非阻塞提示,例如指向已删除文件的引用。", "properties": { "code": { - "description": "提示码。可选值:`unresolved_reference`(写入的文件内容中 @ref 引用了包内不存在的文件,`ref` 给出该引用)、`still_referenced_by`(被删除的文件仍被包内其他文件 @ref 引用,`refs` 列出引用方)。", + "description": "提示码。可选值:`unresolved_reference`(写入的文件内容中 @ref 引用了知识内不存在的文件,`ref` 给出该引用)、`still_referenced_by`(被删除的文件仍被知识内其他文件 @ref 引用,`refs` 列出引用方)。", "enum": [ "unresolved_reference", "still_referenced_by" @@ -23757,7 +23757,7 @@ "$ref": "#/components/schemas/SessionItem" }, "suggest_init": { - "description": "账户级引导标志:当账户在任何范围内都没有知识包时为 true;并非该会话独有的属性。", + "description": "账户级引导标志:当账户在任何范围内都没有知识时为 true;并非该会话独有的属性。", "type": "boolean" }, "pending_messages": { @@ -24111,7 +24111,7 @@ "type": "array" }, "suggest_init": { - "description": "账户级引导标志:当账户在任何范围内都没有知识包时为 true;与本次调用的过滤条件无关。", + "description": "账户级引导标志:当账户在任何范围内都没有知识时为 true;与本次调用的过滤条件无关。", "type": "boolean" }, "total": { @@ -52619,7 +52619,7 @@ }, "/safari/knowledge/file/delete": { "post": { - "description": "按相对路径删除知识包中的文件。", + "description": "按相对路径删除知识文件。", "operationId": "knowledge-file-write-delete", "requestBody": { "content": { @@ -52687,7 +52687,7 @@ "AI SRE/知识" ], "x-mint": { - "content": "## 限制说明\n\n| 项目 | 说明 |\n| ---- | ---- |\n| 速率限制 | 每个 `app_key` **300 次/分钟**;**20 次/秒** |\n| 权限要求 | **知识库管理**(`ai-sre`) |\n\n## 使用说明\n\n- 删除是幂等的——删除不存在的文件也会成功。\n- 当其他包内文件仍引用目标文件时,删除失败并返回 `ReferenceExist`(附带引用方列表);设置 `force` 可强制删除(引用方以警告形式返回)。\n- 不传 `pack_id` 时默认账户范围知识包;编辑账户包需要账户 Owner/Admin 权限,编辑团队包需要是该团队成员。\n- 每次调用都会记录到账户审计日志。\n", + "content": "## 限制说明\n\n| 项目 | 说明 |\n| ---- | ---- |\n| 速率限制 | 每个 `app_key` **300 次/分钟**;**20 次/秒** |\n| 权限要求 | **知识管理**(`ai-sre`) |\n\n## 使用说明\n\n- 删除是幂等的——删除不存在的文件也会成功。\n- 当其他知识文件仍引用目标文件时,删除失败并返回 `ReferenceExist`(附带引用方列表);设置 `force` 可强制删除(引用方以警告形式返回)。\n- 不传 `pack_id` 时默认账户范围知识;编辑账户知识需要账户 Owner/Admin 权限,编辑团队知识需要是该团队成员。\n- 每次调用都会记录到账户审计日志。\n", "href": "/zh/api-reference/ai-sre/knowledge/knowledge-file-write-delete", "metadata": { "sidebarTitle": "删除知识文件" @@ -52774,7 +52774,7 @@ "AI SRE/知识" ], "x-mint": { - "content": "## 限制说明\n\n| 项目 | 说明 |\n| ---- | ---- |\n| 速率限制 | 每个 `app_key` **1,000 次/分钟**;**50 次/秒** |\n| 权限要求 | 无 —— 持有有效的 `app_key` 即可调用 |\n\n## 使用说明\n\n- 文件内容通过 `content_b64`(Base64)返回;知识包文件保证为 UTF-8 文本。\n- 不传 `pack_id` 时默认账户范围知识包;读取团队范围知识包需要是该团队成员。\n- 文件不存在时返回 `ResourceNotFound`(HTTP 400)。\n", + "content": "## 限制说明\n\n| 项目 | 说明 |\n| ---- | ---- |\n| 速率限制 | 每个 `app_key` **1,000 次/分钟**;**50 次/秒** |\n| 权限要求 | 无 —— 持有有效的 `app_key` 即可调用 |\n\n## 使用说明\n\n- 文件内容通过 `content_b64`(Base64)返回;知识文件保证为 UTF-8 文本。\n- 不传 `pack_id` 时默认账户范围知识;读取团队范围知识需要是该团队成员。\n- 文件不存在时返回 `ResourceNotFound`(HTTP 400)。\n", "href": "/zh/api-reference/ai-sre/knowledge/knowledge-file-read-get", "metadata": { "sidebarTitle": "获取知识文件" @@ -52784,7 +52784,7 @@ }, "/safari/knowledge/file/list": { "post": { - "description": "查询知识包内的文件列表,包含大小、校验和等元数据。", + "description": "查询知识文件列表,包含大小、校验和等元数据。", "operationId": "knowledge-file-read-list", "requestBody": { "content": { @@ -52873,7 +52873,7 @@ "AI SRE/知识" ], "x-mint": { - "content": "## 限制说明\n\n| 项目 | 说明 |\n| ---- | ---- |\n| 速率限制 | 每个 `app_key` **1,000 次/分钟**;**50 次/秒** |\n| 权限要求 | 无 —— 持有有效的 `app_key` 即可调用 |\n\n## 使用说明\n\n- 不传 `pack_id` 时默认查询调用者的账户范围知识包(不存在时惰性创建)。\n- 读取团队范围知识包需要是该团队成员。\n- `p`/`limit` 参数会被接受,但当前实现始终返回完整文件列表。\n", + "content": "## 限制说明\n\n| 项目 | 说明 |\n| ---- | ---- |\n| 速率限制 | 每个 `app_key` **1,000 次/分钟**;**50 次/秒** |\n| 权限要求 | 无 —— 持有有效的 `app_key` 即可调用 |\n\n## 使用说明\n\n- 不传 `pack_id` 时默认查询调用者的账户范围知识(不存在时惰性创建)。\n- 读取团队范围知识需要是该团队成员。\n- `p`/`limit` 参数会被接受,但当前实现始终返回完整文件列表。\n", "href": "/zh/api-reference/ai-sre/knowledge/knowledge-file-read-list", "metadata": { "sidebarTitle": "查询知识文件列表" @@ -52883,7 +52883,7 @@ }, "/safari/knowledge/file/put": { "post": { - "description": "以 Base64 编码的内容在知识包中创建或覆盖文件。", + "description": "以 Base64 编码的内容创建或覆盖知识文件。", "operationId": "knowledge-file-write-put", "requestBody": { "content": { @@ -52964,7 +52964,7 @@ "AI SRE/知识" ], "x-mint": { - "content": "## 限制说明\n\n| 项目 | 说明 |\n| ---- | ---- |\n| 速率限制 | 每个 `app_key` **300 次/分钟**;**20 次/秒** |\n| 权限要求 | **知识库管理**(`ai-sre`) |\n\n## 使用说明\n\n- 文件内容以 JSON 字段 `content_b64` 中的 Base64 文本上传——不是 multipart 上传。\n- 写入已存在的 `rel_path` 会覆盖原文件;`content_type` 留空时按扩展名推断(`.md` → `text/markdown`)。\n- 内容解码后必须是合法的 UTF-8 文本,二进制内容会被拒绝并返回 `InvalidParameter`。\n- 编辑账户范围知识包需要账户 Owner/Admin 权限;编辑团队知识包需要是该团队成员。\n- 每次调用都会记录到账户审计日志。\n", + "content": "## 限制说明\n\n| 项目 | 说明 |\n| ---- | ---- |\n| 速率限制 | 每个 `app_key` **300 次/分钟**;**20 次/秒** |\n| 权限要求 | **知识管理**(`ai-sre`) |\n\n## 使用说明\n\n- 文件内容以 JSON 字段 `content_b64` 中的 Base64 文本上传——不是 multipart 上传。\n- 写入已存在的 `rel_path` 会覆盖原文件;`content_type` 留空时按扩展名推断(`.md` → `text/markdown`)。\n- 内容解码后必须是合法的 UTF-8 文本,二进制内容会被拒绝并返回 `InvalidParameter`。\n- 编辑账户范围知识需要账户 Owner/Admin 权限;编辑团队知识需要是该团队成员。\n- 每次调用都会记录到账户审计日志。\n", "href": "/zh/api-reference/ai-sre/knowledge/knowledge-file-write-put", "metadata": { "sidebarTitle": "上传知识文件" @@ -52974,7 +52974,7 @@ }, "/safari/knowledge/get": { "post": { - "description": "返回账户范围知识包的元数据及其文件列表。", + "description": "返回账户范围知识的元数据及其文件列表。", "operationId": "knowledge-pack-read-get", "requestBody": { "content": { @@ -53069,22 +53069,22 @@ "AppKeyAuth": [] } ], - "summary": "查看账户知识包", + "summary": "查看账户知识", "tags": [ "AI SRE/知识" ], "x-mint": { - "content": "## 限制说明\n\n| 项目 | 说明 |\n| ---- | ---- |\n| 速率限制 | 每个 `app_key` **1,000 次/分钟**;**50 次/秒** |\n| 权限要求 | 无 —— 持有有效的 `app_key` 即可调用 |\n\n## 使用说明\n\n- 固定返回调用者的账户范围知识包——没有 `pack_id` 参数;如需团队知识包请使用 `POST /safari/knowledge/pack/list`。\n- 账户知识包在首次访问时惰性创建,因此有效账户调用不会返回 not-found。\n", + "content": "## 限制说明\n\n| 项目 | 说明 |\n| ---- | ---- |\n| 速率限制 | 每个 `app_key` **1,000 次/分钟**;**50 次/秒** |\n| 权限要求 | 无 —— 持有有效的 `app_key` 即可调用 |\n\n## 使用说明\n\n- 固定返回调用者的账户范围知识——没有 `pack_id` 参数;如需团队知识请使用 `POST /safari/knowledge/pack/list`。\n- 账户知识在首次访问时惰性创建,因此有效账户调用不会返回 not-found。\n", "href": "/zh/api-reference/ai-sre/knowledge/knowledge-pack-read-get", "metadata": { - "sidebarTitle": "查看账户知识包" + "sidebarTitle": "查看账户知识" } } } }, "/safari/knowledge/pack/delete": { "post": { - "description": "删除知识包及其全部文件。", + "description": "删除知识及其全部文件。", "operationId": "knowledge-pack-write-delete", "requestBody": { "content": { @@ -53149,22 +53149,22 @@ "AppKeyAuth": [] } ], - "summary": "删除知识包", + "summary": "删除知识", "tags": [ "AI SRE/知识" ], "x-mint": { - "content": "## 限制说明\n\n| 项目 | 说明 |\n| ---- | ---- |\n| 速率限制 | 每个 `app_key` **300 次/分钟**;**20 次/秒** |\n| 权限要求 | **知识库管理**(`ai-sre`) |\n\n## 使用说明\n\n- 删除知识包会同时删除其中所有文件,且不可恢复。\n- 允许删除账户范围知识包;下次访问时会重新创建为空包。\n- 每次调用都会记录到账户审计日志。\n", + "content": "## 限制说明\n\n| 项目 | 说明 |\n| ---- | ---- |\n| 速率限制 | 每个 `app_key` **300 次/分钟**;**20 次/秒** |\n| 权限要求 | **知识管理**(`ai-sre`) |\n\n## 使用说明\n\n- 删除知识会同时删除其中所有文件,且不可恢复。\n- 允许删除账户范围知识;下次访问时会重新创建一份空知识。\n- 每次调用都会记录到账户审计日志。\n", "href": "/zh/api-reference/ai-sre/knowledge/knowledge-pack-write-delete", "metadata": { - "sidebarTitle": "删除知识包" + "sidebarTitle": "删除知识" } } } }, "/safari/knowledge/pack/ensure": { "post": { - "description": "在指定范围幂等创建知识包,已存在时直接返回现有知识包。", + "description": "在指定范围幂等创建知识,已存在时直接返回现有知识。", "operationId": "knowledge-pack-write-ensure", "requestBody": { "content": { @@ -53241,22 +53241,22 @@ "AppKeyAuth": [] } ], - "summary": "确保知识包存在", + "summary": "确保知识存在", "tags": [ "AI SRE/知识" ], "x-mint": { - "content": "## 限制说明\n\n| 项目 | 说明 |\n| ---- | ---- |\n| 速率限制 | 每个 `app_key` **300 次/分钟**;**20 次/秒** |\n| 权限要求 | **知识库管理**(`ai-sre`) |\n\n## 使用说明\n\n- 幂等:若(`scope`, `scope_id`)已存在知识包,则原样返回。\n- 账户范围忽略 `scope_id`(使用账户 ID),首次创建时会自动写入默认 `DUTY.md`。\n- 创建账户范围知识包需要账户 Owner/Admin 权限;在团队下创建需要是该团队成员。\n- 每次调用都会记录到账户审计日志。\n", + "content": "## 限制说明\n\n| 项目 | 说明 |\n| ---- | ---- |\n| 速率限制 | 每个 `app_key` **300 次/分钟**;**20 次/秒** |\n| 权限要求 | **知识管理**(`ai-sre`) |\n\n## 使用说明\n\n- 幂等:若(`scope`, `scope_id`)已存在知识,则原样返回。\n- 账户范围忽略 `scope_id`(使用账户 ID),首次创建时会自动写入默认 `DUTY.md`。\n- 创建账户范围知识需要账户 Owner/Admin 权限;在团队下创建需要是该团队成员。\n- 每次调用都会记录到账户审计日志。\n", "href": "/zh/api-reference/ai-sre/knowledge/knowledge-pack-write-ensure", "metadata": { - "sidebarTitle": "确保知识包存在" + "sidebarTitle": "确保知识存在" } } } }, "/safari/knowledge/pack/list": { "post": { - "description": "查询调用者可见的账户与团队范围知识包列表。", + "description": "查询调用者可见的账户与团队范围知识列表。", "operationId": "knowledge-pack-read-list", "requestBody": { "content": { @@ -53352,22 +53352,22 @@ "AppKeyAuth": [] } ], - "summary": "查询知识包列表", + "summary": "查询知识列表", "tags": [ "AI SRE/知识" ], "x-mint": { - "content": "## 限制说明\n\n| 项目 | 说明 |\n| ---- | ---- |\n| 速率限制 | 每个 `app_key` **1,000 次/分钟**;**50 次/秒** |\n| 权限要求 | 无 —— 持有有效的 `app_key` 即可调用 |\n\n## 使用说明\n\n- 可见性与控制台一致:管理员可见账户包及全部团队包;非管理员可见账户包及所属团队包,传入的 `team_ids` 会被静默过滤为其所属团队。\n- `scope` 用于选择 `all`(默认)、仅 `account` 或仅 `team`,会覆盖 `include_account`。\n- `query` 对知识包 ID、范围和团队名称做大小写不敏感的子串过滤;`p`/`limit` 对过滤结果分页。\n", + "content": "## 限制说明\n\n| 项目 | 说明 |\n| ---- | ---- |\n| 速率限制 | 每个 `app_key` **1,000 次/分钟**;**50 次/秒** |\n| 权限要求 | 无 —— 持有有效的 `app_key` 即可调用 |\n\n## 使用说明\n\n- 可见性与控制台一致:管理员可见账户知识及全部团队知识;非管理员可见账户知识及所属团队的知识,传入的 `team_ids` 会被静默过滤为其所属团队。\n- `scope` 用于选择 `all`(默认)、仅 `account` 或仅 `team`,会覆盖 `include_account`。\n- `query` 对知识 ID、范围和团队名称做大小写不敏感的子串过滤;`p`/`limit` 对过滤结果分页。\n", "href": "/zh/api-reference/ai-sre/knowledge/knowledge-pack-read-list", "metadata": { - "sidebarTitle": "查询知识包列表" + "sidebarTitle": "查询知识列表" } } } }, "/safari/knowledge/pack/update": { "post": { - "description": "将知识包移动到其他账户或团队范围。", + "description": "将知识移动到其他账户或团队范围。", "operationId": "knowledge-pack-write-update", "requestBody": { "content": { @@ -53446,15 +53446,15 @@ "AppKeyAuth": [] } ], - "summary": "更新知识包", + "summary": "更新知识", "tags": [ "AI SRE/知识" ], "x-mint": { - "content": "## 限制说明\n\n| 项目 | 说明 |\n| ---- | ---- |\n| 速率限制 | 每个 `app_key` **300 次/分钟**;**20 次/秒** |\n| 权限要求 | **知识库管理**(`ai-sre`) |\n\n## 使用说明\n\n- `scope` 是唯一可修改的字段;不传则为空操作,返回当前知识包。\n- 团队范围必须传 `scope_id`;账户范围自动使用账户 ID。\n- 目标范围已存在知识包时返回 `ReferenceExist`——知识包不会被合并。\n- 每次调用都会记录到账户审计日志。\n", + "content": "## 限制说明\n\n| 项目 | 说明 |\n| ---- | ---- |\n| 速率限制 | 每个 `app_key` **300 次/分钟**;**20 次/秒** |\n| 权限要求 | **知识管理**(`ai-sre`) |\n\n## 使用说明\n\n- `scope` 是唯一可修改的字段;不传则为空操作,返回当前知识。\n- 团队范围必须传 `scope_id`;账户范围自动使用账户 ID。\n- 目标范围已存在知识时返回 `ReferenceExist`——两份知识不会被合并。\n- 每次调用都会记录到账户审计日志。\n", "href": "/zh/api-reference/ai-sre/knowledge/knowledge-pack-write-update", "metadata": { - "sidebarTitle": "更新知识包" + "sidebarTitle": "更新知识" } } } @@ -54491,7 +54491,7 @@ "AI SRE/会话" ], "x-mint": { - "content": "## 限制说明\n\n| 项目 | 说明 |\n| ---- | ---- |\n| 速率限制 | 每个 `app_key` **1,000 次/分钟**;**50 次/秒** |\n| 权限要求 | 无 —— 持有有效的 `app_key` 即可调用 |\n\n## 使用说明\n\n- 分页使用 `p`/`limit`(最大 100);`scope` 默认 `all`。\n- `all` 返回调用者自己的个人会话,以及调用者可访问团队的团队会话;账户管理员可见所有团队会话,但不可见他人的个人会话。\n- `team_ids` 只会收窄可见集合,不会扩大访问范围。\n- `is_running` 反映实时运行集合;`has_unread` 按调用者各自计算;`current_turn_*` 字段在此接口恒为 0 —— 仅 `session/get` 会在会话运行时计算它们。\n- `suggest_init` 是账户级的引导提示(仅当账户在任何范围内都没有知识包时为 true),与列表过滤条件无关。\n", + "content": "## 限制说明\n\n| 项目 | 说明 |\n| ---- | ---- |\n| 速率限制 | 每个 `app_key` **1,000 次/分钟**;**50 次/秒** |\n| 权限要求 | 无 —— 持有有效的 `app_key` 即可调用 |\n\n## 使用说明\n\n- 分页使用 `p`/`limit`(最大 100);`scope` 默认 `all`。\n- `all` 返回调用者自己的个人会话,以及调用者可访问团队的团队会话;账户管理员可见所有团队会话,但不可见他人的个人会话。\n- `team_ids` 只会收窄可见集合,不会扩大访问范围。\n- `is_running` 反映实时运行集合;`has_unread` 按调用者各自计算;`current_turn_*` 字段在此接口恒为 0 —— 仅 `session/get` 会在会话运行时计算它们。\n- `suggest_init` 是账户级的引导提示(仅当账户在任何范围内都没有知识时为 true),与列表过滤条件无关。\n", "href": "/zh/api-reference/ai-sre/sessions/session-read-list", "metadata": { "sidebarTitle": "查询会话列表" diff --git a/api-reference/safari.openapi.en.json b/api-reference/safari.openapi.en.json index 3ede44fa1..396530ce8 100644 --- a/api-reference/safari.openapi.en.json +++ b/api-reference/safari.openapi.en.json @@ -2429,7 +2429,7 @@ } ], "x-mint": { - "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **1,000 requests/minute**; **50 requests/second** per account |\n| Permissions | None — any valid `app_key` can call this operation |\n\n## Usage\n\n- Pagination uses `p`/`limit` (max 100); `scope` defaults to `all`.\n- `all` returns your personal sessions plus team sessions you can access; account admins see all team sessions, but not other users' personal sessions.\n- `team_ids` narrows the visible set and never expands access.\n- `is_running` reflects the live run-set; `has_unread` is computed per calling user; the `current_turn_*` fields are always zero here — only `session/get` computes them while a session is running.\n- `suggest_init` is an account-wide onboarding flag (true only when the account has zero knowledge packs anywhere) — it doesn't depend on the list filters.\n", + "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **1,000 requests/minute**; **50 requests/second** per account |\n| Permissions | None — any valid `app_key` can call this operation |\n\n## Usage\n\n- Pagination uses `p`/`limit` (max 100); `scope` defaults to `all`.\n- `all` returns your personal sessions plus team sessions you can access; account admins see all team sessions, but not other users' personal sessions.\n- `team_ids` narrows the visible set and never expands access.\n- `is_running` reflects the live run-set; `has_unread` is computed per calling user; the `current_turn_*` fields are always zero here — only `session/get` computes them while a session is running.\n- `suggest_init` is an account-wide onboarding flag (true only when the account has no knowledge in any scope) — it doesn't depend on the list filters.\n", "href": "/en/api-reference/ai-sre/sessions/session-read-list", "metadata": { "sidebarTitle": "List sessions" @@ -3189,8 +3189,8 @@ "/safari/knowledge/get": { "post": { "operationId": "knowledge-pack-read-get", - "summary": "Get account knowledge pack", - "description": "Return the account-scope knowledge pack metadata and its file list.", + "summary": "Get account knowledge", + "description": "Return the metadata and file list of the account-scope knowledge.", "tags": [ "AI SRE/Knowledge" ], @@ -3200,10 +3200,10 @@ } ], "x-mint": { - "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **1,000 requests/minute**; **50 requests/second** per account |\n| Permissions | None — any valid `app_key` can call this operation |\n\n## Usage\n\n- Always targets the caller's account-scope pack — there is no `pack_id` parameter; use `POST /safari/knowledge/pack/list` to discover team packs.\n- The account pack is created lazily on first access, so a valid account never gets not-found here.\n", + "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **1,000 requests/minute**; **50 requests/second** per account |\n| Permissions | None — any valid `app_key` can call this operation |\n\n## Usage\n\n- Always targets the caller's account-scope knowledge — there is no `pack_id` parameter; use `POST /safari/knowledge/pack/list` to discover team knowledge.\n- The account knowledge is created lazily on first access, so a valid account never gets not-found here.\n", "href": "/en/api-reference/ai-sre/knowledge/knowledge-pack-read-get", "metadata": { - "sidebarTitle": "Get account knowledge pack" + "sidebarTitle": "Get account knowledge" } }, "responses": { @@ -3299,8 +3299,8 @@ "/safari/knowledge/pack/list": { "post": { "operationId": "knowledge-pack-read-list", - "summary": "List knowledge packs", - "description": "List knowledge packs visible to the caller across account and team scopes.", + "summary": "List knowledge", + "description": "List the knowledge visible to the caller across account and team scopes.", "tags": [ "AI SRE/Knowledge" ], @@ -3310,10 +3310,10 @@ } ], "x-mint": { - "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **1,000 requests/minute**; **50 requests/second** per account |\n| Permissions | None — any valid `app_key` can call this operation |\n\n## Usage\n\n- Visibility matches the console: admins see the account pack plus every team pack; non-admins see the account pack plus their own teams, and requested `team_ids` are silently intersected with their teams.\n- `scope` selects `all` (default), `account`-only, or `team`-only, overriding `include_account`.\n- `query` applies a case-insensitive substring filter over pack ID, scope, and team name; `p`/`limit` paginate the filtered result.\n", + "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **1,000 requests/minute**; **50 requests/second** per account |\n| Permissions | None — any valid `app_key` can call this operation |\n\n## Usage\n\n- Visibility matches the console: admins see the account knowledge plus every team's knowledge; non-admins see the account knowledge plus their own teams' knowledge, and requested `team_ids` are silently intersected with their teams.\n- `scope` selects `all` (default), `account`-only, or `team`-only, overriding `include_account`.\n- `query` applies a case-insensitive substring filter over knowledge ID, scope, and team name; `p`/`limit` paginate the filtered result.\n", "href": "/en/api-reference/ai-sre/knowledge/knowledge-pack-read-list", "metadata": { - "sidebarTitle": "List knowledge packs" + "sidebarTitle": "List knowledge" } }, "responses": { @@ -3410,8 +3410,8 @@ "/safari/knowledge/pack/ensure": { "post": { "operationId": "knowledge-pack-write-ensure", - "summary": "Ensure knowledge pack", - "description": "Idempotently create the knowledge pack at the given scope, or return the existing one.", + "summary": "Ensure knowledge", + "description": "Idempotently create the knowledge at the given scope, or return the existing one.", "tags": [ "AI SRE/Knowledge" ], @@ -3421,10 +3421,10 @@ } ], "x-mint": { - "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **300 requests/minute**; **20 requests/second** per account |\n| Permissions | **Knowledge Manage** (`ai-sre`) |\n\n## Usage\n\n- Idempotent: if a pack already exists at (`scope`, `scope_id`), it is returned unchanged.\n- For `account` scope, `scope_id` is ignored (the account ID is used) and a default `DUTY.md` is seeded on first creation.\n- Creating the account-scope pack requires account owner/admin; creating into a team requires membership of that team.\n- Every call is recorded in the account audit log.\n", + "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **300 requests/minute**; **20 requests/second** per account |\n| Permissions | **Knowledge Manage** (`ai-sre`) |\n\n## Usage\n\n- Idempotent: if knowledge already exists at (`scope`, `scope_id`), it is returned unchanged.\n- For `account` scope, `scope_id` is ignored (the account ID is used) and a default `DUTY.md` is seeded on first creation.\n- Creating the account-scope knowledge requires account owner/admin; creating into a team requires membership of that team.\n- Every call is recorded in the account audit log.\n", "href": "/en/api-reference/ai-sre/knowledge/knowledge-pack-write-ensure", "metadata": { - "sidebarTitle": "Ensure knowledge pack" + "sidebarTitle": "Ensure knowledge" } }, "responses": { @@ -3502,8 +3502,8 @@ "/safari/knowledge/pack/update": { "post": { "operationId": "knowledge-pack-write-update", - "summary": "Update knowledge pack", - "description": "Move a knowledge pack to a different account or team scope.", + "summary": "Update knowledge", + "description": "Move knowledge to a different account or team scope.", "tags": [ "AI SRE/Knowledge" ], @@ -3513,10 +3513,10 @@ } ], "x-mint": { - "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **300 requests/minute**; **20 requests/second** per account |\n| Permissions | **Knowledge Manage** (`ai-sre`) |\n\n## Usage\n\n- `scope` is the only mutable field; omitting it is a no-op that returns the current pack.\n- For `team` scope, `scope_id` is required; for `account` scope it is set to the account ID automatically.\n- The move fails with `ReferenceExist` when the destination scope already has a pack — packs are never merged.\n- Every call is recorded in the account audit log.\n", + "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **300 requests/minute**; **20 requests/second** per account |\n| Permissions | **Knowledge Manage** (`ai-sre`) |\n\n## Usage\n\n- `scope` is the only mutable field; omitting it is a no-op that returns the current knowledge.\n- For `team` scope, `scope_id` is required; for `account` scope it is set to the account ID automatically.\n- The move fails with `ReferenceExist` when the destination scope already has knowledge — knowledge is never merged.\n- Every call is recorded in the account audit log.\n", "href": "/en/api-reference/ai-sre/knowledge/knowledge-pack-write-update", "metadata": { - "sidebarTitle": "Update knowledge pack" + "sidebarTitle": "Update knowledge" } }, "responses": { @@ -3596,8 +3596,8 @@ "/safari/knowledge/pack/delete": { "post": { "operationId": "knowledge-pack-write-delete", - "summary": "Delete knowledge pack", - "description": "Delete a knowledge pack and all of its files.", + "summary": "Delete knowledge", + "description": "Delete knowledge and all of its files.", "tags": [ "AI SRE/Knowledge" ], @@ -3607,10 +3607,10 @@ } ], "x-mint": { - "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **300 requests/minute**; **20 requests/second** per account |\n| Permissions | **Knowledge Manage** (`ai-sre`) |\n\n## Usage\n\n- Deleting a pack removes every file it contains; the operation cannot be undone.\n- Deleting the account-scope pack is allowed; it is re-created empty on next access.\n- Every call is recorded in the account audit log.\n", + "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **300 requests/minute**; **20 requests/second** per account |\n| Permissions | **Knowledge Manage** (`ai-sre`) |\n\n## Usage\n\n- Deleting knowledge removes every file it contains; the operation cannot be undone.\n- Deleting the account-scope knowledge is allowed; it is re-created empty on next access.\n- Every call is recorded in the account audit log.\n", "href": "/en/api-reference/ai-sre/knowledge/knowledge-pack-write-delete", "metadata": { - "sidebarTitle": "Delete knowledge pack" + "sidebarTitle": "Delete knowledge" } }, "responses": { @@ -3677,7 +3677,7 @@ "post": { "operationId": "knowledge-file-read-list", "summary": "List knowledge files", - "description": "List the files in a knowledge pack with metadata such as size and checksum.", + "description": "List knowledge files with metadata such as size and checksum.", "tags": [ "AI SRE/Knowledge" ], @@ -3687,7 +3687,7 @@ } ], "x-mint": { - "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **1,000 requests/minute**; **50 requests/second** per account |\n| Permissions | None — any valid `app_key` can call this operation |\n\n## Usage\n\n- Omitting `pack_id` targets the caller's account-scope pack (created lazily if absent).\n- Reading a team-scope pack requires membership of that team.\n- `p`/`limit` are accepted but the current implementation always returns the full file list.\n", + "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **1,000 requests/minute**; **50 requests/second** per account |\n| Permissions | None — any valid `app_key` can call this operation |\n\n## Usage\n\n- Omitting `pack_id` targets the caller's account-scope knowledge (created lazily if absent).\n- Reading team-scope knowledge requires membership of that team.\n- `p`/`limit` are accepted but the current implementation always returns the full file list.\n", "href": "/en/api-reference/ai-sre/knowledge/knowledge-file-read-list", "metadata": { "sidebarTitle": "List knowledge files" @@ -3786,7 +3786,7 @@ } ], "x-mint": { - "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **1,000 requests/minute**; **50 requests/second** per account |\n| Permissions | None — any valid `app_key` can call this operation |\n\n## Usage\n\n- Content is returned in `content_b64` (base64); pack files are guaranteed UTF-8 text.\n- Omitting `pack_id` targets the account-scope pack; reading a team-scope pack requires team membership.\n- A missing file returns `ResourceNotFound` (HTTP 400).\n", + "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **1,000 requests/minute**; **50 requests/second** per account |\n| Permissions | None — any valid `app_key` can call this operation |\n\n## Usage\n\n- Content is returned in `content_b64` (base64); knowledge files are guaranteed UTF-8 text.\n- Omitting `pack_id` targets the account-scope knowledge; reading team-scope knowledge requires team membership.\n- A missing file returns `ResourceNotFound` (HTTP 400).\n", "href": "/en/api-reference/ai-sre/knowledge/knowledge-file-read-get", "metadata": { "sidebarTitle": "Get knowledge file" @@ -3863,7 +3863,7 @@ "post": { "operationId": "knowledge-file-write-put", "summary": "Upload knowledge file", - "description": "Create or overwrite a file in a knowledge pack with base64-encoded content.", + "description": "Create or overwrite a knowledge file with base64-encoded content.", "tags": [ "AI SRE/Knowledge" ], @@ -3873,7 +3873,7 @@ } ], "x-mint": { - "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **300 requests/minute**; **20 requests/second** per account |\n| Permissions | **Knowledge Manage** (`ai-sre`) |\n\n## Usage\n\n- The file body is sent as base64 text in the JSON field `content_b64` — this is not a multipart upload.\n- Writing an existing `rel_path` overwrites it; `content_type` is inferred from the extension when omitted (`.md` → `text/markdown`).\n- Content must decode to valid UTF-8 text; binary payloads are rejected with `InvalidParameter`.\n- Editing the account-scope pack requires account owner/admin; editing a team pack requires team membership.\n- Every call is recorded in the account audit log.\n", + "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **300 requests/minute**; **20 requests/second** per account |\n| Permissions | **Knowledge Manage** (`ai-sre`) |\n\n## Usage\n\n- The file body is sent as base64 text in the JSON field `content_b64` — this is not a multipart upload.\n- Writing an existing `rel_path` overwrites it; `content_type` is inferred from the extension when omitted (`.md` → `text/markdown`).\n- Content must decode to valid UTF-8 text; binary payloads are rejected with `InvalidParameter`.\n- Editing the account-scope knowledge requires account owner/admin; editing team knowledge requires team membership.\n- Every call is recorded in the account audit log.\n", "href": "/en/api-reference/ai-sre/knowledge/knowledge-file-write-put", "metadata": { "sidebarTitle": "Upload knowledge file" @@ -3954,7 +3954,7 @@ "post": { "operationId": "knowledge-file-write-delete", "summary": "Delete knowledge file", - "description": "Delete a file from a knowledge pack by its relative path.", + "description": "Delete a knowledge file by its relative path.", "tags": [ "AI SRE/Knowledge" ], @@ -3964,7 +3964,7 @@ } ], "x-mint": { - "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **300 requests/minute**; **20 requests/second** per account |\n| Permissions | **Knowledge Manage** (`ai-sre`) |\n\n## Usage\n\n- Deleting is idempotent — removing a file that does not exist succeeds.\n- When other pack files still reference the target, the delete fails with `ReferenceExist` listing the referrers; set `force` to proceed (the referrers are returned as warnings).\n- Omitting `pack_id` targets the account-scope pack; editing the account pack requires account owner/admin, editing a team pack requires team membership.\n- Every call is recorded in the account audit log.\n", + "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **300 requests/minute**; **20 requests/second** per account |\n| Permissions | **Knowledge Manage** (`ai-sre`) |\n\n## Usage\n\n- Deleting is idempotent — removing a file that does not exist succeeds.\n- When other knowledge files still reference the target, the delete fails with `ReferenceExist` listing the referrers; set `force` to proceed (the referrers are returned as warnings).\n- Omitting `pack_id` targets the account-scope knowledge; editing the account knowledge requires account owner/admin, editing team knowledge requires team membership.\n- Every call is recorded in the account audit log.\n", "href": "/en/api-reference/ai-sre/knowledge/knowledge-file-write-delete", "metadata": { "sidebarTitle": "Delete knowledge file" @@ -6294,15 +6294,15 @@ }, "ContextResolvedItem": { "type": "object", - "description": "Snapshot of the three-tier knowledge-pack resolution for this session.", + "description": "Snapshot of the three-tier knowledge resolution for this session.", "properties": { "account_pack_id": { "type": "string", - "description": "Resolved account-scoped pack id." + "description": "Resolved account-scope knowledge ID." }, "team_pack_id": { "type": "string", - "description": "Resolved team-scoped pack id." + "description": "Resolved team-scope knowledge ID." }, "incident_id": { "type": "string", @@ -6311,14 +6311,14 @@ "resolved_at_ms": { "type": "integer", "format": "int64", - "description": "Unix timestamp in milliseconds when the packs were resolved." + "description": "Unix timestamp in milliseconds when the knowledge was resolved." }, "versions": { "type": "object", "additionalProperties": { "type": "integer" }, - "description": "Per-pack resolved version map." + "description": "Resolved version map, one entry per knowledge." } }, "required": [ @@ -7255,7 +7255,7 @@ }, "suggest_init": { "type": "boolean", - "description": "Account-wide onboarding flag: true when the account has zero knowledge packs in any scope; not specific to this session." + "description": "Account-wide onboarding flag: true when the account has no knowledge in any scope; not specific to this session." }, "pending_messages": { "type": "array", @@ -7614,7 +7614,7 @@ }, "suggest_init": { "type": "boolean", - "description": "Account-wide onboarding flag: true when the account has zero knowledge packs in any scope; not dependent on this call's filters." + "description": "Account-wide onboarding flag: true when the account has no knowledge in any scope; not dependent on this call's filters." } }, "required": [ @@ -7962,20 +7962,20 @@ }, "KnowledgePackItem": { "type": "object", - "description": "A knowledge pack — a versioned file tree staged into every AI SRE sandbox at session start. One pack exists per (account, scope, scope_id).", + "description": "Knowledge — a versioned file tree staged into every AI SRE sandbox at session start. One knowledge exists per (account, scope, scope_id).", "properties": { "pack_id": { "type": "string", - "description": "Knowledge pack ID (`kpk_` prefix)." + "description": "Knowledge ID (`kpk_` prefix)." }, "account_id": { "type": "integer", - "description": "Account that owns the pack.", + "description": "Account that owns the knowledge.", "format": "int64" }, "scope": { "type": "string", - "description": "Pack scope. `channel` is a legacy scope; new packs are `account` or `team`.", + "description": "Knowledge scope. `channel` is a legacy scope; new knowledge is `account` or `team` scope.", "enum": [ "account", "team", @@ -7993,7 +7993,7 @@ }, "file_count": { "type": "integer", - "description": "Number of files in the pack." + "description": "Number of files in the knowledge." }, "total_bytes": { "type": "integer", @@ -8002,30 +8002,30 @@ }, "version": { "type": "integer", - "description": "Pack version, incremented on every file change." + "description": "Knowledge version, incremented on every file change." }, "duty_version": { "type": "integer", - "description": "Pack version at which DUTY.md was last authored or re-affirmed. When `version` is greater, DUTY.md no longer reflects every file in the pack." + "description": "Knowledge version at which DUTY.md was last authored or re-affirmed. When `version` is greater, DUTY.md no longer reflects every file in the knowledge." }, "created_by": { "type": "integer", - "description": "Person ID of the member who created the pack.", + "description": "Person ID of the member who created the knowledge.", "format": "int64" }, "created_at_ms": { "type": "integer", - "description": "Unix timestamp in milliseconds when the pack was created.", + "description": "Unix timestamp in milliseconds when the knowledge was created.", "format": "int64" }, "updated_at_ms": { "type": "integer", - "description": "Unix timestamp in milliseconds when the pack was last modified.", + "description": "Unix timestamp in milliseconds when the knowledge was last modified.", "format": "int64" }, "can_edit": { "type": "boolean", - "description": "Whether the caller can edit this pack." + "description": "Whether the caller can edit this knowledge." } }, "required": [ @@ -8045,7 +8045,7 @@ }, "KnowledgeFileItem": { "type": "object", - "description": "Metadata of one file inside a knowledge pack. Content is fetched separately via file/get.", + "description": "Metadata of one knowledge file. Content is fetched separately via file/get.", "properties": { "file_id": { "type": "string", @@ -8053,11 +8053,11 @@ }, "pack_id": { "type": "string", - "description": "ID of the knowledge pack that contains the file." + "description": "ID of the knowledge that contains the file." }, "rel_path": { "type": "string", - "description": "Path relative to the pack root, e.g. `runbooks/restart.md`." + "description": "Path relative to the knowledge root, e.g. `runbooks/restart.md`." }, "content_type": { "type": "string", @@ -8100,7 +8100,7 @@ "properties": { "code": { "type": "string", - "description": "Warning code. One of: `unresolved_reference` (an @ref in the written file's content points to a file that does not exist in the pack; `ref` carries it), `still_referenced_by` (the deleted file is still @ref-referenced by other files in the pack; `refs` lists the referrers).", + "description": "Warning code. One of: `unresolved_reference` (an @ref in the written file's content points to a file that does not exist in the knowledge; `ref` carries it), `still_referenced_by` (the deleted file is still @ref-referenced by other files in the knowledge; `refs` lists the referrers).", "enum": [ "unresolved_reference", "still_referenced_by" @@ -8124,12 +8124,12 @@ }, "KnowledgeGetRequest": { "type": "object", - "description": "No request fields — the account-scope pack is always targeted.", + "description": "No request fields — the account-scope knowledge is always targeted.", "properties": {} }, "KnowledgePackListRequest": { "type": "object", - "description": "Filter and pagination for the pack list.", + "description": "Filter and pagination for the knowledge list.", "properties": { "p": { "type": "integer", @@ -8141,7 +8141,7 @@ }, "scope": { "type": "string", - "description": "Restrict to one scope; `all` (default) overrides `include_account`. One of: `all` (account scope plus visible team scopes), `account` (account-level packs only), `team` (team-level packs only, can be combined with `team_ids`).", + "description": "Restrict to one scope; `all` (default) overrides `include_account`. One of: `all` (account scope plus visible team scopes), `account` (account-level knowledge only), `team` (team-level knowledge only, can be combined with `team_ids`).", "enum": [ "all", "account", @@ -8150,7 +8150,7 @@ }, "query": { "type": "string", - "description": "Case-insensitive substring filter over pack ID, scope, scope ID/account ID, and team name.", + "description": "Case-insensitive substring filter over knowledge ID, scope, scope ID/account ID, and team name.", "maxLength": 128 }, "team_ids": { @@ -8166,17 +8166,17 @@ "boolean", "null" ], - "description": "Include the account-scope pack; defaults to true." + "description": "Include the account-scope knowledge; defaults to true." } } }, "KnowledgePackEnsureRequest": { "type": "object", - "description": "Scope at which to ensure a knowledge pack exists.", + "description": "Scope at which to ensure knowledge exists.", "properties": { "scope": { "type": "string", - "description": "Scope of the pack to ensure. One of: `account` (account-level pack; scope_id is forced to the caller's account ID and only account admins may create it; first creation seeds a default DUTY.md), `team` (team-level pack; the `scope_id` team ID is required and the caller must belong to that team).", + "description": "Scope of the knowledge to ensure. One of: `account` (account-level knowledge; scope_id is forced to the caller's account ID and only account admins may create it; first creation seeds a default DUTY.md), `team` (team-level knowledge; the `scope_id` team ID is required and the caller must belong to that team).", "enum": [ "account", "team" @@ -8194,18 +8194,18 @@ }, "KnowledgePackUpdateRequest": { "type": "object", - "description": "Move a knowledge pack to a different scope.", + "description": "Move knowledge to a different scope.", "properties": { "pack_id": { "type": "string", - "description": "Knowledge pack ID to update." + "description": "Knowledge ID to update." }, "scope": { "type": [ "string", "null" ], - "description": "Destination scope; omit for a no-op that returns the current pack.", + "description": "Destination scope; omit for a no-op that returns the current knowledge.", "enum": [ "account", "team" @@ -8226,11 +8226,11 @@ }, "KnowledgePackDeleteRequest": { "type": "object", - "description": "Pack to delete.", + "description": "Knowledge to delete.", "properties": { "pack_id": { "type": "string", - "description": "Knowledge pack ID to delete." + "description": "Knowledge ID to delete." } }, "required": [ @@ -8243,7 +8243,7 @@ "properties": { "ok": { "type": "boolean", - "description": "True when the pack was deleted." + "description": "True when the knowledge was deleted." } }, "required": [ @@ -8252,11 +8252,11 @@ }, "KnowledgeFileListRequest": { "type": "object", - "description": "Which pack's files to list.", + "description": "Which knowledge's files to list.", "properties": { "pack_id": { "type": "string", - "description": "Knowledge pack ID; defaults to the caller's account-scope pack." + "description": "Knowledge ID; defaults to the caller's account-scope knowledge." }, "p": { "type": "integer", @@ -8274,11 +8274,11 @@ "properties": { "pack_id": { "type": "string", - "description": "Knowledge pack ID; defaults to the caller's account-scope pack." + "description": "Knowledge ID; defaults to the caller's account-scope knowledge." }, "rel_path": { "type": "string", - "description": "Path of the file relative to the pack root." + "description": "Path of the file relative to the knowledge root." } }, "required": [ @@ -8291,11 +8291,11 @@ "properties": { "pack_id": { "type": "string", - "description": "Knowledge pack ID; defaults to the caller's account-scope pack." + "description": "Knowledge ID; defaults to the caller's account-scope knowledge." }, "rel_path": { "type": "string", - "description": "Destination path relative to the pack root; existing files are overwritten." + "description": "Destination path relative to the knowledge root; existing files are overwritten." }, "content_b64": { "type": "string", @@ -8312,7 +8312,7 @@ }, "KnowledgeGetResponse": { "type": "object", - "description": "Account-scope pack metadata plus its file list.", + "description": "Account-scope knowledge metadata plus its file list.", "properties": { "pack": { "$ref": "#/components/schemas/KnowledgePackItem" @@ -8322,7 +8322,7 @@ "items": { "$ref": "#/components/schemas/KnowledgeFileItem" }, - "description": "Array of files in this knowledge pack; empty array when the pack has no files." + "description": "Array of files in this knowledge; empty array when it has no files." } }, "required": [ @@ -8332,18 +8332,18 @@ }, "KnowledgePackListResponse": { "type": "object", - "description": "Visible packs and the total after filtering.", + "description": "Visible knowledge and the total after filtering.", "properties": { "packs": { "type": "array", "items": { "$ref": "#/components/schemas/KnowledgePackItem" }, - "description": "Array of visible knowledge packs after filtering (current page), used with `total` for pagination." + "description": "Array of visible knowledge after filtering (current page), used with `total` for pagination." }, "total": { "type": "integer", - "description": "Total number of packs after filtering, before pagination.", + "description": "Total number of knowledge entries after filtering, before pagination.", "format": "int64" } }, @@ -8354,18 +8354,18 @@ }, "KnowledgeFileListResponse": { "type": "object", - "description": "Files in the pack.", + "description": "Files in the knowledge.", "properties": { "files": { "type": "array", "items": { "$ref": "#/components/schemas/KnowledgeFileItem" }, - "description": "Array of files in the specified knowledge pack; empty array when the pack has no files." + "description": "Array of files in the specified knowledge; empty array when it has no files." }, "total": { "type": "integer", - "description": "Total number of files in the pack.", + "description": "Total number of files in the knowledge.", "format": "int64" } }, @@ -8403,7 +8403,7 @@ "items": { "$ref": "#/components/schemas/KnowledgeWarning" }, - "description": "Non-blocking warnings after a successful write; `code=unresolved_reference` means an @ref in the file content points to a file that does not exist in the pack. Absent when there are no warnings (omitempty)." + "description": "Non-blocking warnings after a successful write; `code=unresolved_reference` means an @ref in the file content points to a file that does not exist in the knowledge. Absent when there are no warnings (omitempty)." } }, "required": [ @@ -8412,19 +8412,19 @@ }, "KnowledgeFileDeleteRequest": { "type": "object", - "description": "File to remove from a knowledge pack.", + "description": "Knowledge file to remove.", "properties": { "pack_id": { "type": "string", - "description": "Knowledge pack ID; defaults to the caller's account-scope pack." + "description": "Knowledge ID; defaults to the caller's account-scope knowledge." }, "rel_path": { "type": "string", - "description": "Path of the file relative to the pack root." + "description": "Path of the file relative to the knowledge root." }, "force": { "type": "boolean", - "description": "Delete even when other pack files reference this file; the referrers are then returned as warnings instead of blocking the delete." + "description": "Delete even when other knowledge files reference this file; the referrers are then returned as warnings instead of blocking the delete." } }, "required": [ @@ -8440,7 +8440,7 @@ "items": { "$ref": "#/components/schemas/KnowledgeWarning" }, - "description": "Non-blocking warnings after deletion; `code=still_referenced_by` means the (force-)deleted file is still @ref-referenced by other files in the pack (`refs` lists the referrers). Absent when there are no warnings (omitempty)." + "description": "Non-blocking warnings after deletion; `code=still_referenced_by` means the (force-)deleted file is still @ref-referenced by other files in the knowledge (`refs` lists the referrers). Absent when there are no warnings (omitempty)." } } }, diff --git a/api-reference/safari.openapi.zh.json b/api-reference/safari.openapi.zh.json index 3b78f4295..56a04ca72 100644 --- a/api-reference/safari.openapi.zh.json +++ b/api-reference/safari.openapi.zh.json @@ -2429,7 +2429,7 @@ } ], "x-mint": { - "content": "## 限制说明\n\n| 项目 | 说明 |\n| ---- | ---- |\n| 速率限制 | 每个 `app_key` **1,000 次/分钟**;**50 次/秒** |\n| 权限要求 | 无 —— 持有有效的 `app_key` 即可调用 |\n\n## 使用说明\n\n- 分页使用 `p`/`limit`(最大 100);`scope` 默认 `all`。\n- `all` 返回调用者自己的个人会话,以及调用者可访问团队的团队会话;账户管理员可见所有团队会话,但不可见他人的个人会话。\n- `team_ids` 只会收窄可见集合,不会扩大访问范围。\n- `is_running` 反映实时运行集合;`has_unread` 按调用者各自计算;`current_turn_*` 字段在此接口恒为 0 —— 仅 `session/get` 会在会话运行时计算它们。\n- `suggest_init` 是账户级的引导提示(仅当账户在任何范围内都没有知识包时为 true),与列表过滤条件无关。\n", + "content": "## 限制说明\n\n| 项目 | 说明 |\n| ---- | ---- |\n| 速率限制 | 每个 `app_key` **1,000 次/分钟**;**50 次/秒** |\n| 权限要求 | 无 —— 持有有效的 `app_key` 即可调用 |\n\n## 使用说明\n\n- 分页使用 `p`/`limit`(最大 100);`scope` 默认 `all`。\n- `all` 返回调用者自己的个人会话,以及调用者可访问团队的团队会话;账户管理员可见所有团队会话,但不可见他人的个人会话。\n- `team_ids` 只会收窄可见集合,不会扩大访问范围。\n- `is_running` 反映实时运行集合;`has_unread` 按调用者各自计算;`current_turn_*` 字段在此接口恒为 0 —— 仅 `session/get` 会在会话运行时计算它们。\n- `suggest_init` 是账户级的引导提示(仅当账户在任何范围内都没有知识时为 true),与列表过滤条件无关。\n", "href": "/zh/api-reference/ai-sre/sessions/session-read-list", "metadata": { "sidebarTitle": "查询会话列表" @@ -3189,8 +3189,8 @@ "/safari/knowledge/get": { "post": { "operationId": "knowledge-pack-read-get", - "summary": "查看账户知识包", - "description": "返回账户范围知识包的元数据及其文件列表。", + "summary": "查看账户知识", + "description": "返回账户范围知识的元数据及其文件列表。", "tags": [ "AI SRE/知识" ], @@ -3200,10 +3200,10 @@ } ], "x-mint": { - "content": "## 限制说明\n\n| 项目 | 说明 |\n| ---- | ---- |\n| 速率限制 | 每个 `app_key` **1,000 次/分钟**;**50 次/秒** |\n| 权限要求 | 无 —— 持有有效的 `app_key` 即可调用 |\n\n## 使用说明\n\n- 固定返回调用者的账户范围知识包——没有 `pack_id` 参数;如需团队知识包请使用 `POST /safari/knowledge/pack/list`。\n- 账户知识包在首次访问时惰性创建,因此有效账户调用不会返回 not-found。\n", + "content": "## 限制说明\n\n| 项目 | 说明 |\n| ---- | ---- |\n| 速率限制 | 每个 `app_key` **1,000 次/分钟**;**50 次/秒** |\n| 权限要求 | 无 —— 持有有效的 `app_key` 即可调用 |\n\n## 使用说明\n\n- 固定返回调用者的账户范围知识——没有 `pack_id` 参数;如需团队知识请使用 `POST /safari/knowledge/pack/list`。\n- 账户知识在首次访问时惰性创建,因此有效账户调用不会返回 not-found。\n", "href": "/zh/api-reference/ai-sre/knowledge/knowledge-pack-read-get", "metadata": { - "sidebarTitle": "查看账户知识包" + "sidebarTitle": "查看账户知识" } }, "responses": { @@ -3299,8 +3299,8 @@ "/safari/knowledge/pack/list": { "post": { "operationId": "knowledge-pack-read-list", - "summary": "查询知识包列表", - "description": "查询调用者可见的账户与团队范围知识包列表。", + "summary": "查询知识列表", + "description": "查询调用者可见的账户与团队范围知识列表。", "tags": [ "AI SRE/知识" ], @@ -3310,10 +3310,10 @@ } ], "x-mint": { - "content": "## 限制说明\n\n| 项目 | 说明 |\n| ---- | ---- |\n| 速率限制 | 每个 `app_key` **1,000 次/分钟**;**50 次/秒** |\n| 权限要求 | 无 —— 持有有效的 `app_key` 即可调用 |\n\n## 使用说明\n\n- 可见性与控制台一致:管理员可见账户包及全部团队包;非管理员可见账户包及所属团队包,传入的 `team_ids` 会被静默过滤为其所属团队。\n- `scope` 用于选择 `all`(默认)、仅 `account` 或仅 `team`,会覆盖 `include_account`。\n- `query` 对知识包 ID、范围和团队名称做大小写不敏感的子串过滤;`p`/`limit` 对过滤结果分页。\n", + "content": "## 限制说明\n\n| 项目 | 说明 |\n| ---- | ---- |\n| 速率限制 | 每个 `app_key` **1,000 次/分钟**;**50 次/秒** |\n| 权限要求 | 无 —— 持有有效的 `app_key` 即可调用 |\n\n## 使用说明\n\n- 可见性与控制台一致:管理员可见账户知识及全部团队知识;非管理员可见账户知识及所属团队的知识,传入的 `team_ids` 会被静默过滤为其所属团队。\n- `scope` 用于选择 `all`(默认)、仅 `account` 或仅 `team`,会覆盖 `include_account`。\n- `query` 对知识 ID、范围和团队名称做大小写不敏感的子串过滤;`p`/`limit` 对过滤结果分页。\n", "href": "/zh/api-reference/ai-sre/knowledge/knowledge-pack-read-list", "metadata": { - "sidebarTitle": "查询知识包列表" + "sidebarTitle": "查询知识列表" } }, "responses": { @@ -3410,8 +3410,8 @@ "/safari/knowledge/pack/ensure": { "post": { "operationId": "knowledge-pack-write-ensure", - "summary": "确保知识包存在", - "description": "在指定范围幂等创建知识包,已存在时直接返回现有知识包。", + "summary": "确保知识存在", + "description": "在指定范围幂等创建知识,已存在时直接返回现有知识。", "tags": [ "AI SRE/知识" ], @@ -3421,10 +3421,10 @@ } ], "x-mint": { - "content": "## 限制说明\n\n| 项目 | 说明 |\n| ---- | ---- |\n| 速率限制 | 每个 `app_key` **300 次/分钟**;**20 次/秒** |\n| 权限要求 | **知识库管理**(`ai-sre`) |\n\n## 使用说明\n\n- 幂等:若(`scope`, `scope_id`)已存在知识包,则原样返回。\n- 账户范围忽略 `scope_id`(使用账户 ID),首次创建时会自动写入默认 `DUTY.md`。\n- 创建账户范围知识包需要账户 Owner/Admin 权限;在团队下创建需要是该团队成员。\n- 每次调用都会记录到账户审计日志。\n", + "content": "## 限制说明\n\n| 项目 | 说明 |\n| ---- | ---- |\n| 速率限制 | 每个 `app_key` **300 次/分钟**;**20 次/秒** |\n| 权限要求 | **知识管理**(`ai-sre`) |\n\n## 使用说明\n\n- 幂等:若(`scope`, `scope_id`)已存在知识,则原样返回。\n- 账户范围忽略 `scope_id`(使用账户 ID),首次创建时会自动写入默认 `DUTY.md`。\n- 创建账户范围知识需要账户 Owner/Admin 权限;在团队下创建需要是该团队成员。\n- 每次调用都会记录到账户审计日志。\n", "href": "/zh/api-reference/ai-sre/knowledge/knowledge-pack-write-ensure", "metadata": { - "sidebarTitle": "确保知识包存在" + "sidebarTitle": "确保知识存在" } }, "responses": { @@ -3502,8 +3502,8 @@ "/safari/knowledge/pack/update": { "post": { "operationId": "knowledge-pack-write-update", - "summary": "更新知识包", - "description": "将知识包移动到其他账户或团队范围。", + "summary": "更新知识", + "description": "将知识移动到其他账户或团队范围。", "tags": [ "AI SRE/知识" ], @@ -3513,10 +3513,10 @@ } ], "x-mint": { - "content": "## 限制说明\n\n| 项目 | 说明 |\n| ---- | ---- |\n| 速率限制 | 每个 `app_key` **300 次/分钟**;**20 次/秒** |\n| 权限要求 | **知识库管理**(`ai-sre`) |\n\n## 使用说明\n\n- `scope` 是唯一可修改的字段;不传则为空操作,返回当前知识包。\n- 团队范围必须传 `scope_id`;账户范围自动使用账户 ID。\n- 目标范围已存在知识包时返回 `ReferenceExist`——知识包不会被合并。\n- 每次调用都会记录到账户审计日志。\n", + "content": "## 限制说明\n\n| 项目 | 说明 |\n| ---- | ---- |\n| 速率限制 | 每个 `app_key` **300 次/分钟**;**20 次/秒** |\n| 权限要求 | **知识管理**(`ai-sre`) |\n\n## 使用说明\n\n- `scope` 是唯一可修改的字段;不传则为空操作,返回当前知识。\n- 团队范围必须传 `scope_id`;账户范围自动使用账户 ID。\n- 目标范围已存在知识时返回 `ReferenceExist`——两份知识不会被合并。\n- 每次调用都会记录到账户审计日志。\n", "href": "/zh/api-reference/ai-sre/knowledge/knowledge-pack-write-update", "metadata": { - "sidebarTitle": "更新知识包" + "sidebarTitle": "更新知识" } }, "responses": { @@ -3596,8 +3596,8 @@ "/safari/knowledge/pack/delete": { "post": { "operationId": "knowledge-pack-write-delete", - "summary": "删除知识包", - "description": "删除知识包及其全部文件。", + "summary": "删除知识", + "description": "删除知识及其全部文件。", "tags": [ "AI SRE/知识" ], @@ -3607,10 +3607,10 @@ } ], "x-mint": { - "content": "## 限制说明\n\n| 项目 | 说明 |\n| ---- | ---- |\n| 速率限制 | 每个 `app_key` **300 次/分钟**;**20 次/秒** |\n| 权限要求 | **知识库管理**(`ai-sre`) |\n\n## 使用说明\n\n- 删除知识包会同时删除其中所有文件,且不可恢复。\n- 允许删除账户范围知识包;下次访问时会重新创建为空包。\n- 每次调用都会记录到账户审计日志。\n", + "content": "## 限制说明\n\n| 项目 | 说明 |\n| ---- | ---- |\n| 速率限制 | 每个 `app_key` **300 次/分钟**;**20 次/秒** |\n| 权限要求 | **知识管理**(`ai-sre`) |\n\n## 使用说明\n\n- 删除知识会同时删除其中所有文件,且不可恢复。\n- 允许删除账户范围知识;下次访问时会重新创建一份空知识。\n- 每次调用都会记录到账户审计日志。\n", "href": "/zh/api-reference/ai-sre/knowledge/knowledge-pack-write-delete", "metadata": { - "sidebarTitle": "删除知识包" + "sidebarTitle": "删除知识" } }, "responses": { @@ -3677,7 +3677,7 @@ "post": { "operationId": "knowledge-file-read-list", "summary": "查询知识文件列表", - "description": "查询知识包内的文件列表,包含大小、校验和等元数据。", + "description": "查询知识文件列表,包含大小、校验和等元数据。", "tags": [ "AI SRE/知识" ], @@ -3687,7 +3687,7 @@ } ], "x-mint": { - "content": "## 限制说明\n\n| 项目 | 说明 |\n| ---- | ---- |\n| 速率限制 | 每个 `app_key` **1,000 次/分钟**;**50 次/秒** |\n| 权限要求 | 无 —— 持有有效的 `app_key` 即可调用 |\n\n## 使用说明\n\n- 不传 `pack_id` 时默认查询调用者的账户范围知识包(不存在时惰性创建)。\n- 读取团队范围知识包需要是该团队成员。\n- `p`/`limit` 参数会被接受,但当前实现始终返回完整文件列表。\n", + "content": "## 限制说明\n\n| 项目 | 说明 |\n| ---- | ---- |\n| 速率限制 | 每个 `app_key` **1,000 次/分钟**;**50 次/秒** |\n| 权限要求 | 无 —— 持有有效的 `app_key` 即可调用 |\n\n## 使用说明\n\n- 不传 `pack_id` 时默认查询调用者的账户范围知识(不存在时惰性创建)。\n- 读取团队范围知识需要是该团队成员。\n- `p`/`limit` 参数会被接受,但当前实现始终返回完整文件列表。\n", "href": "/zh/api-reference/ai-sre/knowledge/knowledge-file-read-list", "metadata": { "sidebarTitle": "查询知识文件列表" @@ -3786,7 +3786,7 @@ } ], "x-mint": { - "content": "## 限制说明\n\n| 项目 | 说明 |\n| ---- | ---- |\n| 速率限制 | 每个 `app_key` **1,000 次/分钟**;**50 次/秒** |\n| 权限要求 | 无 —— 持有有效的 `app_key` 即可调用 |\n\n## 使用说明\n\n- 文件内容通过 `content_b64`(Base64)返回;知识包文件保证为 UTF-8 文本。\n- 不传 `pack_id` 时默认账户范围知识包;读取团队范围知识包需要是该团队成员。\n- 文件不存在时返回 `ResourceNotFound`(HTTP 400)。\n", + "content": "## 限制说明\n\n| 项目 | 说明 |\n| ---- | ---- |\n| 速率限制 | 每个 `app_key` **1,000 次/分钟**;**50 次/秒** |\n| 权限要求 | 无 —— 持有有效的 `app_key` 即可调用 |\n\n## 使用说明\n\n- 文件内容通过 `content_b64`(Base64)返回;知识文件保证为 UTF-8 文本。\n- 不传 `pack_id` 时默认账户范围知识;读取团队范围知识需要是该团队成员。\n- 文件不存在时返回 `ResourceNotFound`(HTTP 400)。\n", "href": "/zh/api-reference/ai-sre/knowledge/knowledge-file-read-get", "metadata": { "sidebarTitle": "获取知识文件" @@ -3863,7 +3863,7 @@ "post": { "operationId": "knowledge-file-write-put", "summary": "上传知识文件", - "description": "以 Base64 编码的内容在知识包中创建或覆盖文件。", + "description": "以 Base64 编码的内容创建或覆盖知识文件。", "tags": [ "AI SRE/知识" ], @@ -3873,7 +3873,7 @@ } ], "x-mint": { - "content": "## 限制说明\n\n| 项目 | 说明 |\n| ---- | ---- |\n| 速率限制 | 每个 `app_key` **300 次/分钟**;**20 次/秒** |\n| 权限要求 | **知识库管理**(`ai-sre`) |\n\n## 使用说明\n\n- 文件内容以 JSON 字段 `content_b64` 中的 Base64 文本上传——不是 multipart 上传。\n- 写入已存在的 `rel_path` 会覆盖原文件;`content_type` 留空时按扩展名推断(`.md` → `text/markdown`)。\n- 内容解码后必须是合法的 UTF-8 文本,二进制内容会被拒绝并返回 `InvalidParameter`。\n- 编辑账户范围知识包需要账户 Owner/Admin 权限;编辑团队知识包需要是该团队成员。\n- 每次调用都会记录到账户审计日志。\n", + "content": "## 限制说明\n\n| 项目 | 说明 |\n| ---- | ---- |\n| 速率限制 | 每个 `app_key` **300 次/分钟**;**20 次/秒** |\n| 权限要求 | **知识管理**(`ai-sre`) |\n\n## 使用说明\n\n- 文件内容以 JSON 字段 `content_b64` 中的 Base64 文本上传——不是 multipart 上传。\n- 写入已存在的 `rel_path` 会覆盖原文件;`content_type` 留空时按扩展名推断(`.md` → `text/markdown`)。\n- 内容解码后必须是合法的 UTF-8 文本,二进制内容会被拒绝并返回 `InvalidParameter`。\n- 编辑账户范围知识需要账户 Owner/Admin 权限;编辑团队知识需要是该团队成员。\n- 每次调用都会记录到账户审计日志。\n", "href": "/zh/api-reference/ai-sre/knowledge/knowledge-file-write-put", "metadata": { "sidebarTitle": "上传知识文件" @@ -3954,7 +3954,7 @@ "post": { "operationId": "knowledge-file-write-delete", "summary": "删除知识文件", - "description": "按相对路径删除知识包中的文件。", + "description": "按相对路径删除知识文件。", "tags": [ "AI SRE/知识" ], @@ -3964,7 +3964,7 @@ } ], "x-mint": { - "content": "## 限制说明\n\n| 项目 | 说明 |\n| ---- | ---- |\n| 速率限制 | 每个 `app_key` **300 次/分钟**;**20 次/秒** |\n| 权限要求 | **知识库管理**(`ai-sre`) |\n\n## 使用说明\n\n- 删除是幂等的——删除不存在的文件也会成功。\n- 当其他包内文件仍引用目标文件时,删除失败并返回 `ReferenceExist`(附带引用方列表);设置 `force` 可强制删除(引用方以警告形式返回)。\n- 不传 `pack_id` 时默认账户范围知识包;编辑账户包需要账户 Owner/Admin 权限,编辑团队包需要是该团队成员。\n- 每次调用都会记录到账户审计日志。\n", + "content": "## 限制说明\n\n| 项目 | 说明 |\n| ---- | ---- |\n| 速率限制 | 每个 `app_key` **300 次/分钟**;**20 次/秒** |\n| 权限要求 | **知识管理**(`ai-sre`) |\n\n## 使用说明\n\n- 删除是幂等的——删除不存在的文件也会成功。\n- 当其他知识文件仍引用目标文件时,删除失败并返回 `ReferenceExist`(附带引用方列表);设置 `force` 可强制删除(引用方以警告形式返回)。\n- 不传 `pack_id` 时默认账户范围知识;编辑账户知识需要账户 Owner/Admin 权限,编辑团队知识需要是该团队成员。\n- 每次调用都会记录到账户审计日志。\n", "href": "/zh/api-reference/ai-sre/knowledge/knowledge-file-write-delete", "metadata": { "sidebarTitle": "删除知识文件" @@ -6294,15 +6294,15 @@ }, "ContextResolvedItem": { "type": "object", - "description": "该会话三层知识包解析结果的快照。", + "description": "该会话三层知识解析结果的快照。", "properties": { "account_pack_id": { "type": "string", - "description": "解析出的账户级知识包 ID。" + "description": "解析出的账户级知识 ID。" }, "team_pack_id": { "type": "string", - "description": "解析出的团队级知识包 ID。" + "description": "解析出的团队级知识 ID。" }, "incident_id": { "type": "string", @@ -6311,14 +6311,14 @@ "resolved_at_ms": { "type": "integer", "format": "int64", - "description": "知识包解析时间,Unix 毫秒时间戳。" + "description": "知识解析时间,Unix 毫秒时间戳。" }, "versions": { "type": "object", "additionalProperties": { "type": "integer" }, - "description": "各知识包解析版本映射。" + "description": "各份知识的解析版本映射。" } }, "required": [ @@ -7255,7 +7255,7 @@ }, "suggest_init": { "type": "boolean", - "description": "账户级引导标志:当账户在任何范围内都没有知识包时为 true;并非该会话独有的属性。" + "description": "账户级引导标志:当账户在任何范围内都没有知识时为 true;并非该会话独有的属性。" }, "pending_messages": { "type": "array", @@ -7614,7 +7614,7 @@ }, "suggest_init": { "type": "boolean", - "description": "账户级引导标志:当账户在任何范围内都没有知识包时为 true;与本次调用的过滤条件无关。" + "description": "账户级引导标志:当账户在任何范围内都没有知识时为 true;与本次调用的过滤条件无关。" } }, "required": [ @@ -7962,20 +7962,20 @@ }, "KnowledgePackItem": { "type": "object", - "description": "知识包——一棵带版本号的文件树,AI SRE 会话启动时会注入到每个沙箱中。每个(账户, scope, scope_id)仅有一个知识包。", + "description": "知识——一棵带版本号的文件树,AI SRE 会话启动时会注入到每个沙箱中。每个(账户, scope, scope_id)仅有一份知识。", "properties": { "pack_id": { "type": "string", - "description": "知识包 ID(`kpk_` 前缀)。" + "description": "知识 ID(`kpk_` 前缀)。" }, "account_id": { "type": "integer", - "description": "知识包所属账户 ID。", + "description": "知识所属账户 ID。", "format": "int64" }, "scope": { "type": "string", - "description": "知识包范围;`channel` 为历史遗留范围,新建知识包为 `account` 或 `team`。", + "description": "知识范围;`channel` 为历史遗留范围,新建知识为 `account` 或 `team`。", "enum": [ "account", "team", @@ -7993,20 +7993,20 @@ }, "file_count": { "type": "integer", - "description": "包内文件数量。" + "description": "知识内文件数量。" }, "total_bytes": { "type": "integer", - "description": "包内所有文件的总字节数。", + "description": "知识内所有文件的总字节数。", "format": "int64" }, "version": { "type": "integer", - "description": "知识包版本号,文件每次变更时递增。" + "description": "知识版本号,文件每次变更时递增。" }, "duty_version": { "type": "integer", - "description": "最后一次撰写或确认 DUTY.md 时的知识库版本。当 `version` 大于该值时,说明 DUTY.md 已不能反映知识库的全部文件。" + "description": "最后一次撰写或确认 DUTY.md 时的知识版本。当 `version` 大于该值时,说明 DUTY.md 已不能反映知识的全部文件。" }, "created_by": { "type": "integer", @@ -8025,7 +8025,7 @@ }, "can_edit": { "type": "boolean", - "description": "调用者是否有权限编辑该知识包。" + "description": "调用者是否有权限编辑该知识。" } }, "required": [ @@ -8045,7 +8045,7 @@ }, "KnowledgeFileItem": { "type": "object", - "description": "知识包内单个文件的元数据;文件内容需通过 file/get 单独获取。", + "description": "单个知识文件的元数据;文件内容需通过 file/get 单独获取。", "properties": { "file_id": { "type": "string", @@ -8053,11 +8053,11 @@ }, "pack_id": { "type": "string", - "description": "文件所属的知识包 ID。" + "description": "文件所属的知识 ID。" }, "rel_path": { "type": "string", - "description": "相对于知识包根目录的路径,如 `runbooks/restart.md`。" + "description": "相对于知识根目录的路径,如 `runbooks/restart.md`。" }, "content_type": { "type": "string", @@ -8100,7 +8100,7 @@ "properties": { "code": { "type": "string", - "description": "提示码。可选值:`unresolved_reference`(写入的文件内容中 @ref 引用了包内不存在的文件,`ref` 给出该引用)、`still_referenced_by`(被删除的文件仍被包内其他文件 @ref 引用,`refs` 列出引用方)。", + "description": "提示码。可选值:`unresolved_reference`(写入的文件内容中 @ref 引用了知识内不存在的文件,`ref` 给出该引用)、`still_referenced_by`(被删除的文件仍被知识内其他文件 @ref 引用,`refs` 列出引用方)。", "enum": [ "unresolved_reference", "still_referenced_by" @@ -8124,12 +8124,12 @@ }, "KnowledgeGetRequest": { "type": "object", - "description": "无请求字段——固定查询账户范围知识包。", + "description": "无请求字段——固定查询账户范围知识。", "properties": {} }, "KnowledgePackListRequest": { "type": "object", - "description": "知识包列表的过滤与分页参数。", + "description": "知识列表的过滤与分页参数。", "properties": { "p": { "type": "integer", @@ -8141,7 +8141,7 @@ }, "scope": { "type": "string", - "description": "限定范围;`all`(默认)会覆盖 `include_account`。可选值:`all`(账户范围 + 可见团队范围)、`account`(仅账户级知识包)、`team`(仅团队级知识包,可配合 `team_ids` 过滤)。", + "description": "限定范围;`all`(默认)会覆盖 `include_account`。可选值:`all`(账户范围 + 可见团队范围)、`account`(仅账户级知识)、`team`(仅团队级知识,可配合 `team_ids` 过滤)。", "enum": [ "all", "account", @@ -8150,7 +8150,7 @@ }, "query": { "type": "string", - "description": "对知识包 ID、范围、范围 ID/账户 ID 和团队名称做大小写不敏感的子串过滤。", + "description": "对知识 ID、范围、范围 ID/账户 ID 和团队名称做大小写不敏感的子串过滤。", "maxLength": 128 }, "team_ids": { @@ -8166,17 +8166,17 @@ "boolean", "null" ], - "description": "是否包含账户范围的知识包;默认为 true。" + "description": "是否包含账户范围的知识;默认为 true。" } } }, "KnowledgePackEnsureRequest": { "type": "object", - "description": "要确保存在知识包的范围。", + "description": "要确保存在知识的范围。", "properties": { "scope": { "type": "string", - "description": "知识包范围。可选值:`account`(账户级知识包,scope_id 固定为调用方账户 ID,仅账户管理员可创建;首次创建会播种默认 DUTY.md)、`team`(团队级知识包,必须提供 `scope_id` 团队 ID,调用者需属于该团队)。", + "description": "知识范围。可选值:`account`(账户级知识,scope_id 固定为调用方账户 ID,仅账户管理员可创建;首次创建会播种默认 DUTY.md)、`team`(团队级知识,必须提供 `scope_id` 团队 ID,调用者需属于该团队)。", "enum": [ "account", "team" @@ -8194,18 +8194,18 @@ }, "KnowledgePackUpdateRequest": { "type": "object", - "description": "将知识包移动到其他范围。", + "description": "将知识移动到其他范围。", "properties": { "pack_id": { "type": "string", - "description": "要更新的知识包 ID。" + "description": "要更新的知识 ID。" }, "scope": { "type": [ "string", "null" ], - "description": "目标范围;不传则为空操作,返回当前知识包。", + "description": "目标范围;不传则为空操作,返回当前知识。", "enum": [ "account", "team" @@ -8226,11 +8226,11 @@ }, "KnowledgePackDeleteRequest": { "type": "object", - "description": "要删除的知识包。", + "description": "要删除的知识。", "properties": { "pack_id": { "type": "string", - "description": "要删除的知识包 ID。" + "description": "要删除的知识 ID。" } }, "required": [ @@ -8243,7 +8243,7 @@ "properties": { "ok": { "type": "boolean", - "description": "知识包删除成功时为 true。" + "description": "知识删除成功时为 true。" } }, "required": [ @@ -8252,11 +8252,11 @@ }, "KnowledgeFileListRequest": { "type": "object", - "description": "要列出文件的知识包。", + "description": "要列出文件的知识。", "properties": { "pack_id": { "type": "string", - "description": "知识包 ID;默认为调用者的账户范围知识包。" + "description": "知识 ID;默认为调用者的账户范围知识。" }, "p": { "type": "integer", @@ -8274,11 +8274,11 @@ "properties": { "pack_id": { "type": "string", - "description": "知识包 ID;默认为调用者的账户范围知识包。" + "description": "知识 ID;默认为调用者的账户范围知识。" }, "rel_path": { "type": "string", - "description": "文件相对于知识包根目录的路径。" + "description": "文件相对于知识根目录的路径。" } }, "required": [ @@ -8291,11 +8291,11 @@ "properties": { "pack_id": { "type": "string", - "description": "知识包 ID;默认为调用者的账户范围知识包。" + "description": "知识 ID;默认为调用者的账户范围知识。" }, "rel_path": { "type": "string", - "description": "相对于知识包根目录的目标路径;已存在的文件会被覆盖。" + "description": "相对于知识根目录的目标路径;已存在的文件会被覆盖。" }, "content_b64": { "type": "string", @@ -8312,7 +8312,7 @@ }, "KnowledgeGetResponse": { "type": "object", - "description": "账户范围知识包元数据及其文件列表。", + "description": "账户范围知识元数据及其文件列表。", "properties": { "pack": { "$ref": "#/components/schemas/KnowledgePackItem" @@ -8322,7 +8322,7 @@ "items": { "$ref": "#/components/schemas/KnowledgeFileItem" }, - "description": "该知识包内的文件数组;无文件时为空数组。" + "description": "该知识内的文件数组;无文件时为空数组。" } }, "required": [ @@ -8332,18 +8332,18 @@ }, "KnowledgePackListResponse": { "type": "object", - "description": "可见的知识包及过滤后的总数。", + "description": "可见的知识及过滤后的总数。", "properties": { "packs": { "type": "array", "items": { "$ref": "#/components/schemas/KnowledgePackItem" }, - "description": "过滤后当前可见的知识包数组(当前页),与 `total` 配合分页。" + "description": "过滤后当前可见的知识数组(当前页),与 `total` 配合分页。" }, "total": { "type": "integer", - "description": "过滤后、分页前的知识包总数。", + "description": "过滤后、分页前的知识总数。", "format": "int64" } }, @@ -8354,18 +8354,18 @@ }, "KnowledgeFileListResponse": { "type": "object", - "description": "知识包内的文件。", + "description": "知识内的文件。", "properties": { "files": { "type": "array", "items": { "$ref": "#/components/schemas/KnowledgeFileItem" }, - "description": "指定知识包内的文件数组;无文件时为空数组。" + "description": "指定知识内的文件数组;无文件时为空数组。" }, "total": { "type": "integer", - "description": "知识包内文件总数。", + "description": "知识内文件总数。", "format": "int64" } }, @@ -8403,7 +8403,7 @@ "items": { "$ref": "#/components/schemas/KnowledgeWarning" }, - "description": "写入成功后的非阻塞警告数组;`code=unresolved_reference` 表示文件内容中的 @ref 引用了包内不存在的文件。无警告时该字段缺省(omitempty)。" + "description": "写入成功后的非阻塞警告数组;`code=unresolved_reference` 表示文件内容中的 @ref 引用了知识内不存在的文件。无警告时该字段缺省(omitempty)。" } }, "required": [ @@ -8412,19 +8412,19 @@ }, "KnowledgeFileDeleteRequest": { "type": "object", - "description": "要从知识包中删除的文件。", + "description": "要删除的知识文件。", "properties": { "pack_id": { "type": "string", - "description": "知识包 ID;默认为调用者的账户范围知识包。" + "description": "知识 ID;默认为调用者的账户范围知识。" }, "rel_path": { "type": "string", - "description": "文件相对于知识包根目录的路径。" + "description": "文件相对于知识根目录的路径。" }, "force": { "type": "boolean", - "description": "即使其他包内文件仍引用该文件也强制删除;此时引用方会以警告形式返回,而不再阻止删除。" + "description": "即使其他知识文件仍引用该文件也强制删除;此时引用方会以警告形式返回,而不再阻止删除。" } }, "required": [ @@ -8440,7 +8440,7 @@ "items": { "$ref": "#/components/schemas/KnowledgeWarning" }, - "description": "删除后的非阻塞警告数组;`code=still_referenced_by` 表示被(强制)删除的文件仍被包内其他文件 @ref 引用(`refs` 列出引用方)。无警告时该字段缺省(omitempty)。" + "description": "删除后的非阻塞警告数组;`code=still_referenced_by` 表示被(强制)删除的文件仍被知识内其他文件 @ref 引用(`refs` 列出引用方)。无警告时该字段缺省(omitempty)。" } } }, diff --git a/en/openapi/api-catalog.mdx b/en/openapi/api-catalog.mdx index 54265f2f6..971ce3139 100644 --- a/en/openapi/api-catalog.mdx +++ b/en/openapi/api-catalog.mdx @@ -491,11 +491,11 @@ Only plain human messages are projected: rows produced by internal producers (au | Method | Endpoint | Description | | :--- | :--- | :--- | -| POST | [`/safari/knowledge/pack/list`](/en/api-reference/ai-sre/knowledge/knowledge-pack-read-list) | List knowledge packs | -| POST | [`/safari/knowledge/get`](/en/api-reference/ai-sre/knowledge/knowledge-pack-read-get) | Get account knowledge pack | -| POST | [`/safari/knowledge/pack/ensure`](/en/api-reference/ai-sre/knowledge/knowledge-pack-write-ensure) | Ensure knowledge pack | -| POST | [`/safari/knowledge/pack/update`](/en/api-reference/ai-sre/knowledge/knowledge-pack-write-update) | Update knowledge pack | -| POST | [`/safari/knowledge/pack/delete`](/en/api-reference/ai-sre/knowledge/knowledge-pack-write-delete) | Delete knowledge pack | +| POST | [`/safari/knowledge/pack/list`](/en/api-reference/ai-sre/knowledge/knowledge-pack-read-list) | List knowledge | +| POST | [`/safari/knowledge/get`](/en/api-reference/ai-sre/knowledge/knowledge-pack-read-get) | Get account knowledge | +| POST | [`/safari/knowledge/pack/ensure`](/en/api-reference/ai-sre/knowledge/knowledge-pack-write-ensure) | Ensure knowledge | +| POST | [`/safari/knowledge/pack/update`](/en/api-reference/ai-sre/knowledge/knowledge-pack-write-update) | Update knowledge | +| POST | [`/safari/knowledge/pack/delete`](/en/api-reference/ai-sre/knowledge/knowledge-pack-write-delete) | Delete knowledge | | POST | [`/safari/knowledge/file/list`](/en/api-reference/ai-sre/knowledge/knowledge-file-read-list) | List knowledge files | | POST | [`/safari/knowledge/file/get`](/en/api-reference/ai-sre/knowledge/knowledge-file-read-get) | Get knowledge file | | POST | [`/safari/knowledge/file/put`](/en/api-reference/ai-sre/knowledge/knowledge-file-write-put) | Upload knowledge file | diff --git a/zh/openapi/api-catalog.mdx b/zh/openapi/api-catalog.mdx index 2b8550a7c..1042b8f57 100644 --- a/zh/openapi/api-catalog.mdx +++ b/zh/openapi/api-catalog.mdx @@ -491,11 +491,11 @@ Flashduty Open API 提供 **338** 个接口,覆盖 On-call、Monitors、RUM、 | 方法 | 接口 | 描述 | | :--- | :--- | :--- | -| POST | [`/safari/knowledge/pack/list`](/zh/api-reference/ai-sre/knowledge/knowledge-pack-read-list) | 查询知识包列表 | -| POST | [`/safari/knowledge/get`](/zh/api-reference/ai-sre/knowledge/knowledge-pack-read-get) | 查看账户知识包 | -| POST | [`/safari/knowledge/pack/ensure`](/zh/api-reference/ai-sre/knowledge/knowledge-pack-write-ensure) | 确保知识包存在 | -| POST | [`/safari/knowledge/pack/update`](/zh/api-reference/ai-sre/knowledge/knowledge-pack-write-update) | 更新知识包 | -| POST | [`/safari/knowledge/pack/delete`](/zh/api-reference/ai-sre/knowledge/knowledge-pack-write-delete) | 删除知识包 | +| POST | [`/safari/knowledge/pack/list`](/zh/api-reference/ai-sre/knowledge/knowledge-pack-read-list) | 查询知识列表 | +| POST | [`/safari/knowledge/get`](/zh/api-reference/ai-sre/knowledge/knowledge-pack-read-get) | 查看账户知识 | +| POST | [`/safari/knowledge/pack/ensure`](/zh/api-reference/ai-sre/knowledge/knowledge-pack-write-ensure) | 确保知识存在 | +| POST | [`/safari/knowledge/pack/update`](/zh/api-reference/ai-sre/knowledge/knowledge-pack-write-update) | 更新知识 | +| POST | [`/safari/knowledge/pack/delete`](/zh/api-reference/ai-sre/knowledge/knowledge-pack-write-delete) | 删除知识 | | POST | [`/safari/knowledge/file/list`](/zh/api-reference/ai-sre/knowledge/knowledge-file-read-list) | 查询知识文件列表 | | POST | [`/safari/knowledge/file/get`](/zh/api-reference/ai-sre/knowledge/knowledge-file-read-get) | 获取知识文件 | | POST | [`/safari/knowledge/file/put`](/zh/api-reference/ai-sre/knowledge/knowledge-file-write-put) | 上传知识文件 |