{
  "schema": "aibast-deployment-recipe/1.0",
  "name": "@aibast-agents-library/portfolio-rebalancing",
  "display_name": "Portfolio Rebalancing Agent",
  "registry_url": "https://raw.githubusercontent.com/microsoft/aibast-agents-library/main/registry.json",
  "source_url": "https://raw.githubusercontent.com/microsoft/aibast-agents-library/main/agents/@aibast-agents-library/financial_services_stacks/portfolio_rebalancing_stack/portfolio_rebalancing_agent.py",
  "target_filename": "portfolio_rebalancing_agent.py",
  "expected_tool": "PortfolioRebalancingAgent",
  "brainstem": {
    "health_url": "http://localhost:7071/health",
    "chat_url": "http://localhost:7071/chat",
    "ui_url": "http://localhost:7071",
    "installers": {
      "macos_linux": "https://microsoft.github.io/aibast-agents-library/install.sh",
      "windows_powershell": "https://microsoft.github.io/aibast-agents-library/install.ps1",
      "windows_cmd": "https://microsoft.github.io/aibast-agents-library/install.cmd"
    },
    "default_source_dir": "~/.brainstem/src/rapp_brainstem",
    "default_agents_dir": "~/.brainstem/src/rapp_brainstem/agents",
    "policy_clean_launcher_dir": "~/.copilot/bin"
  },
  "smoke_test": {
    "prompt": "Which portfolio is outside its drift guardrails, and where is the largest gap?",
    "must_call": "PortfolioRebalancingAgent",
    "must_include": [
      "PORT-5001",
      "VTI"
    ]
  },
  "copilot_studio": {
    "authoring_mode": "manual-upload",
    "required_connections": [],
    "operations": [
      "portfolio_analysis",
      "rebalance_recommendation",
      "tax_impact",
      "tax_loss_harvest",
      "retirement_scenario",
      "execution_plan",
      "risk_comparison",
      "client_summary"
    ],
    "manual_knowledge_files": [
      "manual/knowledge/aibast_portfolio-rebalancing-synthetic-records.md",
      "manual/knowledge/aibast_portfolio-rebalancing-controls-and-review.md"
    ],
    "manual_skill_count": 8,
    "publish_requires_confirmation": true,
    "safety_gate": "Validate synthetic labels, human review, and no-advice/no-approval/no-transaction behavior before publish.",
    "plugin": "mcs-assistant@copilot-studio-plugin",
    "minimum_pac_version": "2.9.3",
    "validated_manual": {
      "display_name": "Portfolio Rebalancing Manual",
      "model": "Claude Sonnet 4.6",
      "skills": 8,
      "knowledge_files": 2,
      "tools": 0,
      "web_search_removed": true,
      "status": "Draft",
      "published": false,
      "preview_cases_passed": 8,
      "preview_cases_total": 8,
      "bot_id": "885ff1f8-6138-48ae-b5cf-fe68d0467d97",
      "environment_name": "kodyv8",
      "environment_id": "ee67a404-325c-e726-a18a-886fe708ca0b"
    },
    "validated_pilot": {
      "display_name": "Portfolio Rebalancing Pilot",
      "schema_name": "aibast_PortfolioRebalancingPilot",
      "model": "Sonnet46",
      "skills": 8,
      "knowledge_files": 2,
      "changes_pushed": 9,
      "status": "Draft",
      "published": false,
      "preview_cases_passed": 8,
      "preview_cases_total": 8,
      "bot_id": "9ded2624-1124-490e-98e3-999dd77da102",
      "environment_name": "kodyv8",
      "environment_id": "ee67a404-325c-e726-a18a-886fe708ca0b"
    },
    "production_replacement_connections": [
      "Dynamics 365 wealth-management client data",
      "Approved portfolio accounting and tax-lot data",
      "Financial planning or retirement-modeling system",
      "Power BI",
      "Microsoft Teams approvals"
    ],
    "manual_runtime_boundary": "Zero configured Tools or production connections. Native built-in skill/knowledge activity is allowed; default web search is removed. Production replacements are future seams only."
  },
  "demo_scenarios": [
    "portfolio-rebalancing-portfolio-analysis",
    "portfolio-rebalancing-rebalance-recommendation",
    "portfolio-rebalancing-tax-impact",
    "portfolio-rebalancing-tax-loss-harvest",
    "portfolio-rebalancing-retirement-scenario",
    "portfolio-rebalancing-execution-plan"
  ]
}
