Static linter for AIVane templates and application bundles
Project description
AIVane Template Linter
aivane-template-linter is a Python CLI for validating AIVane template JSON files and application bundles before they are sent to the Android REPL runtime.
It checks single templates, recursive template directories, and application directories that contain app.json, __main__.json, and child templates.
Install
uv tool install aivane-template-linter
Or with pipx:
pipx install aivane-template-linter
Run
Lint one template:
aivane-template-lint template.json
Lint an application bundle directory:
aivane-template-lint path/to/my-app -r
Emit machine-readable JSON:
aivane-template-lint path/to/my-app -r --json
Treat warnings as failures:
aivane-template-lint path/to/my-app -r --strict
Use a custom OperationType schema directory:
aivane-template-lint path/to/my-app -r --docs-dir path/to/operation-types
By default, the package uses the OperationType schema snapshot bundled with the installed wheel.
What It Checks
- JSON parse errors
- Required template and operation fields
- Unknown OperationTypes
- Missing, unknown, deprecated, mistyped, or invalid enum parameters
- Variable references that are not declared in the current template scope
breakandcontinueoutside loop context- Nested operation structure
- Application-level relationships when
app.jsonis present template.executetargets and parameter contracts across templates
Application Checks
When a directory contains app.json, the linter also checks the template graph:
app.mainTemplateIdresolves to exactly one template- template IDs and file aliases are not duplicated
- every
template.execute.templateIdtarget exists - required child template input parameters are passed
- extra parameters passed to child templates are reported as warnings
Exit Codes
0: no errors1: one or more errors, or warnings when--strictis used
The same exit-code behavior applies to --json.
Development
From this directory:
python -m pip install -e . pytest
python -m pytest tests
Build a local distribution:
python -m pip install build
python -m build
Related Docs
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aivane_template_linter-0.1.0.tar.gz.
File metadata
- Download URL: aivane_template_linter-0.1.0.tar.gz
- Upload date:
- Size: 48.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e324358bc778d8d9ba3ec2ad3ee3196973fec6840b4d74d429ecbd7121167099
|
|
| MD5 |
a53fad296218ca280af2d259e22656c0
|
|
| BLAKE2b-256 |
a19891368e53af75191a90e9cc59fdd1e3eb665ad4eda46c5194e31bffdf3af2
|
Provenance
The following attestation bundles were made for aivane_template_linter-0.1.0.tar.gz:
Publisher:
template-linter-publish.yml on aivanelabs/ai-rpa
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aivane_template_linter-0.1.0.tar.gz -
Subject digest:
e324358bc778d8d9ba3ec2ad3ee3196973fec6840b4d74d429ecbd7121167099 - Sigstore transparency entry: 1765063484
- Sigstore integration time:
-
Permalink:
aivanelabs/ai-rpa@35c1eb1bdd3914c2d7168d8f7e5a749b16c215e8 -
Branch / Tag:
refs/tags/template-linter-v0.1.0 - Owner: https://github.com/aivanelabs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
template-linter-publish.yml@35c1eb1bdd3914c2d7168d8f7e5a749b16c215e8 -
Trigger Event:
push
-
Statement type:
File details
Details for the file aivane_template_linter-0.1.0-py3-none-any.whl.
File metadata
- Download URL: aivane_template_linter-0.1.0-py3-none-any.whl
- Upload date:
- Size: 93.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
98333e28519f84bacbbb0db875c1873f45371f5f942c7d2cddc1e04508d560d2
|
|
| MD5 |
db25abdb331df451ee249fe09a1c1eb0
|
|
| BLAKE2b-256 |
7b0e8a84b73cbfbfba989c5e7ce35ac00d200edf4a0be66a77fed986747d512d
|
Provenance
The following attestation bundles were made for aivane_template_linter-0.1.0-py3-none-any.whl:
Publisher:
template-linter-publish.yml on aivanelabs/ai-rpa
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aivane_template_linter-0.1.0-py3-none-any.whl -
Subject digest:
98333e28519f84bacbbb0db875c1873f45371f5f942c7d2cddc1e04508d560d2 - Sigstore transparency entry: 1765064923
- Sigstore integration time:
-
Permalink:
aivanelabs/ai-rpa@35c1eb1bdd3914c2d7168d8f7e5a749b16c215e8 -
Branch / Tag:
refs/tags/template-linter-v0.1.0 - Owner: https://github.com/aivanelabs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
template-linter-publish.yml@35c1eb1bdd3914c2d7168d8f7e5a749b16c215e8 -
Trigger Event:
push
-
Statement type: