Metadata-Version: 2.5
Name: futurepath-cli
Version: 0.3.0a4
Summary: FuturePath CLI - declarative configuration for the FuturePath AI Platform: workspaces, agents, credentials, MCP servers, AI Workflows and packs in YAML, applied to any environment
Project-URL: Homepage, https://futurepath.ai
Project-URL: Documentation, https://docs.futurepath.ai/cli
Project-URL: Repository, https://github.com/FuturePathAI/techops
Project-URL: Issues, https://github.com/FuturePathAI/techops/issues
Author-email: FuturePath AI <support@futurepath.ai>
License-Expression: MIT
License-File: LICENSE
Keywords: ai-agents,ai-workflows,automation,cli,configuration-as-code,devops
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

Declarative configuration for the FuturePath AI Platform.

Define workspaces, agents, credentials, datasets, MCP servers, triggers, AI Workflows and packs in YAML manifests, then apply them consistently to any environment — `fp plan` shows what would change, `fp apply` makes it so, `fp destroy` takes it back.

## 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.
