refactor(capabilities): group framework into core/, keep verbs top-level

This commit is contained in:
CREDO23 2026-07-02 19:54:20 +02:00
parent 87df0bb629
commit 6bd0d640e6
19 changed files with 60 additions and 32 deletions

View file

@ -7,7 +7,7 @@ from typing import Any
from langchain_core.tools import BaseTool
from app.agents.chat.multi_agent_chat.shared.permissions import Ruleset
from app.capabilities.access.agent import build_capability_tools
from app.capabilities.core.access.agent import build_capability_tools
from app.capabilities.web.discover.definition import WEB_DISCOVER
from app.capabilities.web.scrape.definition import WEB_SCRAPE

View file

@ -0,0 +1,30 @@
"""Capability framework kernel: registry contracts, store, billing, and access doors."""
from app.capabilities.core.billing import charge_capability, gate_capability
from app.capabilities.core.store import (
all_capabilities,
get_capability,
register_capability,
)
from app.capabilities.core.types import (
BillableInput,
BillableOutput,
BillingUnit,
Capability,
CapabilityContext,
Executor,
)
__all__ = [
"BillableInput",
"BillableOutput",
"BillingUnit",
"Capability",
"CapabilityContext",
"Executor",
"all_capabilities",
"charge_capability",
"gate_capability",
"get_capability",
"register_capability",
]

View file

@ -10,9 +10,9 @@ from __future__ import annotations
from langchain_core.tools import BaseTool, StructuredTool
from app.capabilities.billing import charge_capability, gate_capability
from app.capabilities.store import all_capabilities
from app.capabilities.types import Capability, CapabilityContext
from app.capabilities.core.billing import charge_capability, gate_capability
from app.capabilities.core.store import all_capabilities
from app.capabilities.core.types import Capability, CapabilityContext
from app.db import async_session_maker
from app.services.web_crawl_credit_service import InsufficientCreditsError

View file

@ -8,10 +8,10 @@ from fastapi import APIRouter, Depends, HTTPException, status
from sqlalchemy.ext.asyncio import AsyncSession
from app.auth.context import AuthContext
from app.capabilities.access.rate_limit import enforce_capability_rate_limit
from app.capabilities.billing import charge_capability, gate_capability
from app.capabilities.store import all_capabilities
from app.capabilities.types import Capability, CapabilityContext
from app.capabilities.core.access.rate_limit import enforce_capability_rate_limit
from app.capabilities.core.billing import charge_capability, gate_capability
from app.capabilities.core.store import all_capabilities
from app.capabilities.core.types import Capability, CapabilityContext
from app.db import get_async_session
from app.services.web_crawl_credit_service import InsufficientCreditsError
from app.users import get_auth_context

View file

@ -6,7 +6,7 @@ from typing import TYPE_CHECKING
from sqlalchemy import select
from app.capabilities.types import (
from app.capabilities.core.types import (
BillableInput,
BillableOutput,
BillingUnit,

View file

@ -2,7 +2,7 @@
from __future__ import annotations
from app.capabilities.types import Capability
from app.capabilities.core.types import Capability
_REGISTRY: dict[str, Capability] = {}

View file

@ -2,8 +2,7 @@
from __future__ import annotations
from app.capabilities.store import register_capability
from app.capabilities.types import Capability
from app.capabilities.core import Capability, register_capability
from app.capabilities.web.discover.executor import build_discover_executor
from app.capabilities.web.discover.schemas import DiscoverInput, DiscoverOutput

View file

@ -4,7 +4,7 @@ from __future__ import annotations
from collections.abc import Sequence
from app.capabilities.types import Executor
from app.capabilities.core import Executor
from app.capabilities.web.discover.providers.base import DiscoverProvider
from app.capabilities.web.discover.schemas import DiscoverInput, DiscoverOutput

View file

@ -2,8 +2,7 @@
from __future__ import annotations
from app.capabilities.store import register_capability
from app.capabilities.types import BillingUnit, Capability
from app.capabilities.core import BillingUnit, Capability, register_capability
from app.capabilities.web.scrape.executor import build_scrape_executor
from app.capabilities.web.scrape.schemas import ScrapeInput, ScrapeOutput

View file

@ -2,7 +2,7 @@
from __future__ import annotations
from app.capabilities.types import Executor
from app.capabilities.core import Executor
from app.capabilities.web.scrape.schemas import ScrapeInput, ScrapeOutput, ScrapeRow
from app.proprietary.web_crawler import (
CrawlOutcome,

View file

@ -2,7 +2,7 @@ from fastapi import APIRouter, Depends
import app.capabilities.web # noqa: F401 (registers web.* verbs before the door builds)
from app.automations.api import router as automations_router
from app.capabilities.access.rest import build_capabilities_router
from app.capabilities.core.access.rest import build_capabilities_router
from app.file_storage.api import router as file_storage_router
from app.gateway import require_gateway_enabled
from app.notifications.api import router as notifications_router