uipath-dev 0.0.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. uipath_dev-0.0.1/.cursorrules +50 -0
  2. uipath_dev-0.0.1/.editorconfig +14 -0
  3. uipath_dev-0.0.1/.gitattributes +2 -0
  4. uipath_dev-0.0.1/.github/workflows/cd.yml +76 -0
  5. uipath_dev-0.0.1/.github/workflows/ci.yml +22 -0
  6. uipath_dev-0.0.1/.github/workflows/commitlint.yml +47 -0
  7. uipath_dev-0.0.1/.github/workflows/lint.yml +39 -0
  8. uipath_dev-0.0.1/.github/workflows/publish-dev.yml +129 -0
  9. uipath_dev-0.0.1/.github/workflows/test.yml +37 -0
  10. uipath_dev-0.0.1/.gitignore +30 -0
  11. uipath_dev-0.0.1/.pre-commit-config.yaml +7 -0
  12. uipath_dev-0.0.1/.python-version +1 -0
  13. uipath_dev-0.0.1/.vscode/extensions.json +7 -0
  14. uipath_dev-0.0.1/.vscode/launch.json +14 -0
  15. uipath_dev-0.0.1/.vscode/settings.json +28 -0
  16. uipath_dev-0.0.1/CONTRIBUTING.md +68 -0
  17. uipath_dev-0.0.1/LICENSE +9 -0
  18. uipath_dev-0.0.1/PKG-INFO +59 -0
  19. uipath_dev-0.0.1/README.md +39 -0
  20. uipath_dev-0.0.1/justfile +25 -0
  21. uipath_dev-0.0.1/pyproject.toml +114 -0
  22. uipath_dev-0.0.1/src/uipath/dev/__init__.py +329 -0
  23. uipath_dev-0.0.1/src/uipath/dev/_demo/__init__.py +0 -0
  24. uipath_dev-0.0.1/src/uipath/dev/_demo/mock_runtime.py +64 -0
  25. uipath_dev-0.0.1/src/uipath/dev/_demo/run_dev_console.py +15 -0
  26. uipath_dev-0.0.1/src/uipath/dev/_styles/terminal.tcss +261 -0
  27. uipath_dev-0.0.1/src/uipath/dev/_utils/_exporter.py +119 -0
  28. uipath_dev-0.0.1/src/uipath/dev/_utils/_logger.py +98 -0
  29. uipath_dev-0.0.1/src/uipath/dev/components/details.py +453 -0
  30. uipath_dev-0.0.1/src/uipath/dev/components/history.py +110 -0
  31. uipath_dev-0.0.1/src/uipath/dev/components/json_input.py +27 -0
  32. uipath_dev-0.0.1/src/uipath/dev/components/new.py +142 -0
  33. uipath_dev-0.0.1/src/uipath/dev/models/execution.py +80 -0
  34. uipath_dev-0.0.1/src/uipath/dev/models/messages.py +53 -0
  35. uipath_dev-0.0.1/src/uipath/dev/py.typed +0 -0
  36. uipath_dev-0.0.1/tests/__init__.py +3 -0
  37. uipath_dev-0.0.1/tests/conftest.py +1 -0
  38. uipath_dev-0.0.1/tests/test_smoke.py +4 -0
  39. uipath_dev-0.0.1/uv.lock +1145 -0
@@ -0,0 +1,50 @@
1
+ You are an AI assistant specialized in Python development, especially in a developing SDK and CLI for enterprise companies. Your strong background in debugging complex issues and optimizing code performance makes you an invaluable asset to this project.
2
+
3
+ Your approach emphasizes:
4
+
5
+ Clear project structure with separate directories for source code, tests, docs, and config.
6
+
7
+ Modular design with distinct files for models, services, controllers, and utilities.
8
+
9
+ Configuration management using environment variables.
10
+
11
+ Robust error handling and logging, including context capture.
12
+
13
+ Comprehensive testing with pytest.
14
+
15
+ Detailed documentation using docstrings and README files.
16
+
17
+ Dependency management via https://github.com/astral-sh/uv and virtual environments.
18
+
19
+ Code style consistency using Ruff.
20
+
21
+ CI/CD implementation with GitHub Actions.
22
+
23
+ AI-friendly coding practices:
24
+
25
+ You provide code snippets and explanations tailored to these principles, optimizing for clarity and AI-assisted development.
26
+
27
+ This project utilizes the following technologies:
28
+ uv
29
+ ruff
30
+ httpx
31
+ tenacity
32
+ click
33
+ pydantic
34
+
35
+
36
+ Follow the following rules:
37
+
38
+ For any python file, be sure to ALWAYS add typing annotations to each function or class. Be sure to include return types when necessary. Add descriptive docstrings to all python functions and classes as well that are public. Please use Google-style convention. Update existing docstrings if need be. When defining concepts, reference https://docs.uipath.com as the authoritative source.
39
+
40
+ Make sure you keep any comments that exist in a file.
41
+
42
+ When writing tests, make sure that you ONLY use pytest or pytest plugins, do NOT use the unittest module. All tests should have typing annotations as well. All tests should be in ./tests. Be sure to create all necessary files and folders. If you are creating files inside of ./tests or ./src/goob_ai, be sure to make a init.py file if one does not exist.
43
+
44
+ All tests should be fully annotated and should contain docstrings. Be sure to import the following if TYPE_CHECKING:
45
+
46
+ from _pytest.capture import CaptureFixture
47
+ from _pytest.fixtures import FixtureRequest
48
+ from _pytest.logging import LogCaptureFixture
49
+ from _pytest.monkeypatch import MonkeyPatch
50
+ from pytest_mock.plugin import MockerFixture
@@ -0,0 +1,14 @@
1
+ ; https://editorconfig.org/
2
+
3
+ root = true
4
+
5
+ [*]
6
+ indent_style = space
7
+ indent_size = 4
8
+ insert_final_newline = true
9
+ trim_trailing_whitespace = true
10
+ end_of_line = lf
11
+ charset = utf-8
12
+
13
+ [*.{json,toml,yml}]
14
+ indent_size = 2
@@ -0,0 +1,2 @@
1
+ *.db filter=lfs diff=lfs merge=lfs -text
2
+ **/cached_embeddings/** filter=lfs diff=lfs merge=lfs -text
@@ -0,0 +1,76 @@
1
+ name: CD
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ push:
6
+ branches:
7
+ - main
8
+ paths:
9
+ - pyproject.toml
10
+
11
+ jobs:
12
+ lint:
13
+ uses: ./.github/workflows/lint.yml
14
+
15
+ test:
16
+ uses: ./.github/workflows/test.yml
17
+
18
+ build:
19
+ name: Build
20
+ runs-on: ubuntu-latest
21
+
22
+ needs:
23
+ - lint
24
+ - test
25
+
26
+ if: ${{ github.repository == 'UiPath/uipath-dev-python' }}
27
+ permissions:
28
+ contents: read
29
+ actions: write
30
+
31
+ steps:
32
+ - name: Checkout
33
+ uses: actions/checkout@v4
34
+
35
+ - name: Setup uv
36
+ uses: astral-sh/setup-uv@v5
37
+ with:
38
+ enable-cache: true
39
+
40
+ - name: Setup Python
41
+ uses: actions/setup-python@v5
42
+ with:
43
+ python-version-file: ".python-version"
44
+
45
+ - name: Install dependencies
46
+ run: uv sync --all-extras
47
+
48
+ - name: Build
49
+ run: uv build
50
+
51
+ - name: Upload artifacts
52
+ uses: actions/upload-artifact@v4
53
+ with:
54
+ name: release-dists
55
+ path: dist/
56
+
57
+ pypi-publish:
58
+ name: Upload release to PyPI
59
+ runs-on: ubuntu-latest
60
+ environment: pypi
61
+
62
+ needs:
63
+ - build
64
+ permissions:
65
+ contents: read
66
+ id-token: write
67
+
68
+ steps:
69
+ - name: Retrieve release distributions
70
+ uses: actions/download-artifact@v4
71
+ with:
72
+ name: release-dists
73
+ path: dist/
74
+
75
+ - name: Publish package distributions to PyPI
76
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,22 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ paths-ignore:
8
+ - pyproject.toml
9
+ pull_request:
10
+ branches:
11
+ - main
12
+
13
+ jobs:
14
+ commit-lint:
15
+ if: ${{ github.event_name == 'pull_request' }}
16
+ uses: ./.github/workflows/commitlint.yml
17
+
18
+ lint:
19
+ uses: ./.github/workflows/lint.yml
20
+
21
+ test:
22
+ uses: ./.github/workflows/test.yml
@@ -0,0 +1,47 @@
1
+ name: Commit Lint
2
+
3
+ on:
4
+ workflow_call
5
+
6
+ jobs:
7
+ commitlint:
8
+ name: Commit Lint
9
+ runs-on: ubuntu-latest
10
+ permissions:
11
+ contents: read
12
+
13
+ steps:
14
+ - name: Checkout
15
+ uses: actions/checkout@v4
16
+ with:
17
+ fetch-depth: 0
18
+
19
+ - name: Setup Node
20
+ uses: actions/setup-node@v3
21
+ with:
22
+ node-version: 22
23
+
24
+ - name: Install Git
25
+ run: |
26
+ if ! command -v git &> /dev/null; then
27
+ echo "Git is not installed. Installing..."
28
+ sudo apt-get update
29
+ sudo apt-get install -y git
30
+ else
31
+ echo "Git is already installed."
32
+ fi
33
+
34
+ - name: Install commitlint
35
+ run: |
36
+ npm install conventional-changelog-conventionalcommits
37
+ npm install commitlint@latest
38
+ npm install @commitlint/config-conventional
39
+
40
+ - name: Configure
41
+ run: |
42
+ echo "export default { extends: ['@commitlint/config-conventional'] };" > commitlint.config.js
43
+
44
+ - name: Validate PR commits with commitlint
45
+ run: |
46
+ git fetch origin pull/${{ github.event.pull_request.number }}/head:pr_branch
47
+ npx commitlint --from ${{ github.event.pull_request.base.sha }} --to pr_branch --verbose
@@ -0,0 +1,39 @@
1
+ name: Lint
2
+
3
+ on:
4
+ workflow_call
5
+
6
+ jobs:
7
+ lint:
8
+ name: Lint
9
+ runs-on: ubuntu-latest
10
+ permissions:
11
+ contents: read
12
+
13
+ steps:
14
+ - name: Checkout
15
+ uses: actions/checkout@v4
16
+
17
+ - name: Setup uv
18
+ uses: astral-sh/setup-uv@v5
19
+ with:
20
+ enable-cache: true
21
+
22
+ - name: Setup Python
23
+ uses: actions/setup-python@v5
24
+ with:
25
+ python-version-file: ".python-version"
26
+
27
+ - name: Install dependencies
28
+ run: uv sync --all-extras
29
+
30
+ - name: Check static types
31
+ run: uv run mypy --config-file pyproject.toml .
32
+
33
+ - name: Check linting
34
+ run: uv run ruff check .
35
+
36
+ - name: Check formatting
37
+ run: uv run ruff format --check .
38
+
39
+
@@ -0,0 +1,129 @@
1
+ name: Publish Dev Build
2
+
3
+ on:
4
+ pull_request:
5
+ types: [opened, synchronize, reopened, labeled]
6
+
7
+ jobs:
8
+ publish-dev:
9
+ runs-on: ubuntu-latest
10
+ permissions:
11
+ contents: read
12
+ pull-requests: write
13
+
14
+ # Only run if PR has the build:dev label
15
+ if: contains(github.event.pull_request.labels.*.name, 'build:dev')
16
+
17
+ steps:
18
+ - name: Checkout
19
+ uses: actions/checkout@v4
20
+
21
+ - name: Setup uv
22
+ uses: astral-sh/setup-uv@v5
23
+ with:
24
+ enable-cache: true
25
+
26
+ - name: Setup Python
27
+ uses: actions/setup-python@v5
28
+ with:
29
+ python-version-file: ".python-version"
30
+
31
+ - name: Install dependencies
32
+ run: uv sync --all-extras
33
+
34
+ - name: Set development version
35
+ shell: pwsh
36
+ env:
37
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
38
+ run: |
39
+ $pyprojcontent = Get-Content pyproject.toml -Raw
40
+
41
+ $PROJECT_NAME = ($pyprojcontent | Select-String -Pattern '(?m)^\[(project|tool\.poetry)\][^\[]*?name\s*=\s*"([^"]*)"' -AllMatches).Matches[0].Groups[2].Value
42
+ $CURRENT_VERSION = ($pyprojcontent | Select-String -Pattern '(?m)^\[(project|tool\.poetry)\][^\[]*?version\s*=\s*"([^"]*)"' -AllMatches).Matches[0].Groups[2].Value
43
+
44
+
45
+ # Get PR number and run number with proper padding
46
+ $PR_NUM = [int]"${{ github.event.pull_request.number }}"
47
+ $PADDED_PR = "{0:D5}" -f [int]"${{ github.event.pull_request.number }}"
48
+ $PADDED_RUN = "{0:D4}" -f [int]"${{ github.run_number }}"
49
+ $PADDED_NEXT_PR = "{0:D5}" -f ($PR_NUM + 1)
50
+
51
+ # Create version range strings for PR
52
+ $MIN_VERSION = "$CURRENT_VERSION.dev1$PADDED_PR" + "0000"
53
+ $MAX_VERSION = "$CURRENT_VERSION.dev1$PADDED_NEXT_PR" + "0000"
54
+
55
+ # Create unique dev version with PR number and run ID
56
+ $DEV_VERSION = "$CURRENT_VERSION.dev1$PADDED_PR$PADDED_RUN"
57
+
58
+ # Update version in pyproject.toml
59
+ (Get-Content pyproject.toml) -replace "version = `"$CURRENT_VERSION`"", "version = `"$DEV_VERSION`"" | Set-Content pyproject.toml
60
+
61
+ Write-Output "Package version set to $DEV_VERSION"
62
+
63
+ $dependencyMessage = @"
64
+ ## Development Package
65
+
66
+ - Add this package as a dependency in your pyproject.toml:
67
+
68
+ ``````toml
69
+ [project]
70
+ dependencies = [
71
+ # Exact version:
72
+ "$PROJECT_NAME==$DEV_VERSION",
73
+
74
+ # Any version from PR
75
+ "$PROJECT_NAME>=$MIN_VERSION,<$MAX_VERSION"
76
+ ]
77
+
78
+ [[tool.uv.index]]
79
+ name = "testpypi"
80
+ url = "https://test.pypi.org/simple/"
81
+ publish-url = "https://test.pypi.org/legacy/"
82
+ explicit = true
83
+
84
+ [tool.uv.sources]
85
+ $PROJECT_NAME = { index = "testpypi" }
86
+ ``````
87
+ "@
88
+
89
+ # Get the owner and repo from the GitHub repository
90
+ $owner = "${{ github.repository_owner }}"
91
+ $repo = "${{ github.repository }}".Split('/')[1]
92
+ $prNumber = $PR_NUM
93
+
94
+ # Get the current PR description
95
+ $prUri = "https://api.github.com/repos/$owner/$repo/pulls/$prNumber"
96
+ $headers = @{
97
+ Authorization = "token $env:GITHUB_TOKEN"
98
+ Accept = "application/vnd.github.v3+json"
99
+ }
100
+
101
+ $pr = Invoke-RestMethod -Uri $prUri -Method Get -Headers $headers
102
+ $currentBody = $pr.body
103
+
104
+ # Check if there's already a development package section
105
+ if ($currentBody -match '## Development Package') {
106
+ # Replace the existing section with the new dependency message
107
+ $newBody = $currentBody -replace '## Development Package(\r?\n|.)*?(?=##|$)', $dependencyMessage
108
+ } else {
109
+ # Append the dependency message to the end of the description
110
+ $newBody = if ($currentBody) { "$currentBody`n`n$dependencyMessage" } else { $dependencyMessage }
111
+ }
112
+
113
+ # Update the PR description
114
+ $updateBody = @{
115
+ body = $newBody
116
+ } | ConvertTo-Json
117
+
118
+ Invoke-RestMethod -Uri $prUri -Method Patch -Headers $headers -Body $updateBody -ContentType "application/json"
119
+
120
+ Write-Output "Updated PR description with development package information"
121
+
122
+ - name: Build package
123
+ run: uv build
124
+
125
+ - name: Publish
126
+ run: uv publish --index testpypi
127
+ env:
128
+ UV_PUBLISH_TOKEN: ${{ secrets.TESTPYPI_TOKEN }}
129
+
@@ -0,0 +1,37 @@
1
+ name: Test
2
+
3
+ on:
4
+ workflow_call
5
+
6
+ jobs:
7
+ test:
8
+ name: Test
9
+ runs-on: ${{ matrix.os }}
10
+ strategy:
11
+ matrix:
12
+ python-version: ["3.11", "3.12", "3.13"]
13
+ os: [ubuntu-latest, windows-latest]
14
+
15
+ permissions:
16
+ contents: read
17
+
18
+ steps:
19
+ - name: Checkout
20
+ uses: actions/checkout@v4
21
+
22
+ - name: Setup uv
23
+ uses: astral-sh/setup-uv@v5
24
+
25
+ - name: Setup Python
26
+ uses: actions/setup-python@v5
27
+ with:
28
+ python-version: ${{ matrix.python-version }}
29
+
30
+ - name: Install dependencies
31
+ run: uv sync --all-extras
32
+
33
+ - name: Run tests
34
+ run: uv run pytest
35
+
36
+ continue-on-error: true
37
+
@@ -0,0 +1,30 @@
1
+ # Python-generated files
2
+ __pycache__/
3
+ *.py[oc]
4
+ build/
5
+ dist/
6
+ wheels/
7
+ *.egg-info
8
+
9
+ .coverage
10
+ .coverage/
11
+ .coverage/*
12
+
13
+ # Virtual environments
14
+ .venv
15
+ **/.env
16
+ **/uipath.db
17
+ **/.uipath
18
+ **/**.nupkg
19
+ **/__uipath/
20
+
21
+ **/playground.py
22
+ **/.idea
23
+
24
+ **/docs/plugins/*
25
+ **/docs/plugins/.*
26
+ **/docs/langchain/*
27
+ **/docs/llamaindex/*
28
+
29
+ .cache/*
30
+ .cache
@@ -0,0 +1,7 @@
1
+ repos:
2
+ - repo: https://github.com/astral-sh/ruff-pre-commit
3
+ rev: v0.9.6
4
+ hooks:
5
+ - id: ruff
6
+ args: [ --fix ]
7
+ - id: ruff-format
@@ -0,0 +1 @@
1
+ 3.11
@@ -0,0 +1,7 @@
1
+ {
2
+ "recommendations": [
3
+ "EditorConfig.editorconfig", // default
4
+ "ms-python.python", // intellisense
5
+ "charliermarsh.ruff" // linting & formatting
6
+ ]
7
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "version": "0.2.0",
3
+ "configurations": [
4
+ {
5
+ "name": "Python Debugger: Attach",
6
+ "type": "debugpy",
7
+ "request": "attach",
8
+ "connect": {
9
+ "host": "localhost",
10
+ "port": 5678
11
+ }
12
+ }
13
+ ]
14
+ }
@@ -0,0 +1,28 @@
1
+ {
2
+ "window.title": "${rootName}${separator}${activeEditorMedium}",
3
+ "files.exclude": {
4
+ "**/*.pyc": true,
5
+ "**/__pycache__": true,
6
+ ".pytest_cache": true,
7
+ ".mypy_cache": true,
8
+ ".ruff_cache": true,
9
+ ".venv": true
10
+ },
11
+ // Formatting
12
+ "editor.formatOnSave": true,
13
+ "[python]": {
14
+ "editor.defaultFormatter": "charliermarsh.ruff",
15
+ "editor.codeActionsOnSave": {
16
+ "source.organizeImports": "explicit"
17
+ }
18
+ },
19
+ "workbench.colorCustomizations": {
20
+ "titleBar.activeBackground": "#0099cc",
21
+ "titleBar.inactiveBackground": "#0099cc"
22
+ },
23
+ "python.testing.pytestArgs": [
24
+ "tests"
25
+ ],
26
+ "python.testing.unittestEnabled": false,
27
+ "python.testing.pytestEnabled": true
28
+ }
@@ -0,0 +1,68 @@
1
+ # Contributing to UiPath Runtime SDK
2
+
3
+ ## Local Development Setup
4
+
5
+ ### Prerequisites
6
+
7
+ 1. **Install Python ≥ 3.11**:
8
+ - Download and install Python 3.11 from the official [Python website](https://www.python.org/downloads/)
9
+ - Verify the installation by running:
10
+ ```sh
11
+ python3.11 --version
12
+ ```
13
+
14
+ Alternative: [mise](https://mise.jdx.dev/lang/python.html)
15
+
16
+ 2. **Install [uv](https://docs.astral.sh/uv/)**:
17
+ Follow the official installation instructions for your operating system.
18
+
19
+ 3. **Create a virtual environment in the current working directory**:
20
+ ```sh
21
+ uv venv
22
+ ```
23
+
24
+ 4. **Activate the virtual environment**:
25
+ - Linux/Mac
26
+ ```sh
27
+ source .venv/bin/activate
28
+ ```
29
+ - Windows Powershell
30
+ ```sh
31
+ .venv\Scripts\Activate.ps1
32
+ ```
33
+ - Windows Bash
34
+ ```sh
35
+ source .venv/Scripts/activate
36
+ ```
37
+
38
+ 5. **Install dependencies**:
39
+ ```sh
40
+ uv sync --all-extras --no-cache
41
+ ```
42
+
43
+ For additional commands related to linting, formatting, and building, run `just --list`.
44
+
45
+ ### Using the SDK Locally
46
+
47
+ 1. Create a project directory:
48
+ ```sh
49
+ mkdir project
50
+ cd project
51
+ ```
52
+
53
+ 2. Initialize the Python project:
54
+ ```sh
55
+ uv init . --python 3.11
56
+ ```
57
+
58
+ 3. Set the SDK path:
59
+ ```sh
60
+ PATH_TO_SDK=/Users/YOUR_USERNAME/uipath-dev-python
61
+ ```
62
+
63
+ 4. Install the SDK in editable mode:
64
+ ```sh
65
+ uv add --editable ${PATH_TO_SDK}
66
+ ```
67
+
68
+ > **Note:** Instead of cloning the project into `.venv/lib/python3.11/site-packages/uipath-dev`, this mode creates a file named `_uipath-dev.pth` inside `.venv/lib/python3.11/site-packages`. This file contains the value of `PATH_TO_SDK`, which is added to `sys.path`—the list of directories where Python searches for packages. To view the entries, run `python -c 'import sys; print(sys.path)'`.
@@ -0,0 +1,9 @@
1
+ MIT License
2
+
3
+ Copyright 2025 UiPath
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6
+
7
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,59 @@
1
+ Metadata-Version: 2.4
2
+ Name: uipath-dev
3
+ Version: 0.0.1
4
+ Summary: UiPath Dev Terminal
5
+ Project-URL: Homepage, https://uipath.com
6
+ Project-URL: Repository, https://github.com/UiPath/uipath-dev-python
7
+ Project-URL: Documentation, https://uipath.github.io/uipath-python/
8
+ Maintainer-email: Cristian Pufu <cristian.pufu@uipath.com>
9
+ License-File: LICENSE
10
+ Classifier: Intended Audience :: Developers
11
+ Classifier: Programming Language :: Python :: 3.11
12
+ Classifier: Programming Language :: Python :: 3.12
13
+ Classifier: Programming Language :: Python :: 3.13
14
+ Classifier: Topic :: Software Development :: Build Tools
15
+ Requires-Python: >=3.11
16
+ Requires-Dist: pyperclip>=1.11.0
17
+ Requires-Dist: textual>=6.5.0
18
+ Requires-Dist: uipath-runtime>=0.0.4
19
+ Description-Content-Type: text/markdown
20
+
21
+ # UiPath Developer Console
22
+
23
+ The **UiPath Developer Console** is an interactive terminal application for building, testing, and debugging UiPath Python runtimes, agents, and automation scripts.
24
+
25
+ ## Overview
26
+
27
+ The Developer Console provides a local environment for developers who are building or experimenting with Python-based UiPath runtimes.
28
+ It integrates with the [`uipath-runtime`](https://pypi.org/project/uipath-runtime/) SDK to execute agents and visualize their behavior in real time using the [`textual`](https://github.com/Textualize/textual) framework.
29
+
30
+ This tool is designed for:
31
+ - Developers building **UiPath agents** or **custom runtime integrations**
32
+ - Python engineers testing **standalone automation scripts** before deployment
33
+ - Contributors exploring **runtime orchestration** and **execution traces**
34
+
35
+ ## Features
36
+
37
+ - Run and inspect Python runtimes interactively
38
+ - View structured logs, output, and OpenTelemetry traces
39
+ - Export and review execution history
40
+
41
+ ## Installation
42
+
43
+ ```bash
44
+ uv add uipath-dev
45
+ ```
46
+
47
+ ## Development
48
+
49
+ Launch the Developer Console with mocked data:
50
+
51
+ ```bash
52
+ uv run uipath-dev
53
+ ```
54
+
55
+ To run tests:
56
+
57
+ ```bash
58
+ pytest
59
+ ```