neuralnode 2.2.9__tar.gz → 2.2.10__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.
- {neuralnode-2.2.9 → neuralnode-2.2.10}/.env.example +22 -22
- {neuralnode-2.2.9 → neuralnode-2.2.10}/.github/PULL_REQUEST_TEMPLATE.md +15 -15
- {neuralnode-2.2.9 → neuralnode-2.2.10}/.github/workflows/tests.yml +86 -86
- {neuralnode-2.2.9 → neuralnode-2.2.10}/.gitignore +41 -41
- {neuralnode-2.2.9 → neuralnode-2.2.10}/CHANGELOG.md +8 -0
- {neuralnode-2.2.9 → neuralnode-2.2.10}/CONTRIBUTING.md +40 -40
- {neuralnode-2.2.9 → neuralnode-2.2.10}/LICENSE +157 -157
- {neuralnode-2.2.9 → neuralnode-2.2.10}/NOTICE +15 -15
- {neuralnode-2.2.9 → neuralnode-2.2.10}/PKG-INFO +219 -357
- neuralnode-2.2.10/README.md +332 -0
- {neuralnode-2.2.9 → neuralnode-2.2.10}/THIRD_PARTY_NOTICES.md +12 -12
- {neuralnode-2.2.9 → neuralnode-2.2.10}/TOKENAI_CLA.md +59 -59
- {neuralnode-2.2.9 → neuralnode-2.2.10}/TRADEMARKS.md +21 -21
- {neuralnode-2.2.9 → neuralnode-2.2.10}/docs/documentation.md +263 -262
- {neuralnode-2.2.9 → neuralnode-2.2.10}/docs/replica_voice_ids.csv +21 -21
- {neuralnode-2.2.9 → neuralnode-2.2.10}/docs/replica_voice_ids.md +41 -41
- {neuralnode-2.2.9 → neuralnode-2.2.10}/docs/telegram_guide.md +125 -125
- {neuralnode-2.2.9 → neuralnode-2.2.10}/examples/agent_with_tools.py +82 -82
- {neuralnode-2.2.9 → neuralnode-2.2.10}/examples/basic_chat.py +36 -36
- {neuralnode-2.2.9 → neuralnode-2.2.10}/examples/horus_codes_camples/01_basic_usage.py +21 -21
- {neuralnode-2.2.9 → neuralnode-2.2.10}/examples/horus_codes_camples/02_horus_lens.py +16 -16
- {neuralnode-2.2.9 → neuralnode-2.2.10}/examples/horus_codes_camples/03_one_liner.py +17 -17
- {neuralnode-2.2.9 → neuralnode-2.2.10}/examples/horus_codes_camples/04_custom_cache.py +17 -17
- {neuralnode-2.2.9 → neuralnode-2.2.10}/examples/horus_codes_camples/05_4bit_quantization.py +20 -20
- {neuralnode-2.2.9 → neuralnode-2.2.10}/examples/horus_codes_camples/06_8bit_quantization.py +17 -17
- {neuralnode-2.2.9 → neuralnode-2.2.10}/examples/horus_codes_camples/07_multi_gpu.py +15 -15
- {neuralnode-2.2.9 → neuralnode-2.2.10}/examples/horus_codes_camples/08_flash_attention.py +16 -16
- {neuralnode-2.2.9 → neuralnode-2.2.10}/examples/horus_codes_camples/09_data_types.py +26 -26
- {neuralnode-2.2.9 → neuralnode-2.2.10}/examples/horus_codes_camples/10_generation_params.py +34 -34
- {neuralnode-2.2.9 → neuralnode-2.2.10}/examples/horus_codes_camples/11_streaming.py +13 -13
- {neuralnode-2.2.9 → neuralnode-2.2.10}/examples/horus_codes_camples/12_chat_templates.py +22 -22
- {neuralnode-2.2.9 → neuralnode-2.2.10}/examples/horus_codes_camples/13_offline_mode.py +14 -14
- {neuralnode-2.2.9 → neuralnode-2.2.10}/examples/horus_codes_camples/14_force_download.py +14 -14
- {neuralnode-2.2.9 → neuralnode-2.2.10}/examples/horus_codes_camples/15_model_info.py +24 -24
- {neuralnode-2.2.9 → neuralnode-2.2.10}/examples/horus_codes_camples/16_cpu_offloading.py +17 -17
- {neuralnode-2.2.9 → neuralnode-2.2.10}/examples/horus_codes_camples/17_cpu_only.py +16 -16
- {neuralnode-2.2.9 → neuralnode-2.2.10}/examples/horus_codes_camples/18_production_setup.py +43 -43
- {neuralnode-2.2.9 → neuralnode-2.2.10}/examples/horus_codes_camples/19_gguf_4bit.py +14 -14
- {neuralnode-2.2.9 → neuralnode-2.2.10}/examples/horus_codes_camples/20_gguf_5bit.py +13 -13
- {neuralnode-2.2.9 → neuralnode-2.2.10}/examples/horus_codes_camples/21_gguf_6bit.py +13 -13
- {neuralnode-2.2.9 → neuralnode-2.2.10}/examples/horus_codes_camples/22_gguf_8bit.py +13 -13
- {neuralnode-2.2.9 → neuralnode-2.2.10}/examples/horus_codes_camples/23_gguf_16bit.py +14 -14
- {neuralnode-2.2.9 → neuralnode-2.2.10}/examples/horus_codes_camples/24_list_models.py +26 -26
- {neuralnode-2.2.9 → neuralnode-2.2.10}/examples/horus_codes_camples/25_interactive_chat.py +53 -53
- {neuralnode-2.2.9 → neuralnode-2.2.10}/examples/horus_codes_camples/26_horus_hiero.py +16 -16
- {neuralnode-2.2.9 → neuralnode-2.2.10}/examples/horus_codes_camples/README.md +70 -70
- {neuralnode-2.2.9 → neuralnode-2.2.10}/examples/horus_download_guide.py +36 -36
- {neuralnode-2.2.9 → neuralnode-2.2.10}/examples/horus_examples.py +257 -257
- {neuralnode-2.2.9 → neuralnode-2.2.10}/examples/horus_tq_ready_gguf.py +61 -61
- {neuralnode-2.2.9 → neuralnode-2.2.10}/examples/horus_transformers_features.py +512 -512
- {neuralnode-2.2.9 → neuralnode-2.2.10}/examples/local_models.py +107 -107
- {neuralnode-2.2.9 → neuralnode-2.2.10}/examples/neuralnode_v21_complete_demo.py +21 -21
- {neuralnode-2.2.9 → neuralnode-2.2.10}/examples/openclaw_demo.py +106 -106
- {neuralnode-2.2.9 → neuralnode-2.2.10}/examples/shade_model_with_tools.py +23 -23
- {neuralnode-2.2.9 → neuralnode-2.2.10}/examples/telegram_bot_demo.py +37 -37
- {neuralnode-2.2.9 → neuralnode-2.2.10}/examples/thinking_mode_example.py +231 -231
- {neuralnode-2.2.9 → neuralnode-2.2.10}/examples/tts_demo.py +26 -26
- {neuralnode-2.2.9 → neuralnode-2.2.10}/examples/turboquant_example.py +38 -38
- {neuralnode-2.2.9 → neuralnode-2.2.10}/examples/v3_features.py +35 -35
- neuralnode-2.2.10/media/neuralnode-dark-transparent.png +0 -0
- {neuralnode-2.2.9 → neuralnode-2.2.10}/pyproject.toml +269 -269
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/__init__.py +884 -884
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/agents/__init__.py +30 -30
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/agents/agents.py +906 -906
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/agents/base.py +233 -233
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/agents/thinking.py +162 -162
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/chains/__init__.py +629 -629
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/config/__init__.py +241 -241
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/core/__init__.py +472 -472
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/core/openai_blocker.py +29 -29
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/diagnostics/__init__.py +782 -782
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/integrations/__init__.py +25 -25
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/integrations/discord.py +193 -193
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/integrations/openclaw.py +656 -656
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/integrations/slack.py +181 -181
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/integrations/telegram.py +689 -689
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/memory/__init__.py +13 -13
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/memory/advanced.py +508 -508
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/memory/conversation.py +148 -148
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/memory/file.py +121 -121
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/memory/sliding.py +85 -85
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/memory/summary.py +131 -131
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/prompts/__init__.py +703 -703
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/providers/__init__.py +342 -342
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/providers/base.py +383 -383
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/providers/chat/__init__.py +60 -60
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/providers/chat/ai21.py +79 -79
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/providers/chat/anthropic.py +152 -152
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/providers/chat/bedrock.py +116 -116
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/providers/chat/cohere.py +123 -123
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/providers/chat/deepseek.py +126 -126
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/providers/chat/fireworks.py +84 -84
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/providers/chat/google.py +167 -167
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/providers/chat/groq.py +114 -114
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/providers/chat/mistral.py +120 -120
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/providers/chat/openai.py +302 -302
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/providers/chat/perplexity.py +94 -94
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/providers/chat/together.py +124 -124
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/providers/chat/vertex.py +104 -104
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/providers/embeddings.py +1176 -1176
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/providers/hfhub.py +237 -237
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/providers/horus.py +2774 -2774
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/providers/image_generation.py +135 -135
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/providers/local/__init__.py +319 -319
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/providers/local_providers.py +1907 -1907
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/providers/text_generation.py +1174 -1174
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/providers/universal_local.py +750 -750
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/rag/__init__.py +988 -988
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/reasoning/__init__.py +679 -679
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/replica.py +225 -225
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/speech/__init__.py +479 -479
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/thinking.py +380 -380
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/tools/__init__.py +54 -54
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/tools/advanced.py +758 -758
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/tools/multisearch.py +612 -612
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/tools/system/__init__.py +248 -248
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/tools/system/operations.py +471 -471
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/tools/web/__init__.py +261 -261
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/tts/__init__.py +445 -445
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/turboquant.py +552 -552
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/utils/__init__.py +5 -5
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/utils/dependencies.py +89 -89
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/utils/logger.py +277 -277
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/utils/metrics.py +220 -220
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/vectorstores/__init__.py +871 -871
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/vision/__init__.py +192 -192
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/neuralnode/voice.py +82 -82
- {neuralnode-2.2.9 → neuralnode-2.2.10}/src/nn/__init__.py +6 -6
- {neuralnode-2.2.9 → neuralnode-2.2.10}/tests/test_agents_basic.py +78 -78
- {neuralnode-2.2.9 → neuralnode-2.2.10}/tests/test_hfhub.py +297 -297
- {neuralnode-2.2.9 → neuralnode-2.2.10}/tests/test_image_generation.py +78 -78
- {neuralnode-2.2.9 → neuralnode-2.2.10}/tests/test_memory.py +39 -39
- {neuralnode-2.2.9 → neuralnode-2.2.10}/tests/test_openclaw.py +225 -225
- {neuralnode-2.2.9 → neuralnode-2.2.10}/tests/test_provider_capabilities.py +90 -90
- {neuralnode-2.2.9 → neuralnode-2.2.10}/tests/test_providers_mocked.py +191 -191
- {neuralnode-2.2.9 → neuralnode-2.2.10}/tests/test_rag.py +73 -73
- {neuralnode-2.2.9 → neuralnode-2.2.10}/tests/test_refactoring.py +38 -38
- {neuralnode-2.2.9 → neuralnode-2.2.10}/tests/test_release_readiness.py +50 -50
- {neuralnode-2.2.9 → neuralnode-2.2.10}/tests/test_voice.py +146 -146
- neuralnode-2.2.9/README.md +0 -470
- {neuralnode-2.2.9 → neuralnode-2.2.10}/.github/workflows/publish.yml +0 -0
- {neuralnode-2.2.9 → neuralnode-2.2.10}/docs/assets/neuralnode-logo-transparent.png +0 -0
- {neuralnode-2.2.9 → neuralnode-2.2.10}/media/neuralnode.png +0 -0
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
# NeuralNode Environment Configuration
|
|
2
|
-
# Copy this file to .env and fill in your API keys
|
|
3
|
-
|
|
4
|
-
# OpenAI Configuration
|
|
5
|
-
OPENAI_API_KEY=sk-your-openai-api-key-here
|
|
6
|
-
OPENAI_BASE_URL=https://api.openai.com/v1
|
|
7
|
-
|
|
8
|
-
# Anthropic Configuration
|
|
9
|
-
ANTHROPIC_API_KEY=sk-ant-your-anthropic-api-key-here
|
|
10
|
-
|
|
11
|
-
# Google (Gemini) Configuration
|
|
12
|
-
GOOGLE_API_KEY=your-google-api-key-here
|
|
13
|
-
|
|
14
|
-
# Ollama Configuration (for local models)
|
|
15
|
-
# No API key needed, just ensure Ollama is running
|
|
16
|
-
OLLAMA_BASE_URL=http://localhost:11434
|
|
17
|
-
|
|
18
|
-
# NeuralNode Settings
|
|
19
|
-
NEURALNODE_DEFAULT_PROVIDER=auto
|
|
20
|
-
NEURALNODE_MEMORY_ENABLED=true
|
|
21
|
-
NEURALNODE_SAFE_MODE=true
|
|
22
|
-
NEURALNODE_LOG_LEVEL=INFO
|
|
1
|
+
# NeuralNode Environment Configuration
|
|
2
|
+
# Copy this file to .env and fill in your API keys
|
|
3
|
+
|
|
4
|
+
# OpenAI Configuration
|
|
5
|
+
OPENAI_API_KEY=sk-your-openai-api-key-here
|
|
6
|
+
OPENAI_BASE_URL=https://api.openai.com/v1
|
|
7
|
+
|
|
8
|
+
# Anthropic Configuration
|
|
9
|
+
ANTHROPIC_API_KEY=sk-ant-your-anthropic-api-key-here
|
|
10
|
+
|
|
11
|
+
# Google (Gemini) Configuration
|
|
12
|
+
GOOGLE_API_KEY=your-google-api-key-here
|
|
13
|
+
|
|
14
|
+
# Ollama Configuration (for local models)
|
|
15
|
+
# No API key needed, just ensure Ollama is running
|
|
16
|
+
OLLAMA_BASE_URL=http://localhost:11434
|
|
17
|
+
|
|
18
|
+
# NeuralNode Settings
|
|
19
|
+
NEURALNODE_DEFAULT_PROVIDER=auto
|
|
20
|
+
NEURALNODE_MEMORY_ENABLED=true
|
|
21
|
+
NEURALNODE_SAFE_MODE=true
|
|
22
|
+
NEURALNODE_LOG_LEVEL=INFO
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
## Summary
|
|
2
|
-
|
|
3
|
-
Describe the problem and the change made.
|
|
4
|
-
|
|
5
|
-
## Validation
|
|
6
|
-
|
|
7
|
-
- [ ] I ran the relevant tests and checks.
|
|
8
|
-
- [ ] I added or updated tests where appropriate.
|
|
9
|
-
- [ ] I did not include secrets, credentials, or private data.
|
|
10
|
-
- [ ] I have read and agree to [TOKENAI_CLA.md](../TOKENAI_CLA.md).
|
|
11
|
-
- [ ] I have identified any third-party code, data, or assets included in this PR.
|
|
12
|
-
|
|
13
|
-
## Notes for review
|
|
14
|
-
|
|
15
|
-
Add compatibility notes, migration details, or known limitations here.
|
|
1
|
+
## Summary
|
|
2
|
+
|
|
3
|
+
Describe the problem and the change made.
|
|
4
|
+
|
|
5
|
+
## Validation
|
|
6
|
+
|
|
7
|
+
- [ ] I ran the relevant tests and checks.
|
|
8
|
+
- [ ] I added or updated tests where appropriate.
|
|
9
|
+
- [ ] I did not include secrets, credentials, or private data.
|
|
10
|
+
- [ ] I have read and agree to [TOKENAI_CLA.md](../TOKENAI_CLA.md).
|
|
11
|
+
- [ ] I have identified any third-party code, data, or assets included in this PR.
|
|
12
|
+
|
|
13
|
+
## Notes for review
|
|
14
|
+
|
|
15
|
+
Add compatibility notes, migration details, or known limitations here.
|
|
@@ -1,86 +1,86 @@
|
|
|
1
|
-
name: Tests
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches: [ main, develop ]
|
|
6
|
-
pull_request:
|
|
7
|
-
branches: [ main ]
|
|
8
|
-
|
|
9
|
-
jobs:
|
|
10
|
-
build:
|
|
11
|
-
runs-on: ubuntu-24.04
|
|
12
|
-
steps:
|
|
13
|
-
- uses: actions/checkout@v7
|
|
14
|
-
|
|
15
|
-
- name: Set up Python
|
|
16
|
-
uses: actions/setup-python@v7
|
|
17
|
-
with:
|
|
18
|
-
python-version: "3.12"
|
|
19
|
-
|
|
20
|
-
- name: Install build tools
|
|
21
|
-
run: python -m pip install --upgrade build twine
|
|
22
|
-
|
|
23
|
-
- name: Build source distribution and wheel
|
|
24
|
-
run: python -m build --outdir .ci-dist
|
|
25
|
-
|
|
26
|
-
- name: Validate package metadata
|
|
27
|
-
run: python -m twine check .ci-dist/*
|
|
28
|
-
|
|
29
|
-
- name: Install wheel and verify package version
|
|
30
|
-
run: |
|
|
31
|
-
python -m pip install --force-reinstall .ci-dist/*.whl
|
|
32
|
-
python -c "import neuralnode; assert neuralnode.__version__ == '2.2.
|
|
33
|
-
|
|
34
|
-
test:
|
|
35
|
-
# Python 3.9 is no longer available on the newest Ubuntu runner image.
|
|
36
|
-
runs-on: ubuntu-24.04
|
|
37
|
-
strategy:
|
|
38
|
-
matrix:
|
|
39
|
-
python-version: ["3.9", "3.10", "3.11", "3.12"]
|
|
40
|
-
|
|
41
|
-
steps:
|
|
42
|
-
- uses: actions/checkout@v7
|
|
43
|
-
|
|
44
|
-
- name: Set up Python ${{ matrix.python-version }}
|
|
45
|
-
uses: actions/setup-python@v7
|
|
46
|
-
with:
|
|
47
|
-
python-version: ${{ matrix.python-version }}
|
|
48
|
-
|
|
49
|
-
- name: Install dependencies
|
|
50
|
-
run: |
|
|
51
|
-
python -m pip install --upgrade pip
|
|
52
|
-
pip install -e ".[dev]"
|
|
53
|
-
|
|
54
|
-
- name: Run tests
|
|
55
|
-
run: |
|
|
56
|
-
pytest tests/ -v --cov=src/neuralnode --cov-report=xml --cov-report=term
|
|
57
|
-
|
|
58
|
-
- name: Upload coverage to Codecov
|
|
59
|
-
uses: codecov/codecov-action@v7
|
|
60
|
-
with:
|
|
61
|
-
files: ./coverage.xml
|
|
62
|
-
flags: unittests
|
|
63
|
-
name: codecov-umbrella
|
|
64
|
-
|
|
65
|
-
lint:
|
|
66
|
-
runs-on: ubuntu-24.04
|
|
67
|
-
steps:
|
|
68
|
-
- uses: actions/checkout@v7
|
|
69
|
-
|
|
70
|
-
- name: Set up Python
|
|
71
|
-
uses: actions/setup-python@v7
|
|
72
|
-
with:
|
|
73
|
-
python-version: "3.11"
|
|
74
|
-
|
|
75
|
-
- name: Install dependencies
|
|
76
|
-
run: |
|
|
77
|
-
python -m pip install --upgrade pip
|
|
78
|
-
pip install black ruff mypy
|
|
79
|
-
|
|
80
|
-
- name: Check formatting with black
|
|
81
|
-
run: black --check src/neuralnode
|
|
82
|
-
|
|
83
|
-
# The legacy tree has broad style/type debt; keep CI focused on undefined
|
|
84
|
-
# names while that debt is addressed incrementally.
|
|
85
|
-
- name: Check undefined names with ruff
|
|
86
|
-
run: ruff check src/neuralnode --select F821
|
|
1
|
+
name: Tests
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [ main, develop ]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [ main ]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
build:
|
|
11
|
+
runs-on: ubuntu-24.04
|
|
12
|
+
steps:
|
|
13
|
+
- uses: actions/checkout@v7
|
|
14
|
+
|
|
15
|
+
- name: Set up Python
|
|
16
|
+
uses: actions/setup-python@v7
|
|
17
|
+
with:
|
|
18
|
+
python-version: "3.12"
|
|
19
|
+
|
|
20
|
+
- name: Install build tools
|
|
21
|
+
run: python -m pip install --upgrade build twine
|
|
22
|
+
|
|
23
|
+
- name: Build source distribution and wheel
|
|
24
|
+
run: python -m build --outdir .ci-dist
|
|
25
|
+
|
|
26
|
+
- name: Validate package metadata
|
|
27
|
+
run: python -m twine check .ci-dist/*
|
|
28
|
+
|
|
29
|
+
- name: Install wheel and verify package version
|
|
30
|
+
run: |
|
|
31
|
+
python -m pip install --force-reinstall .ci-dist/*.whl
|
|
32
|
+
python -c "import neuralnode; assert neuralnode.__version__ == '2.2.10'; print(neuralnode.__version__)"
|
|
33
|
+
|
|
34
|
+
test:
|
|
35
|
+
# Python 3.9 is no longer available on the newest Ubuntu runner image.
|
|
36
|
+
runs-on: ubuntu-24.04
|
|
37
|
+
strategy:
|
|
38
|
+
matrix:
|
|
39
|
+
python-version: ["3.9", "3.10", "3.11", "3.12"]
|
|
40
|
+
|
|
41
|
+
steps:
|
|
42
|
+
- uses: actions/checkout@v7
|
|
43
|
+
|
|
44
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
45
|
+
uses: actions/setup-python@v7
|
|
46
|
+
with:
|
|
47
|
+
python-version: ${{ matrix.python-version }}
|
|
48
|
+
|
|
49
|
+
- name: Install dependencies
|
|
50
|
+
run: |
|
|
51
|
+
python -m pip install --upgrade pip
|
|
52
|
+
pip install -e ".[dev]"
|
|
53
|
+
|
|
54
|
+
- name: Run tests
|
|
55
|
+
run: |
|
|
56
|
+
pytest tests/ -v --cov=src/neuralnode --cov-report=xml --cov-report=term
|
|
57
|
+
|
|
58
|
+
- name: Upload coverage to Codecov
|
|
59
|
+
uses: codecov/codecov-action@v7
|
|
60
|
+
with:
|
|
61
|
+
files: ./coverage.xml
|
|
62
|
+
flags: unittests
|
|
63
|
+
name: codecov-umbrella
|
|
64
|
+
|
|
65
|
+
lint:
|
|
66
|
+
runs-on: ubuntu-24.04
|
|
67
|
+
steps:
|
|
68
|
+
- uses: actions/checkout@v7
|
|
69
|
+
|
|
70
|
+
- name: Set up Python
|
|
71
|
+
uses: actions/setup-python@v7
|
|
72
|
+
with:
|
|
73
|
+
python-version: "3.11"
|
|
74
|
+
|
|
75
|
+
- name: Install dependencies
|
|
76
|
+
run: |
|
|
77
|
+
python -m pip install --upgrade pip
|
|
78
|
+
pip install black ruff mypy
|
|
79
|
+
|
|
80
|
+
- name: Check formatting with black
|
|
81
|
+
run: black --check src/neuralnode
|
|
82
|
+
|
|
83
|
+
# The legacy tree has broad style/type debt; keep CI focused on undefined
|
|
84
|
+
# names while that debt is addressed incrementally.
|
|
85
|
+
- name: Check undefined names with ruff
|
|
86
|
+
run: ruff check src/neuralnode --select F821
|
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
# Python
|
|
2
|
-
__pycache__/
|
|
3
|
-
*.pyc
|
|
4
|
-
*.pyo
|
|
5
|
-
*.pyd
|
|
6
|
-
*.egg-info/
|
|
7
|
-
dist/
|
|
8
|
-
release-dist/
|
|
9
|
-
.release-dist*/
|
|
10
|
-
.ci-dist/
|
|
11
|
-
.ci-dist-verify*/
|
|
12
|
-
.install-check*/
|
|
13
|
-
build/
|
|
14
|
-
.eggs/
|
|
15
|
-
|
|
16
|
-
# Virtual envs
|
|
17
|
-
.venv/
|
|
18
|
-
venv/
|
|
19
|
-
env/
|
|
20
|
-
|
|
21
|
-
# Local credentials and environment files
|
|
22
|
-
.env
|
|
23
|
-
.env.*
|
|
24
|
-
!.env.example
|
|
25
|
-
**/.env
|
|
26
|
-
**/.env.*
|
|
27
|
-
!**/.env.example
|
|
28
|
-
|
|
29
|
-
# Temp / outputs
|
|
30
|
-
outputs/
|
|
31
|
-
.tmp_*
|
|
32
|
-
*.gguf.tmp
|
|
33
|
-
|
|
34
|
-
# Test caches
|
|
35
|
-
.pytest_cache/
|
|
36
|
-
.mypy_cache/
|
|
37
|
-
.ruff_cache/
|
|
38
|
-
|
|
39
|
-
# OS
|
|
40
|
-
.DS_Store
|
|
41
|
-
Thumbs.db
|
|
1
|
+
# Python
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.pyc
|
|
4
|
+
*.pyo
|
|
5
|
+
*.pyd
|
|
6
|
+
*.egg-info/
|
|
7
|
+
dist/
|
|
8
|
+
release-dist/
|
|
9
|
+
.release-dist*/
|
|
10
|
+
.ci-dist/
|
|
11
|
+
.ci-dist-verify*/
|
|
12
|
+
.install-check*/
|
|
13
|
+
build/
|
|
14
|
+
.eggs/
|
|
15
|
+
|
|
16
|
+
# Virtual envs
|
|
17
|
+
.venv/
|
|
18
|
+
venv/
|
|
19
|
+
env/
|
|
20
|
+
|
|
21
|
+
# Local credentials and environment files
|
|
22
|
+
.env
|
|
23
|
+
.env.*
|
|
24
|
+
!.env.example
|
|
25
|
+
**/.env
|
|
26
|
+
**/.env.*
|
|
27
|
+
!**/.env.example
|
|
28
|
+
|
|
29
|
+
# Temp / outputs
|
|
30
|
+
outputs/
|
|
31
|
+
.tmp_*
|
|
32
|
+
*.gguf.tmp
|
|
33
|
+
|
|
34
|
+
# Test caches
|
|
35
|
+
.pytest_cache/
|
|
36
|
+
.mypy_cache/
|
|
37
|
+
.ruff_cache/
|
|
38
|
+
|
|
39
|
+
# OS
|
|
40
|
+
.DS_Store
|
|
41
|
+
Thumbs.db
|
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to NeuralNode are documented here.
|
|
4
4
|
|
|
5
|
+
## 2.2.10 — 2026-11-01
|
|
6
|
+
|
|
7
|
+
### Documentation and branding
|
|
8
|
+
|
|
9
|
+
- Added the dark NeuralNode wordmark as a transparent PNG for reliable display
|
|
10
|
+
on light PyPI pages and other light backgrounds.
|
|
11
|
+
- Updated the README image reference to the published transparent asset.
|
|
12
|
+
|
|
5
13
|
## 2.2.9 — 2026-11-01
|
|
6
14
|
|
|
7
15
|
### Integrations and runtime cleanup
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
# Contributing to NeuralNode
|
|
2
|
-
|
|
3
|
-
Thank you for helping improve NeuralNode. Contributions may be submitted by
|
|
4
|
-
opening an issue, creating a fork, or opening a pull request.
|
|
5
|
-
|
|
6
|
-
## Pull request workflow
|
|
7
|
-
|
|
8
|
-
1. Create a focused branch or fork.
|
|
9
|
-
2. Explain the problem and the proposed change.
|
|
10
|
-
3. Include or update tests when appropriate.
|
|
11
|
-
4. Run the relevant checks locally.
|
|
12
|
-
5. Open a pull request against the default branch.
|
|
13
|
-
|
|
14
|
-
All pull requests are subject to review by TokenAI. Opening a pull request
|
|
15
|
-
does not guarantee acceptance or merge. TokenAI may accept, request changes,
|
|
16
|
-
reject, close, or remove a proposed contribution at its sole discretion.
|
|
17
|
-
|
|
18
|
-
## Contribution terms
|
|
19
|
-
|
|
20
|
-
By submitting a pull request, patch, issue attachment, or other contribution to
|
|
21
|
-
this repository, you confirm that you have read and agree to the
|
|
22
|
-
[TokenAI Contributor License Agreement](TOKENAI_CLA.md), and that:
|
|
23
|
-
|
|
24
|
-
- you have the legal right to submit the contribution;
|
|
25
|
-
- the contribution is your original work or you have permission to submit it;
|
|
26
|
-
- you have identified any third-party code, data, or assets included in it;
|
|
27
|
-
- you have not knowingly included secrets, credentials, or private data; and
|
|
28
|
-
- you agree to the copyright assignment and license grant in
|
|
29
|
-
[TOKENAI_CLA.md](TOKENAI_CLA.md).
|
|
30
|
-
|
|
31
|
-
## Attribution
|
|
32
|
-
|
|
33
|
-
Contributions become part of a project owned and maintained by TokenAI. Do not
|
|
34
|
-
remove existing NeuralNode or TokenAI notices. Derivative products and forks
|
|
35
|
-
must continue to follow [LICENSE](LICENSE) and [TRADEMARKS.md](TRADEMARKS.md).
|
|
36
|
-
|
|
37
|
-
## Code of conduct
|
|
38
|
-
|
|
39
|
-
Be respectful, constructive, and specific. Harassment, discrimination,
|
|
40
|
-
deliberate disclosure of secrets, and malicious code are not acceptable.
|
|
1
|
+
# Contributing to NeuralNode
|
|
2
|
+
|
|
3
|
+
Thank you for helping improve NeuralNode. Contributions may be submitted by
|
|
4
|
+
opening an issue, creating a fork, or opening a pull request.
|
|
5
|
+
|
|
6
|
+
## Pull request workflow
|
|
7
|
+
|
|
8
|
+
1. Create a focused branch or fork.
|
|
9
|
+
2. Explain the problem and the proposed change.
|
|
10
|
+
3. Include or update tests when appropriate.
|
|
11
|
+
4. Run the relevant checks locally.
|
|
12
|
+
5. Open a pull request against the default branch.
|
|
13
|
+
|
|
14
|
+
All pull requests are subject to review by TokenAI. Opening a pull request
|
|
15
|
+
does not guarantee acceptance or merge. TokenAI may accept, request changes,
|
|
16
|
+
reject, close, or remove a proposed contribution at its sole discretion.
|
|
17
|
+
|
|
18
|
+
## Contribution terms
|
|
19
|
+
|
|
20
|
+
By submitting a pull request, patch, issue attachment, or other contribution to
|
|
21
|
+
this repository, you confirm that you have read and agree to the
|
|
22
|
+
[TokenAI Contributor License Agreement](TOKENAI_CLA.md), and that:
|
|
23
|
+
|
|
24
|
+
- you have the legal right to submit the contribution;
|
|
25
|
+
- the contribution is your original work or you have permission to submit it;
|
|
26
|
+
- you have identified any third-party code, data, or assets included in it;
|
|
27
|
+
- you have not knowingly included secrets, credentials, or private data; and
|
|
28
|
+
- you agree to the copyright assignment and license grant in
|
|
29
|
+
[TOKENAI_CLA.md](TOKENAI_CLA.md).
|
|
30
|
+
|
|
31
|
+
## Attribution
|
|
32
|
+
|
|
33
|
+
Contributions become part of a project owned and maintained by TokenAI. Do not
|
|
34
|
+
remove existing NeuralNode or TokenAI notices. Derivative products and forks
|
|
35
|
+
must continue to follow [LICENSE](LICENSE) and [TRADEMARKS.md](TRADEMARKS.md).
|
|
36
|
+
|
|
37
|
+
## Code of conduct
|
|
38
|
+
|
|
39
|
+
Be respectful, constructive, and specific. Harassment, discrimination,
|
|
40
|
+
deliberate disclosure of secrets, and malicious code are not acceptable.
|