application · active

Bytes

Media and asset management surface for uploads, organization, review, and sharing.

Documentation map

  • Topolo Bytes — Public overview of the media-management and sharing surface built around Cloudflare edge storage and media tooling.

Authority and runtime

System ID
topolo-bytes
App IDs
app_topolo_bytes
Owners
media-platform
Repositories
apps/TopoloBytes
Hosts
https://bytes.topolo.app, https://bytes-api.topolo.app, https://bytes.stg.topolo.us, https://bytes-api.stg.topolo.us
Dependencies
topolo-auth, applications-packages

Security and data ownership

Risk tier
high
Tenant isolation
organization_scoped
Privacy classification
restricted
Storage
external_provider, kv, r2
Export and deletion
planned
Enterprise ready
no

Source-derived capability inventory

Source revisions: apps/TopoloBytes@a91022036b05b981e179e035971d2c85a4d04f7e

Declared actions: 30 · API routes: 42 · UI routes: 0

{
  "id": "topolo-bytes",
  "name": "Bytes",
  "slug": "topolo-bytes",
  "kind": "application",
  "visibility": "public",
  "repo_paths": [
    "apps/TopoloBytes"
  ],
  "source_revisions": [
    {
      "source_path": "apps/TopoloBytes",
      "repository": "apps/TopoloBytes",
      "revision": "a91022036b05b981e179e035971d2c85a4d04f7e",
      "ref": "origin/staging"
    }
  ],
  "source_counts": {
    "source_files": 222,
    "test_files": 88,
    "test_cases": 0,
    "migration_files": 0,
    "database_tables": 0,
    "manifests": 1,
    "deploy_targets": 2,
    "actions": 30,
    "mobile_contracts": 1,
    "notifications": 6,
    "package_manifests": 4,
    "deployment_configs": 0
  },
  "manifests": [
    {
      "source_path": "apps/TopoloBytes/topolo.app.json",
      "service_slug": "topolo-bytes",
      "name": "topolo-bytes",
      "app_id": "app_topolo_bytes",
      "compatibility_date": "2026-04-10",
      "primary_target": null,
      "environments": [
        "production",
        "staging"
      ],
      "targets": [
        {
          "name": "web",
          "kind": "worker",
          "directory": "apps/web",
          "main": "src/worker.ts",
          "worker_name": "topolo-bytes",
          "subdomain": "bytes",
          "healthcheck_path": null,
          "variable_names": [
            "AUTH_API_URL",
            "INSIGHTS_SITE_KEY"
          ],
          "secret_names": [],
          "bindings": [
            {
              "kind": "services",
              "binding": "API",
              "target": null
            }
          ]
        },
        {
          "name": "api",
          "kind": "worker",
          "directory": "apps/api",
          "main": "src/index.ts",
          "worker_name": "topolo-bytes-api",
          "subdomain": null,
          "healthcheck_path": "/health",
          "variable_names": [
            "AUTH_BASE_URL",
            "BYTES_QUOTA_BYTES",
            "BYTES_QUOTA_WARNING_PERCENT",
            "ENVIRONMENT",
            "NEXUS_GATEWAY_URL",
            "R2_BUCKET_NAME",
            "TOPOLO_NOTIFY_URL"
          ],
          "secret_names": [],
          "bindings": [
            {
              "kind": "r2",
              "binding": "BYTES_BUCKET",
              "target": null
            },
            {
              "kind": "kv",
              "binding": "SHARE_LINKS",
              "target": null
            },
            {
              "kind": "vectorize",
              "binding": "VEC",
              "target": null
            },
            {
              "kind": "vectorize",
              "binding": "VEC",
              "target": null
            }
          ]
        }
      ],
      "notifications": [
        "bytes.processing.failed",
        "bytes.quota.warning",
        "bytes.share.created",
        "bytes.share.expiring",
        "bytes.upload.completed",
        "bytes.upload.failed"
      ],
      "notification_contract": {
        "source_path": "topolo.notification-contracts.json",
        "role": "producer",
        "schema_version": 1,
        "owner_app_id": "app_topolo_bytes",
        "events": [
          {
            "type": "bytes.processing.failed",
            "version": 1,
            "description": "A durable Bytes media-processing attempt failed and was persisted for retry and review.",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "required": [
                "title",
                "body",
                "object_id",
                "file_key",
                "stage",
                "reason",
                "occurred_at"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "file_key": {
                  "type": "string",
                  "minLength": 1
                },
                "stage": {
                  "type": "string",
                  "minLength": 1
                },
                "reason": {
                  "type": "string",
                  "minLength": 1
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                }
              },
              "additionalProperties": false
            },
            "examples": [
              {
                "title": "File processing failed",
                "body": "launch-video.mp4 could not complete video processing.",
                "object_id": "failure_123",
                "file_key": "launch-video.mp4",
                "stage": "video_processing",
                "reason": "Stream processing rejected the file",
                "occurred_at": "2026-07-20T00:00:00.000Z"
              }
            ],
            "dataClassification": "internal",
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^bytes:processing-failed:"
            },
            "sensitiveFields": []
          },
          {
            "type": "bytes.quota.warning",
            "version": 1,
            "description": "A Bytes workspace crossed its configured storage quota warning threshold.",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "required": [
                "title",
                "body",
                "object_id",
                "used_bytes",
                "quota_bytes",
                "warning_percent",
                "occurred_at"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "used_bytes": {
                  "type": "integer",
                  "minimum": 0
                },
                "quota_bytes": {
                  "type": "integer",
                  "minimum": 1
                },
                "warning_percent": {
                  "type": "number",
                  "minimum": 1,
                  "maximum": 100
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                }
              },
              "additionalProperties": false
            },
            "examples": [
              {
                "title": "Bytes storage quota warning",
                "body": "Storage usage has reached 80% of the workspace quota.",
                "object_id": "workspace_123",
                "used_bytes": 85899345920,
                "quota_bytes": 107374182400,
                "warning_percent": 80,
                "occurred_at": "2026-07-20T00:00:00.000Z"
              }
            ],
            "dataClassification": "internal",
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^bytes:quota-warning:"
            },
            "sensitiveFields": []
          },
          {
            "type": "bytes.share.created",
            "version": 1,
            "description": "A file share link was created.",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "required": [
                "title",
                "body",
                "object_id",
                "occurred_at"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "surface": {
                  "enum": [
                    "notification",
                    "action"
                  ]
                },
                "action_kind": {
                  "enum": [
                    "open",
                    "review",
                    "approve",
                    "resolve",
                    "complete"
                  ]
                },
                "action_status": {
                  "type": "string"
                },
                "priority": {
                  "enum": [
                    "low",
                    "normal",
                    "high",
                    "urgent"
                  ]
                },
                "cta_url": {
                  "type": "string",
                  "format": "uri"
                },
                "cta_label": {
                  "type": "string"
                },
                "category": {
                  "type": "string"
                },
                "severity": {
                  "enum": [
                    "info",
                    "success",
                    "warning",
                    "critical"
                  ]
                },
                "object_type": {
                  "type": "string"
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                },
                "actor_id": {
                  "type": "string"
                },
                "actor_display_name": {
                  "type": "string"
                },
                "recipient_email": {
                  "type": "string",
                  "format": "email"
                },
                "thread_key": {
                  "type": "string"
                },
                "expires_at": {
                  "type": "string",
                  "format": "date-time"
                },
                "action_context": {
                  "type": "object"
                }
              },
              "additionalProperties": true
            },
            "examples": [
              {
                "title": "A file share link was created.",
                "body": "Open the owning app to review this event.",
                "object_id": "object_123",
                "occurred_at": "2026-07-17T00:00:00.000Z"
              }
            ],
            "dataClassification": "internal",
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^bytes:share-created:"
            },
            "sensitiveFields": []
          },
          {
            "type": "bytes.share.expiring",
            "version": 1,
            "description": "A persisted Bytes share entered its final 24-hour availability window.",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "required": [
                "title",
                "body",
                "object_id",
                "expires_at",
                "occurred_at"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "expires_at": {
                  "type": "string",
                  "format": "date-time"
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                }
              },
              "additionalProperties": false
            },
            "examples": [
              {
                "title": "Bytes share expiring soon",
                "body": "Your Bytes share expires at 2026-07-21T00:00:00.000Z.",
                "object_id": "share_123",
                "expires_at": "2026-07-21T00:00:00.000Z",
                "occurred_at": "2026-07-20T00:00:00.000Z"
              }
            ],
            "dataClassification": "internal",
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^bytes:share-expiring:"
            },
            "sensitiveFields": []
          },
          {
            "type": "bytes.upload.completed",
            "version": 1,
            "description": "A direct or multipart upload was durably committed to the workspace bucket.",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "required": [
                "title",
                "body",
                "object_id",
                "file_key",
                "etag",
                "size_bytes",
                "occurred_at"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "file_key": {
                  "type": "string",
                  "minLength": 1
                },
                "etag": {
                  "type": "string",
                  "minLength": 1
                },
                "size_bytes": {
                  "type": [
                    "integer",
                    "null"
                  ],
                  "minimum": 0
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                }
              },
              "additionalProperties": false
            },
            "examples": [
              {
                "title": "Upload completed",
                "body": "launch-video.mp4 is ready in Bytes.",
                "object_id": "organizations/org_123/workspaces/workspace_123/launch-video.mp4",
                "file_key": "launch-video.mp4",
                "etag": "etag_123",
                "size_bytes": 4096,
                "occurred_at": "2026-07-20T00:00:00.000Z"
              }
            ],
            "dataClassification": "internal",
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^bytes:upload-completed:"
            },
            "sensitiveFields": []
          },
          {
            "type": "bytes.upload.failed",
            "version": 1,
            "description": "A failed direct or multipart upload attempt was durably recorded for retry and review.",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "required": [
                "title",
                "body",
                "object_id",
                "file_key",
                "reason",
                "occurred_at"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "file_key": {
                  "type": "string",
                  "minLength": 1
                },
                "reason": {
                  "type": "string",
                  "minLength": 1
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                }
              },
              "additionalProperties": false
            },
            "examples": [
              {
                "title": "Upload failed",
                "body": "launch-video.mp4 could not be uploaded.",
                "object_id": "failure_123",
                "file_key": "launch-video.mp4",
                "reason": "R2 rejected the upload",
                "occurred_at": "2026-07-20T00:00:00.000Z"
              }
            ],
            "dataClassification": "internal",
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^bytes:upload-failed:"
            },
            "sensitiveFields": []
          }
        ]
      },
      "actions": [
        {
          "name": "widget.get",
          "title": "Get widget summary",
          "description": "Get the TopoloOne widget summary for this service.",
          "method": "GET",
          "path": "/api/widget",
          "permission": "files:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {},
            "additionalProperties": false
          },
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "target": "api",
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {},
            "cli_example": [
              "topolo actions --service topolo-bytes --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/widget",
              "body": null
            },
            "effects": "Reads state through GET /api/widget without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/widget",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "files.list",
          "title": "List files",
          "description": "List files and folders.",
          "method": "GET",
          "path": "/api/list",
          "permission": "files:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "prefix": {
                "type": "string"
              },
              "cursor": {
                "type": "string"
              },
              "fileType": {
                "type": "string"
              },
              "sizeMin": {
                "type": "string"
              },
              "sizeMax": {
                "type": "string"
              },
              "dateFrom": {
                "type": "string"
              },
              "dateTo": {
                "type": "string"
              },
              "durationMin": {
                "type": "string"
              },
              "durationMax": {
                "type": "string"
              },
              "search": {
                "type": "string"
              },
              "sortBy": {
                "type": "string"
              },
              "sortOrder": {
                "type": "string"
              },
              "bucket": {
                "type": "string",
                "minLength": 1
              },
              "scope": {
                "type": "string",
                "enum": [
                  "org",
                  "private",
                  "all"
                ]
              }
            },
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by List files.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "prefix": "example",
              "cursor": "example",
              "fileType": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-bytes --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/list",
              "body": null
            },
            "effects": "Reads state through GET /api/list without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/list",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "files.search",
          "title": "Search files",
          "description": "Search files by metadata or content.",
          "method": "GET",
          "path": "/api/search",
          "permission": "files:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "prefix": {
                "type": "string"
              },
              "cursor": {
                "type": "string"
              },
              "fileType": {
                "type": "string"
              },
              "sizeMin": {
                "type": "string"
              },
              "sizeMax": {
                "type": "string"
              },
              "dateFrom": {
                "type": "string"
              },
              "dateTo": {
                "type": "string"
              },
              "durationMin": {
                "type": "string"
              },
              "durationMax": {
                "type": "string"
              },
              "search": {
                "type": "string"
              },
              "sortBy": {
                "type": "string"
              },
              "sortOrder": {
                "type": "string"
              },
              "bucket": {
                "type": "string",
                "minLength": 1
              },
              "scope": {
                "type": "string",
                "enum": [
                  "org",
                  "private",
                  "all"
                ]
              },
              "limit": {
                "type": "integer",
                "minimum": 1,
                "maximum": 9007199254740991
              }
            },
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Search files.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "prefix": "example",
              "cursor": "example",
              "fileType": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-bytes --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/search",
              "body": null
            },
            "effects": "Reads state through GET /api/search without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/search",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "files.upload_url.create",
          "title": "Create upload URL",
          "description": "Create a signed upload URL for a file.",
          "method": "POST",
          "path": "/api/upload-url",
          "permission": "files:write",
          "readOnly": false,
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "key": {
                "type": "string",
                "minLength": 1
              },
              "type": {
                "type": "string",
                "minLength": 1
              },
              "size": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 104857600
              },
              "bucket": {
                "type": "string",
                "minLength": 1
              },
              "scope": {
                "type": "string",
                "enum": [
                  "org",
                  "private",
                  "all"
                ]
              }
            },
            "required": [
              "key",
              "type",
              "size"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Create upload URL.",
            "additionalProperties": true
          },
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "agentContract": {
            "upload": {
              "profile": "url-session",
              "fileNameField": "key",
              "contentTypeField": "type",
              "sizeField": "size",
              "maxBytes": 104857600,
              "acceptedContentTypes": [
                "*/*"
              ],
              "uploadUrlPath": "url",
              "uploadMethod": "PUT"
            }
          },
          "documentation": {
            "example_input": {
              "key": "example",
              "type": "example",
              "size": 1
            },
            "cli_example": [
              "topolo actions --service topolo-bytes --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/upload-url",
              "body": {
                "key": "example",
                "type": "example",
                "size": 1
              }
            },
            "effects": "May change state through POST /api/upload-url. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/upload-url",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "files.rename",
          "title": "Rename file",
          "description": "Rename a file.",
          "method": "POST",
          "path": "/api/rename",
          "permission": "files:write",
          "readOnly": false,
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "oldKey": {
                "type": "string",
                "minLength": 1
              },
              "newKey": {
                "type": "string",
                "minLength": 1
              },
              "bucket": {
                "type": "string",
                "minLength": 1
              },
              "scope": {
                "type": "string",
                "enum": [
                  "org",
                  "private",
                  "all"
                ]
              }
            },
            "required": [
              "oldKey",
              "newKey"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Rename file.",
            "additionalProperties": true
          },
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "oldKey": "example",
              "newKey": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-bytes --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/rename",
              "body": {
                "oldKey": "example",
                "newKey": "example"
              }
            },
            "effects": "May change state through POST /api/rename. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/rename",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "shares.list",
          "title": "List shares",
          "description": "List file sharing links.",
          "method": "GET",
          "path": "/api/shares",
          "permission": "sharing:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "cursor": {
                "type": "string"
              },
              "limit": {
                "type": "integer",
                "minimum": 1,
                "maximum": 200
              },
              "scope": {
                "type": "string",
                "enum": [
                  "org",
                  "private",
                  "all"
                ]
              }
            },
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by List shares.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "cursor": "example",
              "limit": 1,
              "scope": "org"
            },
            "cli_example": [
              "topolo actions --service topolo-bytes --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/shares",
              "body": null
            },
            "effects": "Reads state through GET /api/shares without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/shares",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "shares.create",
          "title": "Create share",
          "description": "Create a sharing link.",
          "method": "POST",
          "path": "/api/shares/create",
          "permission": "sharing:write",
          "readOnly": false,
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "fileKeys": {
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "permissions": {
                "type": "string",
                "enum": [
                  "view",
                  "download"
                ]
              },
              "shareType": {
                "type": "string",
                "enum": [
                  "single",
                  "multiple",
                  "zip"
                ]
              },
              "password": {
                "type": "string"
              },
              "expirationDays": {
                "type": "number"
              },
              "scope": {
                "type": "string",
                "enum": [
                  "org",
                  "private",
                  "all"
                ]
              }
            },
            "required": [
              "fileKeys",
              "permissions",
              "shareType"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Create share.",
            "additionalProperties": true
          },
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "fileKeys": [
                "example"
              ],
              "permissions": "view",
              "shareType": "single"
            },
            "cli_example": [
              "topolo actions --service topolo-bytes --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/shares/create",
              "body": {
                "fileKeys": [
                  "example"
                ],
                "permissions": "view",
                "shareType": "single"
              }
            },
            "effects": "May change state through POST /api/shares/create. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/shares/create",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "bulk.organize",
          "title": "Bulk organize files",
          "description": "Run bulk file organization.",
          "method": "POST",
          "path": "/api/bulk/organize",
          "permission": "pipelines:invoke",
          "readOnly": false,
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "fileKeys": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "rules": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "by-date",
                      "by-type",
                      "by-size",
                      "custom"
                    ]
                  },
                  "pattern": {
                    "type": "string"
                  },
                  "conditions": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {}
                  }
                },
                "required": [
                  "type"
                ],
                "additionalProperties": false
              },
              "dryRun": {
                "type": "boolean"
              },
              "bucket": {
                "type": "string",
                "minLength": 1
              },
              "scope": {
                "type": "string",
                "enum": [
                  "org",
                  "private",
                  "all"
                ]
              }
            },
            "required": [
              "rules"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Bulk organize files.",
            "additionalProperties": true
          },
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "rules": {
                "type": "by-date"
              }
            },
            "cli_example": [
              "topolo actions --service topolo-bytes --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/bulk/organize",
              "body": {
                "rules": {
                  "type": "by-date"
                }
              }
            },
            "effects": "May change state through POST /api/bulk/organize. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/bulk/organize",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "shares.refresh_session",
          "title": "Shares Refresh Session",
          "description": "Call POST /api/shares/refresh-session.",
          "method": "POST",
          "path": "/api/shares/refresh-session",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "shareId": {
                "type": "string",
                "minLength": 1
              },
              "fileKey": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "shareId",
              "fileKey"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Shares Refresh Session.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "public",
          "documentation": {
            "example_input": {
              "shareId": "example",
              "fileKey": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-bytes --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/shares/refresh-session",
              "body": {
                "shareId": "example",
                "fileKey": "example"
              }
            },
            "effects": "May change state through POST /api/shares/refresh-session. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/shares/refresh-session",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "shares.delete",
          "title": "Shares Delete",
          "description": "Call DELETE /api/shares/{shareId}.",
          "method": "DELETE",
          "path": "/api/shares/{shareId}",
          "permission": "sharing:write",
          "requiresConfirmation": true,
          "destructive": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "shareId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "shareId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Shares Delete.",
            "additionalProperties": true
          },
          "readOnly": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "shareId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-bytes --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "DELETE",
              "path": "/api/shares/example",
              "body": null
            },
            "effects": "May change state through DELETE /api/shares/{shareId}. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "DELETE /api/shares/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "desktop.releases.latest",
          "title": "Desktop Releases Latest",
          "description": "Call GET /api/desktop/releases/latest.",
          "method": "GET",
          "path": "/api/desktop/releases/latest",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {},
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Desktop Releases Latest.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "public",
          "documentation": {
            "example_input": {},
            "cli_example": [
              "topolo actions --service topolo-bytes --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/desktop/releases/latest",
              "body": null
            },
            "effects": "Reads state through GET /api/desktop/releases/latest without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/desktop/releases/latest",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "desktop.download",
          "title": "Desktop Download",
          "description": "Call GET /api/desktop/download.",
          "method": "GET",
          "path": "/api/desktop/download",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "key": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "key"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Desktop Download.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "public",
          "documentation": {
            "example_input": {
              "key": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-bytes --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/desktop/download",
              "body": null
            },
            "effects": "Reads state through GET /api/desktop/download without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/desktop/download",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "uploads.multipart.create",
          "title": "Uploads Multipart Create",
          "description": "Call POST /api/multipart/create.",
          "method": "POST",
          "path": "/api/multipart/create",
          "permission": "files:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "key": {
                "type": "string",
                "minLength": 1
              },
              "contentType": {
                "type": "string"
              },
              "scope": {
                "type": "string",
                "enum": [
                  "org",
                  "private",
                  "all"
                ]
              }
            },
            "required": [
              "key"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Uploads Multipart Create.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "key": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-bytes --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/multipart/create",
              "body": {
                "key": "example"
              }
            },
            "effects": "May change state through POST /api/multipart/create. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/multipart/create",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "uploads.multipart.sign",
          "title": "Uploads Multipart Sign",
          "description": "Call POST /api/multipart/sign.",
          "method": "POST",
          "path": "/api/multipart/sign",
          "permission": "files:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "key": {
                "type": "string",
                "minLength": 1
              },
              "uploadId": {
                "type": "string",
                "minLength": 1
              },
              "partNumbers": {
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 10000
                }
              },
              "scope": {
                "type": "string",
                "enum": [
                  "org",
                  "private",
                  "all"
                ]
              }
            },
            "required": [
              "key",
              "uploadId",
              "partNumbers"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Uploads Multipart Sign.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "key": "example",
              "uploadId": "example",
              "partNumbers": [
                1
              ]
            },
            "cli_example": [
              "topolo actions --service topolo-bytes --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/multipart/sign",
              "body": {
                "key": "example",
                "uploadId": "example",
                "partNumbers": [
                  1
                ]
              }
            },
            "effects": "May change state through POST /api/multipart/sign. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/multipart/sign",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "uploads.multipart.complete",
          "title": "Uploads Multipart Complete",
          "description": "Call POST /api/multipart/complete.",
          "method": "POST",
          "path": "/api/multipart/complete",
          "permission": "files:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "key": {
                "type": "string",
                "minLength": 1
              },
              "uploadId": {
                "type": "string",
                "minLength": 1
              },
              "parts": {
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "partNumber": {
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 10000
                    },
                    "etag": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "required": [
                    "partNumber",
                    "etag"
                  ],
                  "additionalProperties": false
                }
              },
              "scope": {
                "type": "string",
                "enum": [
                  "org",
                  "private",
                  "all"
                ]
              }
            },
            "required": [
              "key",
              "uploadId",
              "parts"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Uploads Multipart Complete.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "key": "example",
              "uploadId": "example",
              "parts": [
                {
                  "partNumber": 1,
                  "etag": "example"
                }
              ]
            },
            "cli_example": [
              "topolo actions --service topolo-bytes --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/multipart/complete",
              "body": {
                "key": "example",
                "uploadId": "example",
                "parts": [
                  {
                    "partNumber": 1,
                    "etag": "example"
                  }
                ]
              }
            },
            "effects": "May change state through POST /api/multipart/complete. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/multipart/complete",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "uploads.multipart.abort",
          "title": "Uploads Multipart Abort",
          "description": "Call POST /api/multipart/abort.",
          "method": "POST",
          "path": "/api/multipart/abort",
          "permission": "files:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "key": {
                "type": "string",
                "minLength": 1
              },
              "uploadId": {
                "type": "string",
                "minLength": 1
              },
              "scope": {
                "type": "string",
                "enum": [
                  "org",
                  "private",
                  "all"
                ]
              }
            },
            "required": [
              "key",
              "uploadId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Uploads Multipart Abort.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "key": "example",
              "uploadId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-bytes --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/multipart/abort",
              "body": {
                "key": "example",
                "uploadId": "example"
              }
            },
            "effects": "May change state through POST /api/multipart/abort. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/multipart/abort",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "files.delete_route",
          "title": "Files Delete Route",
          "description": "Call DELETE /api/delete.",
          "method": "DELETE",
          "path": "/api/delete",
          "permission": "files:delete",
          "requiresConfirmation": true,
          "destructive": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "files": {
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "bucket": {
                "type": "string",
                "minLength": 1
              },
              "scope": {
                "type": "string",
                "enum": [
                  "org",
                  "private",
                  "all"
                ]
              }
            },
            "required": [
              "files"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Files Delete Route.",
            "additionalProperties": true
          },
          "readOnly": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "files": [
                "example"
              ]
            },
            "cli_example": [
              "topolo actions --service topolo-bytes --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "DELETE",
              "path": "/api/delete",
              "body": null
            },
            "effects": "May change state through DELETE /api/delete. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "DELETE /api/delete",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "files.bulk_rename",
          "title": "Files Bulk Rename",
          "description": "Call POST /api/bulk/rename.",
          "method": "POST",
          "path": "/api/bulk/rename",
          "permission": "files:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "fileKeys": {
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "pattern": {
                "type": "string",
                "minLength": 1
              },
              "options": {
                "type": "object",
                "properties": {
                  "startIndex": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "findText": {
                    "type": "string"
                  },
                  "replaceText": {
                    "type": "string"
                  },
                  "addTimestamp": {
                    "type": "boolean"
                  },
                  "preserveExtension": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              "bucket": {
                "type": "string",
                "minLength": 1
              },
              "scope": {
                "type": "string",
                "enum": [
                  "org",
                  "private",
                  "all"
                ]
              }
            },
            "required": [
              "fileKeys",
              "pattern"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Files Bulk Rename.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "fileKeys": [
                "example"
              ],
              "pattern": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-bytes --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/bulk/rename",
              "body": {
                "fileKeys": [
                  "example"
                ],
                "pattern": "example"
              }
            },
            "effects": "May change state through POST /api/bulk/rename. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/bulk/rename",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "folders.create_alt",
          "title": "Folders Create Alt",
          "description": "Call POST /api/folders/create.",
          "method": "POST",
          "path": "/api/folders/create",
          "permission": "folders:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "folderPath": {
                "type": "string",
                "minLength": 1
              },
              "bucket": {
                "type": "string",
                "minLength": 1
              },
              "scope": {
                "type": "string",
                "enum": [
                  "org",
                  "private",
                  "all"
                ]
              }
            },
            "required": [
              "folderPath"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Folders Create Alt.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "folderPath": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-bytes --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/folders/create",
              "body": {
                "folderPath": "example"
              }
            },
            "effects": "May change state through POST /api/folders/create. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/folders/create",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "folder.rename_alt",
          "title": "Folder Rename Alt",
          "description": "Call PUT /api/folder/rename.",
          "method": "PUT",
          "path": "/api/folder/rename",
          "permission": "folders:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "oldPath": {
                "type": "string",
                "minLength": 1
              },
              "newPath": {
                "type": "string",
                "minLength": 1
              },
              "bucket": {
                "type": "string",
                "minLength": 1
              },
              "scope": {
                "type": "string",
                "enum": [
                  "org",
                  "private",
                  "all"
                ]
              }
            },
            "required": [
              "oldPath",
              "newPath"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Folder Rename Alt.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "oldPath": "example",
              "newPath": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-bytes --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "PUT",
              "path": "/api/folder/rename",
              "body": {
                "oldPath": "example",
                "newPath": "example"
              }
            },
            "effects": "May change state through PUT /api/folder/rename. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "PUT /api/folder/rename",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "folder.delete_alt",
          "title": "Folder Delete Alt",
          "description": "Call DELETE /api/folder/delete.",
          "method": "DELETE",
          "path": "/api/folder/delete",
          "permission": "files:delete",
          "requiresConfirmation": true,
          "destructive": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "query": {
                "type": "object",
                "properties": {
                  "folderPath": {
                    "type": "string",
                    "minLength": 1
                  },
                  "force": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "enum": [
                          "true",
                          "false"
                        ]
                      }
                    ]
                  },
                  "bucket": {
                    "type": "string",
                    "minLength": 1
                  },
                  "scope": {
                    "type": "string",
                    "enum": [
                      "org",
                      "private",
                      "all"
                    ]
                  }
                },
                "required": [
                  "folderPath"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "query"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Folder Delete Alt.",
            "additionalProperties": true
          },
          "readOnly": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "query": {
                "folderPath": "example"
              }
            },
            "cli_example": [
              "topolo actions --service topolo-bytes --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "DELETE",
              "path": "/api/folder/delete",
              "body": null
            },
            "effects": "May change state through DELETE /api/folder/delete. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "DELETE /api/folder/delete",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "folder.info.get",
          "title": "Folder Info Get",
          "description": "Call GET /api/folder/info.",
          "method": "GET",
          "path": "/api/folder/info",
          "permission": "folders:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "folderPath": {
                "type": "string"
              },
              "bucket": {
                "type": "string",
                "minLength": 1
              },
              "scope": {
                "type": "string",
                "enum": [
                  "org",
                  "private",
                  "all"
                ]
              }
            },
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Folder Info Get.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "folderPath": "example",
              "bucket": "example",
              "scope": "org"
            },
            "cli_example": [
              "topolo actions --service topolo-bytes --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/folder/info",
              "body": null
            },
            "effects": "Reads state through GET /api/folder/info without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/folder/info",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "files.move",
          "title": "Files Move",
          "description": "Call POST /api/files/move.",
          "method": "POST",
          "path": "/api/files/move",
          "permission": "files:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "fileKeys": {
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "targetFolder": {
                "type": "string"
              },
              "bucket": {
                "type": "string",
                "minLength": 1
              },
              "scope": {
                "type": "string",
                "enum": [
                  "org",
                  "private",
                  "all"
                ]
              }
            },
            "required": [
              "fileKeys",
              "targetFolder"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Files Move.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "fileKeys": [
                "example"
              ],
              "targetFolder": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-bytes --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/files/move",
              "body": {
                "fileKeys": [
                  "example"
                ],
                "targetFolder": "example"
              }
            },
            "effects": "May change state through POST /api/files/move. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/files/move",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "files.update",
          "title": "Files Update",
          "description": "Call PUT /api/file/update.",
          "method": "PUT",
          "path": "/api/file/update",
          "permission": "files:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "key": {
                "type": "string",
                "minLength": 1
              },
              "content": {
                "type": "string"
              },
              "bucket": {
                "type": "string",
                "minLength": 1
              },
              "scope": {
                "type": "string",
                "enum": [
                  "org",
                  "private",
                  "all"
                ]
              }
            },
            "required": [
              "key",
              "content"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Files Update.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "key": "example",
              "content": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-bytes --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "PUT",
              "path": "/api/file/update",
              "body": {
                "key": "example",
                "content": "example"
              }
            },
            "effects": "May change state through PUT /api/file/update. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "PUT /api/file/update",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "files.content.update",
          "title": "Files Content Update",
          "description": "Call PUT /api/file-content.",
          "method": "PUT",
          "path": "/api/file-content",
          "permission": "files:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "key": {
                "type": "string",
                "minLength": 1
              },
              "content": {
                "type": "string"
              },
              "bucket": {
                "type": "string",
                "minLength": 1
              },
              "scope": {
                "type": "string",
                "enum": [
                  "org",
                  "private",
                  "all"
                ]
              }
            },
            "required": [
              "key",
              "content"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Files Content Update.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "key": "example",
              "content": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-bytes --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "PUT",
              "path": "/api/file-content",
              "body": {
                "key": "example",
                "content": "example"
              }
            },
            "effects": "May change state through PUT /api/file-content. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "PUT /api/file-content",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "download.signed_url.create",
          "title": "Download Signed Url Create",
          "description": "Call POST /api/download/signed-url.",
          "method": "POST",
          "path": "/api/download/signed-url",
          "permission": "files:read",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "key": {
                "type": "string",
                "minLength": 1
              },
              "scope": {
                "type": "string",
                "enum": [
                  "org",
                  "private",
                  "all"
                ]
              },
              "expirationMinutes": {
                "type": "number"
              },
              "downloadFilename": {
                "type": "string"
              }
            },
            "required": [
              "key"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Download Signed Url Create.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "key": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-bytes --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/download/signed-url",
              "body": {
                "key": "example"
              }
            },
            "effects": "May change state through POST /api/download/signed-url. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/download/signed-url",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "video.mark_range_incompatible",
          "title": "Video Mark Range Incompatible",
          "description": "Call POST /api/video/mark-range-incompatible.",
          "method": "POST",
          "path": "/api/video/mark-range-incompatible",
          "permission": "media:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "key": {
                "type": "string",
                "minLength": 1
              },
              "bucket": {
                "type": "string",
                "minLength": 1
              },
              "scope": {
                "type": "string",
                "enum": [
                  "org",
                  "private",
                  "all"
                ]
              }
            },
            "required": [
              "key"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Video Mark Range Incompatible.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "key": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-bytes --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/video/mark-range-incompatible",
              "body": {
                "key": "example"
              }
            },
            "effects": "May change state through POST /api/video/mark-range-incompatible. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/video/mark-range-incompatible",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "workspaces.delete",
          "title": "Delete workspace",
          "description": "Delete a non-default empty Bytes storage workspace.",
          "readOnly": false,
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "destructive": true,
          "requiresConfirmation": true,
          "agentAccess": "confirm",
          "method": "DELETE",
          "path": "/api/workspaces/{workspaceId}",
          "permission": "workspace:delete",
          "authorizationMode": "static",
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "workspaceId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "workspaceId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "documentation": {
            "example_input": {
              "workspaceId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-bytes --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "DELETE",
              "path": "/api/workspaces/example",
              "body": null
            },
            "effects": "May change state through DELETE /api/workspaces/{workspaceId}. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "DELETE /api/workspaces/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "workspaces.data.export",
          "title": "Export workspace data",
          "description": "Export a portable inventory of files and redacted share-link metadata for a Bytes workspace.",
          "readOnly": true,
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "method": "GET",
          "path": "/api/workspaces/{workspaceId}/export",
          "permission": "storage:read",
          "authorizationMode": "static",
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "workspaceId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "workspaceId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "documentation": {
            "example_input": {
              "workspaceId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-bytes --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/workspaces/example/export",
              "body": null
            },
            "effects": "Reads state through GET /api/workspaces/{workspaceId}/export without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/workspaces/*/export",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "workspaces.data.erase",
          "title": "Erase workspace data",
          "description": "Permanently erase files, semantic vectors, and share links owned by a Bytes workspace.",
          "readOnly": false,
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "destructive": true,
          "requiresConfirmation": true,
          "agentAccess": "confirm",
          "method": "DELETE",
          "path": "/api/workspaces/{workspaceId}/data",
          "permission": "workspace:delete",
          "authorizationMode": "static",
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "workspaceId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "workspaceId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "documentation": {
            "example_input": {
              "workspaceId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-bytes --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "DELETE",
              "path": "/api/workspaces/example/data",
              "body": null
            },
            "effects": "May change state through DELETE /api/workspaces/{workspaceId}/data. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "DELETE /api/workspaces/*/data",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        }
      ],
      "action_coverage": {
        "status": "ok",
        "served_routes": 41,
        "matched_actions": 30,
        "declared_unserved_actions": [],
        "coverage_excluded_actions": [],
        "uncatalogued_routes": [],
        "ignored_routes": 11,
        "configured_exclusions": 10,
        "configuration_findings": [],
        "notes": []
      },
      "runtime_contract_audit": {
        "status": "verified",
        "actions": 30,
        "contracts": 30,
        "contract_module": "topolo.action-contracts.mjs",
        "validator_sources": [
          "apps/api/src/index.ts"
        ],
        "authorization_sources": [
          "apps/api/src/index.ts"
        ],
        "findings": []
      }
    }
  ],
  "mobile_contracts": [
    {
      "source_path": "apps/TopoloBytes/topolo.mobile-experience.json",
      "contract": {
        "version": "1.0.0",
        "status": "published",
        "mode": "native_capability",
        "appId": "app_topolo_bytes",
        "localizationNamespace": "bytes",
        "permissions": [
          "files:read",
          "sharing:read"
        ],
        "offlinePolicy": "read_through_cache",
        "fallbackPath": "/files",
        "auth": {
          "audience": "topolo-bytes",
          "scopes": [
            "files:read",
            "sharing:read"
          ]
        },
        "routes": [
          {
            "path": "/files",
            "apiPath": "/api/list",
            "title": "Files",
            "titleKey": "bytes.mobile.routes.files.title",
            "template": "record.list",
            "dataSource": "bytes.files.list"
          },
          {
            "path": "/shares",
            "apiPath": "/api/shares",
            "title": "Shares",
            "titleKey": "bytes.mobile.routes.shares.title",
            "template": "record.list",
            "dataSource": "bytes.shares.list"
          }
        ]
      }
    }
  ],
  "package_manifests": [],
  "deployment_configs": [],
  "source_signals": {
    "api_routes": [
      {
        "method": "OPTIONS",
        "path": "*",
        "source_path": "apps/TopoloBytes/apps/api/src/index.ts"
      },
      {
        "method": "GET",
        "path": "/health",
        "source_path": "apps/TopoloBytes/apps/api/src/index.ts"
      },
      {
        "method": "ALL",
        "path": "/share/*",
        "source_path": "apps/TopoloBytes/apps/api/src/index.ts"
      },
      {
        "method": "GET",
        "path": "/api/shares",
        "source_path": "apps/TopoloBytes/apps/api/src/index.ts"
      },
      {
        "method": "GET",
        "path": "/api/shares/*",
        "source_path": "apps/TopoloBytes/apps/api/src/index.ts"
      },
      {
        "method": "POST",
        "path": "/api/shares/refresh-session",
        "source_path": "apps/TopoloBytes/apps/api/src/index.ts"
      },
      {
        "method": "ALL",
        "path": "/api/signed-download",
        "source_path": "apps/TopoloBytes/apps/api/src/index.ts"
      },
      {
        "method": "ALL",
        "path": "/api/signed-download/*",
        "source_path": "apps/TopoloBytes/apps/api/src/index.ts"
      },
      {
        "method": "GET",
        "path": "/api/desktop/releases/latest",
        "source_path": "apps/TopoloBytes/apps/api/src/index.ts"
      },
      {
        "method": "GET",
        "path": "/api/desktop/download",
        "source_path": "apps/TopoloBytes/apps/api/src/index.ts"
      },
      {
        "method": "GET",
        "path": "/api/desktop/update/:target/:arch/:current",
        "source_path": "apps/TopoloBytes/apps/api/src/index.ts"
      },
      {
        "method": "GET",
        "path": "/api/widget",
        "source_path": "apps/TopoloBytes/apps/api/src/index.ts"
      },
      {
        "method": "DELETE",
        "path": "/api/workspaces/:workspaceId",
        "source_path": "apps/TopoloBytes/apps/api/src/index.ts"
      },
      {
        "method": "GET",
        "path": "/api/workspaces/:workspaceId/export",
        "source_path": "apps/TopoloBytes/apps/api/src/index.ts"
      },
      {
        "method": "DELETE",
        "path": "/api/workspaces/:workspaceId/data",
        "source_path": "apps/TopoloBytes/apps/api/src/index.ts"
      },
      {
        "method": "PUT",
        "path": "/api/upload/*",
        "source_path": "apps/TopoloBytes/apps/api/src/index.ts"
      },
      {
        "method": "POST",
        "path": "/api/upload-url",
        "source_path": "apps/TopoloBytes/apps/api/src/index.ts"
      },
      {
        "method": "POST",
        "path": "/api/multipart/create",
        "source_path": "apps/TopoloBytes/apps/api/src/index.ts"
      },
      {
        "method": "POST",
        "path": "/api/multipart/sign",
        "source_path": "apps/TopoloBytes/apps/api/src/index.ts"
      },
      {
        "method": "POST",
        "path": "/api/multipart/complete",
        "source_path": "apps/TopoloBytes/apps/api/src/index.ts"
      },
      {
        "method": "POST",
        "path": "/api/multipart/abort",
        "source_path": "apps/TopoloBytes/apps/api/src/index.ts"
      },
      {
        "method": "GET",
        "path": "/api/list",
        "source_path": "apps/TopoloBytes/apps/api/src/index.ts"
      },
      {
        "method": "GET",
        "path": "/api/search",
        "source_path": "apps/TopoloBytes/apps/api/src/index.ts"
      },
      {
        "method": "ALL",
        "path": "/api/thumbnail/*",
        "source_path": "apps/TopoloBytes/apps/api/src/index.ts"
      },
      {
        "method": "DELETE",
        "path": "/api/delete",
        "source_path": "apps/TopoloBytes/apps/api/src/index.ts"
      },
      {
        "method": "POST",
        "path": "/api/rename",
        "source_path": "apps/TopoloBytes/apps/api/src/index.ts"
      },
      {
        "method": "POST",
        "path": "/api/bulk/rename",
        "source_path": "apps/TopoloBytes/apps/api/src/index.ts"
      },
      {
        "method": "POST",
        "path": "/api/bulk/organize",
        "source_path": "apps/TopoloBytes/apps/api/src/index.ts"
      },
      {
        "method": "POST",
        "path": "/api/folders/create",
        "source_path": "apps/TopoloBytes/apps/api/src/index.ts"
      },
      {
        "method": "PUT",
        "path": "/api/folder/rename",
        "source_path": "apps/TopoloBytes/apps/api/src/index.ts"
      },
      {
        "method": "DELETE",
        "path": "/api/folder/delete",
        "source_path": "apps/TopoloBytes/apps/api/src/index.ts"
      },
      {
        "method": "GET",
        "path": "/api/folder/info",
        "source_path": "apps/TopoloBytes/apps/api/src/index.ts"
      },
      {
        "method": "POST",
        "path": "/api/files/move",
        "source_path": "apps/TopoloBytes/apps/api/src/index.ts"
      },
      {
        "method": "PUT",
        "path": "/api/file/update",
        "source_path": "apps/TopoloBytes/apps/api/src/index.ts"
      },
      {
        "method": "PUT",
        "path": "/api/file-content",
        "source_path": "apps/TopoloBytes/apps/api/src/index.ts"
      },
      {
        "method": "POST",
        "path": "/api/shares/create",
        "source_path": "apps/TopoloBytes/apps/api/src/index.ts"
      },
      {
        "method": "DELETE",
        "path": "/api/shares/*",
        "source_path": "apps/TopoloBytes/apps/api/src/index.ts"
      },
      {
        "method": "ALL",
        "path": "/share-download/*",
        "source_path": "apps/TopoloBytes/apps/api/src/index.ts"
      },
      {
        "method": "ALL",
        "path": "/public-download/*",
        "source_path": "apps/TopoloBytes/apps/api/src/index.ts"
      },
      {
        "method": "ALL",
        "path": "/download/*",
        "source_path": "apps/TopoloBytes/apps/api/src/index.ts"
      },
      {
        "method": "POST",
        "path": "/api/download/signed-url",
        "source_path": "apps/TopoloBytes/apps/api/src/index.ts"
      },
      {
        "method": "POST",
        "path": "/api/video/mark-range-incompatible",
        "source_path": "apps/TopoloBytes/apps/api/src/index.ts"
      }
    ],
    "ui_routes": [],
    "test_cases": [],
    "database_tables": []
  },
  "documentation": {
    "declared_paths": [
      "internal/apps/bytes",
      "applications/bytes"
    ],
    "present_paths": [
      "internal/apps/bytes",
      "applications/bytes"
    ],
    "missing_paths": [],
    "human_reference": "/systems/topolo-bytes",
    "machine_reference": "/machine/systems/topolo-bytes.json",
    "action_examples": 30,
    "action_schemas": 30
  },
  "source_findings": []
}