Metadata-Version: 2.4
Name: intuned-runtime
Version: 1.3.9
Summary: Runtime SDK that powers browser automation projects running on Intuned
License: Elastic-2.0
License-File: LICENSE
Keywords: runtime,intuned
Author: Intuned Developers
Author-email: engineering@intunedhq.com
Requires-Python: >=3.9,<4.0
Classifier: License :: Other/Proprietary License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Dist: aiofiles (>=24.1.0,<25.0.0)
Requires-Dist: arguably (>=1.3.0,<2.0.0)
Requires-Dist: browserforge[all]
Requires-Dist: camoufox[geoip] (>=0.4.11,<0.5.0)
Requires-Dist: gitpython (>=3.1.43,<4.0.0)
Requires-Dist: httpx (>=0.23.0,<1)
Requires-Dist: jsonc-parser (>=1.1.5,<2.0.0)
Requires-Dist: more-termcolor (>=1.1.3,<2.0.0)
Requires-Dist: pathspec (>=0.12.1,<0.13.0)
Requires-Dist: pydantic (>=2.10.6,<3.0.0)
Requires-Dist: pyee (>=11.1.0)
Requires-Dist: pyright (>=1.1.387,<2.0.0)
Requires-Dist: python-dotenv (==1.0.1)
Requires-Dist: pytimeparse (>=1.1.8,<2.0.0)
Requires-Dist: pyyaml (>=6.0.3,<7.0.0)
Requires-Dist: requests (>=2.32.3,<3.0.0)
Requires-Dist: rich (>=14.1.0,<15.0.0)
Requires-Dist: ruff (>=0.7.2,<0.8.0)
Requires-Dist: semver (>=3.0.4,<4.0.0)
Requires-Dist: tenacity (>=8.5.0,<9.0.0)
Requires-Dist: toml (>=0.10.2,<0.11.0)
Requires-Dist: waitress (>=3.0.1,<4.0.0)
Description-Content-Type: text/markdown

# Intuned Python Runtime

Runtime commands for Intuned platform Python automations.

## Dependencies

- Requires Python 3.12 or higher.
- Install poetry: `pip install poetry`
- Install dependencies: `poetry install`
- Activate virtual environment: `poetry shell`
- Now you have access to `intuned` cli from within project.

## Install globally

- This project can be installed globally on the system to use `intuned` cli anywhere
- Make sure you are not in a virtual environment. `which python` should point to system python.
  - If you are, `deactivate` to exit virtual environment. Or open in an external terminal (from outside vscode if it doesn't work)
- Run `pip install -e .` from the root of the project.

## Commands

All commands have `-h` flag to show help.

### `intuned init`

- Initializes a project. Creates `pyproject.toml`, `Intuned.json` and `README.md` files.
- Prompts for confirmation for each file that already exists.
- Options:
  - `--yes/-y` flag to overwrite all files.
  - `--no/-n` flag to not overwrite any files.

### `intuned publish-packages`

- Publishes packages to `python-packages` repository.
- Options:
  - `--sdk` flag to publish SDK package. Creates `sdk-<version>` and `sdk-latest` tags for the published version.
  - `--runtime` flag to publish runtime package. Creates `runtime-<version>` and `runtime-latest` tags for the published version.
  - `--overwrite` flag to overwrite the existing version if it exists.
  - `--show-diff` flag to show the diff of the package before publishing. You need to configure a diff tool to be used for `git difftool` command in your git config. [How to configure VS Code as a diff tool](https://www.roboleary.net/vscode/2020/09/15/vscode-git.html#tldr).
  - `--no-latest` flag to not release `latest` tag for the published version.
- Uses the version specified in `pyproject.toml` of each package respectively.
- Uses WebApp directory specified in `WEBAPP_REPO` environment variable or tries to resolve it (only works if installed globally with `-e` flag).
- Uses `python-packages` directory to be sister to WebApp directory `<webapp path>/../python-packages`.
- These packages are used on deployed apps.

### `intuned project run`

- Runs the project.
  - `--mode` to specify the mode to run. Default is `sample`.
    - `--mode sample` extends a sample of payloads to run.
    - `--mode full` runs all extended payloads.
    - `--mode single` runs the initial API only.
  - `--api-name <name>` to specify the initial API to run. Defaults to `default`
  - `--params <params json>` to specify the parameters to the initial API.
  - `--sample-config-str '{<api name>: <sample size>, ...}` to specify the sample config. Only used with `--mode sample`.
  - `--no-headless` to disable headless mode.

### `intuned project deploy`

- Deploys a project and starts a default job.
- Options:
  - `--workspace-info '{"environment_url": <>, "workspace_id": <>, "api_key": <>}'` to specify the workspace info.
  - `--workspace-info-path` to specify the path to a JSON file containing workspace info.
  - `-y/--yes` to skip confirmation.
  - `--project-name` to specify the project name. Resolves the name if not provided.
- Resolves `.gitignore` from current/parent directories to decide what to deploy.
- Resolves `.env` from current/parent directories to get environment variables to deploy.
- Resolves project name from the current/parent directory name if not provided.

### `intuned project serve`

- Serves the project as an HTTP server.
- Options:
  - `--env development/production` to specify the environment to run the server.
    - Development runs using Flask's development server.
    - Production runs using Waitress.
  - `--debug` to run the development server in debug mode. Not supported in production.
- This is used on deployed apps.

