Metadata-Version: 2.4
Name: futurepath-cli
Version: 0.2.7
Summary: FuturePath CLI - Terraform-like management for DeepAgents platform
Project-URL: Homepage, https://futurepath.ai
Project-URL: Documentation, https://docs.futurepath.ai/cli
Project-URL: Repository, https://github.com/FuturePathAI/deepagents-repo
Project-URL: Issues, https://github.com/FuturePathAI/deepagents-repo/issues
Author-email: FuturePath AI <support@futurepath.ai>
License-Expression: MIT
License-File: LICENSE
Keywords: ai-agents,automation,cli,devops,infrastructure-as-code,terraform
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: System :: Systems Administration
Requires-Python: >=3.10
Requires-Dist: networkx>=3.0
Requires-Dist: pydantic>=2.0
Requires-Dist: pyyaml>=6.0
Requires-Dist: requests>=2.31.0
Description-Content-Type: text/markdown

# FuturePath CLI

Terraform-like CLI for managing DeepAgents platform resources declaratively.

Define credentials, datasets, MCP servers, agents, and triggers in YAML manifests, then apply them consistently across environments.

## Installation

```bash
pip install futurepath-cli
```

Or with pipx for isolated installation:

```bash
pipx install futurepath-cli
```

## Upgrade

Upgrade to the latest version:

```bash
# Using pip
pip install --upgrade futurepath-cli

# Using pipx
pipx upgrade futurepath-cli
```

## Quick Start

```bash
# 1. Check available environments
fp env list

# 2. Login to an environment
fp login local -e admin@example.com -p yourpassword
# Or login to dev/staging/prod:
fp login dev -e admin@example.com -p yourpassword

# 3. List existing resources
fp list agents              # List all agents
fp list datasets            # List all datasets
fp list credentials         # List all credentials

# 4. Apply a manifest
fp apply -f my-workspace.yaml --auto-approve

# 5. Check state
fp state --name my-workspace

# 6. Get a specific resource
fp get agent my-agent       # Get agent details

# 7. Interact with agents directly
fp agent chat my-chat-agent "What can you help me with?"
fp agent run my-automation-agent --task "Analyze incidents"

# 8. Destroy resources when done
fp destroy --name my-workspace --auto-approve
```

## Commands

| Command | Description |
|---------|-------------|
| `fp login` | Authenticate and store token |
| `fp env list` | List all environments with login status |
| `fp env use <name>` | Set the default environment |
| `fp plan` | Show what would be created/updated/deleted |
| `fp apply` | Apply manifest to create/update resources |
| `fp destroy` | Remove all resources created by a manifest |
| `fp state` | Show current state and lock status |
| `fp history` | Show state change history |
| `fp list` | List manifests or resources |
| `fp get` | Get a resource by type and name |
| `fp agent chat` | Chat with a chat agent (streaming) |
| `fp agent run` | Execute an automation agent |
| `fp force-unlock` | Force release a stuck lock (admin only) |

## Manifest Format

```yaml
apiVersion: deepagents/v1
kind: WorkspaceBundle
metadata:
  name: my-workspace
  version: "1.0"
  description: "Production ServiceNow integration"

variables:
  servicenow_instance:
    type: string
    required: true

definitions:
  credentials:
    servicenow-prod:
      name: "ServiceNow Production"
      type: servicenow
      secrets:
        instance: "${servicenow_instance}"
        username: "${SERVICENOW_USER}"
        password: "${SERVICENOW_PASS}"

  datasets:
    alerts-dataset:
      name: "Monitoring Alerts"
      source_type: upload
      file_path: data/alerts.csv
      file_type: csv
      # Pre-define schema for auto-finalization (status: ready)
      field_configs:
        - field_name: alert_id
          field_type: VARCHAR
          display_name: "Alert ID"
        - field_name: severity
          field_type: VARCHAR
          description: "Alert severity level"

  agents:
    incident-triage:
      name: "Incident Triage Bot"
      agent_type: automation
      model: claude-sonnet-4-20250514
      instructions: "You are an IT support expert..."
      datasets: ["@alerts-dataset"]
```

## State Management

By default, state is stored in the database with:
- **Locking**: Prevents concurrent modifications
- **Audit History**: All changes tracked
- **Team Collaboration**: State accessible from any machine

Use `--local-state` for local file storage.

## Environment Variables

Secrets should use environment variables in manifests:

```yaml
secrets:
  api_key: "${MY_API_KEY}"  # Reads from MY_API_KEY env var
```

## Documentation

For full documentation, see [FuturePath CLI Guide](https://docs.futurepath.ai/cli).

## License

MIT License - see [LICENSE](LICENSE) for details.
