Skip to content

Commit cf6210a

Browse files
fix: replace placeholder URLs with SafewareTaiwan/leanai-asstf; add CI/CD workflows
1 parent 9ba9f21 commit cf6210a

53 files changed

Lines changed: 2660 additions & 361 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/FUNDING.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Funding and commercial licensing
22

3-
custom: ["https://github.com/safeware/Project_LeanAI/blob/main/docs/COMMERCIAL_LICENSE.md"]
3+
custom: ["https://github.com/SafewareTaiwan/leanai-asstf/blob/main/docs/COMMERCIAL_LICENSE.md"]
44

55
# For commercial licensing inquiries, contact:
66
# Bentley@safeware.com.tw

.github/workflows/ci.yml

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,16 @@ on:
88

99
jobs:
1010
test:
11+
name: Test (${{ matrix.os }}, Python ${{ matrix.python-version }})
1112
runs-on: ${{ matrix.os }}
1213
strategy:
1314
fail-fast: false
1415
matrix:
15-
os: [ubuntu-latest, macos-latest]
16-
python-version: ["3.9", "3.10", "3.11", "3.12"]
16+
os: [ubuntu-latest]
17+
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
18+
include:
19+
- os: macos-latest
20+
python-version: "3.13"
1721

1822
steps:
1923
- name: Checkout repository
@@ -23,25 +27,14 @@ jobs:
2327
uses: actions/setup-python@v5
2428
with:
2529
python-version: ${{ matrix.python-version }}
30+
cache: pip
2631

2732
- name: Install dependencies
2833
run: |
2934
python -m pip install --upgrade pip
3035
pip install -r requirements.txt
3136
pip install -r requirements-dev.txt
32-
33-
- name: Lint with ruff
34-
run: |
35-
ruff check asstf shared tests
36-
37-
- name: Check formatting with black
38-
run: |
39-
black --check asstf shared tests
40-
41-
- name: Type check with mypy
42-
run: |
43-
mypy asstf shared
37+
pip install -r requirements-optional.txt
4438
4539
- name: Run unit tests
46-
run: |
47-
pytest tests/ -v
40+
run: pytest tests/ -v

.github/workflows/lint.yml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
name: Lint
2+
3+
on:
4+
push:
5+
branches: [main, master]
6+
pull_request:
7+
branches: [main, master]
8+
9+
jobs:
10+
lint:
11+
name: Lint & Format
12+
runs-on: ubuntu-latest
13+
steps:
14+
- name: Checkout repository
15+
uses: actions/checkout@v4
16+
17+
- name: Set up Python
18+
uses: actions/setup-python@v5
19+
with:
20+
python-version: "3.13"
21+
cache: pip
22+
23+
- name: Install dependencies
24+
run: |
25+
python -m pip install --upgrade pip
26+
pip install -r requirements.txt
27+
pip install -r requirements-dev.txt
28+
29+
- name: Lint with ruff
30+
run: ruff check asstf shared tests
31+
32+
- name: Check formatting with black
33+
run: black --check asstf shared tests
34+
35+
- name: Type check with mypy
36+
run: mypy asstf shared

.github/workflows/publish.yml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
name: Publish to PyPI
2+
3+
on:
4+
release:
5+
types: [published]
6+
workflow_dispatch:
7+
8+
jobs:
9+
build-and-publish:
10+
name: Build and publish package to PyPI
11+
runs-on: ubuntu-latest
12+
environment:
13+
name: pypi
14+
url: https://pypi.org/p/leanai-asstf
15+
permissions:
16+
id-token: write # Required for Trusted Publishing (OIDC)
17+
18+
steps:
19+
- name: Checkout repository
20+
uses: actions/checkout@v4
21+
22+
- name: Set up Python
23+
uses: actions/setup-python@v5
24+
with:
25+
python-version: "3.13"
26+
cache: pip
27+
28+
- name: Install build dependencies
29+
run: |
30+
python -m pip install --upgrade pip
31+
pip install build
32+
33+
- name: Build package
34+
run: python -m build
35+
36+
- name: Publish package to PyPI
37+
uses: pypa/gh-action-pypi-publish@release/v1
38+
with:
39+
packages-dir: dist/

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@ All notable changes to the ASSTF project will be documented in this file.
44

55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
66

7+
## [1.0.1] - 2026-07-05
8+
9+
### Changed
10+
11+
- Expanded PyPI keywords with core and extended SEO terms for better discoverability.
12+
713
## [1.0.0] - 2026-07-05
814

915
### Added

CONTRIBUTING.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ This project is dual-licensed under the [LeanAI ASSTF Community License](LICENSE
1010

1111
### Reporting Bugs
1212

13-
1. Check if the issue already exists in [GitHub Issues](https://github.com/safeware/Project_LeanAI/issues).
13+
1. Check if the issue already exists in [GitHub Issues](https://github.com/SafewareTaiwan/leanai-asstf/issues).
1414
2. If not, open a new issue using the **Bug Report** template.
1515
3. Include:
1616
- A clear description of the bug
@@ -58,8 +58,8 @@ We especially welcome benchmarks on public datasets! To contribute:
5858
## Development Setup
5959

6060
```bash
61-
git clone https://github.com/safeware/Project_LeanAI.git
62-
cd Project_LeanAI
61+
git clone https://github.com/SafewareTaiwan/leanai-asstf.git
62+
cd leanai-asstf
6363
python3 -m venv .venv
6464
source .venv/bin/activate
6565
pip install -r requirements.txt

Document/ASSTF-based project.docx

27.6 KB
Binary file not shown.

Document/OpenSourceStrategy.docx

24.1 KB
Binary file not shown.

LICENSE

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# LeanAI ASSTF Community License
2+
3+
Version 1.0 - Effective Date: 2026-07-03
4+
5+
This License Agreement (the "Agreement") is a legal contract between Safeware Technologies Inc., Ltd. (the "Licensor") and you (the "Licensee") for the use of the LeanAI ASSTF software and associated documentation (the "Software").
6+
7+
## 1. Definitions
8+
9+
- **Software**: The source code, model definitions, training scripts, evaluation scripts, documentation, and any other materials distributed under this License.
10+
- **ASSTF Technology**: The Adaptive State-Space Transfer Function algorithm, mathematical formulations, and related proprietary techniques described in the Licensor's technical publications and patent applications.
11+
- **Non-Commercial Use**: Use that is not primarily intended for, or directed toward, commercial advantage or monetary compensation.
12+
- **Commercial Use**: Any use that is not Non-Commercial Use, including but not limited to incorporation into products or services offered for sale, deployment in revenue-generating operations, SaaS offerings, and use by for-profit entities in the course of business.
13+
14+
## 2. Grant of Rights
15+
16+
Subject to the restrictions set forth in Section 3, the Licensor hereby grants the Licensee a worldwide, royalty-free, non-exclusive, non-transferable license to:
17+
18+
1. Use the Software for Non-Commercial purposes.
19+
2. Study, modify, and create derivative works of the Software for Non-Commercial purposes.
20+
3. Distribute copies of the Software and derivative works, provided that such distribution is also under the terms of this Community License.
21+
4. Publish research results, benchmarks, and educational materials based on the Software, provided that the Licensor and the ASSTF Technology are properly attributed.
22+
23+
## 3. Restrictions
24+
25+
1. **No Commercial Use**. The Licensee may not use the Software, in whole or in part, for any Commercial Use without obtaining a separate Commercial License from the Licensor.
26+
2. **No Patent Grant**. This License does not grant the Licensee any rights under the Licensor's patents, patent applications, trade secrets, or other intellectual property relating to the ASSTF Technology, except as expressly necessary to exercise the rights granted in Section 2.
27+
3. **Attribution**. The Licensee must retain all copyright, patent, trademark, and attribution notices contained in the Software. Any distributed derivative work must include a prominent notice stating that it is based on the LeanAI ASSTF Software and provide a link to the original repository.
28+
4. **No Warranty Disclaimer Removal**. The Licensee may not remove or alter any warranty disclaimers or liability limitations in this License.
29+
5. **No Endorsement**. The Licensee may not use the Licensor's trademarks or imply endorsement without prior written permission.
30+
31+
## 4. Source Code Availability
32+
33+
The source code of the Software is made available to the Licensee under this License. Availability of source code does not constitute a grant of rights in the underlying ASSTF Technology beyond the limited scope expressly stated herein.
34+
35+
## 5. Termination
36+
37+
This License automatically terminates if the Licensee violates any of its terms. Upon termination, the Licensee must immediately cease all use and distribution of the Software and destroy all copies in its possession.
38+
39+
## 6. Disclaimer of Warranty
40+
41+
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.
42+
43+
## 7. Limitation of Liability
44+
45+
IN NO EVENT SHALL THE LICENSOR BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT, OR OTHERWISE, ARISING FROM, OUT OF, OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
46+
47+
## 8. Commercial Licensing
48+
49+
For Commercial Use, please contact:
50+
51+
Safeware Technologies Inc., Ltd.
52+
Attn: LeanAI Licensing Department
53+
Email: Bentley@safeware.com.tw
54+
55+
## 9. Governing Law
56+
57+
This Agreement shall be governed by and construed in accordance with the laws of the jurisdiction in which the Licensor is headquartered, without regard to conflict of law principles.

README.md

Lines changed: 8 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,21 @@
1-
# Project_LeanAI - ASSTF Stage 1
2-
3-
ASSTF (Adaptive State-Space Transfer Function): A PyTorch framework for dynamic neural topology that reduces parameters by 5-10x, enables test-time adaptation, and outperforms static models on structure-sensitive tasks.
4-
5-
Project_LeanAI is a source-available research implementation of Adaptive State-Space Transfer Functions (ASSTF) for non-commercial research and educational use.
6-
7-
 
8-
9-
---
10-
111
<div align="center">
12-
<img src="assets/logo.png?raw=true" alt="ASSTF Logo" width="120">
2+
<img src="assets/logo.svg" alt="ASSTF Logo" width="120">
133
<h1>LeanAI ASSTF</h1>
144
<p><strong>Adaptive State-Space Transfer Function</strong></p>
155
</div>
166

17-
---
18-
19-
&nbsp;
20-
217
[![Python 3.9+](https://img.shields.io/badge/python-3.9+-blue.svg)](https://www.python.org/downloads/)
228
[![PyTorch 2.0+](https://img.shields.io/badge/PyTorch-2.0+-ee4c2c.svg)](https://pytorch.org/)
239
[![License: Community/Commercial](https://img.shields.io/badge/license-Community%2FCommercial-orange.svg)](LICENSE)
24-
[![Tests](https://img.shields.io/badge/tests-pytest-green.svg)](tests/)
10+
[![Tests](https://github.com/SafewareTaiwan/leanai-asstf/actions/workflows/ci.yml/badge.svg)](https://github.com/SafewareTaiwan/leanai-asstf/actions)
2511

2612
> **Tiny, self-adapting neural layers for efficient edge AI and continual learning.**
2713
2814
ASSTF (Adaptive State-Space Transfer Function) is a PyTorch framework that lets neural layers continuously reconfigure their effective state space through a small set of **structural parameters**. It combines **parameter-efficient learning** with **inference-time adaptation**, making it ideal for edge devices, personalization, and continual learning.
2915

30-
Project_LeanAI is a source-available research implementation of Adaptive State-Space Transfer Functions (ASSTF). It is licensed under the LeanAI ASSTF Community License for non-commercial research and educational use. For commercial use, SaaS deployment, or redistribution in products, please contact Safeware Technologies for a commercial license.
31-
3216
---
3317

34-
[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/safeware/Project_LeanAI/blob/main/notebooks/ASSTF_Quickstart.ipynb)
18+
[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/SafewareTaiwan/leanai-asstf/blob/main/notebooks/ASSTF_Quickstart.ipynb)
3519

3620
## 🚀 Current Status: Stage 1 — Grounding Credit
3721

@@ -74,8 +58,8 @@ out = layer(x) # shape: (16, 64)
7458
Train and evaluate all six demos:
7559

7660
```bash
77-
git clone https://github.com/YOUR_ORG/Project_LeanAI.git
78-
cd Project_LeanAI
61+
git clone https://github.com/SafewareTaiwan/leanai-asstf.git
62+
cd leanai-asstf
7963
python3 -m venv .venv && source .venv/bin/activate
8064
pip install -r requirements.txt
8165
pytest tests/ -v
@@ -95,8 +79,8 @@ pip install leanai-asstf
9579
### From source
9680

9781
```bash
98-
git clone https://github.com/YOUR_ORG/Project_LeanAI.git
99-
cd Project_LeanAI
82+
git clone https://github.com/SafewareTaiwan/leanai-asstf.git
83+
cd leanai-asstf
10084
pip install -r requirements.txt
10185
```
10286

@@ -201,7 +185,7 @@ python run_all.py
201185
## Project Structure
202186

203187
```
204-
Project_LeanAI/
188+
leanai-asstf/
205189
├── asstf/ # Core ASSTF framework
206190
├── shared/ # Baselines, metrics, early stopping
207191
├── app_01_gesture/ # Gesture recognition demo

0 commit comments

Comments
 (0)