• Admin's avatar
    feat: platform generalization — Company Blueprint system (Paperclip OS) · 406a39cf
    Admin authored
    Transforms Canifa-specific codebase into a generic AI Company platform
    that can instantiate any business type from a YAML Company Blueprint.
    
    Core additions:
    - backend/schemas/blueprint.py: CompanyBlueprint, BlueprintRole,
      BlueprintPipelineNode, BlueprintSummary Pydantic models with
      reports_to cross-validation via @model_validator(mode='after')
    - backend/services/blueprint_service.py: load/list/validate blueprints,
      deploy_company_from_blueprint() with 2-pass agent seeding for FK safety
    - backend/blueprints/: 4 YAML blueprints (fashion-retail, software-studio,
      ecommerce-brand, marketing-agency) with roles, pipeline DAGs, nocobase_collections
    - backend/tests/test_blueprint_e2e.py: 5 E2E tests — all pass
    
    API changes:
    - GET /companies/blueprints → List[BlueprintSummary] (with role_count)
    - GET /companies/blueprints/{name} → full blueprint detail
    - POST /companies/from-blueprint → deploy company from blueprint
    - POST /pipelines/run accepts blueprint_id to drive orchestrator DAG
    
    Orchestrator:
    - ProjectOrchestrator now accepts pipeline_spec: list[dict] | None
    - topological_sort_stages() (Kahn's BFS) derives parallel stages from blueprint DAG
    - Falls back to PIPELINE_STAGES if no spec provided
    
    De-branded:
    - Removed all "Canifa" strings from models/services/api/tasks source files
    - run_logs.py demo data → generic "Demo Brand/Server/Landing Page"
    - agents.py demo HTML → "Demo Company"
    - seed_db.py → uses deploy_company_from_blueprint("fashion-retail")
    
    NocoBase:
    - NocoBaseConnector: params-based init + from_company() classmethod
    - company_secrets: UniqueConstraint('company_id', 'key') instead of global unique
    
    Frontend:
    - OnboardingWizard: blueprint picker with org-chart preview + DAG layer render
    - blueprints.ts API client
    - Companies.tsx: blueprint badge on company cards
    Co-Authored-By: 's avatarClaude Opus 4.8 <noreply@anthropic.com>
    406a39cf
Name
Last commit
Last update
..
__init__.py Loading commit data...
activity_log.py Loading commit data...
adapter.py Loading commit data...
agent_api_keys.py Loading commit data...
agents.py Loading commit data...
approvals.py Loading commit data...
assets.py Loading commit data...
auth_accounts.py Loading commit data...
auth_sessions.py Loading commit data...
auth_users.py Loading commit data...
auth_verifications.py Loading commit data...
budget_policies.py Loading commit data...
cli_auth_challenges.py Loading commit data...
companies.py Loading commit data...
company_import_requests.py Loading commit data...
company_logos.py Loading commit data...
company_memberships.py Loading commit data...
company_secrets.py Loading commit data...
company_skills.py Loading commit data...
cost_events.py Loading commit data...
database.py Loading commit data...
document_revisions.py Loading commit data...
documents.py Loading commit data...
environments.py Loading commit data...
execution_run_logs.py Loading commit data...
execution_workspaces.py Loading commit data...
feedback_exports.py Loading commit data...
feedback_trace.py Loading commit data...
feedback_votes.py Loading commit data...
goals.py Loading commit data...
heartbeat_run_events.py Loading commit data...
heartbeat_runs.py Loading commit data...
inbox_dismissals.py Loading commit data...
instance_database_backups.py Loading commit data...
instance_settings.py Loading commit data...
issue_attachments.py Loading commit data...
issue_comments.py Loading commit data...
issue_documents.py Loading commit data...
issue_label_assignments.py Loading commit data...
issue_labels.py Loading commit data...
issue_read_states.py Loading commit data...
issue_recovery_actions.py Loading commit data...
issues.py Loading commit data...
memory.py Loading commit data...
plugin_config.py Loading commit data...
plugin_jobs.py Loading commit data...
plugins.py Loading commit data...
project_workspaces.py Loading commit data...
projects.py Loading commit data...
routine_revisions.py Loading commit data...
routine_triggers.py Loading commit data...
routines.py Loading commit data...
sidebar_preferences.py Loading commit data...