code-agnostic 0.1.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.
@@ -0,0 +1,94 @@
1
+ Metadata-Version: 2.4
2
+ Name: code-agnostic
3
+ Version: 0.1.0
4
+ Summary: Centralized hub for LLM coding config: MCP, skills, rules, and agents.
5
+ Requires-Python: >=3.9
6
+ Description-Content-Type: text/markdown
7
+ License-File: LICENSE
8
+ Requires-Dist: click
9
+ Requires-Dist: rich
10
+ Provides-Extra: dev
11
+ Requires-Dist: pre-commit>=4.0; extra == "dev"
12
+ Requires-Dist: pytest>=8.0; extra == "dev"
13
+ Requires-Dist: jsonschema>=4.0; extra == "dev"
14
+ Requires-Dist: ruff>=0.8.0; extra == "dev"
15
+ Requires-Dist: mypy>=1.11; extra == "dev"
16
+ Dynamic: license-file
17
+
18
+ # Code-agnostic
19
+
20
+ Centralized hub for LLM coding config: MCP, skills, rules, and agents.
21
+
22
+ `code-agnostic` is built around one idea: keep your AI coding setup in one place, then sync it into editor/app-specific layouts.
23
+
24
+ Similar to how OpenCode is provider-agnostic for models, `code-agnostic` aims to be app-agnostic for coding clients. App selection is intentionally limited for now and expanding over time.
25
+
26
+ ## App Feature Matrix
27
+
28
+ | App | MCP Sync | Skills Sync | Agents Sync | Rules Sync | Workspace Sync |
29
+ | --- | --- | --- | --- | --- | --- |
30
+ | OpenCode / OpenCode Desktop | ✅ | ✅ | ✅ | ✅ | ✅ |
31
+ | Cursor IDE | ⚠️ | ❌ | ❌ | ❌ | ❌ |
32
+ | Claude Code | ❌ | ❌ | ❌ | ❌ | ❌ |
33
+ | Codex CLI | ❌ | ❌ | ❌ | ❌ | ❌ |
34
+ | Cursor CLI | ❌ | ❌ | ❌ | ❌ | ❌ |
35
+
36
+ - ✅ supported
37
+ - ⚠️ partial support (Cursor MCP work is planned, including limited tool enable/disable compatibility)
38
+ - ❌ not supported yet
39
+
40
+ ## Install
41
+
42
+ ```bash
43
+ uv tool install code-agnostic
44
+ ```
45
+
46
+ Or run without installing:
47
+
48
+ ```bash
49
+ uvx code-agnostic
50
+ ```
51
+
52
+ ## Project Status
53
+
54
+ - WIP: CLI surface is evolving quickly between iterations.
55
+ - WIP: file layout and config schemas are not finalized yet.
56
+ - Prefer using current help output for exact command behavior.
57
+
58
+ ## Source Of Truth
59
+
60
+ Shared config root defaults to `~/.config/code-agnostic`.
61
+
62
+ Expected layout:
63
+
64
+ - `~/.config/code-agnostic/config/mcp.base.json`
65
+ - `~/.config/code-agnostic/config/opencode.base.json`
66
+ - `~/.config/code-agnostic/skills/<skill>/SKILL.md`
67
+ - `~/.config/code-agnostic/agents/*`
68
+
69
+ ## Synced Targets (Current)
70
+
71
+ - `~/.config/opencode/opencode.json`
72
+ - `~/.config/opencode/skills/*`
73
+ - `~/.config/opencode/agents/*` (or `~/.config/opencode/agent/*` if that directory already exists)
74
+
75
+ Cursor paths and payloads are intentionally gated behind app toggles while support is being finalized.
76
+
77
+ ## Notes
78
+
79
+ - App sync is opt-in: apps start disabled by default to reduce accidental data changes.
80
+ - OpenCode sync normalizes MCP entries from `mcp.base.json` into OpenCode-compatible `mcp` config.
81
+ - Workspace sync propagates a root rules file (`AGENTS.md`/`CLAUDE.md`) into git repos as symlinked `AGENTS.md`.
82
+ - Plan/apply/status behavior is stable in intent, but UX and command shape are still being refined.
83
+ - Schema validation is part of tests for generated OpenCode config; Cursor schema coverage is intentionally scoped to fields we manage.
84
+
85
+ ## Roadmap
86
+
87
+ - Add full rules sync: current behavior only propagates root `AGENTS.md` at global/workspace levels; planned direction is a dedicated `rules/` directory (syntax still being investigated).
88
+ - Finish Cursor IDE support.
89
+ - Expand MCP sync to include auth configuration, not only tool definitions.
90
+ - Add import flows (for example, importing Claude skills) into `code-agnostic` as an onboarding path.
91
+ - Make mappers bidirectional for import/export use cases, with DTO-based transformations.
92
+ - Add dynamic inline TUI selectors for tool enable/disable and import selection (similar interaction model to Mole CLI).
93
+ - Enable shell auto-complete.
94
+ - Explore an optional full-size `textual` TUI mode (`code-agnostic` opens command palette + menus) while keeping one-liner CLI workflows for non-interactive use.
@@ -0,0 +1,30 @@
1
+ code_agnostic/__init__.py,sha256=4t_crzhrLum--oyowUMxtjBTzUtWp7oRTF22ewEvJG4,49
2
+ code_agnostic/__main__.py,sha256=j1bS33DMnD7WwLAcDoB6ZHDh3OLrJm4a0azuVlbJmpM,9266
3
+ code_agnostic/apps.py,sha256=w_yjJXtXW8RdXUePG02DNAPukER27e-yyAzb2Iyioh0,2377
4
+ code_agnostic/constants.py,sha256=Xo6BBVR1fgg9HjmKGbw6XJwj766vrv013I6JfU3wPIE,455
5
+ code_agnostic/errors.py,sha256=ONRlwpRHxzGkbByC_qT3q9QelJrebUyDknXeN4FXfUo,897
6
+ code_agnostic/executor.py,sha256=OLbpCVDCJp1TB9-wJ01Hi_xqIq-N3AjXpoiQTIVl3Ko,6080
7
+ code_agnostic/models.py,sha256=DBNWOxgNxJDdKla_P1YTpflBFNsm9X7DN5BZnc7l21I,4187
8
+ code_agnostic/planner.py,sha256=77a6BWYs09xGEPswlKEsjeHRZiQoRJobMlJ48KKMa7s,9496
9
+ code_agnostic/status.py,sha256=2RjFod44_XpJXAJGbgEMRc7xaIFy8c0AP1LCXltUcUI,5204
10
+ code_agnostic/utils.py,sha256=C8hrsxF3IB4lY9-FtXPsLmwa6kEGzGhkmyAmZKBwibg,1348
11
+ code_agnostic/workspaces.py,sha256=SCizn02uYD7hPGO3_ufB_AsF7xkcW6OKZQuEw7mWMDI,1638
12
+ code_agnostic/mappers/__init__.py,sha256=WO66l3O5KwWTSqdzsa2l61jkNCIurH6-2NcJRigOeTo,218
13
+ code_agnostic/mappers/base.py,sha256=0AU4MoWwqFPFZvq7LOt3E56zIi5Gl90gFIULrllNy_s,448
14
+ code_agnostic/mappers/opencode.py,sha256=6MoeDf_piGGJlGQ9QF4-gHoQYNWpHpr1pD8LDqQeEww,1590
15
+ code_agnostic/repositories/__init__.py,sha256=m84DDe3QkXpjrlBlB1KQ2N1C3cwJkr3nqmiziMTd3Sg,457
16
+ code_agnostic/repositories/base.py,sha256=1zOZEhHiDtgwfnPegE1BJuLR-hosLSJtySdm5k_3gXw,1965
17
+ code_agnostic/repositories/common.py,sha256=dbQ-hFs3eCLcISfSjtycAN7d9oSmE8u9m9iAKCFY8F0,6318
18
+ code_agnostic/repositories/cursor.py,sha256=pPrdadBqwFWKac0fw2tAY3g3PIVVg95FuBcXCBZAK0o,264
19
+ code_agnostic/repositories/opencode.py,sha256=pAKgF1fzWNeq4qBdG5wSsyNR8rcZ4al9kWLQRPgxILI,2816
20
+ code_agnostic/tui/__init__.py,sha256=BIB98U_w_q3bNDXM7DPC1k6vIAwo4kTUO0v-FLNmavs,83
21
+ code_agnostic/tui/enums.py,sha256=U6gke27KrbRtx1g4G1cqXjW7Pn7-eUZPFp0fJe8Nci0,550
22
+ code_agnostic/tui/renderers.py,sha256=n9UztP6Q3YOMcM_S-LpXeH8X_LW8RyKvSMlkFBnnO18,4048
23
+ code_agnostic/tui/sections.py,sha256=tD15NqEtUuA_qc_qD89OF2KbJdsrGsgdcSxcWgoSUMw,494
24
+ code_agnostic/tui/tables.py,sha256=Xc0eC3uqYgR0bX0YwE2Ol-yMlUQi2Tw9trpRuBz33_4,7395
25
+ code_agnostic-0.1.0.dist-info/licenses/LICENSE,sha256=rmhmJ_ZGt4xbq7D0vROWVFCx1nyEvkX6nIyJAnHeYG0,35151
26
+ code_agnostic-0.1.0.dist-info/METADATA,sha256=D6X0Ns78byX1EFNn6h2gc7Qj0INSKKuDPJ_nc3lMySk,3735
27
+ code_agnostic-0.1.0.dist-info/WHEEL,sha256=YCfwYGOYMi5Jhw2fU4yNgwErybb2IX5PEwBKV4ZbdBo,91
28
+ code_agnostic-0.1.0.dist-info/entry_points.txt,sha256=pdy9jXYCXCP4_U53LN2FQbQplvnD6DJ9X6zHpQeT_WA,62
29
+ code_agnostic-0.1.0.dist-info/top_level.txt,sha256=f8jfkcTVe9weUWBQ52dH3DNJHIL56bjRu7w68XVSxQM,14
30
+ code_agnostic-0.1.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (82.0.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ code-agnostic = code_agnostic.__main__:main