mirror of
https://github.com/x1xhlol/system-prompts-and-models-of-ai-tools.git
synced 2026-06-17 23:09:35 +00:00
# Dealix is no longer "a platform". It is a new category: # An Autonomous Revenue Company OS that runs growth FOR Saudi businesses # as if Growth + Sales + Partnerships + Customer Success + Strategy + # Compliance + Data sat in one self-improving system. Autonomous Service Operator (16 modules) — البوت المركزي - intent_classifier: 16 supported intents (Arabic + English keywords; deterministic; no LLM) - conversation_router: route_message + handle_message — single entry point that classifies, routes to handler, recommends a bundle, builds intake + initial pipeline - session_state: 13 valid states + UUID-based sessions + audit history - intake_collector: per-intent intake question sets + parse + validation - approval_manager: Arabic approval cards (capped at 3 buttons) + decision processing (approve/edit/skip/reject including Arabic verbs) - service_orchestrator: 11-step canonical pipeline (intake→data_check→targeting→contactability→strategy→drafting→approval→execution_or_export→tracking→proof→upsell) - workflow_runner: advance + completion check - tool_action_planner: HARD-BLOCKS linkedin.scrape_profile, linkedin.auto_dm, linkedin.auto_connect, social.scrape_followers; high-risk tools require approval; draft-safe tools return draft_only; unknown tools default to approval_required - proof_pack_dispatcher: per-service Proof Pack envelope with required metrics - upsell_engine: 3 deterministic verdicts (upsell_now / iterate_first / gentle_upsell) based on csat + pipeline + meetings - whatsapp_renderer: render any card / approval / daily brief as WhatsApp draft (≤3 buttons, Arabic body, never live) - operator_memory: in-process sessions + customer_facts + preferences + audit log (production = Supabase) - service_bundles: 6 customer-facing bundles instead of 20 raw services (Growth Starter, Data to Revenue, Executive Growth OS, Partnership Growth, Local Growth OS, Full Growth Control Tower) - executive_mode: CEO command center + daily brief + revenue risks (3) + next 3 moves - client_mode: Growth Manager dashboard with 4 panels - agency_mode: multi-client roster + co-branded Proof Pack + revenue share calc Revenue Company OS (10 modules) — الذكاء عبر القنوات - event_to_card: 13 event types → Arabic decision cards (email/whatsapp/form/review/payment/risk/partner/meeting/service.completed/...) each with title_ar/summary_ar/why_now_ar/recommended_action_ar/risk_level/buttons_ar (≤3) - command_feed_engine: aggregate events for a customer + sort by risk (high first) + by_type and by_risk counts - action_graph: 14 typed edges (signal_created_opportunity → message_triggered_reply → reply_led_to_meeting → meeting_led_to_proposal → proposal_led_to_payment → ...) with what_works_for_customer scoring (outcome edges weigh more) - revenue_work_units: 19 RWU types (Salesforce-inspired): opportunity_created, draft_created, approval_collected, meeting_drafted, payment_received, risk_blocked, etc. + aggregate_work_units (counts/revenue/risks) - channel_health: cross-channel reputation snapshot (email/whatsapp/linkedin) + overall_score + channels_at_risk - opportunity_factory: turn (sector, city) into 5 opportunity cards via targeting_os.recommend_accounts + buying committee - service_factory: instantiate any service for a customer (intake + workflow + quote) - proof_ledger (revenue-tier, NOT platform_services.proof_ledger): customer-facing scoreboard with totals + summary_ar + by_type breakdown - growth_memory: anonymized cross-customer aggregates — sector_message_winrate, sector_channel_winrate, common_objections, blocked_action_reasons, successful_playbooks; best_message_for_sector + best_channel_for_sector - self_improvement_loop: weekly Arabic recommendations from real metrics (approval_rate, reply_rate, meeting_rate, blocked_actions, service_revenue) + best_service_id + next_experiment Routers (2 new) — 47 endpoints - /api/v1/operator/* (28): chat (message/decision/classify), sessions (new/transition/context/get), cards (approval/whatsapp/render), intake (questions/validate), service (start), tools (plan), proof-pack (dispatch), upsell (recommend/card), bundles (list/recommend), modes (ceo/ceo-daily-brief/ceo-risks/client/agency/agency-add-client/agency-revenue-share/agency-co-branded-proof), demos (whatsapp-daily-brief/proof-pack) - /api/v1/revenue-os/* (19): command-feed (demo/build/events-ingest), work-units (types/build/aggregate/demo), proof-ledger/demo, action-graph (edge-types/demo), channel-health (snapshot/demo), opportunity-factory (run/demo), service-factory (instantiate/demo), growth-memory/demo, self-improvement (weekly-report/demo) Tests (2 new files, 81 tests) - test_autonomous_service_operator.py: 50 tests * 8 intent classification tests (want_more_customers, has_contact_list, partnerships, whatsapp, pricing, approve, unknown fallback) * 4 conversation router (recommends correct service per intent + bundle, processes approval decisions) * 4 session lifecycle (UUID, transition validation, memory store, context build) * 4 intake (questions per intent, validation detects missing fields, complete intake passes) * 4 approval (≤3 buttons, approve/skip Arabic, unknown decision returns error) * 5 tool planner (linkedin scrape blocked, auto_dm blocked, high-risk → approval, draft-safe → draft_only, unknown → approval_required) * 4 bundles (6 total, agency → partnership_growth, local → local_growth_os, default → growth_starter) * 7 modes (CEO Arabic, daily brief 3 decisions, 3 risks, client panels, agency aggregation, revenue share calc, co-branded includes both names) * 3 WhatsApp renderer (no live send, ≤3 buttons, Arabic morning text) * 4 proof + upsell (Proof Pack draft, upsell_now for strong, iterate_first for weak, ≤3 buttons) - test_revenue_company_os.py: 31 tests * 4 event → card (email Arabic, low review high-risk, risk.blocked high, unknown → action_required) * 3 command feed (demo 8 events, sorts high-risk first, empty handling) * 4 RWUs (≥18 types, build validates, aggregate sums revenue, risks_blocked counted) * 4 action graph (≥12 edge types, validates type, demo 2 customers, what_works scoring) * 2 channel health (returns score, flags risky channel) * 2 opportunity factory (5 opps no live send, blocks unsafe in notes) * 3 service factory (instantiate known + unknown errors, demo 4 services) * 3 proof ledger (appends, rejects unknown, demo has revenue + risks) * 2 growth memory (top objections, best message per sector) * 3 self-improvement (low approval recommends fix, high blocked recommends review, returns best service) Docs (1 new + 1 updated) - AUTONOMOUS_REVENUE_COMPANY_OS.md (Arabic): 12-layer architecture + service bundles + safety + endpoints + competitive positioning - DEALIX_100_PERCENT_LAUNCH_PLAN.md: added §44 Autonomous Revenue Company OS Test results - 81/81 new tests pass - Full suite: 905 passed, 2 skipped (missing API keys, unrelated) - 0 existing tests broken Safety + integration - All 47 new endpoints: live_send_allowed=False, approval_required=True - LinkedIn scrape/auto-DM/auto-connect HARD-BLOCKED in tool_action_planner - High-risk tools (whatsapp.send_message, gmail.send, calendar.insert_event, moyasar.charge, gbp.publish_review_reply, social.publish_dm, social.publish_post) → approval_required forced - Cold WhatsApp blocked via existing contactability_matrix - Operator memory hashes nothing yet — production must wire to security_curator.trace_redactor before any persistence - 6 bundles unify the 12 productized services from Service Tower - Modes integrate platform_services + intelligence_layer + service_excellence - Action Graph + Revenue Work Units + Proof Ledger together form Dealix's Saudi Revenue Graph - Self-improvement loop reads metrics that flow from agent_observability + growth_curator Integration with everything before - Autonomous Service Operator orchestrates Service Tower, Service Excellence OS, Targeting OS, Platform Services, Intelligence Layer - Revenue Company OS reads from platform_services event_bus + intelligence_layer mission_engine + targeting_os reputation_guard - Service factory uses service_tower.get_service + build_intake_questions + quote_service - Opportunity factory uses targeting_os.recommend_accounts + map_buying_committee - Channel health uses targeting_os.calculate_channel_reputation - Tool planner integrates with platform_services.tool_gateway policies - WhatsApp renderer aligns with launch_ops button caps - Bundles map to service_tower upgrade_paths Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
173 lines
6.5 KiB
Python
173 lines
6.5 KiB
Python
"""Revenue Company OS router — command feed + work units + proof + memory."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from typing import Any
|
|
|
|
from fastapi import APIRouter, Body
|
|
|
|
from auto_client_acquisition.revenue_company_os import (
|
|
REVENUE_EDGE_TYPES,
|
|
REVENUE_WORK_UNIT_TYPES,
|
|
aggregate_work_units,
|
|
build_card_from_event,
|
|
build_channel_health_snapshot,
|
|
build_command_feed_for_customer,
|
|
build_growth_memory_demo,
|
|
build_opportunity_factory_demo,
|
|
build_revenue_action_graph_demo,
|
|
build_revenue_proof_ledger_demo,
|
|
build_revenue_work_unit,
|
|
build_service_factory_demo,
|
|
build_weekly_self_improvement_report,
|
|
instantiate_service,
|
|
revenue_os_command_feed_demo,
|
|
)
|
|
|
|
router = APIRouter(prefix="/api/v1/revenue-os", tags=["revenue-company-os"])
|
|
|
|
|
|
# ── Command Feed ─────────────────────────────────────────────
|
|
@router.get("/command-feed/demo")
|
|
async def command_feed_demo() -> dict[str, Any]:
|
|
return revenue_os_command_feed_demo()
|
|
|
|
|
|
@router.post("/events/ingest")
|
|
async def events_ingest(payload: dict[str, Any] = Body(...)) -> dict[str, Any]:
|
|
"""Convert one event → Arabic decision card. Never executes anything."""
|
|
return build_card_from_event(payload)
|
|
|
|
|
|
@router.post("/command-feed/build")
|
|
async def command_feed_build(payload: dict[str, Any] = Body(...)) -> dict[str, Any]:
|
|
return build_command_feed_for_customer(
|
|
customer_id=payload.get("customer_id", "demo"),
|
|
events=payload.get("events", []),
|
|
)
|
|
|
|
|
|
# ── Work Units ───────────────────────────────────────────────
|
|
@router.get("/work-units/types")
|
|
async def work_unit_types() -> dict[str, Any]:
|
|
return {"types": list(REVENUE_WORK_UNIT_TYPES)}
|
|
|
|
|
|
@router.post("/work-units/build")
|
|
async def work_units_build(payload: dict[str, Any] = Body(...)) -> dict[str, Any]:
|
|
try:
|
|
return build_revenue_work_unit(
|
|
unit_type=payload.get("unit_type", ""),
|
|
service_id=payload.get("service_id", ""),
|
|
customer_id=payload.get("customer_id", ""),
|
|
risk_level=payload.get("risk_level", "low"),
|
|
revenue_influenced_sar=float(payload.get("revenue_influenced_sar", 0)),
|
|
proof_event=payload.get("proof_event", ""),
|
|
notes=payload.get("notes", ""),
|
|
)
|
|
except ValueError as exc:
|
|
return {"error": str(exc)}
|
|
|
|
|
|
@router.post("/work-units/aggregate")
|
|
async def work_units_aggregate(
|
|
units: list[dict[str, Any]] = Body(default_factory=list, embed=True),
|
|
) -> dict[str, Any]:
|
|
return aggregate_work_units(units)
|
|
|
|
|
|
@router.get("/work-units/demo")
|
|
async def work_units_demo() -> dict[str, Any]:
|
|
"""Demo aggregation across 12 sample units."""
|
|
return build_revenue_proof_ledger_demo()
|
|
|
|
|
|
# ── Proof Ledger ─────────────────────────────────────────────
|
|
@router.get("/proof-ledger/demo")
|
|
async def proof_ledger_demo() -> dict[str, Any]:
|
|
return build_revenue_proof_ledger_demo()
|
|
|
|
|
|
# ── Action Graph ─────────────────────────────────────────────
|
|
@router.get("/action-graph/edge-types")
|
|
async def action_graph_edge_types() -> dict[str, Any]:
|
|
return {"edge_types": list(REVENUE_EDGE_TYPES)}
|
|
|
|
|
|
@router.get("/action-graph/demo")
|
|
async def action_graph_demo() -> dict[str, Any]:
|
|
return build_revenue_action_graph_demo()
|
|
|
|
|
|
# ── Channel Health ───────────────────────────────────────────
|
|
@router.post("/channel-health/snapshot")
|
|
async def channel_health_snapshot(payload: dict[str, Any] = Body(default_factory=dict)) -> dict[str, Any]:
|
|
return build_channel_health_snapshot(
|
|
metrics_per_channel=payload.get("metrics_per_channel"),
|
|
)
|
|
|
|
|
|
@router.get("/channel-health/demo")
|
|
async def channel_health_demo() -> dict[str, Any]:
|
|
return build_channel_health_snapshot()
|
|
|
|
|
|
# ── Opportunity Factory ──────────────────────────────────────
|
|
@router.post("/opportunity-factory")
|
|
async def opportunity_factory(payload: dict[str, Any] = Body(default_factory=dict)) -> dict[str, Any]:
|
|
return build_opportunity_factory_demo(
|
|
sector=payload.get("sector", "training"),
|
|
city=payload.get("city", "Riyadh"),
|
|
limit=int(payload.get("limit", 5)),
|
|
)
|
|
|
|
|
|
@router.get("/opportunity-factory/demo")
|
|
async def opportunity_factory_demo() -> dict[str, Any]:
|
|
return build_opportunity_factory_demo()
|
|
|
|
|
|
# ── Service Factory ──────────────────────────────────────────
|
|
@router.post("/service-factory")
|
|
async def service_factory(payload: dict[str, Any] = Body(...)) -> dict[str, Any]:
|
|
return instantiate_service(
|
|
service_id=payload.get("service_id", ""),
|
|
customer_id=payload.get("customer_id", ""),
|
|
company_size=payload.get("company_size", "small"),
|
|
urgency=payload.get("urgency", "normal"),
|
|
)
|
|
|
|
|
|
@router.get("/service-factory/demo")
|
|
async def service_factory_demo() -> dict[str, Any]:
|
|
return build_service_factory_demo()
|
|
|
|
|
|
# ── Growth Memory ────────────────────────────────────────────
|
|
@router.get("/growth-memory/demo")
|
|
async def growth_memory_demo() -> dict[str, Any]:
|
|
return build_growth_memory_demo()
|
|
|
|
|
|
# ── Self-Improvement Loop ────────────────────────────────────
|
|
@router.post("/self-improvement/weekly-report")
|
|
async def self_improvement_weekly(payload: dict[str, Any] = Body(default_factory=dict)) -> dict[str, Any]:
|
|
return build_weekly_self_improvement_report(weekly_metrics=payload)
|
|
|
|
|
|
@router.get("/self-improvement/demo")
|
|
async def self_improvement_demo() -> dict[str, Any]:
|
|
return build_weekly_self_improvement_report(weekly_metrics={
|
|
"approval_rate": 0.42,
|
|
"reply_rate": 0.05,
|
|
"meeting_rate": 0.018,
|
|
"blocked_actions": 12,
|
|
"service_revenue_sar": {
|
|
"first_10_opportunities_sprint": 1500,
|
|
"list_intelligence": 999,
|
|
"growth_os_monthly": 2999,
|
|
},
|
|
"top_objections": ["price", "timing"],
|
|
"channel_outcomes": {"email": "healthy", "whatsapp": "watch"},
|
|
})
|