actdim-along 4.9.0__py3-none-any.whl
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.
- actdim_along-4.9.0.dist-info/METADATA +289 -0
- actdim_along-4.9.0.dist-info/RECORD +152 -0
- actdim_along-4.9.0.dist-info/WHEEL +4 -0
- actdim_along-4.9.0.dist-info/entry_points.txt +2 -0
- actdim_along-4.9.0.dist-info/licenses/LICENSE +21 -0
- alongkit/__init__.py +91 -0
- alongkit/__main__.py +12 -0
- alongkit/attribution.py +131 -0
- alongkit/bootstrap.py +280 -0
- alongkit/budget.py +505 -0
- alongkit/bypass.py +152 -0
- alongkit/cli.py +84 -0
- alongkit/cliargs.py +50 -0
- alongkit/closeout.py +883 -0
- alongkit/commands/__init__.py +69 -0
- alongkit/commands/brief.py +96 -0
- alongkit/commands/common.py +39 -0
- alongkit/commands/daemon.py +153 -0
- alongkit/commands/decision.py +148 -0
- alongkit/commands/doctor.py +707 -0
- alongkit/commands/env.py +239 -0
- alongkit/commands/gates.py +361 -0
- alongkit/commands/issue.py +874 -0
- alongkit/commands/lifecycle.py +712 -0
- alongkit/commands/milestone.py +222 -0
- alongkit/commands/ops.py +396 -0
- alongkit/commands/orchestrator.py +158 -0
- alongkit/commands/scratch.py +339 -0
- alongkit/commands/session.py +349 -0
- alongkit/commands/telemetry.py +207 -0
- alongkit/commands/worktree.py +199 -0
- alongkit/conflict_check.py +209 -0
- alongkit/daemon.py +1179 -0
- alongkit/devenv.py +106 -0
- alongkit/diagnostics.py +408 -0
- alongkit/distill.py +229 -0
- alongkit/drafts.py +127 -0
- alongkit/engines/along_brief.py +33 -0
- alongkit/engines/along_commit.py +321 -0
- alongkit/engines/along_conflict_check.py +55 -0
- alongkit/engines/along_daemon.py +30 -0
- alongkit/engines/along_dash.py +75 -0
- alongkit/engines/along_dep_scan.py +1435 -0
- alongkit/engines/along_env.py +34 -0
- alongkit/engines/along_exec.py +460 -0
- alongkit/engines/along_feedback.py +375 -0
- alongkit/engines/along_graph_arch.py +360 -0
- alongkit/engines/along_graph_check.py +208 -0
- alongkit/engines/along_graph_impact.py +446 -0
- alongkit/engines/along_graph_sync.py +368 -0
- alongkit/engines/along_history_sync.py +311 -0
- alongkit/engines/along_hook.py +492 -0
- alongkit/engines/along_init.py +376 -0
- alongkit/engines/along_kb_search.py +929 -0
- alongkit/engines/along_kb_sync.py +1805 -0
- alongkit/engines/along_merge_driver.py +43 -0
- alongkit/engines/along_resolve.py +163 -0
- alongkit/engines/along_update.py +803 -0
- alongkit/engines/along_version_bump.py +909 -0
- alongkit/engines/along_wrap.py +139 -0
- alongkit/engines/bench_kb_search.py +433 -0
- alongkit/engines/configure_mcp.py +124 -0
- alongkit/engines/install_manifest.py +191 -0
- alongkit/engines/migrate_protocol.py +1695 -0
- alongkit/engines/sanitize_typography.py +127 -0
- alongkit/entities/__init__.py +212 -0
- alongkit/entities/decisions.py +513 -0
- alongkit/entities/mutation.py +458 -0
- alongkit/entities/projections.py +210 -0
- alongkit/entities/query.py +591 -0
- alongkit/entities/stubs.py +210 -0
- alongkit/entities/validation.py +437 -0
- alongkit/entities/vocabulary.py +233 -0
- alongkit/environment.py +654 -0
- alongkit/exceptions.py +41 -0
- alongkit/feedback_github.py +463 -0
- alongkit/frontmatter.py +401 -0
- alongkit/gates.py +750 -0
- alongkit/gatestats.py +151 -0
- alongkit/gitgates.py +1018 -0
- alongkit/handoff.py +987 -0
- alongkit/hookpreflight.py +129 -0
- alongkit/hooks/__init__.py +52 -0
- alongkit/hooks/adapters/__init__.py +41 -0
- alongkit/hooks/adapters/antigravity.py +132 -0
- alongkit/hooks/adapters/base.py +24 -0
- alongkit/hooks/adapters/claude.py +199 -0
- alongkit/hooks/adapters/codex.py +192 -0
- alongkit/hooks/adapters/generic.py +254 -0
- alongkit/hooks/adapters/normalize.py +88 -0
- alongkit/hooks/adapters/opencode.py +20 -0
- alongkit/hooks/config.py +1045 -0
- alongkit/hooks/containment.py +319 -0
- alongkit/hooks/declarative.py +376 -0
- alongkit/hooks/default_gates.yaml +529 -0
- alongkit/hooks/deletion.py +221 -0
- alongkit/hooks/engine.py +147 -0
- alongkit/hooks/escalation.py +368 -0
- alongkit/hooks/gates.py +175 -0
- alongkit/hooks/models.py +73 -0
- alongkit/hooks/opencode_plugin.js +334 -0
- alongkit/hooks/predicates.py +2762 -0
- alongkit/hooks/shellparse.py +163 -0
- alongkit/hooks/shellwrite.py +302 -0
- alongkit/hooks/traceability.py +231 -0
- alongkit/hooks/turnstate.py +66 -0
- alongkit/install.py +760 -0
- alongkit/kb.py +780 -0
- alongkit/lifecycle.py +1571 -0
- alongkit/markdown.py +352 -0
- alongkit/merge.py +703 -0
- alongkit/migration.py +503 -0
- alongkit/orchestration_profiles.py +312 -0
- alongkit/orchestrator.py +869 -0
- alongkit/patcher.py +189 -0
- alongkit/planscope.py +112 -0
- alongkit/proc.py +371 -0
- alongkit/profiles.py +182 -0
- alongkit/repo.py +779 -0
- alongkit/repochecks.py +420 -0
- alongkit/resolve.py +612 -0
- alongkit/resolve_code.py +462 -0
- alongkit/rules.py +455 -0
- alongkit/runner/__init__.py +52 -0
- alongkit/runner/antigravity.py +192 -0
- alongkit/runner/base.py +475 -0
- alongkit/runner/claude.py +125 -0
- alongkit/runner/codex.py +151 -0
- alongkit/runner/generic.py +88 -0
- alongkit/runner/opencode.py +188 -0
- alongkit/runner/stream.py +199 -0
- alongkit/runtime.py +370 -0
- alongkit/sanitizer.py +375 -0
- alongkit/scaffold.py +490 -0
- alongkit/semver.py +81 -0
- alongkit/session.py +2198 -0
- alongkit/telegram.py +292 -0
- alongkit/telemetry/__init__.py +36 -0
- alongkit/telemetry/conventions.py +91 -0
- alongkit/telemetry/models.py +165 -0
- alongkit/telemetry/offloader.py +115 -0
- alongkit/telemetry/otlp.py +465 -0
- alongkit/telemetry/redactor.py +208 -0
- alongkit/telemetry/spool.py +86 -0
- alongkit/telemetry/tracer.py +447 -0
- alongkit/testruns.py +209 -0
- alongkit/textio.py +168 -0
- alongkit/transaction.py +161 -0
- alongkit/typography.py +156 -0
- alongkit/verify.py +455 -0
- alongkit/version.py +42 -0
- alongkit/worktree.py +711 -0
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: actdim-along
|
|
3
|
+
Version: 4.9.0
|
|
4
|
+
Summary: Provider-agnostic agent-context protocol and skills suite: in-repo memory, entity lifecycle, and LLM-Wiki knowledge base for Claude Code, Codex, OpenCode, and Antigravity.
|
|
5
|
+
Project-URL: Homepage, https://github.com/actdim/along
|
|
6
|
+
Project-URL: Repository, https://github.com/actdim/along
|
|
7
|
+
Author: actdim
|
|
8
|
+
License: MIT License
|
|
9
|
+
|
|
10
|
+
Copyright (c) 2026 actdim
|
|
11
|
+
|
|
12
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
13
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
14
|
+
in the Software without restriction, including without limitation the rights
|
|
15
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
16
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
17
|
+
furnished to do so, subject to the following conditions:
|
|
18
|
+
|
|
19
|
+
The above copyright notice and this permission notice shall be included in all
|
|
20
|
+
copies or substantial portions of the Software.
|
|
21
|
+
|
|
22
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
23
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
24
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
25
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
26
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
27
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
28
|
+
SOFTWARE.
|
|
29
|
+
License-File: LICENSE
|
|
30
|
+
Keywords: agents,ai-agent,along,llms,protocol,rules
|
|
31
|
+
Classifier: Development Status :: 4 - Beta
|
|
32
|
+
Classifier: Environment :: Console
|
|
33
|
+
Classifier: Intended Audience :: Developers
|
|
34
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
35
|
+
Classifier: Topic :: Software Development :: Documentation
|
|
36
|
+
Requires-Python: >=3.10
|
|
37
|
+
Requires-Dist: ruamel-yaml>=0.18
|
|
38
|
+
Provides-Extra: all
|
|
39
|
+
Requires-Dist: fastapi>=0.110.0; extra == 'all'
|
|
40
|
+
Requires-Dist: pydantic>=2.0.0; extra == 'all'
|
|
41
|
+
Requires-Dist: rich>=13.0.0; extra == 'all'
|
|
42
|
+
Requires-Dist: uvicorn>=0.28.0; extra == 'all'
|
|
43
|
+
Provides-Extra: dash
|
|
44
|
+
Requires-Dist: fastapi>=0.110.0; extra == 'dash'
|
|
45
|
+
Requires-Dist: pydantic>=2.0.0; extra == 'dash'
|
|
46
|
+
Requires-Dist: rich>=13.0.0; extra == 'dash'
|
|
47
|
+
Requires-Dist: uvicorn>=0.28.0; extra == 'dash'
|
|
48
|
+
Description-Content-Type: text/markdown
|
|
49
|
+
|
|
50
|
+
# ActDim Along (v4.9.0)
|
|
51
|
+
|
|
52
|
+
[](https://github.com/actdim/along/actions/workflows/tests.yml) - Python 3.10-3.13 on Linux and Windows.
|
|
53
|
+
|
|
54
|
+
ActDim Along is a provider-agnostic context and memory protocol for AI coding agents (`ALONG-PROTOCOL v4.9.0`) that provides persistent in-repo task tracking, an evergreen architecture wiki, and mechanical quality gates across Claude Code, Google Antigravity, OpenAI Codex, and OpenCode.
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Quickstart & Installation
|
|
59
|
+
|
|
60
|
+
Install Along across all supported AI providers with a single command:
|
|
61
|
+
|
|
62
|
+
### Windows (PowerShell)
|
|
63
|
+
```powershell
|
|
64
|
+
powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://raw.githubusercontent.com/actdim/along/main/install.ps1 | iex"
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Linux / macOS (Bash)
|
|
68
|
+
```bash
|
|
69
|
+
curl -fsSL https://raw.githubusercontent.com/actdim/along/main/install.sh | bash
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
The installer bootstraps the repository into `~/.cache/actdim-along/repo` (via shallow `git clone` or archive fallback) and configures skills across Claude Code, OpenAI Codex, Google Antigravity, and OpenCode.
|
|
73
|
+
|
|
74
|
+
### Python Package Installation (Core vs. Extras)
|
|
75
|
+
|
|
76
|
+
Along is distributed on PyPI as `actdim-along`. Install Along Core with minimal dependencies or include modular extras:
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
# Core only: minimal runtime dependency (ruamel.yaml>=0.18; telemetry is built-in stdlib)
|
|
80
|
+
pip install actdim-along
|
|
81
|
+
|
|
82
|
+
# Web Dashboard: FastAPI, Uvicorn, Pydantic, and Rich
|
|
83
|
+
pip install actdim-along[dash]
|
|
84
|
+
|
|
85
|
+
# Full suite: install all optional extras
|
|
86
|
+
pip install actdim-along[all]
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
#### Manual / Local Checkout Installation
|
|
90
|
+
If you prefer to clone the repository manually or are developing Along:
|
|
91
|
+
```powershell
|
|
92
|
+
git clone https://github.com/actdim/along.git
|
|
93
|
+
cd along
|
|
94
|
+
powershell -NoProfile -ExecutionPolicy Bypass -File install.ps1 -Target all # Windows
|
|
95
|
+
bash install.sh --target=all # Linux / macOS
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
An install records what it wrote in `~/.along/install-manifest.json`: it never deletes a
|
|
99
|
+
directory it does not own, so rules you wrote yourself survive every re-install, and
|
|
100
|
+
`install.ps1 -Uninstall` / `./install.sh --uninstall` removes exactly that record and
|
|
101
|
+
nothing else. See [Setup, Installation & Workflows](./docs/topic--setup-and-workflow.md).
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## Why Along?
|
|
106
|
+
|
|
107
|
+
AI coding agents encounter several recurring failure modes across extended sessions:
|
|
108
|
+
- **Context Loss**: Agents forget past architectural choices, re-invent rejected patterns, and drop active tasks across sessions.
|
|
109
|
+
- **Context Bloat**: Ingesting entire files or directories into prompts consumes large token budgets per turn.
|
|
110
|
+
- **Multi-Branch Concurrency**: Parallel agents modify shared documentation, status boards, or lock files, causing git merge conflicts.
|
|
111
|
+
- **Unanchored Modifications**: Without explicit issue anchoring and pre-commit checks, agents can make unintended modifications that bypass test suites.
|
|
112
|
+
- **Toolchain Inconsistencies**: Differing build tools, test frameworks, and command flags can produce verbose context logs or invalid invocations.
|
|
113
|
+
- **Workspace Pollution**: Running parallel or autonomous agents directly in developer working directories can conflict with uncommitted working tree edits.
|
|
114
|
+
- **Prompt Instruction Decay**: Natural language guidelines in static prompts can lose effectiveness as context length grows.
|
|
115
|
+
|
|
116
|
+
Along addresses these challenges through a dual-tier structure: an evergreen architecture wiki (`docs/`) for system design consensus, and a machine-readable governance layer (`.along/`) for task tracking, decision records, and session history. Agents track issues in a dependency graph, search project knowledge via bounded snippet retrieval, and verify changes through declarative quality gates.
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Core Value Proposition
|
|
121
|
+
|
|
122
|
+
| Pillar | How Along Delivers It |
|
|
123
|
+
| :--- | :--- |
|
|
124
|
+
| **Zero-Vector In-Repo Intelligence** | Fast TF-IDF multi-scope retrieval engine (`along-kb-search`) unifying docs, ADR constraints, active issues, and session logs into word-boundary aligned snippets (<= 150 words), avoiding full-file context ingestion and significantly reducing exploration prompt tokens without external vector DBs or daemon processes (see [benchmarks](scripts/bench_kb_search.py)). |
|
|
125
|
+
| **Dual-Tier Memory Architecture** | Clean architectural separation: Evergreen LLM-Wiki (`docs/`) with AST code symbol grounding and SHA-256 drift detection vs. Living Transactional Governance (`.along/`) with DAG issues, immutable session history, and atomic projections. |
|
|
126
|
+
| **Persistent In-Repo Memory** | Durable, git-tracked memory (`.along/`): DAG issues (spikes and `risk`-tagged blockers included), append-only ADR logs, milestones, and session records that travel with the codebase. |
|
|
127
|
+
| **Autonomous Multi-Agent Teams** | Sequential living-plan state machine (`along-team`): Supervisor -> Scout -> Architect -> Implementer -> Reviewer with session blackboards, retry limits, and single-agent degradation. |
|
|
128
|
+
| **Runtime Worktree Workspace Isolation** | Ephemeral Git worktree isolation (`along worktree`, `/along-team --worktree`) satisfying the 3-part Environment Readiness Contract: NTFS junctions / symlinks for dependencies (`node_modules`, `.venv`), `.env` configuration copying, real-time session blackboard sharing, and Windows file lock resilient teardown. |
|
|
129
|
+
| **Runtime Mechanical Prose Enforcement** | Active agent lifecycle interception (`PreToolUse`, `Stop`) turning markdown guidelines into hard runtime errors across Claude Code, Antigravity, and Codex, with machine-checked bi-directional traceability (`along hook verify`). |
|
|
130
|
+
| **Token-Efficient LLM-Wiki (`docs/`)** | Modular knowledge base with in-place source provenance, SHA-256 drift detection, deterministic `llms.txt` compilation, and targeted snippet search (`along-kb-search`) avoiding full-file context ingestion. |
|
|
131
|
+
| **Stack-Agnostic Lifecycle & Polyglot Hooks** | Unified agent execution contract (`/along-build`, `/along-test`, `/along-dev`, `/along-version-bump`, `/along-dep-scan`) with zero-config stack auto-detection and polyglot repository hooks (`.along/scripts/` in Python, Bash, PowerShell, Batch). |
|
|
132
|
+
| **Zero-Conflict Git Concurrency** | Single Source of Truth (SSOT) atomic files vs compiled projections (`ISSUES.md`, `INDEX.md`), union merges (`merge=union`), and decentralized date-slug ADRs that avoid collisions in parallel branches. |
|
|
133
|
+
| **Engineering Provenance & Dual-Track UI** | Living plans, fix loops, and verification gates are permanently recorded in session logs while projecting interactive visual review cards in IDEs (Antigravity). |
|
|
134
|
+
| **Strict Data Safety & Verification Gates** | Hermetic engines (`alongkit`) with transactional byte-exact rollbacks, strict front-matter preservation (`ruamel.yaml`), and zero-unintended-deletions invariant. |
|
|
135
|
+
| **Declarative Runtime Gates & Traceability** | Mechanical agent lifecycle interception (`PreToolUse`, `Stop`) enforcing declarative runtime gates in `default_gates.yaml` (32 protocol invariants enforced across runtime hooks, git hooks, and CI), backed by machine-checked bi-directional traceability (`along hook verify`). In runtimes with Along hooks installed, violations trigger immediate tool-level interception; git and CI gates provide universal baseline enforcement everywhere. |
|
|
136
|
+
| **Nearest Context Boundary** | Monorepos, microservices, and Git submodules maintain isolated localized memory, preventing root workspace pollution. |
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
### Dual-Tier Memory Architecture: Evergreen Wiki vs. Living Governance
|
|
141
|
+
|
|
142
|
+
Along divides repository intelligence into two specialized, complementary tiers to keep agent context scalable and predictable:
|
|
143
|
+
|
|
144
|
+
```mermaid
|
|
145
|
+
flowchart TD
|
|
146
|
+
subgraph Tier1["Tier 1: Evergreen Architecture Wiki (docs/)"]
|
|
147
|
+
WIKI["Curated Knowledge Base (docs/topic--*.md)"]
|
|
148
|
+
AST["AST Code Symbol Grounding (zero ghost symbols)"]
|
|
149
|
+
PROV["Source Provenance (SHA-256 drift gate)"]
|
|
150
|
+
LLMS["Deterministic llms.txt & llms-full.txt"]
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
subgraph Tier2["Tier 2: Living Governance Memory (.along/)"]
|
|
154
|
+
ISSUES["Machine-Parseable DAG Issues (open -> done)"]
|
|
155
|
+
ADRS["Decentralized ADRs & CONSTRAINTS.md"]
|
|
156
|
+
SESSIONS["Immutable Session Logs & Engineering Provenance"]
|
|
157
|
+
PROJ["Auto-Compiled Projections (ISSUES.md)"]
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
subgraph Retrieval["Zero-Vector In-Repo Retrieval Engine (along kb-search)"]
|
|
161
|
+
SEARCH["Fast TF-IDF Multi-Scope Search"]
|
|
162
|
+
SNIPPETS["Targeted Bounded Snippets (<= 150 Words)"]
|
|
163
|
+
SAVINGS["Bounded Snippets (<= 150 Words) vs Full-File Ingestion"]
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
WIKI --- SEARCH
|
|
167
|
+
ISSUES --- SEARCH
|
|
168
|
+
ADRS --- SEARCH
|
|
169
|
+
SESSIONS --- SEARCH
|
|
170
|
+
SEARCH --> SNIPPETS --> SAVINGS
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
- **Tier 1: Evergreen Architecture Wiki (`docs/`)**:
|
|
174
|
+
- **Purpose**: Curated, cumulative knowledge base representing the current factual state of system design.
|
|
175
|
+
- **Mechanisms**: In-place source provenance (`sources: [{path, hash}]`), AST code symbol verification to prevent hallucinated interfaces, and deterministic compilation into `docs/INDEX.md` and `llms.txt`.
|
|
176
|
+
- **Lifecycle**: Evolves with the codebase. Never transactional; updated only when public contracts, workflows, or architecture change.
|
|
177
|
+
- **Tier 2: Living Governance Memory (`.along/`)**:
|
|
178
|
+
- **Purpose**: Transactional project memory, active task execution state, and historical audit trails.
|
|
179
|
+
- **Mechanisms**: Machine-parseable DAG issues with lifecycle states, modular ADRs (`ADR-YYYY-MM-DD--<slug>.md`), compiled constraints projection (`CONSTRAINTS.md`), and append-only session history.
|
|
180
|
+
- **Lifecycle**: Transactional and stateful. Closed issues and session logs are permanent and immutable.
|
|
181
|
+
- **Unified Retrieval Engine (`along kb-search`)**:
|
|
182
|
+
- Unifies both tiers in a single fast local query without vector embeddings, cloud dependencies, or background daemon processes.
|
|
183
|
+
- Returns word-boundary aligned snippets (< 150 tokens) directly to agent prompts, avoiding full-file context ingestion (measured in [scripts/bench_kb_search.py](scripts/bench_kb_search.py)).
|
|
184
|
+
|
|
185
|
+
### Along Core vs. Modular Extras Architecture
|
|
186
|
+
|
|
187
|
+
Along enforces a strict minimal-core architecture:
|
|
188
|
+
- **Along Core (`actdim-along`)**: In-repo memory (`.along/`), entity lifecycle (`ISSUES/`, `DECISIONS/`, `MILESTONES/`), projections (`ISSUES.md`, `CONSTRAINTS.md`, `docs/INDEX.md`), bounded snippet retrieval (`along kb-search`), standard lifecycle contracts (`build`, `test`, `dev`, `commit`, `wrap`), mechanical safety gates, and stdlib telemetry (tracer, redactor, spool, OTLP/HTTP JSON exporter). Core runtime dependencies remain strictly minimal (`ruamel.yaml>=0.18`).
|
|
189
|
+
- **Modular Extras**:
|
|
190
|
+
- `actdim-along[dash]`: Web dashboard UI, Cytoscape DAG visualization, and OpenAPI analytics server.
|
|
191
|
+
- `actdim-along[all]`: Stable alias for optional extras (`[dash]`).
|
|
192
|
+
- Optional protocol modules (`along-team`, git worktree sandboxing, `code-review-graph` AST tools, `along-dep-scan`) operate on-demand with zero extra package dependencies.
|
|
193
|
+
- **Protocol Versioning**: Protocol specification version (`ALONG-PROTOCOL vX.Y.Z`) changes strictly on format or schema updates. Tooling enhancements release as minors; breaking format changes are batched into rare majors with migration automation (`along migrate`).
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## Using Along in Your Projects? (Drop-In Blurb)
|
|
198
|
+
|
|
199
|
+
Add this badge and blurb to the `README.md` of any repository powered by Along:
|
|
200
|
+
|
|
201
|
+
````markdown
|
|
202
|
+
### AI Development: Powered by [ActDim Along](https://github.com/actdim/along)
|
|
203
|
+
|
|
204
|
+
This repository follows the **ActDim Along Protocol** for AI agent context, persistent memory, and autonomous workflows:
|
|
205
|
+
- **Dual-Tier Memory**: Evergreen LLM-Wiki in `docs/` and living governance memory in `.along/` survive across all AI sessions.
|
|
206
|
+
- **Zero-Vector Unified Retrieval**: Fast local snippet search across architecture, decisions, and issues returning bounded snippets (< 150 tokens) without full-file ingestion or external database dependencies.
|
|
207
|
+
- **Runtime Worktree Isolation**: Autonomous agent tasks execute in isolated Git worktrees with automatic dependency linking, preserving clean developer checkouts.
|
|
208
|
+
- **Mechanical Quality Gates**: Protocol rules, clean typography, and issue bindings are mechanically enforced before tools execute in runtimes that load Along's hooks (Claude Code, Antigravity, Codex); elsewhere they are advisory. The portable baseline for every committer is the CI job `along gates check --ci` plus opt-in git hooks (`along hooks install --git`).
|
|
209
|
+
- **Standardized Lifecycle Contract**: Unified commands for build, test, dev, release, and dependency discovery via pluggable `.along/scripts/` hooks.
|
|
210
|
+
- **Provider-Agnostic**: Compatible out of the box with **Claude Code**, **Google Antigravity**, **OpenAI Codex**, and **OpenCode**.
|
|
211
|
+
````
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## Knowledge Base & Architecture Index
|
|
216
|
+
|
|
217
|
+
The repository's complete technical specification is maintained as a living LLM-Wiki in [`docs/`](./docs/INDEX.md):
|
|
218
|
+
|
|
219
|
+
| Topic | Description | Link |
|
|
220
|
+
| :--- | :--- | :--- |
|
|
221
|
+
| **System Architecture** | Provider flow, context boundaries, code intelligence, and bridge layers. | [System Architecture & Flow](./docs/topic--architecture.md) |
|
|
222
|
+
| **CLI Command Reference** | Unified console command dictionary, subcommands, flags, and exit codes. | [Along CLI Command Reference](./docs/topic--cli-reference.md) |
|
|
223
|
+
| **Domain Model & Entities** | Machine-parseable schemas for Issues, ADRs, Milestones, and Sessions. | [Domain Model & Entity Ecosystem](./docs/topic--domain-model.md) |
|
|
224
|
+
| **Setup & Workflows** | Installation matrix, repository onboarding, and session lifecycle. | [Setup, Installation & Workflows](./docs/topic--setup-and-workflow.md) |
|
|
225
|
+
| **LLM-Wiki Architecture** | Andrej Karpathy paradigm, source isolation, and token efficiency. | [LLM-Wiki Architecture & Paradigm](./docs/topic--llm-wiki-architecture.md) |
|
|
226
|
+
| **Runtime Hooks & Gates** | Agent lifecycle interception harness across Antigravity, Claude, and Codex, plus the runtime capability matrix: where gates are mechanical and where (Claude Cowork, Cursor, OpenCode) they are advisory. | [Runtime Lifecycle Hooks & Mechanical Gates](./docs/topic--runtime-hooks-and-gates.md) |
|
|
227
|
+
| **Declarative Gates & Traceability** | Extensible YAML gate engine and bi-directional machine-checked matrix. | [Declarative Gate Engine & Traceability Matrix](./docs/topic--declarative-gates-and-traceability.md) |
|
|
228
|
+
|
|
229
|
+
## Automation Skills Reference (Grouped by Workflow Phase)
|
|
230
|
+
|
|
231
|
+
Along provides **21 singular automation skills** structured across 6 core lifecycle phases:
|
|
232
|
+
|
|
233
|
+
### 1. Bootstrap & Repository Protocol Management
|
|
234
|
+
| Skill / Command | Purpose |
|
|
235
|
+
| :--- | :--- |
|
|
236
|
+
| **`along-init`** (`/along-init`) | Scaffold/refresh `AGENTS.md` + `CLAUDE.md` + `.along/` in a folder via the deterministic `along init` engine; a root `VISION.md` moves into `.along/`. |
|
|
237
|
+
| **`along-update`** (`/along-update`) | One-liner update of repository context, protocol, and global skills from GitHub. |
|
|
238
|
+
| **`along-version-bump`** (`/along-version-bump`) | Multi-stack version bump and release orchestrator (Node, Python, Rust, .NET). |
|
|
239
|
+
|
|
240
|
+
### 2. Orchestration, Planning & Multi-Agent Teams
|
|
241
|
+
| Skill / Command | Purpose |
|
|
242
|
+
| :--- | :--- |
|
|
243
|
+
| **`along-team`** (`/along-team`) | Sequential multi-agent autonomous development engine and living plan. |
|
|
244
|
+
| **`along start`** | Atomically claim issue, initialize session blackboard, and provision worktree. |
|
|
245
|
+
| **`along issue`** | Create, update (fuzzy milestones, priority), show, and close issues. |
|
|
246
|
+
| **`along milestone`** | Synchronize bidirectional target issues, calculate progress %, and show status. |
|
|
247
|
+
| **`along-issue-sync`** (`/along-issue-sync`) | Reconcile active issue board projection (`ISSUES.md`) with atomic issue files. |
|
|
248
|
+
| **`along-decision-sync`** (`/along-decision-sync`) | Record ADRs into append-only `.along/DECISIONS.md` and compile active `.along/CONSTRAINTS.md`. |
|
|
249
|
+
|
|
250
|
+
### 3. Development & Lifecycle Execution Runners
|
|
251
|
+
| Skill / Command | Purpose |
|
|
252
|
+
| :--- | :--- |
|
|
253
|
+
| **`along-build`** (`/along-build`) | Project build lifecycle hook via `.along/scripts/build.py` or auto-detected runner. |
|
|
254
|
+
| **`along-test`** (`/along-test`) | Automated test suite with quiet flags via `.along/scripts/test.py` or runner. |
|
|
255
|
+
| **`along-dev`** (`/along-dev`) | Local development/debugging server via `.along/scripts/dev.py` or runner. |
|
|
256
|
+
|
|
257
|
+
### 4. Quality Gates, Code Graph & Commit Integrity
|
|
258
|
+
| Skill / Command | Purpose |
|
|
259
|
+
| :--- | :--- |
|
|
260
|
+
| **`along-commit`** (`/along-commit`) | Smart ASCII-clean Conventional Committer linked to active `.along/` issue. |
|
|
261
|
+
| **`along hook verify`** (`along hook`) | Verify bi-directional traceability between prose badges and YAML gates, and print which layer (runtime, git, ci) enforces each gate. |
|
|
262
|
+
| **`along gates check`** | Commit-time gates outside agent runtimes: `--hook pre-commit` / `--hook commit-msg` (opt-in via `along hooks install --git`) or `--ci` over a commit range. |
|
|
263
|
+
| **`along git setup`** | Register merge drivers for projections and entity front-matter (`along git sync` after a merge). |
|
|
264
|
+
| **`along-graph-check`** (`/along-graph-check`) | Preflight health check and verification for `code-review-graph` AST engine. |
|
|
265
|
+
| **`along-graph-sync`** (`/along-graph-sync`) | Build or incrementally update `code-review-graph` AST code intelligence database. |
|
|
266
|
+
| **`along-graph-impact`** (`/along-graph-impact`) | Determine blast radius, affected flows, and candidate tests for changed symbols or files. |
|
|
267
|
+
| **`along-graph-arch`** (`/along-graph-arch`) | Architectural overview, community structure, coupling hotspots, and bridge nodes. |
|
|
268
|
+
| **`along-dep-scan`** (`/along-dep-scan`) | Scan declared dependencies for AI instructions into `docs/topic--dependencies.md`. |
|
|
269
|
+
| **`along context-budget`** (`along budget`) | Context budget measurement and regression gate (`--check`, `--json`). |
|
|
270
|
+
|
|
271
|
+
### 5. Knowledge Base & LLM-Wiki Intelligence
|
|
272
|
+
| Skill / Command | Purpose |
|
|
273
|
+
| :--- | :--- |
|
|
274
|
+
| **`along-kb-sync`** (`/along-kb-sync`) | Idempotent LLM-Wiki Knowledge Base compiler, AST symbol grounding, and link integrity gate in `docs/`. |
|
|
275
|
+
| **`along-kb-search`** (`/along-kb-search`) | Zero-vector local multi-scope snippet search across `docs/`, ADRs, issues, and session logs (< 150 tokens/match). |
|
|
276
|
+
|
|
277
|
+
### 6. Visual Analytics, History & Diagnostics
|
|
278
|
+
| Skill / Command | Purpose |
|
|
279
|
+
| :--- | :--- |
|
|
280
|
+
| **`along-dash`** (`/along-dash`) | Launch executive dashboard (Web UI, CLI, Cytoscape DAG, HTML export). |
|
|
281
|
+
| **`along-history-sync`** (`/along-history-sync`) | Reconstruct `.along/` milestones, issues, and sessions from Git commits. |
|
|
282
|
+
| **`along-feedback`** (`/along-feedback`) | System self-diagnostics, incident logging, and feedback dispatch. |
|
|
283
|
+
| **`along-wrap`** (`/along-wrap`) | Unified end-of-stage wrap: verification checklist, session log, issues, history. |
|
|
284
|
+
|
|
285
|
+
---
|
|
286
|
+
|
|
287
|
+
## License
|
|
288
|
+
|
|
289
|
+
MIT License. See [LICENSE](./LICENSE) for details.
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
alongkit/__init__.py,sha256=eEMY9PN4JdEc2fP0DaBDAxsmrqc3T2a-2ODwtQQOfys,3422
|
|
2
|
+
alongkit/__main__.py,sha256=C2WZzpkIdCmN_RqxEkxbTE-N5IKpArjzWcwor6lRxxo,318
|
|
3
|
+
alongkit/attribution.py,sha256=facfYsz6ccFM0vPCDtp4ihG4JZ8td-xBScfTsiK8Vx4,5023
|
|
4
|
+
alongkit/bootstrap.py,sha256=aqhfqvJEov8G1xgW9edJG2pYHkZpJSm_cWIF-cBeEzA,12423
|
|
5
|
+
alongkit/budget.py,sha256=AyviJdUEa6IyT2nEcyjgL_tm7xL7lKeVi5-6DDtyHJM,21324
|
|
6
|
+
alongkit/bypass.py,sha256=a9_5lhVpQJL1icO9c2iZ7VfiGRRETZXFP5XD8oA-pDA,6423
|
|
7
|
+
alongkit/cli.py,sha256=pA6_9kAoNoaWUt4Tl5LPfXZ5brYHGMoUK1bRUON9YX0,2903
|
|
8
|
+
alongkit/cliargs.py,sha256=jfK7FshO_f_50d4Sk2HBMvAOZKndEBx8PJ4cLE5iVVs,1830
|
|
9
|
+
alongkit/closeout.py,sha256=m3oFht6sZTZi5KWWzW08mBF9YLewKdH38FDZT4NF7Kg,42460
|
|
10
|
+
alongkit/conflict_check.py,sha256=FMTKLq4czbj48W4H-rQr8_cbFfaQ4-9Yz7pRAjmkmqw,8410
|
|
11
|
+
alongkit/daemon.py,sha256=GX5kb7hJEzNqCIgeYjOW3sAW-onKZw3rOhg7LbOqNL4,48034
|
|
12
|
+
alongkit/devenv.py,sha256=9QWrKFXpGaA_eqPcjpRpnZwbjQdF_HE8XfohV2HT-p4,4187
|
|
13
|
+
alongkit/diagnostics.py,sha256=1CYuzz4aLs0V4jv9k9qvrXnJiYAG_tB9xF4zV8udwQY,16111
|
|
14
|
+
alongkit/distill.py,sha256=jlpFF6mlsHKuPAPz2hjBSU9zAvXFSkz9CpY8Eb06dC8,9185
|
|
15
|
+
alongkit/drafts.py,sha256=Aw_sFyrsBC8EDGOFeorO_ENMhw9z_ajFO3vawje-qR0,4157
|
|
16
|
+
alongkit/environment.py,sha256=kp0Tvua-onxC5pV8CYYnA_Dthv5DCnIWzKcSQkb6zck,22433
|
|
17
|
+
alongkit/exceptions.py,sha256=ce3Rhu6EMySjZtf9EWtYgR6f32dL_pE8dYdg8jjqDkg,1295
|
|
18
|
+
alongkit/feedback_github.py,sha256=5KQPXmvdcZmXuauRbQdEnvGrMH5SSYKykY0b752SVnc,17261
|
|
19
|
+
alongkit/frontmatter.py,sha256=ceRz2WN7mpAnscv8UId8tJvWRRTQzhKTTqsRl4aBqlM,15209
|
|
20
|
+
alongkit/gates.py,sha256=TM9HA2_XF6CRq9oDW3KHs0u729U3ezaVAV9Of1xSWCs,32091
|
|
21
|
+
alongkit/gatestats.py,sha256=2Qxuuhgy0kYnapv73BcmI8S78ZSCi7fclLibeR0nrgE,5884
|
|
22
|
+
alongkit/gitgates.py,sha256=-YNjv9M2wd1XCmtgRq4obmucTP_hyZz8v7NCfUPFFBU,44708
|
|
23
|
+
alongkit/handoff.py,sha256=_jhJTDcdTGfJYgZJEn5RMD2yZCef9viVzHf2HIxCWqA,35498
|
|
24
|
+
alongkit/hookpreflight.py,sha256=Gq2jy0bhgAWpPn79sYi3Q0VSe3PR6adlqU3mj9Gvqo0,5044
|
|
25
|
+
alongkit/install.py,sha256=2dRSDXqweiICiQ0n5stFTFCz7NXqauzVipZByyxp9vY,32032
|
|
26
|
+
alongkit/kb.py,sha256=0oaOkIT9rFvNvr9ZZrLURmfz2-ixMqy0EO88YNEmlC0,29300
|
|
27
|
+
alongkit/lifecycle.py,sha256=jIr-zTFEgHx5YibIYmaQTs6dzSdX9uPq3SgasoZHsrY,69499
|
|
28
|
+
alongkit/markdown.py,sha256=dbtRoAcHpBSZDUo9wSCaoNRFFIQbGNngwEllOf5hpXQ,13033
|
|
29
|
+
alongkit/merge.py,sha256=wxKsAlksSJHPh_-JRQvlACX85klLlrXgnRzrdkB4Nn4,29441
|
|
30
|
+
alongkit/migration.py,sha256=Cb9T3lNldHG1uyLAEm-Tb5W5uhQqawyivRxMGk2K3aA,20978
|
|
31
|
+
alongkit/orchestration_profiles.py,sha256=Dzf9wrD5VUHQs9WAd2NlJ3O9VeQ7U9aXhsRRYDDL0dM,12552
|
|
32
|
+
alongkit/orchestrator.py,sha256=-m__O_-OoRs5EIb5Hh24QwQGZg64WBZJzkvUiDxatYE,36604
|
|
33
|
+
alongkit/patcher.py,sha256=ytFQzsudNGWgeWGrUlqp96ZjACGbZxXD8uaIryA90ZQ,7238
|
|
34
|
+
alongkit/planscope.py,sha256=oQfSn9N6UMKhAVHHHi-oQtYCzRI9wJ-4VZxtDah0j9k,3372
|
|
35
|
+
alongkit/proc.py,sha256=AjyeeXdJhw2yCb_YJRQR-pn2UUPSVVfLo1oUeSuNFOE,13487
|
|
36
|
+
alongkit/profiles.py,sha256=FzAIhmcCQUJcr0TFxbFNEiFN0WuJuBuExThWEGbC8JU,6475
|
|
37
|
+
alongkit/repo.py,sha256=qV03s3glLqPb2INmvzJ4iWLZO2MOEL7O_DGQdX_wUMk,32153
|
|
38
|
+
alongkit/repochecks.py,sha256=H-nG2EiLB0-se_Qqf0wIkBHJseGsKG1F66-218Bud1U,20262
|
|
39
|
+
alongkit/resolve.py,sha256=Lts1RPX9SYi1-OO8q_mfcNu_igQ5u_-FQ8dirS08H9Q,23216
|
|
40
|
+
alongkit/resolve_code.py,sha256=7ZvuWu0NYhAkISBrCGg4J4uDRWhxnWTIejrWvDB8YNM,16942
|
|
41
|
+
alongkit/rules.py,sha256=3BNXSVGpLNnhIAy1Y3YVEKV1pfi4Bv12AYv_CpuyL0k,18918
|
|
42
|
+
alongkit/runtime.py,sha256=RtWUkadjUxDu4gGoaKWaah8waqCC6x5RRaB3Tk7UbjU,15294
|
|
43
|
+
alongkit/sanitizer.py,sha256=NafMaWH0IqiOLztMOYBvd7GZOQLR0F8QZWOXeVoM0i4,14614
|
|
44
|
+
alongkit/scaffold.py,sha256=olEULjHsl0ExTrmWe8f88wgifuM2GD5JZ1ZjUWPLzj0,21352
|
|
45
|
+
alongkit/semver.py,sha256=j8_CXRmrg4OXyYtXO5eiiPTBuTZgRPDXFjwRjBYsTyY,2816
|
|
46
|
+
alongkit/session.py,sha256=k2-aOYSevGRkUbk-UoPl_z4fEVF-V4s23ZCCZZYzKtA,94833
|
|
47
|
+
alongkit/telegram.py,sha256=FBd9Lif0BvPcRngWmf6So3eIT4rpj44CTI5qA3yTEEA,10497
|
|
48
|
+
alongkit/testruns.py,sha256=duCDXEEg9H5wvfNqlsJcwcugxGejedl-9gOMWZJ9SuM,8138
|
|
49
|
+
alongkit/textio.py,sha256=stRkhjwbodexndTV-d2KM4cRm0T-XPnYdTrFPqWz698,5813
|
|
50
|
+
alongkit/transaction.py,sha256=8kYusFzIJzc6O3TCCRCPYcNPCRyeY49k_1N5ScfVcyU,6518
|
|
51
|
+
alongkit/typography.py,sha256=qBYsa3bp_llp1HjGc0IWx6W-P04Dv9Y7EvRNQf9R4XA,5652
|
|
52
|
+
alongkit/verify.py,sha256=XN-tGZD72o_AEy-7eC0f-4wYwt3Bpi4pnldUcE1OWYY,19270
|
|
53
|
+
alongkit/version.py,sha256=gQ4-20nsHQKE_1fWAXPvO_mZYum5STTNFdmet8gW3FM,1430
|
|
54
|
+
alongkit/worktree.py,sha256=5eGQS79Exyzvq2q_LNqZx8iUMDqibrXpMeC3jd5VrUA,27752
|
|
55
|
+
alongkit/commands/__init__.py,sha256=nV1UAxBE-zA_-t-qTEhXyszhEW8NHk9nDt7xs-sBOMU,2061
|
|
56
|
+
alongkit/commands/brief.py,sha256=T79vJ9VeFQ3iaFIxdlJ100VvpSUKVHWhSSLTAXSSeuI,2846
|
|
57
|
+
alongkit/commands/common.py,sha256=H8h5YlwwyBUPmFXDykqq6hCqX5apo3pccjIGM5HNnvc,1238
|
|
58
|
+
alongkit/commands/daemon.py,sha256=ecj7ahMyufIvh01UGU9YX8fCV9EIXjRLRVebUFU7ti0,5218
|
|
59
|
+
alongkit/commands/decision.py,sha256=TkRZFGNr7qn8YPDI-o2l414A4EM6EMytee6tpbaZDhw,6633
|
|
60
|
+
alongkit/commands/doctor.py,sha256=6samlFWSpOhytzRitG7Ew1rwUkkYAoVxX4v963WvbBE,33960
|
|
61
|
+
alongkit/commands/env.py,sha256=2NPbkR-LAns8GGygDvxbeRURjATtU9ogGFCFHNW8BKo,9753
|
|
62
|
+
alongkit/commands/gates.py,sha256=ZtYU1PBiH7MhoVH0Xch07ewtTFnCQcqgzMkqWOJHaPU,17539
|
|
63
|
+
alongkit/commands/issue.py,sha256=RHdAlrHFKZRMOQcJtDkn5qA4K_5F8wELMjFWhLZ_pKU,42136
|
|
64
|
+
alongkit/commands/lifecycle.py,sha256=l_7BIutI3BNet1pVgrTFiOiltK-OMIvXVyrs2sT0zss,38594
|
|
65
|
+
alongkit/commands/milestone.py,sha256=GhUMRPbqRVed9ae4OcqX5zZOvv85H7DsyRNi4kemuJA,9390
|
|
66
|
+
alongkit/commands/ops.py,sha256=iMjznK_6FSRFeKUkoOS9yaAjrumuHqZMr_GvIS7EYtU,15913
|
|
67
|
+
alongkit/commands/orchestrator.py,sha256=PNdZ9cMzuBHsayapLAZlRTblqApfw4cMLUH1tG76vxo,7118
|
|
68
|
+
alongkit/commands/scratch.py,sha256=_rmT_2WnJQDRZs0kILjVcCet_KWZDJKs2jqH-KjoREo,16496
|
|
69
|
+
alongkit/commands/session.py,sha256=_V9lrvCokj2Fnuyh8LpTidGhaE2OT35tyJaWSXZrqyc,17073
|
|
70
|
+
alongkit/commands/telemetry.py,sha256=yoWyKbgMW9kifFnozI9Y5fewVoVSRYCMZuEps9aOvDQ,7174
|
|
71
|
+
alongkit/commands/worktree.py,sha256=Az85DzWJHrDxa9nBJyh5x15ANgLeoiSfQlzz5mq-9w8,8911
|
|
72
|
+
alongkit/entities/__init__.py,sha256=znrj05whxx9mW_etVefG-hi8RRRC33nXg33Rqz5Fqk8,5130
|
|
73
|
+
alongkit/entities/decisions.py,sha256=gQ5-PJPR5hW_KrIoYmgCq0oDuuvOtuVg9snPf3-Tv-A,20478
|
|
74
|
+
alongkit/entities/mutation.py,sha256=YokoH-JZ19dHlANDDGct6ykywPwWQN7fVPrtF8fKP04,18442
|
|
75
|
+
alongkit/entities/projections.py,sha256=naEN4_CLryKAJe0F2211QyKL5vImMdwlh8cmlKWSKOo,8998
|
|
76
|
+
alongkit/entities/query.py,sha256=b2J3a9x0UceO9uM_eFvyDVYnGWz8YF9ZfQNEeiDIHFY,21766
|
|
77
|
+
alongkit/entities/stubs.py,sha256=GUOoq9_31fKwYMh8bueIwVxOS4yD2xJ9MIPGNg8Dx4U,8500
|
|
78
|
+
alongkit/entities/validation.py,sha256=FjYAAO3Zfvi9W6NUztTPWivJp2610aHIe1y6PKPebv0,19215
|
|
79
|
+
alongkit/entities/vocabulary.py,sha256=EuLFcXylXWqLjdlrRP6MLzxpFN4GLR6IhrgWnnUhVdE,8439
|
|
80
|
+
alongkit/hooks/__init__.py,sha256=SatC_wc9MY550vdJMQTSiQnK2WWvyOq0TDKvHDgXLpU,1293
|
|
81
|
+
alongkit/hooks/config.py,sha256=ig72zb_mdSn5fMXjhcODY5L3hCcG_xiCiN8-aIhHc4Y,43593
|
|
82
|
+
alongkit/hooks/containment.py,sha256=pl7GjfpqDGjXJSbBOTXv24qt8K1YodbvwOhJNEHElVk,13274
|
|
83
|
+
alongkit/hooks/declarative.py,sha256=bpAgXcdyyntuYWcby_s5PrxsK5tz0TPJRTvLJHszKn8,15423
|
|
84
|
+
alongkit/hooks/default_gates.yaml,sha256=m5O-hVaROH_fugWY3FGAN93GQ_a6f3LWznIcyLHzhlI,22055
|
|
85
|
+
alongkit/hooks/deletion.py,sha256=R10Y-Z4G94lSTJSzZpyDSPKM5k1C_Ra-qpNGi6fRf2M,9561
|
|
86
|
+
alongkit/hooks/engine.py,sha256=P2IGYpn3WkcI7Vt44GO5wT9SbHwrnTBR9aNwTQF8gk0,6891
|
|
87
|
+
alongkit/hooks/escalation.py,sha256=vyMhjvl5kHyuucc574GfA6_UMKAT6UcOhH6MowTqP_c,14311
|
|
88
|
+
alongkit/hooks/gates.py,sha256=BCi7JY_t1rmsUlQPPpSBlKJXuJK5B-Y8usdu2wQE748,6886
|
|
89
|
+
alongkit/hooks/models.py,sha256=bxED7gdF5jgJwwfF0WUJ0ijJGSCNGPSWNktwFeTqm5w,2362
|
|
90
|
+
alongkit/hooks/opencode_plugin.js,sha256=yVRgCDd_ecnNnO2FZwWnQDR7bMawDkfiIlYoIoly8Vo,10412
|
|
91
|
+
alongkit/hooks/predicates.py,sha256=g7SZ875zAWIICSd7yly3yERY6W9n0S63orLIi8N4mYQ,123585
|
|
92
|
+
alongkit/hooks/shellparse.py,sha256=aoknglha8_KwX-5LwBGupB9LIWSa9AbQLHbQodAFYpY,5120
|
|
93
|
+
alongkit/hooks/shellwrite.py,sha256=fc9INx5nmngQMSbsgnN3L9OBtjzNI2otLpYtOxLdFr0,9540
|
|
94
|
+
alongkit/hooks/traceability.py,sha256=4PksVADZ3slPNwzNxC6g-vwsAuiVQ751VFMjeNbfs4w,8649
|
|
95
|
+
alongkit/hooks/turnstate.py,sha256=zaAn37UbF5w7LR-qbwUGosGEHABawjSm8aWzy2mnWoQ,2471
|
|
96
|
+
alongkit/hooks/adapters/__init__.py,sha256=LqHLDJ_z6-_0ohDYfqUtmkty-8rPX05lSQQk1LaRXmQ,1219
|
|
97
|
+
alongkit/hooks/adapters/antigravity.py,sha256=WFP8UoFZEKThk7ZOXx1tAVb1naIXJ7slUgm3qBrNP98,5361
|
|
98
|
+
alongkit/hooks/adapters/base.py,sha256=GlVkz3q7mbVJNUhXQc4k5mM2wmMjdoOMwwtN3WOqRuA,791
|
|
99
|
+
alongkit/hooks/adapters/claude.py,sha256=iN4V2YW9lFK-Vd90w7pUkbnBx6036F-evVjCPaQcNaY,8385
|
|
100
|
+
alongkit/hooks/adapters/codex.py,sha256=MmSVEdjVY-u0nNi891MW1dtMOOXpmR_B06a2NxaaNok,7243
|
|
101
|
+
alongkit/hooks/adapters/generic.py,sha256=phxTxFIHdhys2GiMJ22VCJl_ACOjCF2Ho9WEI125S9I,9758
|
|
102
|
+
alongkit/hooks/adapters/normalize.py,sha256=Tgx3XTOx1vPfiJAb_0e9Pz-0YH4C_hsjnR_2x4TiWY0,3633
|
|
103
|
+
alongkit/hooks/adapters/opencode.py,sha256=p4eVZXhs6hiHhM3I3JLxkOWwf-3z2dnFIJBjUSuRxUw,516
|
|
104
|
+
alongkit/runner/__init__.py,sha256=yTB7xbxvDoXjngkdPi7lRwr4hLSH0WZ1nMmIc1tj6FQ,1508
|
|
105
|
+
alongkit/runner/antigravity.py,sha256=4xVP8giyJPtUDaBZvsj31moiJ3gyt8aV-66MkLKvhSQ,6927
|
|
106
|
+
alongkit/runner/base.py,sha256=5xOaS567IVE6HtospLFNH0oVKIDqw7OW5gkw9Sd8bFg,17949
|
|
107
|
+
alongkit/runner/claude.py,sha256=ZtQRe1dMxo6maHcwd6G69lYEgvRvLKnzW5PiqaWJJmU,4504
|
|
108
|
+
alongkit/runner/codex.py,sha256=xiVuRhFZSA-yCC9kXTOKVAr7CqejaAGzdTKKKqSJ3fI,5212
|
|
109
|
+
alongkit/runner/generic.py,sha256=AFReTEogWJTfHUWk3jTZJ57POYDXDb9zCwy43cHsnNE,3119
|
|
110
|
+
alongkit/runner/opencode.py,sha256=fF-0-HkiNXdvFQvOePX8T8KKMDvwpz7c43Idre-ZTw4,6738
|
|
111
|
+
alongkit/runner/stream.py,sha256=SrbmZBHOGzgDWYpkdXmtyoJwjT38ca3egltdseXy0zc,7529
|
|
112
|
+
alongkit/telemetry/__init__.py,sha256=UtdoDoru1M3ZI3-vXFer04UZ_5m7o-e8n2xlIUUhDIw,865
|
|
113
|
+
alongkit/telemetry/conventions.py,sha256=kKHg4LuqGJQ_ELqRCBIBVQH-2n9SMjNvkujlSTLA68o,3995
|
|
114
|
+
alongkit/telemetry/models.py,sha256=mpp7oe1P4TVnOlreip3ICjyu1K0aYuxYVn1zlJ1FLjA,4795
|
|
115
|
+
alongkit/telemetry/offloader.py,sha256=0xCf85u3Uw91lBCuDvAnrKn9TJDc7N2zFaSho-QpDq8,3791
|
|
116
|
+
alongkit/telemetry/otlp.py,sha256=J70PbcmCBG11WnxvxOQc0i7pphoKv2D83GR7nPek8NU,16748
|
|
117
|
+
alongkit/telemetry/redactor.py,sha256=Eb_BCr_vtFKck8INMFL1WVqKxgvOR2IgFZ5OKFx4VYk,6767
|
|
118
|
+
alongkit/telemetry/spool.py,sha256=jrL8yLCRvWtc7i_PAkFojHL9dltos1GTw69Hoj11ooE,2545
|
|
119
|
+
alongkit/telemetry/tracer.py,sha256=1pSMmtVUOjZdT4QjTO5_XQLhc_zwwVH-epmnmsej4Vc,15757
|
|
120
|
+
alongkit/engines/along_brief.py,sha256=1U4guElWnLGaVGfSyGRxpOnStPeCjtle0p4ym4dO-I0,864
|
|
121
|
+
alongkit/engines/along_commit.py,sha256=jNFN6tZXrwKq68xofoHxsspZ5M434dBbz6xPG-v9M4I,15189
|
|
122
|
+
alongkit/engines/along_conflict_check.py,sha256=bUUmh40sOHraQ7aY-Y2DvyjLVj_n1p6ytMw1NFoeJz8,1607
|
|
123
|
+
alongkit/engines/along_daemon.py,sha256=rlu3-KCWd9dfREnTU4Wkgi_xA4jy-0dn1SDBkJbDIvA,710
|
|
124
|
+
alongkit/engines/along_dash.py,sha256=U21HWWcqQS4XvIv0g41mI58xErNzVJoDRFSsn04Lels,2124
|
|
125
|
+
alongkit/engines/along_dep_scan.py,sha256=TwKwpQDLaOGsnKw8gKpA_piA4thy0ZZB9Eio9Cq2DXk,59785
|
|
126
|
+
alongkit/engines/along_env.py,sha256=E5_isVbRsHFzmcRIK2bQB_l3xwWu7jqsNHAOLWLYPmA,831
|
|
127
|
+
alongkit/engines/along_exec.py,sha256=PL-gyaPhuABAS9o4NDKJF1HUD6obPPmIvxrGRTccflw,21525
|
|
128
|
+
alongkit/engines/along_feedback.py,sha256=gGX4AsJkASy9iX7aURuYkGlbKMYRnOw7E9NtJ9U6H_E,15901
|
|
129
|
+
alongkit/engines/along_graph_arch.py,sha256=LDCncgd8b0MD0MSaeNsAkIVtDTfQRZlrgF_f8n-e7E0,13823
|
|
130
|
+
alongkit/engines/along_graph_check.py,sha256=58WkyHRWMuWck2mQK9TsNTKyKJmeglpXZwJwN6VeZcg,7565
|
|
131
|
+
alongkit/engines/along_graph_impact.py,sha256=sb1olguB0ByEh-uVyV28M1_s4h5FK1VDBGMKGZ3xWWY,16320
|
|
132
|
+
alongkit/engines/along_graph_sync.py,sha256=HH-tsG6mpefJRQdzA3SCxZjXy48izZIMz9zc8nDbPI0,12675
|
|
133
|
+
alongkit/engines/along_history_sync.py,sha256=EfDcvP8eonRhe_VCEHyQBd9glGpeztlOQ03HPapVaTA,12041
|
|
134
|
+
alongkit/engines/along_hook.py,sha256=eOw2dFfob3a0AIK7Vvk1EuHPOPK_jHtEv68YTKC9t6g,20059
|
|
135
|
+
alongkit/engines/along_init.py,sha256=6VfoUlBA_GVj4qByelO1TuF0bGu-M039KjiNwDPj9bk,17078
|
|
136
|
+
alongkit/engines/along_kb_search.py,sha256=P--1yOu4uenUdbC5UcbhMDFDqaaHF86IeGl6PU2CF3Y,36529
|
|
137
|
+
alongkit/engines/along_kb_sync.py,sha256=HHP2Sadr-WZcnnRpjvQJ3xdVsOubYaEEasOASbj3AL8,81383
|
|
138
|
+
alongkit/engines/along_merge_driver.py,sha256=vmSdXa-BuXYke7LK5qm2PDmxrjCpxV1aP04lavU5ONs,1275
|
|
139
|
+
alongkit/engines/along_resolve.py,sha256=6VZRT9KiCDNU5XoZbIKS3c8Q9UnssGiGgEMdRZmVovc,5807
|
|
140
|
+
alongkit/engines/along_update.py,sha256=-C2x9XwWC96eI-GUYNytqlx18iY40wmPl2Yb2tbN70o,38703
|
|
141
|
+
alongkit/engines/along_version_bump.py,sha256=BoFHaZpcofzsJ1psWh2RvrKHRwHXqtWoR8JudSP1MJc,41129
|
|
142
|
+
alongkit/engines/along_wrap.py,sha256=BGHcJdeESKku-23DrYzKQmvRl3SuOYsdZPr9UtxrAVA,4745
|
|
143
|
+
alongkit/engines/bench_kb_search.py,sha256=7C8YNIZYsGojKnUEj52drB3RSEj-AEUPIWFMYn09kUk,16545
|
|
144
|
+
alongkit/engines/configure_mcp.py,sha256=29nw30gXzeXGISzJPTmQ9xFaqXLu-GUzIEMoiElx20U,4588
|
|
145
|
+
alongkit/engines/install_manifest.py,sha256=enQ9PMd5CCOK_CBwUtqwh6Ne2c6OylKtbdvvNfzBJJE,7314
|
|
146
|
+
alongkit/engines/migrate_protocol.py,sha256=r53q86U606K53_lv3X5I1YVJX_BHPAPDXNZLlwWjVZg,78087
|
|
147
|
+
alongkit/engines/sanitize_typography.py,sha256=KnOMSJA0qsfVOGlbtN1yg7DHdm4iEz9FhE_HGIoC8Q4,4615
|
|
148
|
+
actdim_along-4.9.0.dist-info/METADATA,sha256=IPDJVbMElFRuV5Ozh5R_jlhUUU1aqYsX8WjUceBtPKc,21261
|
|
149
|
+
actdim_along-4.9.0.dist-info/WHEEL,sha256=2iZrJkDIkeDh0k9SikKMqFuRP-ua6mb4Ir1AsER4BEw,87
|
|
150
|
+
actdim_along-4.9.0.dist-info/entry_points.txt,sha256=TL64swhvug4W4NH9A5u79V6oeXRvlGMXMFxuIteo3zU,44
|
|
151
|
+
actdim_along-4.9.0.dist-info/licenses/LICENSE,sha256=uGxXsvaUr6xqDNdoMfFYJfk0DD18Tu_pTBo6fC64mC0,1063
|
|
152
|
+
actdim_along-4.9.0.dist-info/RECORD,,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 actdim
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
alongkit/__init__.py
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
alongkit - Shared implementation behind the Along engines.
|
|
4
|
+
|
|
5
|
+
The engines in `scripts/` used to be twelve standalone programs with no shared module.
|
|
6
|
+
`find_repo_root` existed in five divergent copies, front-matter parsing in four, and
|
|
7
|
+
`subprocess.run` was called 25+ times with no shared convention, which is how a single
|
|
8
|
+
encoding defect reached every one of them. This package holds one implementation of
|
|
9
|
+
each shared concern:
|
|
10
|
+
|
|
11
|
+
- `repo` repository root, state directory, engine resolution, directory walking
|
|
12
|
+
- `frontmatter` the YAML front-matter reader and writer (ruamel.yaml, round-trip)
|
|
13
|
+
- `entities` entity vocabulary, canonical keys, ADR records
|
|
14
|
+
- `proc` subprocess execution with fixed UTF-8 conventions
|
|
15
|
+
- `textio` strict reads, line-ending preservation, atomic writes
|
|
16
|
+
- `markdown` links, fenced-code tracking, heading anchors
|
|
17
|
+
- `typography` the forbidden-character table
|
|
18
|
+
- `sanitizer` which files that table governs, and the report a caller consumes
|
|
19
|
+
- `transaction` snapshot and byte-exact rollback around a multi-file mutation
|
|
20
|
+
- `migration` collision policy, backup, and dry-run plan for the migration engine
|
|
21
|
+
- `version` the protocol version constant
|
|
22
|
+
- `bootstrap` dependency resolution for a directly invoked engine
|
|
23
|
+
|
|
24
|
+
Import style inside the engines is `from alongkit import repo, proc`, which works
|
|
25
|
+
unmodified both in the source repository and in the flat `~/.along/bin/` install,
|
|
26
|
+
because Python places the running script's directory on `sys.path` and the package is
|
|
27
|
+
always copied next to the engines.
|
|
28
|
+
"""
|
|
29
|
+
|
|
30
|
+
from __future__ import annotations
|
|
31
|
+
|
|
32
|
+
from . import (bootstrap, budget, diagnostics, entities, exceptions, gates, handoff, lifecycle, markdown, migration, patcher, proc, profiles, repo, resolve, sanitizer,
|
|
33
|
+
session, telemetry, textio, transaction, typography, version, worktree)
|
|
34
|
+
from .exceptions import AlongError, CommandError, ValidationError
|
|
35
|
+
from .proc import Result, run_capture, run_passthrough, run_python
|
|
36
|
+
from .repo import (canonical_path, canonical_relpath, find_agent_contexts, find_manifest_projects, find_repo_root,
|
|
37
|
+
find_state_dir, resolve_llm_targets, resolve_tool_script,
|
|
38
|
+
safe_relpath, state_dir)
|
|
39
|
+
from .textio import read_text, write_text
|
|
40
|
+
from .version import CURRENT_PROTOCOL_VERSION
|
|
41
|
+
|
|
42
|
+
__all__ = [
|
|
43
|
+
"bootstrap",
|
|
44
|
+
"budget",
|
|
45
|
+
"diagnostics",
|
|
46
|
+
"entities",
|
|
47
|
+
"exceptions",
|
|
48
|
+
"gates",
|
|
49
|
+
"handoff",
|
|
50
|
+
"lifecycle",
|
|
51
|
+
"markdown",
|
|
52
|
+
"migration",
|
|
53
|
+
"patcher",
|
|
54
|
+
"proc",
|
|
55
|
+
"profiles",
|
|
56
|
+
"repo",
|
|
57
|
+
"resolve",
|
|
58
|
+
"sanitizer",
|
|
59
|
+
"session",
|
|
60
|
+
"telemetry",
|
|
61
|
+
"textio",
|
|
62
|
+
"transaction",
|
|
63
|
+
"typography",
|
|
64
|
+
"version",
|
|
65
|
+
"worktree",
|
|
66
|
+
"AlongError",
|
|
67
|
+
"CommandError",
|
|
68
|
+
"ValidationError",
|
|
69
|
+
"CURRENT_PROTOCOL_VERSION",
|
|
70
|
+
"Result",
|
|
71
|
+
"canonical_path",
|
|
72
|
+
"canonical_relpath",
|
|
73
|
+
"find_agent_contexts",
|
|
74
|
+
"find_manifest_projects",
|
|
75
|
+
"find_repo_root",
|
|
76
|
+
"find_state_dir",
|
|
77
|
+
"read_text",
|
|
78
|
+
"resolve_llm_targets",
|
|
79
|
+
"resolve_tool_script",
|
|
80
|
+
"run_capture",
|
|
81
|
+
"run_passthrough",
|
|
82
|
+
"run_python",
|
|
83
|
+
"safe_relpath",
|
|
84
|
+
"state_dir",
|
|
85
|
+
"write_text",
|
|
86
|
+
]
|
|
87
|
+
|
|
88
|
+
# `frontmatter` is deliberately absent from the eager imports above: it requires
|
|
89
|
+
# ruamel.yaml, and an engine that only needs `repo` or `proc` must not be forced to
|
|
90
|
+
# resolve a third-party dependency. Import it explicitly where it is used:
|
|
91
|
+
# from alongkit import frontmatter
|
alongkit/__main__.py
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import sys
|
|
3
|
+
|
|
4
|
+
if __name__ == '__main__':
|
|
5
|
+
if not __package__:
|
|
6
|
+
parent = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
|
7
|
+
if parent not in sys.path:
|
|
8
|
+
sys.path.insert(0, parent)
|
|
9
|
+
from alongkit import cli
|
|
10
|
+
else:
|
|
11
|
+
from . import cli
|
|
12
|
+
sys.exit(cli.main())
|