pkgq 0.2.0__tar.gz → 0.3.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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pkgq",
3
- "version": "0.1.1",
3
+ "version": "0.3.0",
4
4
  "description": "Package Query - Find, create, and update package documentation for AI agents",
5
5
  "author": {
6
6
  "name": "Christophe VG",
@@ -34,4 +34,7 @@ Thumbs.db
34
34
 
35
35
  # Local
36
36
  *.local.*
37
- .env
37
+ .env
38
+
39
+ # MCP Configuration (user-specific)
40
+ .mcp.json
pkgq-0.3.0/HISTORY.md ADDED
@@ -0,0 +1,65 @@
1
+ # pkgq Version History
2
+
3
+ ## 0.3.0 (2026-06-26)
4
+
5
+ ### New Features
6
+
7
+ - **Yoker plugin support**: pkgq can now be loaded as a yoker plugin
8
+ - Exposes `find` tool for package documentation queries
9
+ - Includes `create` and `update` skills for PACKAGE.md generation
10
+ - Plugin manifest auto-discovered by yoker
11
+ - **Skills integration**: Skills moved into package for plugin distribution
12
+ - `create` skill: Generate PACKAGE.md for Python projects
13
+ - `update` skill: Update documentation for new versions
14
+ - **Module restructuring**: Added `plugin.py` module for yoker integration
15
+ - Clean separation between core API and plugin interface
16
+ - Mirrors existing `mcp.py` architecture pattern
17
+
18
+ ### Breaking Changes
19
+
20
+ - **Skills location**: Skills moved from `skills/` to `src/pkgq/skills/`
21
+ - Root `skills/` now a symlink for local development
22
+ - Skills distributed with package when installed as yoker plugin
23
+
24
+ ### Dependencies
25
+
26
+ - Added `yoker>=0.5.0` as required dependency
27
+ - Existing dependencies: httpx>=0.27.0, pydantic>=2.0.0, rich>=13.0.0
28
+
29
+ ---
30
+
31
+ ## 0.2.0 (2026-05-26)
32
+
33
+ ### New Features
34
+
35
+ - Added plugin structure for Claude Code integration
36
+ - Added CI/CD with GitHub Actions
37
+ - Added PACKAGE.md for agent-ready documentation
38
+ - Added `save` parameter to MCP tool with auto-cache results
39
+
40
+ ---
41
+
42
+ ## 0.1.1 (2026-05-26)
43
+
44
+ ## 0.1.1 (2026-05-26)
45
+
46
+ ### New Features
47
+ - Added `save` parameter to MCP tool with auto-cache results
48
+ - Cascade lookup: cache → GitHub → PyPI
49
+ - CLI with `find` and `cache` commands
50
+ - MCP server for Claude Code integration
51
+ - Local caching at `~/.cache/pkgq/packages/`
52
+
53
+ ### Bug Fixes
54
+ - Fixed license format and linter issues for PyPI compatibility
55
+
56
+ ---
57
+
58
+ ## 0.1.0 (2026-05-26)
59
+
60
+ ### New Features
61
+ - Initial implementation of pkgq (package query)
62
+ - `find()` function to query Python package information
63
+ - `FindResult` dataclass for package information
64
+ - GitHub PACKAGE.md fetching
65
+ - PyPI documentation generation fallback
pkgq-0.3.0/MANIFEST.in ADDED
@@ -0,0 +1,2 @@
1
+ recursive-include src/pkgq/skills *.md
2
+ graft src/pkgq/skills
@@ -168,6 +168,27 @@ The MCP server provides the `find_package` tool for Claude Code and other MCP-co
168
168
  export PKGQ_CACHE=/path/to/cache
169
169
  ```
170
170
 
171
+ ## Yoker Plugin
172
+
173
+ When using pkgq with the yoker agent harness, it can be loaded as a plugin to provide
174
+ tools and skills directly within yoker sessions.
175
+
176
+ ```bash
177
+ # Run yoker with pkgq plugin
178
+ uvx --with pkgq yoker --with pkgq
179
+ ```
180
+
181
+ This exposes:
182
+
183
+ **Tools:**
184
+ - `pkgq:find` - Find package documentation
185
+
186
+ **Skills:**
187
+ - `pkgq:create` - Generate PACKAGE.md for Python projects
188
+ - `pkgq:update` - Update package documentation for new versions
189
+
190
+ The plugin manifest is automatically discovered when pkgq is loaded as a yoker plugin.
191
+
171
192
  ## Dependencies
172
193
 
173
194
  | Package | Purpose |
@@ -175,14 +196,17 @@ export PKGQ_CACHE=/path/to/cache
175
196
  | `httpx>=0.27.0` | HTTP client for API requests |
176
197
  | `pydantic>=2.0.0` | Data validation (optional, for future use) |
177
198
  | `rich>=13.0.0` | Terminal output formatting |
199
+ | `yoker>=0.5.0` | Yoker plugin system (required) |
178
200
  | `fastmcp>=3.0.0` | MCP server implementation (optional, `[mcp]` extra) |
179
201
 
180
202
  ## Version Notes
181
203
 
182
- **Current Version:** 0.1.1
204
+ **Current Version:** 0.3.0
183
205
 
184
206
  ### Recent Features
185
207
 
208
+ - Added yoker plugin support with tools and skills
209
+ - Moved skills into package for plugin distribution
186
210
  - Added `save` parameter to MCP tool with auto-cache results
187
211
  - Fixed license format and linter issues for PyPI compatibility
188
212
  - Initial implementation with cascade lookup (cache → GitHub → PyPI)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pkgq
3
- Version: 0.2.0
3
+ Version: 0.3.0
4
4
  Summary: Package Query - Find API information for Python packages
5
5
  Project-URL: Homepage, https://github.com/christophevg/pkgq
6
6
  Project-URL: Documentation, https://github.com/christophevg/pkgq#readme
@@ -22,6 +22,7 @@ Requires-Python: >=3.10
22
22
  Requires-Dist: httpx>=0.27.0
23
23
  Requires-Dist: pydantic>=2.0.0
24
24
  Requires-Dist: rich>=13.0.0
25
+ Requires-Dist: yoker>=0.5.0
25
26
  Provides-Extra: dev
26
27
  Requires-Dist: build>=1.0.0; extra == 'dev'
27
28
  Requires-Dist: coveralls>=3.3.0; extra == 'dev'
@@ -47,6 +48,7 @@ Description-Content-Type: text/markdown
47
48
  [![License](https://img.shields.io/github/license/christophevg/pkgq.svg)][license]
48
49
  [![Agentic](https://img.shields.io/badge/workflow-agentic-blueviolet?style=flat-square)](https://christophe.vg/about/Agentic-Workflow)
49
50
  [![PACKAGE.md](https://img.shields.io/badge/pkgq-PACKAGE.md-blueviolet)](https://github.com/christophevg/pkgq#readme)
51
+ [![yoker](https://img.shields.io/badge/yoker-plugin-blueviolet)](https://github.com/christophevg/yoker#readme)
50
52
 
51
53
  > Make your Python package discoverable for AI coding agents in 3 steps.
52
54
 
@@ -134,9 +136,64 @@ visibility into agent operations.
134
136
 
135
137
  % pkgq cache --list
136
138
  Cached packages (3):
137
- pkgq 0.1.1 (pypi)
139
+ pkgq 0.3.0 (pypi)
138
140
  roomz 0.2.0 (github:christophevg/roomz)
139
- yoker 0.4.0 (github:christophevg/yoker)
141
+ yoker 0.5.0 (github:christophevg/yoker)
142
+ ```
143
+
144
+ ### Yoker Tool
145
+
146
+ When you're using yoker as your agent harness, you can simply include the pkgq package in your environment and ask yoker to load it as a plugin...
147
+
148
+ ```console
149
+ % uvx --with pkgq yoker --with pkgq
150
+
151
+ ╭───────────────────────────────── Plugin: pkgq ──────────────────────────────────╮
152
+ │ Plugin: pkgq │
153
+ │ │
154
+ │ Tools: pkgq:find │
155
+ │ Skills: pkgq:create, pkgq:update │
156
+ │ Agents: (none) │
157
+ │ │
158
+ │ Plugins can execute code on your system. │
159
+ │ Only load plugins you trust. │
160
+ │ │
161
+ │ Load this plugin? [y/N]: │
162
+ ╰─────────────────────────────────────────────────────────────────────────────────╯
163
+
164
+ y
165
+
166
+ To trust this plugin permanently, add to your yoker.toml:
167
+
168
+ [plugins.trusted]
169
+ pkgq = true
170
+
171
+ ╭───────────────────────────────── 👋 Welcome... ─────────────────────────────────╮
172
+ │ Yoker v0.4.0 - Using model: kimi-k2.7-code:cloud │
173
+ │ Harness: yoker v1.0 │
174
+ │ Thinking mode: enabled (use /think on|off|silent to toggle) │
175
+ │ Agent: default - The default/minimal Yoker agent. │
176
+ │ Type /help for available commands. │
177
+ │ Press Ctrl+D (or Ctrl+Z on Windows) to quit. │
178
+ ╰─────────────────────────────────────────────────────────────────────────────────╯
179
+
180
+ > use the pkgq find tool to get information on pkgq
181
+ The user wants me to use the pkgq find tool to get information on pkgq. I should
182
+ use the pkgq__find function with package="pkgq".
183
+
184
+ ⏺ Pkgq:find tool: pkgq ✓ Success
185
+ I got the information from the pkgq find tool. Let me summarize this for the user
186
+ in a helpful way.
187
+
188
+ Here is the information for **pkgq** using the pkgq find tool:
189
+
190
+ ## pkgq — Package Query
191
+
192
+ - **Version:** 0.1.1
193
+ - **Author:** None listed
194
+ - **Description:** Package Query - Find API information for Python packages
195
+ - **Install command:**
196
+ pip install pkgq
140
197
  ```
141
198
 
142
199
  ### MCP Server
@@ -146,6 +203,75 @@ pkgq-mcp-server
146
203
  # Or: uvx --from "pkgq[mcp]" pkgq-mcp-server
147
204
  ```
148
205
 
206
+ So If you want to load it into your project, create a `.mcp.json` file:
207
+
208
+ ```json
209
+ {
210
+ "mcpServers": {
211
+ "pkgq": {
212
+ "command": "uvx",
213
+ "args": [
214
+ "--from",
215
+ "pkgq[mcp]",
216
+ "pkgq-mcp-server"
217
+ ]
218
+ }
219
+ }
220
+ }
221
+ ```
222
+
223
+ When you start your MCP-based coding harness, e.g. Claude Code, you'll be prompted for confirmation to use the new MCP server:
224
+
225
+ ```
226
+ ────────────────────────────────────────────────────────────────────────────────────
227
+ New MCP server found in this project: pkgq
228
+
229
+ MCP servers may execute code or access system resources. All tool calls require
230
+ approval. Learn more in the MCP documentation.
231
+
232
+ ❯ 1. Use this MCP server
233
+ 2. Use this and all future MCP servers in this project
234
+ 3. Continue without using this MCP server
235
+
236
+ Enter to confirm · Esc to cancel
237
+ ```
238
+
239
+ And you can use it:
240
+
241
+ ```
242
+ ❯ use the find_pacakge tool to find information about pkgq
243
+
244
+ ⏺ Thinking for 2s, calling plugin:c3:pkgq…
245
+
246
+ ────────────────────────────────────────────────────────────────────────────────────
247
+ Tool use
248
+
249
+ plugin:c3:pkgq - find_package(package: "pkgq") (MCP)
250
+ Find package documentation.
251
+
252
+ Queries multiple sources in order:…
253
+
254
+ Do you want to proceed?
255
+ ❯ 1. Yes
256
+ 2. Yes, and don't ask again for plugin:c3:pkgq - find_package commands in /Users/xtof/Workspace/agentic/pkgq
257
+ 3. No
258
+
259
+ Esc to cancel · Tab to amend
260
+
261
+
262
+ pkgq Package Information
263
+
264
+ Version: 0.1.1 (cached)
265
+ Source: PyPI
266
+
267
+ Overview
268
+
269
+ pkgq (Package Query) is a tool for finding API information for Python packages.
270
+ ...
271
+ ```
272
+
273
+
274
+
149
275
  ## Features
150
276
 
151
277
  | Feature | Description |
@@ -173,3 +299,4 @@ pkgq-mcp-server
173
299
  [ci]: https://github.com/christophevg/pkgq/actions
174
300
  [coveralls]: https://coveralls.io/github/christophevg/pkgq
175
301
  [license]: https://github.com/christophevg/pkgq/blob/main/LICENSE
302
+
pkgq-0.3.0/README.md ADDED
@@ -0,0 +1,262 @@
1
+ # pkgq
2
+
3
+ [![PyPI](https://img.shields.io/pypi/v/pkgq.svg)][pypi]
4
+ [![Python](https://img.shields.io/pypi/pyversions/pkgq.svg)][pypi]
5
+ [![uv](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/uv/main/assets/badge/v0.json)][uv]
6
+ [![CI](https://img.shields.io/github/actions/workflow/status/christophevg/pkgq/test.yml.svg)][ci]
7
+ [![Coverage](https://img.shields.io/coveralls/github/christophevg/pkgq.svg)][coveralls]
8
+ [![License](https://img.shields.io/github/license/christophevg/pkgq.svg)][license]
9
+ [![Agentic](https://img.shields.io/badge/workflow-agentic-blueviolet?style=flat-square)](https://christophe.vg/about/Agentic-Workflow)
10
+ [![PACKAGE.md](https://img.shields.io/badge/pkgq-PACKAGE.md-blueviolet)](https://github.com/christophevg/pkgq#readme)
11
+ [![yoker](https://img.shields.io/badge/yoker-plugin-blueviolet)](https://github.com/christophevg/yoker#readme)
12
+
13
+ > Make your Python package discoverable for AI coding agents in 3 steps.
14
+
15
+ ## What is PACKAGE.md?
16
+
17
+ **PACKAGE.md** is a informally proposed documentation standard for Python packages optimized for AI agents. Unlike README.md (written for humans), PACKAGE.md provides structured, scannable content that coding agents can quickly understand:
18
+
19
+ - **Purpose** - What the package does in one line
20
+ - **Key Components** - Classes, functions, and their signatures
21
+ - **Common Patterns** - Code examples for typical use cases
22
+ - **Migration Guides** - How to upgrade between versions
23
+
24
+ When you add PACKAGE.md to your repository root, coding agents using `pkgq` can instantly understand your package's capabilities.
25
+
26
+ ## Quick Start for Package Authors
27
+
28
+ **3 steps to make your package discoverable:**
29
+
30
+ ```bash
31
+ # 0. Add the marketplace (one-time setup)
32
+ claude plugin marketplace add christophevg/marketplace
33
+
34
+ # 1. Get the plugin
35
+ claude plugin install pkgq@christophe.vg
36
+
37
+ # 2. Generate documentation
38
+ /pkgq:create
39
+
40
+ # 3. Commit and push
41
+ git add PACKAGE.md && git commit -m "docs: add PACKAGE.md" && git push
42
+ ```
43
+
44
+ Done! Your package is now discoverable by coding agents using the `pkgq` tool or MCP server.
45
+
46
+ **Add the badge to show your package supports AI agents:**
47
+
48
+ ```markdown
49
+ [![PACKAGE.md](https://img.shields.io/badge/pkgq-PACKAGE.md-blueviolet)](https://github.com/christophevg/pkgq#readme)
50
+ ```
51
+
52
+ ## For Package Users
53
+
54
+ ### Installation
55
+
56
+ ```bash
57
+ pip install pkgq
58
+
59
+ # For MCP server support
60
+ pip install "pkgq[mcp]"
61
+ ```
62
+
63
+ ### Python Module
64
+
65
+ ```python
66
+ from pkgq import find
67
+
68
+ # Find package documentation
69
+ result = find("yoker")
70
+ print(result.content)
71
+
72
+ # Check for updates
73
+ result = find("yoker", from_version="1.5.0")
74
+ ```
75
+
76
+ ### Command Line
77
+
78
+ ```bash
79
+ % pkgq find yoker --save | head -15
80
+ Saved to: /Users/xtof/.cache/pkgq/packages/yoker
81
+ yoker 0.4.0 (cached)
82
+ Source: github:christophevg/yoker
83
+
84
+ Yoker
85
+
86
+ A Python agent harness with configurable tools and guardrails - one who yokes
87
+ agents together.
88
+
89
+ Overview
90
+
91
+ Yoker is a library-first, event-driven agent harness for Python that integrates
92
+ with Ollama. It provides a transparent, configurable runtime for AI agents with
93
+ structured tool execution, guardrails, and event emission. Unlike CLI-first
94
+ agent frameworks, Yoker is designed to be embedded in applications with full
95
+ visibility into agent operations.
96
+
97
+ % pkgq cache --list
98
+ Cached packages (3):
99
+ pkgq 0.3.0 (pypi)
100
+ roomz 0.2.0 (github:christophevg/roomz)
101
+ yoker 0.5.0 (github:christophevg/yoker)
102
+ ```
103
+
104
+ ### Yoker Tool
105
+
106
+ When you're using yoker as your agent harness, you can simply include the pkgq package in your environment and ask yoker to load it as a plugin...
107
+
108
+ ```console
109
+ % uvx --with pkgq yoker --with pkgq
110
+
111
+ ╭───────────────────────────────── Plugin: pkgq ──────────────────────────────────╮
112
+ │ Plugin: pkgq │
113
+ │ │
114
+ │ Tools: pkgq:find │
115
+ │ Skills: pkgq:create, pkgq:update │
116
+ │ Agents: (none) │
117
+ │ │
118
+ │ Plugins can execute code on your system. │
119
+ │ Only load plugins you trust. │
120
+ │ │
121
+ │ Load this plugin? [y/N]: │
122
+ ╰─────────────────────────────────────────────────────────────────────────────────╯
123
+
124
+ y
125
+
126
+ To trust this plugin permanently, add to your yoker.toml:
127
+
128
+ [plugins.trusted]
129
+ pkgq = true
130
+
131
+ ╭───────────────────────────────── 👋 Welcome... ─────────────────────────────────╮
132
+ │ Yoker v0.4.0 - Using model: kimi-k2.7-code:cloud │
133
+ │ Harness: yoker v1.0 │
134
+ │ Thinking mode: enabled (use /think on|off|silent to toggle) │
135
+ │ Agent: default - The default/minimal Yoker agent. │
136
+ │ Type /help for available commands. │
137
+ │ Press Ctrl+D (or Ctrl+Z on Windows) to quit. │
138
+ ╰─────────────────────────────────────────────────────────────────────────────────╯
139
+
140
+ > use the pkgq find tool to get information on pkgq
141
+ The user wants me to use the pkgq find tool to get information on pkgq. I should
142
+ use the pkgq__find function with package="pkgq".
143
+
144
+ ⏺ Pkgq:find tool: pkgq ✓ Success
145
+ I got the information from the pkgq find tool. Let me summarize this for the user
146
+ in a helpful way.
147
+
148
+ Here is the information for **pkgq** using the pkgq find tool:
149
+
150
+ ## pkgq — Package Query
151
+
152
+ - **Version:** 0.1.1
153
+ - **Author:** None listed
154
+ - **Description:** Package Query - Find API information for Python packages
155
+ - **Install command:**
156
+ pip install pkgq
157
+ ```
158
+
159
+ ### MCP Server
160
+
161
+ ```bash
162
+ pkgq-mcp-server
163
+ # Or: uvx --from "pkgq[mcp]" pkgq-mcp-server
164
+ ```
165
+
166
+ So If you want to load it into your project, create a `.mcp.json` file:
167
+
168
+ ```json
169
+ {
170
+ "mcpServers": {
171
+ "pkgq": {
172
+ "command": "uvx",
173
+ "args": [
174
+ "--from",
175
+ "pkgq[mcp]",
176
+ "pkgq-mcp-server"
177
+ ]
178
+ }
179
+ }
180
+ }
181
+ ```
182
+
183
+ When you start your MCP-based coding harness, e.g. Claude Code, you'll be prompted for confirmation to use the new MCP server:
184
+
185
+ ```
186
+ ────────────────────────────────────────────────────────────────────────────────────
187
+ New MCP server found in this project: pkgq
188
+
189
+ MCP servers may execute code or access system resources. All tool calls require
190
+ approval. Learn more in the MCP documentation.
191
+
192
+ ❯ 1. Use this MCP server
193
+ 2. Use this and all future MCP servers in this project
194
+ 3. Continue without using this MCP server
195
+
196
+ Enter to confirm · Esc to cancel
197
+ ```
198
+
199
+ And you can use it:
200
+
201
+ ```
202
+ ❯ use the find_pacakge tool to find information about pkgq
203
+
204
+ ⏺ Thinking for 2s, calling plugin:c3:pkgq…
205
+
206
+ ────────────────────────────────────────────────────────────────────────────────────
207
+ Tool use
208
+
209
+ plugin:c3:pkgq - find_package(package: "pkgq") (MCP)
210
+ Find package documentation.
211
+
212
+ Queries multiple sources in order:…
213
+
214
+ Do you want to proceed?
215
+ ❯ 1. Yes
216
+ 2. Yes, and don't ask again for plugin:c3:pkgq - find_package commands in /Users/xtof/Workspace/agentic/pkgq
217
+ 3. No
218
+
219
+ Esc to cancel · Tab to amend
220
+
221
+
222
+ pkgq Package Information
223
+
224
+ Version: 0.1.1 (cached)
225
+ Source: PyPI
226
+
227
+ Overview
228
+
229
+ pkgq (Package Query) is a tool for finding API information for Python packages.
230
+ ...
231
+ ```
232
+
233
+
234
+
235
+ ## Features
236
+
237
+ | Feature | Description |
238
+ |---------|-------------|
239
+ | Cascade lookup | Cache → GitHub PACKAGE.md → PyPI |
240
+ | MCP server | Tool for Claude Code agents |
241
+ | Auto-caching | Results saved to `~/.cache/pkgq/packages/` |
242
+ | Plugin skills | `/pkgq:create` and `/pkgq:update` |
243
+
244
+ ## Development
245
+
246
+ ```bash
247
+ % git clone https://github.com/christophevg/pkgq.git
248
+ % cd pkgq
249
+ % uv sync --all-extras
250
+ % uv run pytest
251
+ ```
252
+
253
+ ## License
254
+
255
+ [MIT](LICENSE)
256
+
257
+ [pypi]: https://pypi.org/project/pkgq/
258
+ [uv]: https://docs.astral.sh/uv/
259
+ [ci]: https://github.com/christophevg/pkgq/actions
260
+ [coveralls]: https://coveralls.io/github/christophevg/pkgq
261
+ [license]: https://github.com/christophevg/pkgq/blob/main/LICENSE
262
+