Spaces:
Running
Running
Upload 629 files
Browse filesThis view is limited to 50 files because it contains too many changes. See raw diff
- README.md +0 -15
- api/__init__.py +0 -13
- api/__pycache__/__init__.cpython-310.pyc +0 -0
- api/__pycache__/audio.cpython-310.pyc +0 -0
- api/__pycache__/health.cpython-310.pyc +0 -0
- api/__pycache__/image.cpython-310.pyc +0 -0
- api/__pycache__/media.cpython-310.pyc +0 -0
- api/__pycache__/probe.cpython-310.pyc +0 -0
- api/__pycache__/video.cpython-310.pyc +0 -0
- api/__pycache__/whisper.cpython-310.pyc +0 -0
- api/__pycache__/ytdlp.cpython-310.pyc +0 -0
- app/__pycache__/__init__.cpython-310.pyc +0 -0
- app/__pycache__/container.cpython-310.pyc +0 -0
- app/ai/__pycache__/__init__.cpython-310.pyc +0 -0
- app/ai/__pycache__/api.cpython-310.pyc +0 -0
- app/ai/__pycache__/schemas.cpython-310.pyc +0 -0
- app/ai/__pycache__/service.cpython-310.pyc +0 -0
- app/analytics/__pycache__/__init__.cpython-310.pyc +0 -0
- app/analytics/__pycache__/api.cpython-310.pyc +0 -0
- app/analytics/__pycache__/errors.cpython-310.pyc +0 -0
- app/analytics/__pycache__/models.cpython-310.pyc +0 -0
- app/analytics/__pycache__/repository.cpython-310.pyc +0 -0
- app/analytics/__pycache__/schemas.cpython-310.pyc +0 -0
- app/analytics/__pycache__/service.cpython-310.pyc +0 -0
- app/analytics/workers/__pycache__/__init__.cpython-310.pyc +0 -0
- app/analytics/workers/__pycache__/sync.cpython-310.pyc +0 -0
- app/api/__pycache__/__init__.cpython-310.pyc +0 -0
- app/api/__pycache__/api_keys.cpython-310.pyc +0 -0
- app/api/__pycache__/audio.cpython-310.pyc +0 -0
- app/api/__pycache__/generation.cpython-310.pyc +0 -0
- app/api/__pycache__/health.cpython-310.pyc +0 -0
- app/api/__pycache__/image.cpython-310.pyc +0 -0
- app/api/__pycache__/media.cpython-310.pyc +0 -0
- app/api/__pycache__/probe.cpython-310.pyc +0 -0
- app/api/__pycache__/social.cpython-310.pyc +0 -0
- app/api/__pycache__/templates.cpython-310.pyc +0 -0
- app/api/__pycache__/video.cpython-310.pyc +0 -0
- app/api/__pycache__/whisper.cpython-310.pyc +0 -0
- app/api/__pycache__/ytdlp.cpython-310.pyc +0 -0
- app/api/api_keys.py +1 -0
- app/brand/__pycache__/__init__.cpython-310.pyc +0 -0
- app/brand/__pycache__/api.cpython-310.pyc +0 -0
- app/brand/__pycache__/capabilities.cpython-310.pyc +0 -0
- app/brand/__pycache__/errors.cpython-310.pyc +0 -0
- app/brand/__pycache__/models.cpython-310.pyc +0 -0
- app/brand/__pycache__/repository.cpython-310.pyc +0 -0
- app/brand/__pycache__/schemas.cpython-310.pyc +0 -0
- app/brand/__pycache__/service.cpython-310.pyc +0 -0
- app/brand/__pycache__/validation.cpython-310.pyc +0 -0
- app/brand/errors.py +35 -0
README.md
CHANGED
|
@@ -84,21 +84,6 @@ media-api/
|
|
| 84 |
|
| 85 |
The top-level `api/`, `services/`, `operations/`, `workers/`, `core/`, and `models/` packages mirror the canonical `app/` modules as import-compatible entry points for integrations that use the requested layout. Runtime composition uses the single implementation under `app/`, so business logic is not duplicated.
|
| 86 |
|
| 87 |
-
## Current implementation surface
|
| 88 |
-
|
| 89 |
-
The current source tree exposes the following product areas. Missing docs or backend modules are recorded as omitted from this working tree, not as unimplemented capabilities elsewhere.
|
| 90 |
-
|
| 91 |
-
- Brand Kit: `/v1/brand`, frontend brand-kit module, Python/TypeScript SDK resources, MCP brand tools, n8n MediaBrandKit node.
|
| 92 |
-
- Projects and collaboration: `/v1/projects`, editor persistence/render jobs, teams/members/invitations, approvals/review comments, notification preferences, Python/TypeScript SDK project resources, MCP collaboration tools, n8n MediaCollaboration node.
|
| 93 |
-
- Publishing and social automation: `/v1/social`, unified publishing, scheduling, retries, reconciliation, analytics sync, Python/TypeScript SDK social resources, MCP social tools, n8n MediaSocial node.
|
| 94 |
-
- Analytics: `/v1/analytics`, overview/timeseries/platform/post analytics, sync runs/cancellation, frontend analytics module, MCP analytics tools, SDK analytics resource. See [`docs/analytics.md`](docs/analytics.md) for implementation and runtime status.
|
| 95 |
-
- AI Studio / Copilot: `/v1/ai`, `/v1/copilot`, durable jobs, deterministic planner, frontend AI/Copilot modules, SDK resources, MCP tools. See [`docs/ai-copilot.md`](docs/ai-copilot.md) for implementation and runtime status.
|
| 96 |
-
- Templates: `/v1/templates`, `/v1/templates/catalog`, template execution, marketplace API, frontend template/marketplace modules, SDK/n8n/MCP coverage. See [`docs/template-marketplace.md`](docs/template-marketplace.md) for implementation and runtime status.
|
| 97 |
-
- Content Studio: editor state, optimistic revisioning, autosave, render jobs, timeline UX, SDK/n8n integration points. See [`docs/content-studio-foundation.md`](docs/content-studio-foundation.md) and [`docs/content-studio-persistence-rendering.md`](docs/content-studio-persistence-rendering.md) for current implementation surface.
|
| 98 |
-
- Brand Kit: `/v1/brand`, frontend brand-kit module, Python/TypeScript SDK resources, MCP brand tools, and an n8n `MediaBrandKit` package entry. See [`docs/brand-kits.md`](docs/brand-kits.md) for implementation and runtime status.
|
| 99 |
-
|
| 100 |
-
Provider certification, PostgreSQL/RLS runtime, Docker, and Hugging Face runtime verification remain deferred until the planned product phases are complete.
|
| 101 |
-
|
| 102 |
## Generation foundation
|
| 103 |
|
| 104 |
MediaRouter includes a tenant-scoped generation request/job foundation at
|
|
|
|
| 84 |
|
| 85 |
The top-level `api/`, `services/`, `operations/`, `workers/`, `core/`, and `models/` packages mirror the canonical `app/` modules as import-compatible entry points for integrations that use the requested layout. Runtime composition uses the single implementation under `app/`, so business logic is not duplicated.
|
| 86 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 87 |
## Generation foundation
|
| 88 |
|
| 89 |
MediaRouter includes a tenant-scoped generation request/job foundation at
|
api/__init__.py
CHANGED
|
@@ -1,14 +1 @@
|
|
| 1 |
"""Compatibility exports for the canonical :mod:`app.api` package."""
|
| 2 |
-
|
| 3 |
-
from app.api.api_keys import * # noqa
|
| 4 |
-
from app.api.audio import * # noqa
|
| 5 |
-
from app.api.generation import * # noqa
|
| 6 |
-
from app.api.health import * # noqa
|
| 7 |
-
from app.api.image import * # noqa
|
| 8 |
-
from app.api.media import * # noqa
|
| 9 |
-
from app.api.probe import * # noqa
|
| 10 |
-
from app.api.social import * # noqa
|
| 11 |
-
from app.api.templates import * # noqa
|
| 12 |
-
from app.api.video import * # noqa
|
| 13 |
-
from app.api.whisper import * # noqa
|
| 14 |
-
from app.api.ytdlp import * # noqa
|
|
|
|
| 1 |
"""Compatibility exports for the canonical :mod:`app.api` package."""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
api/__pycache__/__init__.cpython-310.pyc
ADDED
|
Binary file (183 Bytes). View file
|
|
|
api/__pycache__/audio.cpython-310.pyc
ADDED
|
Binary file (135 Bytes). View file
|
|
|
api/__pycache__/health.cpython-310.pyc
ADDED
|
Binary file (137 Bytes). View file
|
|
|
api/__pycache__/image.cpython-310.pyc
ADDED
|
Binary file (135 Bytes). View file
|
|
|
api/__pycache__/media.cpython-310.pyc
ADDED
|
Binary file (135 Bytes). View file
|
|
|
api/__pycache__/probe.cpython-310.pyc
ADDED
|
Binary file (135 Bytes). View file
|
|
|
api/__pycache__/video.cpython-310.pyc
ADDED
|
Binary file (135 Bytes). View file
|
|
|
api/__pycache__/whisper.cpython-310.pyc
ADDED
|
Binary file (139 Bytes). View file
|
|
|
api/__pycache__/ytdlp.cpython-310.pyc
ADDED
|
Binary file (135 Bytes). View file
|
|
|
app/__pycache__/__init__.cpython-310.pyc
ADDED
|
Binary file (187 Bytes). View file
|
|
|
app/__pycache__/container.cpython-310.pyc
ADDED
|
Binary file (10.9 kB). View file
|
|
|
app/ai/__pycache__/__init__.cpython-310.pyc
ADDED
|
Binary file (171 Bytes). View file
|
|
|
app/ai/__pycache__/api.cpython-310.pyc
ADDED
|
Binary file (2.67 kB). View file
|
|
|
app/ai/__pycache__/schemas.cpython-310.pyc
ADDED
|
Binary file (6.33 kB). View file
|
|
|
app/ai/__pycache__/service.cpython-310.pyc
ADDED
|
Binary file (11.5 kB). View file
|
|
|
app/analytics/__pycache__/__init__.cpython-310.pyc
ADDED
|
Binary file (201 Bytes). View file
|
|
|
app/analytics/__pycache__/api.cpython-310.pyc
ADDED
|
Binary file (4.87 kB). View file
|
|
|
app/analytics/__pycache__/errors.cpython-310.pyc
ADDED
|
Binary file (778 Bytes). View file
|
|
|
app/analytics/__pycache__/models.cpython-310.pyc
ADDED
|
Binary file (5.91 kB). View file
|
|
|
app/analytics/__pycache__/repository.cpython-310.pyc
ADDED
|
Binary file (9.73 kB). View file
|
|
|
app/analytics/__pycache__/schemas.cpython-310.pyc
ADDED
|
Binary file (5.14 kB). View file
|
|
|
app/analytics/__pycache__/service.cpython-310.pyc
ADDED
|
Binary file (12 kB). View file
|
|
|
app/analytics/workers/__pycache__/__init__.cpython-310.pyc
ADDED
|
Binary file (180 Bytes). View file
|
|
|
app/analytics/workers/__pycache__/sync.cpython-310.pyc
ADDED
|
Binary file (3.83 kB). View file
|
|
|
app/api/__pycache__/__init__.cpython-310.pyc
ADDED
|
Binary file (141 Bytes). View file
|
|
|
app/api/__pycache__/api_keys.cpython-310.pyc
ADDED
|
Binary file (6.1 kB). View file
|
|
|
app/api/__pycache__/audio.cpython-310.pyc
ADDED
|
Binary file (1.85 kB). View file
|
|
|
app/api/__pycache__/generation.cpython-310.pyc
ADDED
|
Binary file (3.69 kB). View file
|
|
|
app/api/__pycache__/health.cpython-310.pyc
ADDED
|
Binary file (1.14 kB). View file
|
|
|
app/api/__pycache__/image.cpython-310.pyc
ADDED
|
Binary file (1.68 kB). View file
|
|
|
app/api/__pycache__/media.cpython-310.pyc
ADDED
|
Binary file (2.47 kB). View file
|
|
|
app/api/__pycache__/probe.cpython-310.pyc
ADDED
|
Binary file (694 Bytes). View file
|
|
|
app/api/__pycache__/social.cpython-310.pyc
ADDED
|
Binary file (14.9 kB). View file
|
|
|
app/api/__pycache__/templates.cpython-310.pyc
ADDED
|
Binary file (2.4 kB). View file
|
|
|
app/api/__pycache__/video.cpython-310.pyc
ADDED
|
Binary file (3.29 kB). View file
|
|
|
app/api/__pycache__/whisper.cpython-310.pyc
ADDED
|
Binary file (1.3 kB). View file
|
|
|
app/api/__pycache__/ytdlp.cpython-310.pyc
ADDED
|
Binary file (731 Bytes). View file
|
|
|
app/api/api_keys.py
CHANGED
|
@@ -40,6 +40,7 @@ async def current_auth_context(request: Request) -> AuthContextView:
|
|
| 40 |
expires_at=context.expires_at,
|
| 41 |
workspace_id=context.workspace_id,
|
| 42 |
user_id=context.user_id,
|
|
|
|
| 43 |
)
|
| 44 |
|
| 45 |
|
|
|
|
| 40 |
expires_at=context.expires_at,
|
| 41 |
workspace_id=context.workspace_id,
|
| 42 |
user_id=context.user_id,
|
| 43 |
+
membership_role=context.membership_role,
|
| 44 |
)
|
| 45 |
|
| 46 |
|
app/brand/__pycache__/__init__.cpython-310.pyc
ADDED
|
Binary file (175 Bytes). View file
|
|
|
app/brand/__pycache__/api.cpython-310.pyc
ADDED
|
Binary file (2.93 kB). View file
|
|
|
app/brand/__pycache__/capabilities.cpython-310.pyc
ADDED
|
Binary file (619 Bytes). View file
|
|
|
app/brand/__pycache__/errors.cpython-310.pyc
ADDED
|
Binary file (1.63 kB). View file
|
|
|
app/brand/__pycache__/models.cpython-310.pyc
ADDED
|
Binary file (6.23 kB). View file
|
|
|
app/brand/__pycache__/repository.cpython-310.pyc
ADDED
|
Binary file (13.8 kB). View file
|
|
|
app/brand/__pycache__/schemas.cpython-310.pyc
ADDED
|
Binary file (5.67 kB). View file
|
|
|
app/brand/__pycache__/service.cpython-310.pyc
ADDED
|
Binary file (14.4 kB). View file
|
|
|
app/brand/__pycache__/validation.cpython-310.pyc
ADDED
|
Binary file (1.28 kB). View file
|
|
|
app/brand/errors.py
CHANGED
|
@@ -7,3 +7,38 @@ class BrandKitNotFoundError(MediaAPIError):
|
|
| 7 |
class BrandKitValidationError(MediaAPIError):
|
| 8 |
code = "INVALID_BRAND_KIT"
|
| 9 |
status_code = 422
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 7 |
class BrandKitValidationError(MediaAPIError):
|
| 8 |
code = "INVALID_BRAND_KIT"
|
| 9 |
status_code = 422
|
| 10 |
+
|
| 11 |
+
|
| 12 |
+
class BrandValidationError(MediaAPIError):
|
| 13 |
+
code = "INVALID_BRAND"
|
| 14 |
+
status_code = 422
|
| 15 |
+
|
| 16 |
+
|
| 17 |
+
class BrandAssetInvalidError(MediaAPIError):
|
| 18 |
+
code = "INVALID_BRAND_ASSET"
|
| 19 |
+
status_code = 422
|
| 20 |
+
|
| 21 |
+
|
| 22 |
+
class BrandGovernanceError(MediaAPIError):
|
| 23 |
+
code = "BRAND_GOVERNANCE_ERROR"
|
| 24 |
+
status_code = 403
|
| 25 |
+
|
| 26 |
+
|
| 27 |
+
class BrandConflictError(MediaAPIError):
|
| 28 |
+
code = "BRAND_CONFLICT"
|
| 29 |
+
status_code = 409
|
| 30 |
+
|
| 31 |
+
|
| 32 |
+
class BrandImmutableError(MediaAPIError):
|
| 33 |
+
code = "BRAND_IMMUTABLE"
|
| 34 |
+
status_code = 409
|
| 35 |
+
|
| 36 |
+
|
| 37 |
+
class BrandNotFoundError(MediaAPIError):
|
| 38 |
+
code = "BRAND_NOT_FOUND"
|
| 39 |
+
status_code = 404
|
| 40 |
+
|
| 41 |
+
|
| 42 |
+
class BrandVersionNotFoundError(MediaAPIError):
|
| 43 |
+
code = "BRAND_VERSION_NOT_FOUND"
|
| 44 |
+
status_code = 404
|