contextual-engine 0.1.0__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.
- contextual_engine-0.1.0/.contextualignore +97 -0
- contextual_engine-0.1.0/.git-hooks/post-commit +40 -0
- contextual_engine-0.1.0/.git-hooks/post-rewrite +54 -0
- contextual_engine-0.1.0/.github/workflows/ci.yml +49 -0
- contextual_engine-0.1.0/.gitignore +105 -0
- contextual_engine-0.1.0/.pre-commit-config.yaml +20 -0
- contextual_engine-0.1.0/.python-version +1 -0
- contextual_engine-0.1.0/.uv-cache/.gitignore +1 -0
- contextual_engine-0.1.0/.uv-cache/.lock +0 -0
- contextual_engine-0.1.0/.uv-cache/CACHEDIR.TAG +1 -0
- contextual_engine-0.1.0/.uv-cache/interpreter-v4/c2c2931c8a99aae1/7e3e9eef2ab92156.msgpack +0 -0
- contextual_engine-0.1.0/.uv-cache/sdists-v9/.git +0 -0
- contextual_engine-0.1.0/.uv-cache/sdists-v9/.gitignore +0 -0
- contextual_engine-0.1.0/LICENSE +111 -0
- contextual_engine-0.1.0/PKG-INFO +297 -0
- contextual_engine-0.1.0/README.md +132 -0
- contextual_engine-0.1.0/contextual/__init__.py +18 -0
- contextual_engine-0.1.0/contextual/__main__.py +11 -0
- contextual_engine-0.1.0/contextual/cli.py +339 -0
- contextual_engine-0.1.0/contextual/cli_docs.py +685 -0
- contextual_engine-0.1.0/contextual/config.py +7 -0
- contextual_engine-0.1.0/contextual/core/__init__.py +11 -0
- contextual_engine-0.1.0/contextual/core/errors.py +470 -0
- contextual_engine-0.1.0/contextual/core/models.py +590 -0
- contextual_engine-0.1.0/contextual/docs/__init__.py +66 -0
- contextual_engine-0.1.0/contextual/docs/chunker.py +550 -0
- contextual_engine-0.1.0/contextual/docs/pipeline.py +513 -0
- contextual_engine-0.1.0/contextual/docs/retrieval.py +654 -0
- contextual_engine-0.1.0/contextual/docs/watcher.py +265 -0
- contextual_engine-0.1.0/contextual/embedding/__init__.py +87 -0
- contextual_engine-0.1.0/contextual/embedding/cache.py +455 -0
- contextual_engine-0.1.0/contextual/embedding/embedder.py +414 -0
- contextual_engine-0.1.0/contextual/embedding/helpers.py +252 -0
- contextual_engine-0.1.0/contextual/git/__init__.py +22 -0
- contextual_engine-0.1.0/contextual/git/blame.py +334 -0
- contextual_engine-0.1.0/contextual/indexing/__init__.py +20 -0
- contextual_engine-0.1.0/contextual/indexing/bug_sweep.py +119 -0
- contextual_engine-0.1.0/contextual/indexing/chunker.py +691 -0
- contextual_engine-0.1.0/contextual/indexing/embedder.py +271 -0
- contextual_engine-0.1.0/contextual/indexing/file_watcher.py +154 -0
- contextual_engine-0.1.0/contextual/indexing/incremental.py +260 -0
- contextual_engine-0.1.0/contextual/indexing/index_writer.py +442 -0
- contextual_engine-0.1.0/contextual/indexing/pipeline.py +438 -0
- contextual_engine-0.1.0/contextual/indexing/processor.py +436 -0
- contextual_engine-0.1.0/contextual/indexing/queries/readme.md +22 -0
- contextual_engine-0.1.0/contextual/indexing/symbol_extractor.py +426 -0
- contextual_engine-0.1.0/contextual/indexing/tokenizer.py +203 -0
- contextual_engine-0.1.0/contextual/integrations/__init__.py +10 -0
- contextual_engine-0.1.0/contextual/mcp/__init__.py +15 -0
- contextual_engine-0.1.0/contextual/mcp/__main__.py +24 -0
- contextual_engine-0.1.0/contextual/mcp/docs_tools.py +286 -0
- contextual_engine-0.1.0/contextual/mcp/server.py +118 -0
- contextual_engine-0.1.0/contextual/mcp/tools.py +443 -0
- contextual_engine-0.1.0/contextual/observability/__init__.py +21 -0
- contextual_engine-0.1.0/contextual/observability/logging.py +115 -0
- contextual_engine-0.1.0/contextual/py.typed +0 -0
- contextual_engine-0.1.0/contextual/retrieval/__init__.py +24 -0
- contextual_engine-0.1.0/contextual/retrieval/context_assembler.py +372 -0
- contextual_engine-0.1.0/contextual/retrieval/ranker.py +193 -0
- contextual_engine-0.1.0/contextual/retrieval/search.py +548 -0
- contextual_engine-0.1.0/contextual/security/__init__.py +52 -0
- contextual_engine-0.1.0/contextual/security/paths.py +347 -0
- contextual_engine-0.1.0/contextual/security/sanitize.py +349 -0
- contextual_engine-0.1.0/contextual/security/workspace.py +348 -0
- contextual_engine-0.1.0/contextual/storage/__init__.py +36 -0
- contextual_engine-0.1.0/contextual/storage/fts_manager.py +273 -0
- contextual_engine-0.1.0/contextual/storage/migration_v2.py +289 -0
- contextual_engine-0.1.0/contextual/storage/migrations.py +316 -0
- contextual_engine-0.1.0/contextual/storage/schema.py +210 -0
- contextual_engine-0.1.0/contextual/storage/sqlite_pool.py +468 -0
- contextual_engine-0.1.0/contextual/storage/vec0_manager.py +421 -0
- contextual_engine-0.1.0/docs/ARCHITECTURE.md +216 -0
- contextual_engine-0.1.0/docs/DELEGATION_PLAYBOOK.md +201 -0
- contextual_engine-0.1.0/docs/GIT_README.md +138 -0
- contextual_engine-0.1.0/docs/PHASE_1.md +195 -0
- contextual_engine-0.1.0/docs/PROJECT_MANAGEMENT.md +283 -0
- contextual_engine-0.1.0/docs/PROJECT_PHASES.md +257 -0
- contextual_engine-0.1.0/docs/ROADMAP.md +263 -0
- contextual_engine-0.1.0/docs/TECHNICAL_SPEC.md +396 -0
- contextual_engine-0.1.0/docs/WEEK1_GAMEPLAN.md +621 -0
- contextual_engine-0.1.0/docs/adr/ADR-001-embedding-model.md +36 -0
- contextual_engine-0.1.0/docs/adr/ADR-002-storage-architecture.md +30 -0
- contextual_engine-0.1.0/docs/adr/ADR-003-bitemporal-model.md +31 -0
- contextual_engine-0.1.0/docs/adr/ADR-004-hybrid-retrieval.md +34 -0
- contextual_engine-0.1.0/docs/adr/ADR-005-mcp-first.md +41 -0
- contextual_engine-0.1.0/docs/adr/ADR-006-security.md +30 -0
- contextual_engine-0.1.0/docs/adr/ADR-007-licensing.md +51 -0
- contextual_engine-0.1.0/docs/adr/ADR-008-treesitter-chunking.md +45 -0
- contextual_engine-0.1.0/examples/index_repository.py +145 -0
- contextual_engine-0.1.0/examples/readme.md +47 -0
- contextual_engine-0.1.0/mypy.ini +57 -0
- contextual_engine-0.1.0/pyproject.toml +141 -0
- contextual_engine-0.1.0/pytest.ini +74 -0
- contextual_engine-0.1.0/ruff.toml +126 -0
- contextual_engine-0.1.0/scripts/install-hooks.sh +41 -0
- contextual_engine-0.1.0/tests/__init__.py +6 -0
- contextual_engine-0.1.0/tests/benchmark/__init__.py +0 -0
- contextual_engine-0.1.0/tests/conftest.py +192 -0
- contextual_engine-0.1.0/tests/integration/__init__.py +0 -0
- contextual_engine-0.1.0/tests/security/__init__.py +0 -0
- contextual_engine-0.1.0/tests/test_docs_phase2.py +790 -0
- contextual_engine-0.1.0/tests/test_e2e_workflow.py +289 -0
- contextual_engine-0.1.0/tests/test_indexing.py +364 -0
- contextual_engine-0.1.0/tests/test_integration_phase1.py +248 -0
- contextual_engine-0.1.0/tests/test_logging.py +28 -0
- contextual_engine-0.1.0/tests/test_performance.py +911 -0
- contextual_engine-0.1.0/tests/test_schema.py +44 -0
- contextual_engine-0.1.0/tests/test_search_integration.py +258 -0
- contextual_engine-0.1.0/tests/test_storage_integration.py +111 -0
- contextual_engine-0.1.0/tests/unit/__init__.py +0 -0
- contextual_engine-0.1.0/tests/unit/test_chunker.py +45 -0
- contextual_engine-0.1.0/tests/unit/test_errors.py +57 -0
- contextual_engine-0.1.0/tests/unit/test_git_integration.py +41 -0
- contextual_engine-0.1.0/tests/unit/test_lance_store.py +43 -0
- contextual_engine-0.1.0/tests/unit/test_migrations.py +41 -0
- contextual_engine-0.1.0/tests/unit/test_models.py +113 -0
- contextual_engine-0.1.0/tests/unit/test_processor.py +45 -0
- contextual_engine-0.1.0/tests/unit/test_schema.py +54 -0
- contextual_engine-0.1.0/tests/unit/test_security.py +73 -0
- contextual_engine-0.1.0/tests/unit/test_sqlite_pool.py +49 -0
- contextual_engine-0.1.0/tests/unit/test_temporal.py +42 -0
- contextual_engine-0.1.0/uv.lock +5149 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# .contextualignore - Default patterns for Contextual indexing
|
|
2
|
+
# Uses gitignore syntax (pathspec)
|
|
3
|
+
# Place this in your project root to customize what gets indexed
|
|
4
|
+
|
|
5
|
+
# Dependencies
|
|
6
|
+
node_modules/
|
|
7
|
+
.venv/
|
|
8
|
+
venv/
|
|
9
|
+
vendor/
|
|
10
|
+
.bundle/
|
|
11
|
+
|
|
12
|
+
# Build outputs
|
|
13
|
+
dist/
|
|
14
|
+
build/
|
|
15
|
+
*.egg-info/
|
|
16
|
+
target/
|
|
17
|
+
out/
|
|
18
|
+
bin/
|
|
19
|
+
obj/
|
|
20
|
+
|
|
21
|
+
# Minified/generated files
|
|
22
|
+
*.min.js
|
|
23
|
+
*.min.css
|
|
24
|
+
*_pb2.py
|
|
25
|
+
*_pb2.pyi
|
|
26
|
+
*.g.dart
|
|
27
|
+
*.freezed.dart
|
|
28
|
+
*.g.go
|
|
29
|
+
|
|
30
|
+
# Type declarations (usually auto-generated)
|
|
31
|
+
*.d.ts
|
|
32
|
+
|
|
33
|
+
# Database files
|
|
34
|
+
*.db
|
|
35
|
+
*.sqlite
|
|
36
|
+
*.sqlite3
|
|
37
|
+
|
|
38
|
+
# Logs
|
|
39
|
+
*.log
|
|
40
|
+
|
|
41
|
+
# IDE/Editor files
|
|
42
|
+
.vscode/
|
|
43
|
+
.idea/
|
|
44
|
+
*.swp
|
|
45
|
+
*.swo
|
|
46
|
+
|
|
47
|
+
# OS files
|
|
48
|
+
.DS_Store
|
|
49
|
+
Thumbs.db
|
|
50
|
+
|
|
51
|
+
# Test coverage
|
|
52
|
+
htmlcov/
|
|
53
|
+
.coverage
|
|
54
|
+
coverage.xml
|
|
55
|
+
|
|
56
|
+
# Documentation builds
|
|
57
|
+
_build/
|
|
58
|
+
site/
|
|
59
|
+
|
|
60
|
+
# Large media files (not useful for code context)
|
|
61
|
+
*.mp4
|
|
62
|
+
*.mov
|
|
63
|
+
*.avi
|
|
64
|
+
*.mp3
|
|
65
|
+
*.wav
|
|
66
|
+
*.jpg
|
|
67
|
+
*.jpeg
|
|
68
|
+
*.png
|
|
69
|
+
*.gif
|
|
70
|
+
*.ico
|
|
71
|
+
*.svg
|
|
72
|
+
*.pdf
|
|
73
|
+
|
|
74
|
+
# Archive files
|
|
75
|
+
*.zip
|
|
76
|
+
*.tar
|
|
77
|
+
*.tar.gz
|
|
78
|
+
*.rar
|
|
79
|
+
*.7z
|
|
80
|
+
|
|
81
|
+
# Binary files
|
|
82
|
+
*.exe
|
|
83
|
+
*.dll
|
|
84
|
+
*.so
|
|
85
|
+
*.dylib
|
|
86
|
+
|
|
87
|
+
# Lock files (too noisy, low signal)
|
|
88
|
+
package-lock.json
|
|
89
|
+
yarn.lock
|
|
90
|
+
pnpm-lock.yaml
|
|
91
|
+
poetry.lock
|
|
92
|
+
Cargo.lock
|
|
93
|
+
|
|
94
|
+
# Code generated comments
|
|
95
|
+
# DO NOT EDIT
|
|
96
|
+
# Code generated by
|
|
97
|
+
# Auto-generated
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
#
|
|
3
|
+
# Contextual post-commit hook
|
|
4
|
+
# Triggers incremental indexing after each commit
|
|
5
|
+
#
|
|
6
|
+
# This hook runs as a fully detached background process to never block git.
|
|
7
|
+
# It acquires a lock file to prevent concurrent indexing operations.
|
|
8
|
+
|
|
9
|
+
# Close all file descriptors to fully detach from git
|
|
10
|
+
exec 0<&- # Close stdin
|
|
11
|
+
exec 1>/dev/null # Close stdout
|
|
12
|
+
exec 2>/dev/null # Close stderr
|
|
13
|
+
|
|
14
|
+
# Check if contextual is available
|
|
15
|
+
if ! command -v contextual &> /dev/null; then
|
|
16
|
+
exit 0
|
|
17
|
+
fi
|
|
18
|
+
|
|
19
|
+
# Lock file to prevent concurrent indexing
|
|
20
|
+
LOCK_FILE=".git/contextual-index.lock"
|
|
21
|
+
|
|
22
|
+
# Try to acquire lock (non-blocking)
|
|
23
|
+
if ! mkdir "$LOCK_FILE" 2>/dev/null; then
|
|
24
|
+
# Another indexing process is running, skip
|
|
25
|
+
exit 0
|
|
26
|
+
fi
|
|
27
|
+
|
|
28
|
+
# Ensure lock is released on exit (even if script crashes)
|
|
29
|
+
trap 'rm -rf "$LOCK_FILE"' EXIT
|
|
30
|
+
|
|
31
|
+
# Run incremental indexing in background
|
|
32
|
+
# --incremental: only index changed files since last indexed commit
|
|
33
|
+
# --quiet: suppress output (we're detached anyway)
|
|
34
|
+
nohup contextual index --incremental --quiet &
|
|
35
|
+
|
|
36
|
+
# Disown the background process so it survives shell exit
|
|
37
|
+
disown
|
|
38
|
+
|
|
39
|
+
# Always exit 0 so git never fails
|
|
40
|
+
exit 0
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
#
|
|
3
|
+
# Contextual post-rewrite hook
|
|
4
|
+
# Triggers full re-indexing after amend or rebase operations
|
|
5
|
+
#
|
|
6
|
+
# Git passes the rewrite type as $1 (either "amend" or "rebase").
|
|
7
|
+
# This hook runs as a fully detached background process to never block git.
|
|
8
|
+
# It acquires a lock file to prevent concurrent indexing operations.
|
|
9
|
+
|
|
10
|
+
# Close all file descriptors to fully detach from git
|
|
11
|
+
exec 0<&- # Close stdin
|
|
12
|
+
exec 1>/dev/null # Close stdout
|
|
13
|
+
exec 2>/dev/null # Close stderr
|
|
14
|
+
|
|
15
|
+
# Get rewrite type from git (either "amend" or "rebase")
|
|
16
|
+
REWRITE_TYPE="${1:-unknown}"
|
|
17
|
+
|
|
18
|
+
# Only process amend and rebase operations
|
|
19
|
+
case "$REWRITE_TYPE" in
|
|
20
|
+
amend|rebase)
|
|
21
|
+
;;
|
|
22
|
+
*)
|
|
23
|
+
# Unknown rewrite type, skip indexing
|
|
24
|
+
exit 0
|
|
25
|
+
;;
|
|
26
|
+
esac
|
|
27
|
+
|
|
28
|
+
# Check if contextual is available
|
|
29
|
+
if ! command -v contextual &> /dev/null; then
|
|
30
|
+
exit 0
|
|
31
|
+
fi
|
|
32
|
+
|
|
33
|
+
# Lock file to prevent concurrent indexing
|
|
34
|
+
LOCK_FILE=".git/contextual-index.lock"
|
|
35
|
+
|
|
36
|
+
# Try to acquire lock (non-blocking)
|
|
37
|
+
if ! mkdir "$LOCK_FILE" 2>/dev/null; then
|
|
38
|
+
# Another indexing process is running, skip
|
|
39
|
+
exit 0
|
|
40
|
+
fi
|
|
41
|
+
|
|
42
|
+
# Ensure lock is released on exit (even if script crashes)
|
|
43
|
+
trap 'rm -rf "$LOCK_FILE"' EXIT
|
|
44
|
+
|
|
45
|
+
# Run full re-indexing in background
|
|
46
|
+
# --force: force re-validation of entire index (amend/rebase can change history)
|
|
47
|
+
# --quiet: suppress output (we're detached anyway)
|
|
48
|
+
nohup contextual index --force --quiet &
|
|
49
|
+
|
|
50
|
+
# Disown the background process so it survives shell exit
|
|
51
|
+
disown
|
|
52
|
+
|
|
53
|
+
# Always exit 0 so git never fails
|
|
54
|
+
exit 0
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [main]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
checks:
|
|
11
|
+
name: ${{ matrix.os }} / py${{ matrix.python-version }}
|
|
12
|
+
runs-on: ${{ matrix.os }}
|
|
13
|
+
strategy:
|
|
14
|
+
fail-fast: false
|
|
15
|
+
matrix:
|
|
16
|
+
os: [ubuntu-latest, macos-14]
|
|
17
|
+
python-version: ["3.12", "3.13"]
|
|
18
|
+
|
|
19
|
+
steps:
|
|
20
|
+
- name: Checkout code
|
|
21
|
+
uses: actions/checkout@v4
|
|
22
|
+
|
|
23
|
+
- name: Set up Python
|
|
24
|
+
uses: actions/setup-python@v5
|
|
25
|
+
with:
|
|
26
|
+
python-version: ${{ matrix.python-version }}
|
|
27
|
+
|
|
28
|
+
- name: Install uv
|
|
29
|
+
uses: astral-sh/setup-uv@v7
|
|
30
|
+
with:
|
|
31
|
+
enable-cache: true
|
|
32
|
+
cache-dependency-glob: uv.lock
|
|
33
|
+
|
|
34
|
+
- name: Install dependencies
|
|
35
|
+
run: uv sync
|
|
36
|
+
|
|
37
|
+
- name: Ruff check
|
|
38
|
+
run: uv run ruff check .
|
|
39
|
+
|
|
40
|
+
- name: Ruff format check
|
|
41
|
+
run: uv run ruff format --check .
|
|
42
|
+
|
|
43
|
+
- name: Mypy
|
|
44
|
+
run: uv run mypy contextual/ --strict
|
|
45
|
+
|
|
46
|
+
- name: Pytest
|
|
47
|
+
env:
|
|
48
|
+
NUMBA_DISABLE_JIT: "1"
|
|
49
|
+
run: uv run pytest tests/
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# Python
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
*.so
|
|
6
|
+
.Python
|
|
7
|
+
build/
|
|
8
|
+
develop-eggs/
|
|
9
|
+
dist/
|
|
10
|
+
downloads/
|
|
11
|
+
eggs/
|
|
12
|
+
.eggs/
|
|
13
|
+
lib/
|
|
14
|
+
lib64/
|
|
15
|
+
parts/
|
|
16
|
+
sdist/
|
|
17
|
+
var/
|
|
18
|
+
wheels/
|
|
19
|
+
share/python-wheels/
|
|
20
|
+
*.egg-info/
|
|
21
|
+
.installed.cfg
|
|
22
|
+
*.egg
|
|
23
|
+
MANIFEST
|
|
24
|
+
|
|
25
|
+
# Virtual environments
|
|
26
|
+
.venv/
|
|
27
|
+
venv/
|
|
28
|
+
ENV/
|
|
29
|
+
env/
|
|
30
|
+
|
|
31
|
+
# IDEs
|
|
32
|
+
.vscode/
|
|
33
|
+
.idea/
|
|
34
|
+
*.swp
|
|
35
|
+
*.swo
|
|
36
|
+
*~
|
|
37
|
+
.DS_Store
|
|
38
|
+
|
|
39
|
+
# Type checking
|
|
40
|
+
.mypy_cache/
|
|
41
|
+
.dmypy.json
|
|
42
|
+
dmypy.json
|
|
43
|
+
.pyre/
|
|
44
|
+
.pytype/
|
|
45
|
+
|
|
46
|
+
# Linting
|
|
47
|
+
.ruff_cache/
|
|
48
|
+
|
|
49
|
+
# Testing
|
|
50
|
+
.pytest_cache/
|
|
51
|
+
.coverage
|
|
52
|
+
.coverage.*
|
|
53
|
+
htmlcov/
|
|
54
|
+
.tox/
|
|
55
|
+
.nox/
|
|
56
|
+
coverage.xml
|
|
57
|
+
*.cover
|
|
58
|
+
*.log
|
|
59
|
+
|
|
60
|
+
# Jupyter
|
|
61
|
+
.ipynb_checkpoints
|
|
62
|
+
*.ipynb
|
|
63
|
+
|
|
64
|
+
# Contextual-specific
|
|
65
|
+
.contextual/
|
|
66
|
+
*.db
|
|
67
|
+
*.db-shm
|
|
68
|
+
*.db-wal
|
|
69
|
+
lance/
|
|
70
|
+
|
|
71
|
+
# Documentation builds
|
|
72
|
+
docs/_build/
|
|
73
|
+
site/
|
|
74
|
+
|
|
75
|
+
# Environment files
|
|
76
|
+
.env
|
|
77
|
+
.env.local
|
|
78
|
+
.envrc
|
|
79
|
+
|
|
80
|
+
# macOS
|
|
81
|
+
.DS_Store
|
|
82
|
+
.AppleDouble
|
|
83
|
+
.LSOverride
|
|
84
|
+
|
|
85
|
+
# Temporary files
|
|
86
|
+
*.tmp
|
|
87
|
+
*.bak
|
|
88
|
+
*.swp
|
|
89
|
+
*~
|
|
90
|
+
|
|
91
|
+
# Distribution
|
|
92
|
+
*.tar.gz
|
|
93
|
+
*.whl
|
|
94
|
+
.pypirc
|
|
95
|
+
|
|
96
|
+
# CI/CD
|
|
97
|
+
.github/workflows/*.log
|
|
98
|
+
|
|
99
|
+
#development markdown files
|
|
100
|
+
AGENTS.md
|
|
101
|
+
CLAUDE.md
|
|
102
|
+
repo_structure.md
|
|
103
|
+
SCAFFOLD_README.md
|
|
104
|
+
output.md
|
|
105
|
+
audit_report.md
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
repos:
|
|
2
|
+
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
3
|
+
rev: v5.0.0
|
|
4
|
+
hooks:
|
|
5
|
+
- id: trailing-whitespace
|
|
6
|
+
- id: end-of-file-fixer
|
|
7
|
+
- id: check-yaml
|
|
8
|
+
- id: check-added-large-files
|
|
9
|
+
|
|
10
|
+
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
11
|
+
rev: v0.12.0
|
|
12
|
+
hooks:
|
|
13
|
+
- id: ruff
|
|
14
|
+
- id: ruff-format
|
|
15
|
+
|
|
16
|
+
- repo: https://github.com/pre-commit/mirrors-mypy
|
|
17
|
+
rev: v1.11.2
|
|
18
|
+
hooks:
|
|
19
|
+
- id: mypy
|
|
20
|
+
args: [--strict, contextual/]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.12
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
*
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Signature: 8a477f597d28d172789f06886806bc55
|
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
BUSINESS SOURCE LICENSE 1.1 (MODIFIED — PRODUCTION-GRADE TEMPLATE)
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
PARAMETERS
|
|
6
|
+
|
|
7
|
+
Licensor: [AARJUN MAHULE]
|
|
8
|
+
|
|
9
|
+
Licensed Work: [CONTEXTUAL V0.1.0]
|
|
10
|
+
The Licensed Work is (c) [2026] [AARJUN MAHULE]
|
|
11
|
+
|
|
12
|
+
Additional Use Grant:
|
|
13
|
+
Production Use is permitted solely for:
|
|
14
|
+
|
|
15
|
+
* Individuals acting for personal, non-commercial purposes
|
|
16
|
+
* Non-commercial projects
|
|
17
|
+
* Organizations with fewer than [5] employees AND annual revenue below [500,000INR]
|
|
18
|
+
|
|
19
|
+
All other Production Use requires a separate commercial license from the Licensor.
|
|
20
|
+
|
|
21
|
+
Change Date: [2030-06-01] (typically four years from first public release)
|
|
22
|
+
|
|
23
|
+
Change License: Apache License, Version 2.0
|
|
24
|
+
|
|
25
|
+
Governing Law: This License shall be governed by and construed in accordance
|
|
26
|
+
with the laws of Republic of India.
|
|
27
|
+
|
|
28
|
+
Contact: [aarjun.mahule23@gmail.com]
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
TERMS
|
|
33
|
+
|
|
34
|
+
1. Grant of Rights
|
|
35
|
+
|
|
36
|
+
The Licensor hereby grants you the right to copy, modify, create derivative
|
|
37
|
+
works, and redistribute the Licensed Work, in whole or in part, for non-production use.
|
|
38
|
+
|
|
39
|
+
2. Definition of Production Use
|
|
40
|
+
|
|
41
|
+
“Production Use” means any use of the Licensed Work in a live, operational,
|
|
42
|
+
or business environment, including but not limited to:
|
|
43
|
+
|
|
44
|
+
* Use in software-as-a-service (SaaS), platform-as-a-service (PaaS),
|
|
45
|
+
or hosted environments
|
|
46
|
+
* Internal business operations, tools, or workflows
|
|
47
|
+
* Revenue-generating systems or services
|
|
48
|
+
* Customer-facing applications or services
|
|
49
|
+
* Any environment serving real users, customers, or organizational functions
|
|
50
|
+
|
|
51
|
+
3. Restriction on Production Use
|
|
52
|
+
|
|
53
|
+
You may not use the Licensed Work for Production Use except as expressly
|
|
54
|
+
permitted under the Additional Use Grant or through a separate commercial
|
|
55
|
+
license agreement with the Licensor.
|
|
56
|
+
|
|
57
|
+
If your use exceeds the scope of the Additional Use Grant, you must obtain
|
|
58
|
+
a commercial license from the Licensor or cease use immediately.
|
|
59
|
+
|
|
60
|
+
4. Change License
|
|
61
|
+
|
|
62
|
+
Effective on the Change Date, or the fourth anniversary of the first publicly
|
|
63
|
+
available distribution of a specific version of the Licensed Work under this
|
|
64
|
+
License, whichever comes first, the Licensor grants you rights under the
|
|
65
|
+
terms of the Change License. On such date, the rights granted under this
|
|
66
|
+
License terminate and are replaced by the Change License.
|
|
67
|
+
|
|
68
|
+
5. Version Scope
|
|
69
|
+
|
|
70
|
+
This License applies separately to each version of the Licensed Work.
|
|
71
|
+
Each version may have its own Change Date as specified by the Licensor.
|
|
72
|
+
|
|
73
|
+
6. Redistribution and Attribution
|
|
74
|
+
|
|
75
|
+
You must conspicuously display this License and retain all copyright,
|
|
76
|
+
license notices, and attribution in any original or modified copies
|
|
77
|
+
of the Licensed Work.
|
|
78
|
+
|
|
79
|
+
7. Termination
|
|
80
|
+
|
|
81
|
+
Any use of the Licensed Work in violation of this License will automatically
|
|
82
|
+
terminate your rights under this License for the current and all other
|
|
83
|
+
versions of the Licensed Work.
|
|
84
|
+
|
|
85
|
+
8. Trademarks
|
|
86
|
+
|
|
87
|
+
This License does not grant you any rights to use the Licensor’s trademarks,
|
|
88
|
+
service marks, or logos, except as required for reasonable and customary use
|
|
89
|
+
in describing the Licensed Work.
|
|
90
|
+
|
|
91
|
+
9. Disclaimer of Warranty
|
|
92
|
+
|
|
93
|
+
TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED
|
|
94
|
+
ON AN "AS IS" BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS,
|
|
95
|
+
EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF
|
|
96
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND TITLE.
|
|
97
|
+
|
|
98
|
+
10. Limitation of Liability
|
|
99
|
+
|
|
100
|
+
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL THE
|
|
101
|
+
LICENSOR BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY, WHETHER IN
|
|
102
|
+
AN ACTION OF CONTRACT, TORT, OR OTHERWISE, ARISING FROM, OUT OF, OR IN
|
|
103
|
+
CONNECTION WITH THE LICENSED WORK OR THE USE OR OTHER DEALINGS IN THE
|
|
104
|
+
LICENSED WORK.
|
|
105
|
+
|
|
106
|
+
11. Governing Law
|
|
107
|
+
|
|
108
|
+
This License shall be governed by and construed in accordance with the laws
|
|
109
|
+
of Republic of India, without regard to conflict of law principles.
|
|
110
|
+
|
|
111
|
+
---
|