ai-adapter 0.5.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,31 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v*"
7
+
8
+ jobs:
9
+ publish:
10
+ runs-on: ubuntu-latest
11
+ permissions:
12
+ contents: read
13
+ id-token: write
14
+
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+
18
+ - uses: actions/setup-python@v5
19
+ with:
20
+ python-version: "3.10"
21
+
22
+ - name: Install build tools
23
+ run: |
24
+ python -m pip install --upgrade pip
25
+ pip install build hatchling
26
+
27
+ - name: Build package
28
+ run: python -m build
29
+
30
+ - name: Publish to PyPI
31
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,29 @@
1
+ name: Test
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+
9
+ jobs:
10
+ test:
11
+ runs-on: ubuntu-latest
12
+ strategy:
13
+ matrix:
14
+ python-version: ["3.10", "3.11", "3.12"]
15
+
16
+ steps:
17
+ - uses: actions/checkout@v5
18
+
19
+ - uses: actions/setup-python@v6
20
+ with:
21
+ python-version: ${{ matrix.python-version }}
22
+
23
+ - name: Install dependencies
24
+ run: |
25
+ python -m pip install --upgrade pip
26
+ pip install -e .
27
+
28
+ - name: Run tests
29
+ run: python -m unittest discover tests -v
@@ -0,0 +1,23 @@
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *.egg-info/
5
+ dist/
6
+ build/
7
+ *.egg
8
+ .venv/
9
+ venv/
10
+ env/
11
+
12
+ # IDE
13
+ .vscode/
14
+ .idea/
15
+ *.swp
16
+ *.swo
17
+
18
+ # OS
19
+ .DS_Store
20
+ Thumbs.db
21
+
22
+ # Project specific
23
+ .ai-adapter/
@@ -0,0 +1,132 @@
1
+ # Changelog
2
+
3
+ ## [0.5.0] - 2026-07-21
4
+
5
+ ### Added
6
+
7
+ - **`opencode` サブコマンド**: OpenCode 連携設定(`alias`, `install`, `uninstall`)
8
+ - `alias`: `.opencode` → `.github` のシンボリックリンクを作成
9
+ - `install`: テンプレートを元に `opencode.json` を生成
10
+ - `uninstall`: `opencode.json` を削除
11
+ - **`mcp load --file` コマンド**: `.mcp.json` から MCP サーバー設定を一括読み込み
12
+ - **`agent get-all` / `bin get-all` / `skill get-all`**: 全登録アイテムの一括展開コマンド
13
+ - **`agent remove-all` / `env remove-all` / `bin remove-all` / `skill remove-all`**: 全登録アイテムの一括削除コマンド
14
+ - **`skill get-all` / `skill remove-all`**: スキルの一括展開・削除コマンド
15
+ - **ファイルベース同期**: `rebuild_config()` による自動復元機能
16
+ - `sync` の pull 成功後に設定をファイルから自動再構築
17
+ - `start` の clone/init 後に設定を自動再構築
18
+ - `status` で実ファイル数を表示
19
+ - `list` / `get-all` が config 空でもファイルシステムから動作
20
+
21
+ ### Changed
22
+
23
+ - **`mcp export`**: 出力先をカレントディレクトリに変更、出力ファイルを常に `.mcp.json` に固定
24
+ - `--path` オプションで出力先ディレクトリを指定可能
25
+ - **`mcp export` の `--tool` オプションを `--path` に名称変更**
26
+ - **`mcp add`**: `--file` オプションを廃止し `--command` 必須に簡略化
27
+ - **`bin` コマンド**: `env` を位置引数(`click.argument`)から `--env` オプション(`click.option`)に変更
28
+ - `bin get script.py` のように単一引数でファイル名のみ渡せるよう改善
29
+ - **スキル展開先を統一**: `get_claude_skills_dir()` → `get_github_skills_dir()` に変更
30
+ - `skill get` / `skill get-all` の出力先を `.claude/skills/` から `.github/skills/` に変更
31
+ - `agent` / `bin` と同じ `.github/` 配下に統一
32
+ - **`agent add`**: `.agent.md` ファイルの frontmatter から `name` を読み取り登録名として使用
33
+
34
+ ### Fixed
35
+
36
+ - **`sync`**: `git diff --cached --quiet` の exit code 1(変更あり)でクラッシュしないよう修正
37
+ - **`sync`**: pull/push 失敗時にクラッシュせずガイドメッセージを表示(接続不可/ブランチ不一致/コンフリクト)
38
+ - **`sync`**: Git user config(user.name / user.email)未設定時にクラッシュせず設定手順を表示
39
+ - **`skill get-all`**: `--force` なしで既存ディレクトリに当たるとクラッシュする問題を修正
40
+
41
+ ## [0.4.1] - 2026-07-20
42
+
43
+ ### Changed
44
+
45
+ - **スキル展開先を統一**: `get_claude_skills_dir()` → `get_github_skills_dir()` に変更
46
+ - `skill get` / `skill get-all` の出力先を `.claude/skills/` から `.github/skills/` に変更
47
+ - `agent` / `bin` と同じ `.github/` 配下に統一
48
+
49
+ ## [0.4.0] - 2026-07-20
50
+
51
+ ### Added
52
+
53
+ - **`agent remove-all` コマンド**: 全てのエージェントを一括削除(`--keep-file`, `--force` オプション対応)
54
+ - **`env remove-all` コマンド**: デフォルト環境を除く全ての環境を一括削除(`--force` オプション対応)
55
+ - **`bin remove-all` コマンド**: 全てのスクリプトの登録を一括解除(`--force` オプション対応)
56
+
57
+ ### Changed
58
+
59
+ - `bin` コマンドの `env` を位置引数(`click.argument`)から `--env` オプション(`click.option`)に変更
60
+ - `bin get script.py` のように単一引数でファイル名のみ渡せるよう改善
61
+ - `--env` 省略時は従来通り環境解決ロジックで補完
62
+
63
+ ## [0.3.0] - 2026-07-20
64
+
65
+ ### Added
66
+
67
+ - **`start <URL>` コマンド**: GitHub リモートリポジトリと連携した一発セットアップ
68
+ - `git clone` を試行し、失敗した場合は `git init` + `remote add` で初期化
69
+ - `~/.ai-adapter/` のディレクトリ構造と `config.json` を自動生成
70
+ - リモートURLは `Config.remote` フィールドに保存
71
+ - **`init --remote` オプション**: コマンドラインからリモートURLを指定して初期化
72
+ - **`init` 対話的プロンプト**: `--remote` 未指定時に対話的にリモートURLを質問(スキップ可能)
73
+ - **`sync` リモート未設定時の対話的入力**: `config.remote` の保存値 → 手動入力 → スキップ の順で処理
74
+ - **`status` リモート表示**: 設定ファイルに `remote` が保存されていれば表示
75
+ - **`git.py`**: `clone()`, `add_remote()`, `get_current_branch()` 関数を追加
76
+ - **`Config.remote` フィールド**: 設定ファイルに Git リモートURLを永続化
77
+
78
+ ### Changed
79
+
80
+ - `init` が Git リポジトリ初期化 + リモート設定まで行うように改善
81
+ - `sync` がリモート未設定でもエラー終了せず、対話的入力で補完するように改善
82
+
83
+ ## [0.2.0] - 2026-07-20
84
+
85
+ ### Added
86
+
87
+ - **`uninstall` コマンド**: `~/.ai-adapter/` を削除して初期状態に戻す(`--force`, `--keep-git` オプション対応)
88
+ - **`status` コマンド**: skills/mcp の登録数とディレクトリ状態を表示するように拡張
89
+ - **`CHANGELOG.md`**: 新規作成
90
+
91
+ ## [0.1.0] - 2026-07-20
92
+
93
+ ### Added
94
+
95
+ - **CLI 基盤**: Click フレームワークによる CLI エントリーポイント (`ai-adapter` / `python -m ai_adapter`)
96
+ - **`init` コマンド**: `~/.ai-adapter/` ディレクトリの初期化(`agents/`, `bin/`, `skills/`, `mcp/` ディレクトリ + `config.json` 作成)
97
+ - **`status` コマンド**: 現在の設定状態(登録数、デフォルト環境、ディレクトリ状態)を表示
98
+ - **`agent` サブコマンド**: AIエージェント指示ファイルの管理(`add`, `get`, `list`, `remove`)
99
+ - `~/.ai-adapter/agents/` にファイルを保存し、`.github/agents/` に展開
100
+ - **`env` サブコマンド**: 環境設定の管理(`add`, `remove`, `list`, `default`, `set-default`, `link-agent`, `unlink-agent`)
101
+ - デフォルト環境の保護(削除不可)、エージェントと環境の紐付け機能
102
+ - **`bin` サブコマンド**: スクリプトファイルの管理(`add`, `get`, `list`, `remove`)
103
+ - env 省略時の環境解決ロジック(エージェント紐付け → デフォルト環境)
104
+ - `--agent` オプションによる明示的なエージェント指定
105
+ - **`skill` サブコマンド**: スキルディレクトリの管理(`add`, `get`, `list`, `remove`, `search`, `link-agent`)
106
+ - SKILL.md の YAML frontmatter 自動パース
107
+ - `.claude/skills/` への展開、タグフィルタ・キーワード検索対応
108
+ - **`mcp` サブコマンド**: MCP サーバー設定の管理(`add`, `remove`, `list`, `export`, `enable`, `disable`)
109
+ - 対話的追加・JSON ファイルからの追加に対応
110
+ - `export` で VS Code / Claude / Cursor 形式に出力(`.vscode/mcp.json`, `.mcp.json`, `.cursor/mcp.json`)
111
+ - `--tool`, `--env` フィルタ対応
112
+ - **`sync` コマンド**: `~/.ai-adapter/` を GitHub リモートと同期(`git add` → `commit` → `pull --rebase` → `push`)
113
+ - **データモデル**: `Agent`, `Env`, `AgentBinding`, `Bin`, `Skill`, `MCPServer`, `Config` の dataclass 定義と JSON シリアライズ
114
+ - **設定ファイル管理**: `~/.ai-adapter/config.json` の読み書き(環境変数 `AI_ADAPTER_CONFIG` でパス上書き可能)
115
+ - **Git 操作ラッパー**: `subprocess` による git コマンドラッパー(`is_repo`, `init_repo`, `add_all`, `commit`, `pull_rebase`, `push`, `has_remote`, `get_remotes`)
116
+ - **テスト**: 84 の単体テスト(Click CliRunner + unittest.mock によるファイル操作/CLI/モックテスト)
117
+
118
+ ### Changed
119
+
120
+ - 設定ファイル形式を YAML(`.ai-adapter.yaml`)から JSON(`config.json`)に変更
121
+ - 全データ保存先をプロジェクトルートから `~/.ai-adapter/` に統一
122
+
123
+ ### Removed
124
+
125
+ - `pyyaml` 依存を削除(設定ファイルの JSON 化に伴い)
126
+
127
+ ---
128
+
129
+ ## 注意事項
130
+
131
+ - 本バージョンは開発初期フェーズのため、API は予告なく変更される可能性があります
132
+ - `~/.ai-adapter/` に保存されたデータは `ai-adapter uninstall` で削除可能です
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 smapira
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.