distributable, please
Some checks failed
CI / Rustfmt (push) Successful in 22s
CI / Cargo Audit & Deny (push) Successful in 36s
CI / Security Blocking Checks (push) Successful in 6s
CI / Web Blocking Checks (push) Successful in 53s
CI / Web Advisory Checks (push) Successful in 34s
Publish Images / Resolve Publish Metadata (push) Successful in 1s
CI / Security Advisory Checks (push) Successful in 38s
CI / Clippy (push) Successful in 2m7s
Publish Images / Publish Docker Dist Bundle (push) Failing after 19s
Publish Images / Publish web (amd64) (push) Successful in 49s
Publish Images / Publish web (arm64) (push) Successful in 3m31s
CI / Tests (push) Successful in 8m48s
Publish Images / Build Rust Bundles (amd64) (push) Successful in 12m42s
Publish Images / Build Rust Bundles (arm64) (push) Successful in 12m19s
Publish Images / Publish agent (amd64) (push) Successful in 26s
Publish Images / Publish api (amd64) (push) Successful in 38s
Publish Images / Publish notifier (amd64) (push) Successful in 42s
Publish Images / Publish executor (amd64) (push) Successful in 46s
Publish Images / Publish agent (arm64) (push) Successful in 56s
Publish Images / Publish api (arm64) (push) Successful in 1m52s
Publish Images / Publish executor (arm64) (push) Successful in 2m2s
Publish Images / Publish notifier (arm64) (push) Successful in 2m3s
Publish Images / Publish manifest attune/agent (push) Successful in 6s
Publish Images / Publish manifest attune/api (push) Successful in 11s
Publish Images / Publish manifest attune/executor (push) Successful in 10s
Publish Images / Publish manifest attune/notifier (push) Successful in 8s
Publish Images / Publish manifest attune/web (push) Successful in 8s

This commit is contained in:
2026-03-26 12:26:23 -05:00
parent da8055cb79
commit 938c271ff5
72 changed files with 14798 additions and 6 deletions

View File

@@ -0,0 +1,60 @@
# Core Pack Runtime Metadata
This directory contains runtime metadata YAML files for the core pack. Each file defines a runtime environment that can be used to execute actions and sensors.
## File Structure
Each runtime YAML file contains only the fields that are stored in the database:
- `ref` - Unique runtime reference (format: pack.name)
- `pack_ref` - Pack this runtime belongs to
- `name` - Human-readable runtime name
- `description` - Brief description of the runtime
- `distributions` - Runtime verification and capability metadata (JSONB)
- `installation` - Installation requirements and metadata (JSONB)
- `execution_config` - Interpreter, environment, dependency, and execution-time env var metadata
## `execution_config.env_vars`
Runtime authors can declare execution-time environment variables in a purely declarative way.
String values replace the variable entirely:
```yaml
env_vars:
NODE_PATH: "{env_dir}/node_modules"
```
Object values support merge semantics against an existing value already present in the execution environment:
```yaml
env_vars:
PYTHONPATH:
operation: prepend
value: "{pack_dir}/lib"
separator: ":"
```
Supported operations:
- `set` - Replace the variable with the resolved value
- `prepend` - Add the resolved value before the existing value
- `append` - Add the resolved value after the existing value
Supported template variables:
- `{pack_dir}`
- `{env_dir}`
- `{interpreter}`
- `{manifest_path}`
## Available Runtimes
- **python.yaml** - Python 3 runtime for actions and sensors
- **nodejs.yaml** - Node.js runtime for JavaScript-based actions and sensors
- **shell.yaml** - Shell (bash/sh) runtime - always available
- **native.yaml** - Native compiled runtime (Rust, Go, C, etc.) - executes binaries directly without an interpreter
## Loading
Runtime metadata files are loaded by the pack loading system and inserted into the `runtime` table in the database.

View File

@@ -0,0 +1,48 @@
ref: core.go
pack_ref: core
name: Go
aliases: [go, golang]
description: Go runtime for compiling and running Go scripts and programs
distributions:
verification:
commands:
- binary: go
args:
- "version"
exit_code: 0
pattern: "go\\d+\\."
priority: 1
min_version: "1.18"
recommended_version: "1.22"
installation:
package_managers:
- apt
- snap
- brew
module_support: true
execution_config:
interpreter:
binary: go
args:
- "run"
file_extension: ".go"
environment:
env_type: gopath
dir_name: gopath
create_command:
- sh
- "-c"
- "mkdir -p {env_dir}"
interpreter_path: null
dependencies:
manifest_file: go.mod
install_command:
- sh
- "-c"
- "cd {pack_dir} && GOPATH={env_dir} go mod download 2>/dev/null || true"
env_vars:
GOPATH: "{env_dir}"
GOMODCACHE: "{env_dir}/pkg/mod"

View File

@@ -0,0 +1,31 @@
ref: core.java
pack_ref: core
name: Java
aliases: [java, jdk, openjdk]
description: Java runtime for executing Java programs and scripts
distributions:
verification:
commands:
- binary: java
args:
- "-version"
exit_code: 0
pattern: "version \"\\d+"
priority: 1
min_version: "11"
recommended_version: "21"
installation:
interpreters:
- java
- javac
package_managers:
- maven
- gradle
execution_config:
interpreter:
binary: java
args: []
file_extension: ".java"

View File

@@ -0,0 +1,21 @@
ref: core.native
pack_ref: core
name: Native
aliases: [native, builtin, standalone]
description: Native compiled runtime (Rust, Go, C, etc.) - executes binaries directly without an interpreter
distributions:
verification:
always_available: true
check_required: false
languages:
- rust
- go
- c
- c++
installation:
build_required: false
system_native: true
execution_config: {}

View File

@@ -0,0 +1,180 @@
ref: core.nodejs
pack_ref: core
name: Node.js
aliases: [node, nodejs, "node.js"]
description: Node.js runtime for JavaScript-based actions and sensors
distributions:
verification:
commands:
- binary: node
args:
- "--version"
exit_code: 0
pattern: "v\\d+\\.\\d+\\.\\d+"
priority: 1
min_version: "16.0.0"
recommended_version: "20.0.0"
installation:
package_managers:
- npm
- yarn
- pnpm
module_support: true
execution_config:
interpreter:
binary: node
args: []
file_extension: ".js"
environment:
env_type: node_modules
dir_name: node_modules
create_command:
- sh
- "-c"
- "mkdir -p {env_dir} && cp {manifest_path} {env_dir}/ 2>/dev/null || true"
interpreter_path: null
dependencies:
manifest_file: package.json
install_command:
- npm
- install
- "--prefix"
- "{env_dir}"
env_vars:
NODE_PATH: "{env_dir}/node_modules"
# Version-specific execution configurations.
# Each entry describes how to invoke a particular Node.js version.
# The worker uses these when an action declares a runtime_version constraint
# (e.g., runtime_version: ">=20"). The highest available version satisfying
# the constraint is selected, and its execution_config replaces the parent's.
versions:
- version: "18"
distributions:
verification:
commands:
- binary: node18
args:
- "--version"
exit_code: 0
pattern: "v18\\."
priority: 1
- binary: node
args:
- "--version"
exit_code: 0
pattern: "v18\\."
priority: 2
execution_config:
interpreter:
binary: node18
args: []
file_extension: ".js"
environment:
env_type: node_modules
dir_name: node_modules
create_command:
- sh
- "-c"
- "mkdir -p {env_dir} && cp {manifest_path} {env_dir}/ 2>/dev/null || true"
interpreter_path: null
dependencies:
manifest_file: package.json
install_command:
- npm
- install
- "--prefix"
- "{env_dir}"
env_vars:
NODE_PATH: "{env_dir}/node_modules"
meta:
lts_codename: "hydrogen"
eol: "2025-04-30"
- version: "20"
is_default: true
distributions:
verification:
commands:
- binary: node20
args:
- "--version"
exit_code: 0
pattern: "v20\\."
priority: 1
- binary: node
args:
- "--version"
exit_code: 0
pattern: "v20\\."
priority: 2
execution_config:
interpreter:
binary: node20
args: []
file_extension: ".js"
environment:
env_type: node_modules
dir_name: node_modules
create_command:
- sh
- "-c"
- "mkdir -p {env_dir} && cp {manifest_path} {env_dir}/ 2>/dev/null || true"
interpreter_path: null
dependencies:
manifest_file: package.json
install_command:
- npm
- install
- "--prefix"
- "{env_dir}"
env_vars:
NODE_PATH: "{env_dir}/node_modules"
meta:
lts_codename: "iron"
eol: "2026-04-30"
- version: "22"
distributions:
verification:
commands:
- binary: node22
args:
- "--version"
exit_code: 0
pattern: "v22\\."
priority: 1
- binary: node
args:
- "--version"
exit_code: 0
pattern: "v22\\."
priority: 2
execution_config:
interpreter:
binary: node22
args: []
file_extension: ".js"
environment:
env_type: node_modules
dir_name: node_modules
create_command:
- sh
- "-c"
- "mkdir -p {env_dir} && cp {manifest_path} {env_dir}/ 2>/dev/null || true"
interpreter_path: null
dependencies:
manifest_file: package.json
install_command:
- npm
- install
- "--prefix"
- "{env_dir}"
env_vars:
NODE_PATH: "{env_dir}/node_modules"
meta:
lts_codename: "jod"
eol: "2027-04-30"

View File

@@ -0,0 +1,47 @@
ref: core.perl
pack_ref: core
name: Perl
aliases: [perl, perl5]
description: Perl runtime for script execution with optional CPAN dependency management
distributions:
verification:
commands:
- binary: perl
args:
- "--version"
exit_code: 0
pattern: "perl.*v\\d+\\."
priority: 1
min_version: "5.20"
recommended_version: "5.38"
installation:
package_managers:
- cpanm
- cpan
interpreters:
- perl
execution_config:
interpreter:
binary: perl
args: []
file_extension: ".pl"
environment:
env_type: local_lib
dir_name: perl5
create_command:
- sh
- "-c"
- "mkdir -p {env_dir}/lib/perl5"
interpreter_path: null
dependencies:
manifest_file: cpanfile
install_command:
- sh
- "-c"
- "cd {pack_dir} && PERL5LIB={env_dir}/lib/perl5 PERL_LOCAL_LIB_ROOT={env_dir} cpanm --local-lib {env_dir} --installdeps --quiet . 2>/dev/null || true"
env_vars:
PERL5LIB: "{env_dir}/lib/perl5"
PERL_LOCAL_LIB_ROOT: "{env_dir}"

View File

@@ -0,0 +1,191 @@
ref: core.python
pack_ref: core
name: Python
aliases: [python, python3]
description: Python 3 runtime for actions and sensors with automatic environment management
distributions:
verification:
commands:
- binary: python3
args:
- "--version"
exit_code: 0
pattern: "Python 3\\."
priority: 1
- binary: python
args:
- "--version"
exit_code: 0
pattern: "Python 3\\."
priority: 2
min_version: "3.8"
recommended_version: "3.12"
installation:
package_managers:
- pip
- pipenv
- poetry
virtual_env_support: true
execution_config:
interpreter:
binary: python3
args:
- "-u"
file_extension: ".py"
environment:
env_type: virtualenv
dir_name: ".venv"
create_command:
- python3
- "-m"
- venv
- "--copies"
- "{env_dir}"
interpreter_path: "{env_dir}/bin/python3"
dependencies:
manifest_file: requirements.txt
install_command:
- "{interpreter}"
- "-m"
- pip
- install
- "-r"
- "{manifest_path}"
env_vars:
PYTHONPATH:
operation: prepend
value: "{pack_dir}/lib"
separator: ":"
# Version-specific execution configurations.
# Each entry describes how to invoke a particular Python version.
# The worker uses these when an action declares a runtime_version constraint
# (e.g., runtime_version: ">=3.12"). The highest available version satisfying
# the constraint is selected, and its execution_config replaces the parent's.
versions:
- version: "3.11"
distributions:
verification:
commands:
- binary: python3.11
args:
- "--version"
exit_code: 0
pattern: "Python 3\\.11\\."
priority: 1
execution_config:
interpreter:
binary: python3.11
args:
- "-u"
file_extension: ".py"
environment:
env_type: virtualenv
dir_name: ".venv"
create_command:
- python3.11
- "-m"
- venv
- "--copies"
- "{env_dir}"
interpreter_path: "{env_dir}/bin/python3.11"
dependencies:
manifest_file: requirements.txt
install_command:
- "{interpreter}"
- "-m"
- pip
- install
- "-r"
- "{manifest_path}"
env_vars:
PYTHONPATH:
operation: prepend
value: "{pack_dir}/lib"
separator: ":"
- version: "3.12"
is_default: true
distributions:
verification:
commands:
- binary: python3.12
args:
- "--version"
exit_code: 0
pattern: "Python 3\\.12\\."
priority: 1
execution_config:
interpreter:
binary: python3.12
args:
- "-u"
file_extension: ".py"
environment:
env_type: virtualenv
dir_name: ".venv"
create_command:
- python3.12
- "-m"
- venv
- "--copies"
- "{env_dir}"
interpreter_path: "{env_dir}/bin/python3.12"
dependencies:
manifest_file: requirements.txt
install_command:
- "{interpreter}"
- "-m"
- pip
- install
- "-r"
- "{manifest_path}"
env_vars:
PYTHONPATH:
operation: prepend
value: "{pack_dir}/lib"
separator: ":"
- version: "3.13"
distributions:
verification:
commands:
- binary: python3.13
args:
- "--version"
exit_code: 0
pattern: "Python 3\\.13\\."
priority: 1
execution_config:
interpreter:
binary: python3.13
args:
- "-u"
file_extension: ".py"
environment:
env_type: virtualenv
dir_name: ".venv"
create_command:
- python3.13
- "-m"
- venv
- "--copies"
- "{env_dir}"
interpreter_path: "{env_dir}/bin/python3.13"
dependencies:
manifest_file: requirements.txt
install_command:
- "{interpreter}"
- "-m"
- pip
- install
- "-r"
- "{manifest_path}"
env_vars:
PYTHONPATH:
operation: prepend
value: "{pack_dir}/lib"
separator: ":"

View File

@@ -0,0 +1,48 @@
ref: core.r
pack_ref: core
name: R
aliases: [r, rscript]
description: R runtime for statistical computing and data analysis scripts
distributions:
verification:
commands:
- binary: Rscript
args:
- "--version"
exit_code: 0
pattern: "\\d+\\.\\d+\\.\\d+"
priority: 1
min_version: "4.0.0"
recommended_version: "4.4.0"
installation:
package_managers:
- install.packages
- renv
interpreters:
- Rscript
- R
execution_config:
interpreter:
binary: Rscript
args:
- "--vanilla"
file_extension: ".R"
environment:
env_type: renv
dir_name: renv
create_command:
- sh
- "-c"
- "mkdir -p {env_dir}/library"
interpreter_path: null
dependencies:
manifest_file: renv.lock
install_command:
- sh
- "-c"
- 'cd {pack_dir} && R_LIBS_USER={env_dir}/library Rscript -e "if (file.exists(''renv.lock'')) renv::restore(library=''{env_dir}/library'', prompt=FALSE)" 2>/dev/null || true'
env_vars:
R_LIBS_USER: "{env_dir}/library"

View File

@@ -0,0 +1,49 @@
ref: core.ruby
pack_ref: core
name: Ruby
aliases: [ruby, rb]
description: Ruby runtime for script execution with automatic gem environment management
distributions:
verification:
commands:
- binary: ruby
args:
- "--version"
exit_code: 0
pattern: "ruby \\d+\\."
priority: 1
min_version: "2.7"
recommended_version: "3.2"
installation:
package_managers:
- gem
- bundler
interpreters:
- ruby
portable: false
execution_config:
interpreter:
binary: ruby
args: []
file_extension: ".rb"
environment:
env_type: gem_home
dir_name: gems
create_command:
- sh
- "-c"
- "mkdir -p {env_dir}/gems"
interpreter_path: null
dependencies:
manifest_file: Gemfile
install_command:
- sh
- "-c"
- "cd {pack_dir} && GEM_HOME={env_dir}/gems GEM_PATH={env_dir}/gems bundle install --quiet 2>/dev/null || true"
env_vars:
GEM_HOME: "{env_dir}/gems"
GEM_PATH: "{env_dir}/gems"
BUNDLE_PATH: "{env_dir}/gems"

View File

@@ -0,0 +1,39 @@
ref: core.shell
pack_ref: core
name: Shell
aliases: [shell, bash, sh]
description: Shell (bash/sh) runtime for script execution - always available
distributions:
verification:
commands:
- binary: sh
args:
- "--version"
exit_code: 0
optional: true
priority: 1
- binary: bash
args:
- "--version"
exit_code: 0
optional: true
priority: 2
always_available: true
installation:
interpreters:
- sh
- bash
- dash
portable: true
execution_config:
interpreter:
binary: "/bin/bash"
args: []
file_extension: ".sh"
inline_execution:
strategy: temp_file
extension: ".sh"
inject_shell_helpers: true