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.
Files changed (152) hide show
  1. actdim_along-4.9.0.dist-info/METADATA +289 -0
  2. actdim_along-4.9.0.dist-info/RECORD +152 -0
  3. actdim_along-4.9.0.dist-info/WHEEL +4 -0
  4. actdim_along-4.9.0.dist-info/entry_points.txt +2 -0
  5. actdim_along-4.9.0.dist-info/licenses/LICENSE +21 -0
  6. alongkit/__init__.py +91 -0
  7. alongkit/__main__.py +12 -0
  8. alongkit/attribution.py +131 -0
  9. alongkit/bootstrap.py +280 -0
  10. alongkit/budget.py +505 -0
  11. alongkit/bypass.py +152 -0
  12. alongkit/cli.py +84 -0
  13. alongkit/cliargs.py +50 -0
  14. alongkit/closeout.py +883 -0
  15. alongkit/commands/__init__.py +69 -0
  16. alongkit/commands/brief.py +96 -0
  17. alongkit/commands/common.py +39 -0
  18. alongkit/commands/daemon.py +153 -0
  19. alongkit/commands/decision.py +148 -0
  20. alongkit/commands/doctor.py +707 -0
  21. alongkit/commands/env.py +239 -0
  22. alongkit/commands/gates.py +361 -0
  23. alongkit/commands/issue.py +874 -0
  24. alongkit/commands/lifecycle.py +712 -0
  25. alongkit/commands/milestone.py +222 -0
  26. alongkit/commands/ops.py +396 -0
  27. alongkit/commands/orchestrator.py +158 -0
  28. alongkit/commands/scratch.py +339 -0
  29. alongkit/commands/session.py +349 -0
  30. alongkit/commands/telemetry.py +207 -0
  31. alongkit/commands/worktree.py +199 -0
  32. alongkit/conflict_check.py +209 -0
  33. alongkit/daemon.py +1179 -0
  34. alongkit/devenv.py +106 -0
  35. alongkit/diagnostics.py +408 -0
  36. alongkit/distill.py +229 -0
  37. alongkit/drafts.py +127 -0
  38. alongkit/engines/along_brief.py +33 -0
  39. alongkit/engines/along_commit.py +321 -0
  40. alongkit/engines/along_conflict_check.py +55 -0
  41. alongkit/engines/along_daemon.py +30 -0
  42. alongkit/engines/along_dash.py +75 -0
  43. alongkit/engines/along_dep_scan.py +1435 -0
  44. alongkit/engines/along_env.py +34 -0
  45. alongkit/engines/along_exec.py +460 -0
  46. alongkit/engines/along_feedback.py +375 -0
  47. alongkit/engines/along_graph_arch.py +360 -0
  48. alongkit/engines/along_graph_check.py +208 -0
  49. alongkit/engines/along_graph_impact.py +446 -0
  50. alongkit/engines/along_graph_sync.py +368 -0
  51. alongkit/engines/along_history_sync.py +311 -0
  52. alongkit/engines/along_hook.py +492 -0
  53. alongkit/engines/along_init.py +376 -0
  54. alongkit/engines/along_kb_search.py +929 -0
  55. alongkit/engines/along_kb_sync.py +1805 -0
  56. alongkit/engines/along_merge_driver.py +43 -0
  57. alongkit/engines/along_resolve.py +163 -0
  58. alongkit/engines/along_update.py +803 -0
  59. alongkit/engines/along_version_bump.py +909 -0
  60. alongkit/engines/along_wrap.py +139 -0
  61. alongkit/engines/bench_kb_search.py +433 -0
  62. alongkit/engines/configure_mcp.py +124 -0
  63. alongkit/engines/install_manifest.py +191 -0
  64. alongkit/engines/migrate_protocol.py +1695 -0
  65. alongkit/engines/sanitize_typography.py +127 -0
  66. alongkit/entities/__init__.py +212 -0
  67. alongkit/entities/decisions.py +513 -0
  68. alongkit/entities/mutation.py +458 -0
  69. alongkit/entities/projections.py +210 -0
  70. alongkit/entities/query.py +591 -0
  71. alongkit/entities/stubs.py +210 -0
  72. alongkit/entities/validation.py +437 -0
  73. alongkit/entities/vocabulary.py +233 -0
  74. alongkit/environment.py +654 -0
  75. alongkit/exceptions.py +41 -0
  76. alongkit/feedback_github.py +463 -0
  77. alongkit/frontmatter.py +401 -0
  78. alongkit/gates.py +750 -0
  79. alongkit/gatestats.py +151 -0
  80. alongkit/gitgates.py +1018 -0
  81. alongkit/handoff.py +987 -0
  82. alongkit/hookpreflight.py +129 -0
  83. alongkit/hooks/__init__.py +52 -0
  84. alongkit/hooks/adapters/__init__.py +41 -0
  85. alongkit/hooks/adapters/antigravity.py +132 -0
  86. alongkit/hooks/adapters/base.py +24 -0
  87. alongkit/hooks/adapters/claude.py +199 -0
  88. alongkit/hooks/adapters/codex.py +192 -0
  89. alongkit/hooks/adapters/generic.py +254 -0
  90. alongkit/hooks/adapters/normalize.py +88 -0
  91. alongkit/hooks/adapters/opencode.py +20 -0
  92. alongkit/hooks/config.py +1045 -0
  93. alongkit/hooks/containment.py +319 -0
  94. alongkit/hooks/declarative.py +376 -0
  95. alongkit/hooks/default_gates.yaml +529 -0
  96. alongkit/hooks/deletion.py +221 -0
  97. alongkit/hooks/engine.py +147 -0
  98. alongkit/hooks/escalation.py +368 -0
  99. alongkit/hooks/gates.py +175 -0
  100. alongkit/hooks/models.py +73 -0
  101. alongkit/hooks/opencode_plugin.js +334 -0
  102. alongkit/hooks/predicates.py +2762 -0
  103. alongkit/hooks/shellparse.py +163 -0
  104. alongkit/hooks/shellwrite.py +302 -0
  105. alongkit/hooks/traceability.py +231 -0
  106. alongkit/hooks/turnstate.py +66 -0
  107. alongkit/install.py +760 -0
  108. alongkit/kb.py +780 -0
  109. alongkit/lifecycle.py +1571 -0
  110. alongkit/markdown.py +352 -0
  111. alongkit/merge.py +703 -0
  112. alongkit/migration.py +503 -0
  113. alongkit/orchestration_profiles.py +312 -0
  114. alongkit/orchestrator.py +869 -0
  115. alongkit/patcher.py +189 -0
  116. alongkit/planscope.py +112 -0
  117. alongkit/proc.py +371 -0
  118. alongkit/profiles.py +182 -0
  119. alongkit/repo.py +779 -0
  120. alongkit/repochecks.py +420 -0
  121. alongkit/resolve.py +612 -0
  122. alongkit/resolve_code.py +462 -0
  123. alongkit/rules.py +455 -0
  124. alongkit/runner/__init__.py +52 -0
  125. alongkit/runner/antigravity.py +192 -0
  126. alongkit/runner/base.py +475 -0
  127. alongkit/runner/claude.py +125 -0
  128. alongkit/runner/codex.py +151 -0
  129. alongkit/runner/generic.py +88 -0
  130. alongkit/runner/opencode.py +188 -0
  131. alongkit/runner/stream.py +199 -0
  132. alongkit/runtime.py +370 -0
  133. alongkit/sanitizer.py +375 -0
  134. alongkit/scaffold.py +490 -0
  135. alongkit/semver.py +81 -0
  136. alongkit/session.py +2198 -0
  137. alongkit/telegram.py +292 -0
  138. alongkit/telemetry/__init__.py +36 -0
  139. alongkit/telemetry/conventions.py +91 -0
  140. alongkit/telemetry/models.py +165 -0
  141. alongkit/telemetry/offloader.py +115 -0
  142. alongkit/telemetry/otlp.py +465 -0
  143. alongkit/telemetry/redactor.py +208 -0
  144. alongkit/telemetry/spool.py +86 -0
  145. alongkit/telemetry/tracer.py +447 -0
  146. alongkit/testruns.py +209 -0
  147. alongkit/textio.py +168 -0
  148. alongkit/transaction.py +161 -0
  149. alongkit/typography.py +156 -0
  150. alongkit/verify.py +455 -0
  151. alongkit/version.py +42 -0
  152. 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
+ [![Tests](https://github.com/actdim/along/actions/workflows/tests.yml/badge.svg)](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,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.33.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ along = alongkit.cli:main
@@ -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())