Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 48 additions & 0 deletions .github/workflows/lib-jims-max.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# This file was automatically generated by uv-workspace-codegen
# For more information, see: https://github.com/epoch8/uv-workspace-codegen/blob/master/README.md
# Do not edit this file manually - changes will be overwritten

name: Test lib jims-max

on:
pull_request:
paths:
- "libs/jims-max/**"
push:
branches: [master]
paths:
- "libs/jims-max/**"
- "pyproject.toml"
- "uv.lock"

jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
lfs: true

- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: "3.12"

- name: Install the latest version of uv
uses: astral-sh/setup-uv@v6

- name: Install
shell: bash
run: |
cd libs/jims-max
uv sync --all-groups

- name: Check formatting
shell: bash
run: |
uv run ruff check libs/jims-max

- name: Check typing
shell: bash
run: |
uv run mypy -p jims_max
72 changes: 72 additions & 0 deletions .github/workflows/publish-jims-max.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
# This file was automatically generated by uv-workspace-codegen
# For more information, see: https://github.com/epoch8/uv-workspace-codegen/blob/master/README.md
# Do not edit this file manually - changes will be overwritten

name: Publish jims-max

on:
workflow_dispatch:
push:
tags:
- 'jims-*'

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0

- name: Install uv
uses: astral-sh/setup-uv@v7

- name: Build wheel
run: uv build
working-directory: libs/jims-max

- name: Store the distribution packages
uses: actions/upload-artifact@v6
with:
name: python-package-distributions
path: dist/

publish-to-test-pypi:
environment:
name: testpypi
url: https://test.pypi.org/project/jims-max/
permissions:
id-token: write
runs-on: ubuntu-latest
needs: build

steps:
- uses: actions/download-artifact@v7
with:
name: python-package-distributions
path: dist/

- name: Publish distribution to TestPyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
repository-url: https://test.pypi.org/legacy/

publish-to-pypi:
environment:
name: pypi
url: https://pypi.org/project/jims-max/
permissions:
id-token: write
runs-on: ubuntu-latest
needs:
- build
- publish-to-test-pypi

steps:
- uses: actions/download-artifact@v7
with:
name: python-package-distributions
path: dist/

- name: Publish distribution to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
5 changes: 4 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ build_jims_api:
build_jims_telegram:
uv build libs/jims-telegram

build_jims_max:
uv build libs/jims-max

build_jims_tui:
uv build libs/jims-tui

Expand All @@ -26,7 +29,7 @@ build_vedana_etl:
build_vedana_backoffice:
uv build libs/vedana-backoffice

build: build_jims_backoffice build_jims_core build_jims_api build_jims_telegram build_jims_tui build_jims_widget build_vedana_core build_vedana_etl build_vedana_backoffice
build: build_jims_backoffice build_jims_core build_jims_api build_jims_telegram build_jims_max build_jims_tui build_jims_widget build_vedana_core build_vedana_etl build_vedana_backoffice

build-vedana-project:
cd apps/vedana && make build
Expand Down
1 change: 1 addition & 0 deletions libs/jims-max/.env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
MAX_BOT_TOKEN=""
12 changes: 12 additions & 0 deletions libs/jims-max/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
MAX interface for JIMS
======================

`jims-max` provides a MAX messenger interface for JIMS applications

It mirrors the architecture of `jims-telegram`:

- Uses the `maxapi` Python SDK for interacting with the MAX platform.
- Bridges MAX updates into JIMS threads and events.
- Emits JIMS `comm.*` events from incoming user messages and button clicks.
- Renders `comm.assistant_message` and `comm.assistant_buttons` events back into MAX messages.

49 changes: 49 additions & 0 deletions libs/jims-max/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
[project]
name = "jims-max"
dynamic = ["version"]
description = "MAX messenger interface for JIMS applications"
readme = "README.md"
authors = [
{ name = "Timur Sheydaev", email = "tsheyd@epoch8.co" },
]
requires-python = ">=3.12"
dependencies = [
"maxapi>=0.1",
"aiohttp>=3.11.16",
"loguru>=0.7.3",
"pydantic>=2.4.1",
"pydantic-settings>=2.8.1",
"click>=8.0",
"jims-core>=0.5.1",
]

[dependency-groups]
dev = [
"mypy>=1.19.0",
"pytest>=8.4.1",
"ruff>=0.14.10",
"types-pyyaml>=6.0.12.20250822",
]

[build-system]
requires = ["hatchling", "uv-dynamic-versioning"]
build-backend = "hatchling.build"

[tool.hatch.version]
source = "uv-dynamic-versioning"

[tool.uv-dynamic-versioning]
enable = true
vcs = "git"
pattern = "default-unprefixed"
pattern-prefix = "jims-"

[tool.uv-workspace-codegen]
generate = true
template_type = ["lib", "publish"]
generate_standard_pytest_step = false
typechecker = "mypy"

[project.scripts]
jims-max = "jims_max.main:main"

4 changes: 4 additions & 0 deletions libs/jims-max/src/jims_max/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
from .controller import MaxController

__all__ = ["MaxController"]

Loading
Loading