github Python analyzed 2b59097

SubSchoolLTD/agentic-video-studio

github

Framewise — your always-on video team. Website to researched ideas, AI-directed videos and connected-channel publishing. Google Cloud + Gemini + Veo + Parallel.

maintainer
SubSchoolLTD
licence
Apache-2.0
first seen
2026-09-04
last seen
2026-09-06
releases · 30d
0
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 34 tools
transport streamable-http · http counts 34 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • analytics_get_summary
  • automation_activate
  • automation_configure
  • automation_get
  • calendar_get
  • generation_cancel
  • generation_get_status
  • generation_list
  • generation_retry
  • generation_start
  • idea_create
  • idea_list
  • project_get
  • project_list
  • project_update_brief
  • project_update_context
  • publication_commit
  • publication_prepare
  • research_feedback_get
  • research_get_status
  • research_run
  • source_add_text
  • source_add_url
  • source_item_list
  • source_list
  • strategy_activate
  • strategy_get_active
  • strategy_get_proposals
  • topic_candidate_list
  • topic_candidate_reject
  • topic_candidate_select
  • video_approve
  • video_get
  • video_list
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 2b59097 · analyzer v33 · 1w ago

danger signals1

code evidence vHEAD · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 90

filesystem 16

  • fs SubSchoolLTD-agentic-video-studio-2b59097/apps/api/app/config.py :4 from pathlib import Path
  • fs SubSchoolLTD-agentic-video-studio-2b59097/apps/api/app/providers.py :12 from pathlib import Path
  • fs SubSchoolLTD-agentic-video-studio-2b59097/apps/api/app/publishing.py :5 import shutil
  • fs SubSchoolLTD-agentic-video-studio-2b59097/apps/api/app/reassembly.py :7 from pathlib import Path
  • fs SubSchoolLTD-agentic-video-studio-2b59097/apps/api/app/renderer.py :7 import shutil
  • fs SubSchoolLTD-agentic-video-studio-2b59097/apps/api/app/routes.py :14 from pathlib import Path
  • fs SubSchoolLTD-agentic-video-studio-2b59097/apps/api/app/social_browser.py :7 from pathlib import Path
  • fs SubSchoolLTD-agentic-video-studio-2b59097/apps/api/app/storage.py :7 from pathlib import Path, PurePosixPath
  • fs SubSchoolLTD-agentic-video-studio-2b59097/apps/api/app/workflow.py :9 from pathlib import Path
  • fs (weak) SubSchoolLTD-agentic-video-studio-2b59097/tests/conftest.py :4 import shutil
  • fs (weak) SubSchoolLTD-agentic-video-studio-2b59097/tests/test_deployment_config.py :3 from pathlib import Path
  • fs (weak) SubSchoolLTD-agentic-video-studio-2b59097/tests/test_observability.py :5 from pathlib import Path
show 4 more
  • fs (weak) SubSchoolLTD-agentic-video-studio-2b59097/tests/test_pipeline_e2e.py :7 from pathlib import Path
  • fs (weak) SubSchoolLTD-agentic-video-studio-2b59097/tests/test_renderer_composition.py :5 from pathlib import Path
  • fs (weak) SubSchoolLTD-agentic-video-studio-2b59097/tests/test_scene_versions.py :4 from pathlib import Path
  • fs (weak) SubSchoolLTD-agentic-video-studio-2b59097/tests/test_social_browser.py :6 from pathlib import Path

shell / exec 4

  • shell SubSchoolLTD-agentic-video-studio-2b59097/apps/api/app/publishing.py :6 import subprocess
  • shell SubSchoolLTD-agentic-video-studio-2b59097/apps/api/app/renderer.py :8 import subprocess
  • shell (weak) SubSchoolLTD-agentic-video-studio-2b59097/tests/test_pipeline_e2e.py :5 import subprocess
  • shell (weak) SubSchoolLTD-agentic-video-studio-2b59097/tests/test_renderer_composition.py :4 import subprocess

network 12

  • net SubSchoolLTD-agentic-video-studio-2b59097/apps/api/app/billing_routes.py :7 from urllib.parse import parse_qsl, urlencode, urlsplit, urlunsplit
  • net SubSchoolLTD-agentic-video-studio-2b59097/apps/api/app/email_service.py :9 import httpx
  • net SubSchoolLTD-agentic-video-studio-2b59097/apps/api/app/events.py :12 import httpx
  • net SubSchoolLTD-agentic-video-studio-2b59097/apps/api/app/ingestion.py :7 from urllib.parse import urljoin
  • net SubSchoolLTD-agentic-video-studio-2b59097/apps/api/app/paypal.py :7 import httpx
  • net SubSchoolLTD-agentic-video-studio-2b59097/apps/api/app/providers.py :15 import httpx
  • net SubSchoolLTD-agentic-video-studio-2b59097/apps/api/app/routes.py :18 import httpx
  • net SubSchoolLTD-agentic-video-studio-2b59097/apps/api/app/security.py :4 import socket
  • net SubSchoolLTD-agentic-video-studio-2b59097/apps/api/app/storage.py :9 from urllib.parse import quote
  • net SubSchoolLTD-agentic-video-studio-2b59097/apps/mcp/server.py :8 import httpx
  • net (weak) SubSchoolLTD-agentic-video-studio-2b59097/tests/test_ingestion.py :8 from httpx import Response
  • net (weak) SubSchoolLTD-agentic-video-studio-2b59097/tests/test_publishing.py :5 from urllib.parse import parse_qs, urlparse

secrets 2

  • secrets SubSchoolLTD-agentic-video-studio-2b59097/apps/mcp/server.py :36 TOKEN = os.getenv("APP_API_TOKEN", "").strip()
  • secrets (weak) SubSchoolLTD-agentic-video-studio-2b59097/tests/conftest.py :16 os.environ["APP_DEMO_TOKEN"] = "demo-token"

database 30

  • db SubSchoolLTD-agentic-video-studio-2b59097/apps/api/app/admin_routes.py :9 from sqlalchemy import func, or_, select
  • db SubSchoolLTD-agentic-video-studio-2b59097/apps/api/app/auth.py :11 from sqlalchemy import select, update
  • db SubSchoolLTD-agentic-video-studio-2b59097/apps/api/app/auth_routes.py :12 from sqlalchemy import select
  • db SubSchoolLTD-agentic-video-studio-2b59097/apps/api/app/billing.py :12 from sqlalchemy import func, select
  • db SubSchoolLTD-agentic-video-studio-2b59097/apps/api/app/billing_routes.py :11 from sqlalchemy import select
  • db SubSchoolLTD-agentic-video-studio-2b59097/apps/api/app/database.py :5 from sqlalchemy import create_engine
  • db SubSchoolLTD-agentic-video-studio-2b59097/apps/api/app/email_service.py :11 from sqlalchemy import func, select
  • db SubSchoolLTD-agentic-video-studio-2b59097/apps/api/app/events.py :13 from sqlalchemy import select
  • db SubSchoolLTD-agentic-video-studio-2b59097/apps/api/app/idea_lifecycle.py :7 from sqlalchemy import select
  • db SubSchoolLTD-agentic-video-studio-2b59097/apps/api/app/models.py :6 from sqlalchemy import (
  • db SubSchoolLTD-agentic-video-studio-2b59097/apps/api/app/reassembly.py :10 from sqlalchemy import select
  • db SubSchoolLTD-agentic-video-studio-2b59097/apps/api/app/repository.py :10 from sqlalchemy import Select, select
show 18 more
  • db SubSchoolLTD-agentic-video-studio-2b59097/apps/api/app/routes.py :34 from sqlalchemy import or_, select, update
  • db SubSchoolLTD-agentic-video-studio-2b59097/apps/api/app/security.py :11 from sqlalchemy import select
  • db SubSchoolLTD-agentic-video-studio-2b59097/apps/api/app/seed.py :6 from sqlalchemy import select
  • db SubSchoolLTD-agentic-video-studio-2b59097/apps/api/app/workflow.py :12 from sqlalchemy import select
  • db SubSchoolLTD-agentic-video-studio-2b59097/migrations/env.py :6 from sqlalchemy import engine_from_config, pool
  • db SubSchoolLTD-agentic-video-studio-2b59097/migrations/versions/0001_initial_domain.py :7 import sqlalchemy as sa
  • db SubSchoolLTD-agentic-video-studio-2b59097/migrations/versions/0002_accounts_billing_admin.py :7 import sqlalchemy as sa
  • db SubSchoolLTD-agentic-video-studio-2b59097/migrations/versions/0003_session_organization.py :7 import sqlalchemy as sa
  • db SubSchoolLTD-agentic-video-studio-2b59097/migrations/versions/0004_price_rule_provenance.py :7 import sqlalchemy as sa
  • db SubSchoolLTD-agentic-video-studio-2b59097/migrations/versions/0005_dollar_wallet_paypal.py :7 import sqlalchemy as sa
  • db SubSchoolLTD-agentic-video-studio-2b59097/migrations/versions/0007_google_auth_identity.py :7 import sqlalchemy as sa
  • db SubSchoolLTD-agentic-video-studio-2b59097/migrations/versions/0008_idea_lifecycle.py :7 import sqlalchemy as sa
  • db (weak) SubSchoolLTD-agentic-video-studio-2b59097/tests/test_auth_multitenancy.py :8 from sqlalchemy import select
  • db (weak) SubSchoolLTD-agentic-video-studio-2b59097/tests/test_billing.py :7 from sqlalchemy import select
  • db (weak) SubSchoolLTD-agentic-video-studio-2b59097/tests/test_pipeline_e2e.py :11 from sqlalchemy import func, select
  • db (weak) SubSchoolLTD-agentic-video-studio-2b59097/tests/test_production_seed.py :3 from sqlalchemy import create_engine, select
  • db (weak) SubSchoolLTD-agentic-video-studio-2b59097/tests/test_scene_editing.py :4 from sqlalchemy import select
  • db (weak) SubSchoolLTD-agentic-video-studio-2b59097/tests/test_scene_versions.py :7 from sqlalchemy import func, select

tool registrations 34

  • project_list SubSchoolLTD-agentic-video-studio-2b59097/apps/mcp/server.py :102
  • project_get SubSchoolLTD-agentic-video-studio-2b59097/apps/mcp/server.py :108
  • project_update_brief SubSchoolLTD-agentic-video-studio-2b59097/apps/mcp/server.py :114
  • project_update_context SubSchoolLTD-agentic-video-studio-2b59097/apps/mcp/server.py :122
  • automation_get SubSchoolLTD-agentic-video-studio-2b59097/apps/mcp/server.py :153
  • automation_configure SubSchoolLTD-agentic-video-studio-2b59097/apps/mcp/server.py :159
  • automation_activate SubSchoolLTD-agentic-video-studio-2b59097/apps/mcp/server.py :204
  • source_add_text SubSchoolLTD-agentic-video-studio-2b59097/apps/mcp/server.py :212
  • source_add_url SubSchoolLTD-agentic-video-studio-2b59097/apps/mcp/server.py :238
  • source_list SubSchoolLTD-agentic-video-studio-2b59097/apps/mcp/server.py :266
  • source_item_list SubSchoolLTD-agentic-video-studio-2b59097/apps/mcp/server.py :272
  • research_run SubSchoolLTD-agentic-video-studio-2b59097/apps/mcp/server.py :278
show 22 more
  • research_get_status SubSchoolLTD-agentic-video-studio-2b59097/apps/mcp/server.py :286
  • research_feedback_get SubSchoolLTD-agentic-video-studio-2b59097/apps/mcp/server.py :292
  • topic_candidate_list SubSchoolLTD-agentic-video-studio-2b59097/apps/mcp/server.py :298
  • topic_candidate_select SubSchoolLTD-agentic-video-studio-2b59097/apps/mcp/server.py :304
  • topic_candidate_reject SubSchoolLTD-agentic-video-studio-2b59097/apps/mcp/server.py :312
  • idea_create SubSchoolLTD-agentic-video-studio-2b59097/apps/mcp/server.py :324
  • idea_list SubSchoolLTD-agentic-video-studio-2b59097/apps/mcp/server.py :340
  • generation_start SubSchoolLTD-agentic-video-studio-2b59097/apps/mcp/server.py :346
  • generation_get_status SubSchoolLTD-agentic-video-studio-2b59097/apps/mcp/server.py :378
  • generation_list SubSchoolLTD-agentic-video-studio-2b59097/apps/mcp/server.py :384
  • generation_retry SubSchoolLTD-agentic-video-studio-2b59097/apps/mcp/server.py :390
  • generation_cancel SubSchoolLTD-agentic-video-studio-2b59097/apps/mcp/server.py :398
  • video_get SubSchoolLTD-agentic-video-studio-2b59097/apps/mcp/server.py :406
  • video_list SubSchoolLTD-agentic-video-studio-2b59097/apps/mcp/server.py :412
  • video_approve SubSchoolLTD-agentic-video-studio-2b59097/apps/mcp/server.py :418
  • publication_prepare SubSchoolLTD-agentic-video-studio-2b59097/apps/mcp/server.py :426
  • publication_commit SubSchoolLTD-agentic-video-studio-2b59097/apps/mcp/server.py :448
  • analytics_get_summary SubSchoolLTD-agentic-video-studio-2b59097/apps/mcp/server.py :458
  • strategy_get_active SubSchoolLTD-agentic-video-studio-2b59097/apps/mcp/server.py :464
  • strategy_get_proposals SubSchoolLTD-agentic-video-studio-2b59097/apps/mcp/server.py :470
  • strategy_activate SubSchoolLTD-agentic-video-studio-2b59097/apps/mcp/server.py :476
  • calendar_get SubSchoolLTD-agentic-video-studio-2b59097/apps/mcp/server.py :484

declared dependencies 30

  • mcp@>=1.13.0,<2
  • alembic@>=1.16.5
  • argon2-cffi@>=25.1.0
  • cryptography@>=46.0.0,<51
  • email-validator@>=2.2.0
  • fastapi@>=0.116.1
  • feedparser@>=6.0.11
  • google-adk@>=1.12.0
  • google-api-python-client@>=2.179.0
  • google-auth-oauthlib@>=1.2.2
  • google-cloud-storage@>=3.3.0
  • google-cloud-secret-manager@>=2.24.0
show 18 more
  • google-cloud-pubsub@>=2.31.1
  • google-cloud-texttospeech@>=2.27.0
  • google-genai@>=1.29.0
  • httpx@>=0.28.1
  • opentelemetry-api@>=1.36.0
  • opentelemetry-sdk@>=1.36.0
  • playwright@==1.62.0
  • pydantic-settings@>=2.10.1
  • PyJWT@>=2.10.1
  • psycopg@>=3.2.9
  • python-multipart@>=0.0.20
  • sqlalchemy@>=2.0.43
  • uvicorn@>=0.35.0
  • pytest@>=8.4.1
  • pytest-asyncio@>=1.1.0
  • pytest-cov@>=6.2.1
  • respx@>=0.22.0
  • ruff@>=0.12.8