bpsai-pair 0.2.0__tar.gz → 0.2.2__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.

Potentially problematic release.


This version of bpsai-pair might be problematic. Click here for more details.

Files changed (62) hide show
  1. bpsai_pair-0.2.2/PKG-INFO +89 -0
  2. bpsai_pair-0.2.2/README.md +78 -0
  3. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/__init__.py +1 -1
  4. bpsai_pair-0.2.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.agentpackignore +19 -0
  5. bpsai_pair-0.2.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.github/workflows/project_tree.yml +54 -0
  6. bpsai_pair-0.2.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/AGENTS.md +29 -0
  7. bpsai_pair-0.2.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/CLAUDE.md +32 -0
  8. bpsai_pair-0.2.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/context/agents.md +15 -0
  9. bpsai_pair-0.2.0/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/context/development.md.bak → bpsai_pair-0.2.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/context/development.md +1 -0
  10. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/scripts/README.md +1 -1
  11. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/ops.py +70 -71
  12. bpsai_pair-0.2.2/bpsai_pair.egg-info/PKG-INFO +89 -0
  13. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair.egg-info/SOURCES.txt +2 -2
  14. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/pyproject.toml +2 -2
  15. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/tests/test_ops.py +27 -0
  16. bpsai_pair-0.2.0/PKG-INFO +0 -29
  17. bpsai_pair-0.2.0/README.md +0 -18
  18. bpsai_pair-0.2.0/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.agentpackignore +0 -1
  19. bpsai_pair-0.2.0/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.github/workflows/project_tree.yml +0 -33
  20. bpsai_pair-0.2.0/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/context/agents.md +0 -6
  21. bpsai_pair-0.2.0/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/context/agents.md.bak +0 -196
  22. bpsai_pair-0.2.0/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/context/development.md +0 -1
  23. bpsai_pair-0.2.0/bpsai_pair.egg-info/PKG-INFO +0 -29
  24. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/MANIFEST.in +0 -0
  25. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/__main__.py +0 -0
  26. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/adapters.py +0 -0
  27. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/cli.py +0 -0
  28. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/config.py +0 -0
  29. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/data/cookiecutter-paircoder/cookiecutter.json +0 -0
  30. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.editorconfig +0 -0
  31. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  32. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.github/workflows/ci.yml +0 -0
  33. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.gitignore +0 -0
  34. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.gitleaks.toml +0 -0
  35. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.pre-commit-config.yaml +0 -0
  36. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/CODEOWNERS +0 -0
  37. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/CONTRIBUTING.md +0 -0
  38. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/SECURITY.md +0 -0
  39. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/context/directory_notes/.gitkeep +0 -0
  40. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/context/project_tree.md +0 -0
  41. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/prompts/deep_research.yml +0 -0
  42. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/prompts/implementation.yml +0 -0
  43. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/prompts/roadmap.yml +0 -0
  44. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/src/.gitkeep +0 -0
  45. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/templates/adr.md +0 -0
  46. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/templates/directory_note.md +0 -0
  47. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/tests/example_contract/README.md +0 -0
  48. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/tests/example_integration/README.md +0 -0
  49. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/init_bundled_cli.py +0 -0
  50. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/jsonio.py +0 -0
  51. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/pyutils.py +0 -0
  52. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/utils.py +0 -0
  53. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair.egg-info/dependency_links.txt +0 -0
  54. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair.egg-info/entry_points.txt +0 -0
  55. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair.egg-info/requires.txt +0 -0
  56. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair.egg-info/top_level.txt +0 -0
  57. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/setup.cfg +0 -0
  58. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/tests/test_cli.py +0 -0
  59. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/tests/test_config.py +0 -0
  60. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/tests/test_context_sync.py +0 -0
  61. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/tests/test_feature_branch_type.py +0 -0
  62. {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/tests/test_pack_preview.py +0 -0
@@ -0,0 +1,89 @@
1
+ Metadata-Version: 2.4
2
+ Name: bpsai-pair
3
+ Version: 0.2.2
4
+ Summary: CLI for AI pair-coding workflow
5
+ Author: BPS AI Software
6
+ Requires-Python: >=3.9
7
+ Description-Content-Type: text/markdown
8
+ Requires-Dist: typer>=0.12
9
+ Requires-Dist: rich>=13.7
10
+ Requires-Dist: pyyaml>=6.0
11
+
12
+ # bpsai-pair CLI
13
+
14
+ The PairCoder CLI tool for AI pair programming workflows.
15
+
16
+ ## Quick Start
17
+
18
+ ### Install from PyPI
19
+ ```bash
20
+ pip install bpsai-pair
21
+ bpsai-pair --help
22
+ ```
23
+
24
+ ### Development Install
25
+ ```bash
26
+ cd tools/cli
27
+ pip install -e .
28
+ bpsai-pair --help
29
+ ```
30
+
31
+ ## Usage
32
+
33
+ ### Initialize scaffolding (uses bundled template)
34
+ ```bash
35
+ bpsai-pair-init
36
+ # or with main CLI:
37
+ bpsai-pair init
38
+ ```
39
+
40
+ ### Create feature branch
41
+ ```bash
42
+ bpsai-pair feature auth-refactor \
43
+ --type refactor \
44
+ --primary "Decouple auth via DI" \
45
+ --phase "Refactor auth module + tests"
46
+ ```
47
+
48
+ ### Pack context for AI
49
+ ```bash
50
+ bpsai-pair pack --out agent_pack.tgz
51
+ bpsai-pair pack --list # Preview files
52
+ bpsai-pair pack --json # JSON output
53
+ ```
54
+
55
+ ### Update context loop
56
+ ```bash
57
+ bpsai-pair context-sync \
58
+ --last "Initialized scaffolding" \
59
+ --next "Set up CI secrets" \
60
+ --blockers "None"
61
+ ```
62
+
63
+ ## Commands
64
+
65
+ - `bpsai-pair init` - Initialize repo with PairCoder structure
66
+ - `bpsai-pair-init` - Quick init with bundled template (no args)
67
+ - `bpsai-pair feature` - Create feature/fix/refactor branch
68
+ - `bpsai-pair pack` - Package context for AI agents
69
+ - `bpsai-pair context-sync` - Update the Context Loop
70
+ - `bpsai-pair status` - Show current state
71
+ - `bpsai-pair validate` - Check repo structure
72
+ - `bpsai-pair ci` - Run local CI checks
73
+
74
+ ## Development
75
+
76
+ Run tests:
77
+ ```bash
78
+ pytest
79
+ ```
80
+
81
+ Build wheel:
82
+ ```bash
83
+ python -m build
84
+ ```
85
+
86
+ ## Template
87
+
88
+ The CLI bundles a cookiecutter template in `bpsai_pair/data/cookiecutter-paircoder/`
89
+ that gets installed with the package and used by `bpsai-pair-init`.
@@ -0,0 +1,78 @@
1
+ # bpsai-pair CLI
2
+
3
+ The PairCoder CLI tool for AI pair programming workflows.
4
+
5
+ ## Quick Start
6
+
7
+ ### Install from PyPI
8
+ ```bash
9
+ pip install bpsai-pair
10
+ bpsai-pair --help
11
+ ```
12
+
13
+ ### Development Install
14
+ ```bash
15
+ cd tools/cli
16
+ pip install -e .
17
+ bpsai-pair --help
18
+ ```
19
+
20
+ ## Usage
21
+
22
+ ### Initialize scaffolding (uses bundled template)
23
+ ```bash
24
+ bpsai-pair-init
25
+ # or with main CLI:
26
+ bpsai-pair init
27
+ ```
28
+
29
+ ### Create feature branch
30
+ ```bash
31
+ bpsai-pair feature auth-refactor \
32
+ --type refactor \
33
+ --primary "Decouple auth via DI" \
34
+ --phase "Refactor auth module + tests"
35
+ ```
36
+
37
+ ### Pack context for AI
38
+ ```bash
39
+ bpsai-pair pack --out agent_pack.tgz
40
+ bpsai-pair pack --list # Preview files
41
+ bpsai-pair pack --json # JSON output
42
+ ```
43
+
44
+ ### Update context loop
45
+ ```bash
46
+ bpsai-pair context-sync \
47
+ --last "Initialized scaffolding" \
48
+ --next "Set up CI secrets" \
49
+ --blockers "None"
50
+ ```
51
+
52
+ ## Commands
53
+
54
+ - `bpsai-pair init` - Initialize repo with PairCoder structure
55
+ - `bpsai-pair-init` - Quick init with bundled template (no args)
56
+ - `bpsai-pair feature` - Create feature/fix/refactor branch
57
+ - `bpsai-pair pack` - Package context for AI agents
58
+ - `bpsai-pair context-sync` - Update the Context Loop
59
+ - `bpsai-pair status` - Show current state
60
+ - `bpsai-pair validate` - Check repo structure
61
+ - `bpsai-pair ci` - Run local CI checks
62
+
63
+ ## Development
64
+
65
+ Run tests:
66
+ ```bash
67
+ pytest
68
+ ```
69
+
70
+ Build wheel:
71
+ ```bash
72
+ python -m build
73
+ ```
74
+
75
+ ## Template
76
+
77
+ The CLI bundles a cookiecutter template in `bpsai_pair/data/cookiecutter-paircoder/`
78
+ that gets installed with the package and used by `bpsai-pair-init`.
@@ -2,7 +2,7 @@
2
2
  bpsai_pair package
3
3
  """
4
4
 
5
- __version__ = "0.2.0"
5
+ __version__ = "0.2.2"
6
6
 
7
7
  # Make modules available at package level
8
8
  from . import cli
@@ -0,0 +1,19 @@
1
+ # Default agent pack exclusions
2
+ .git/
3
+ .venv/
4
+ venv/
5
+ env/
6
+ __pycache__/
7
+ node_modules/
8
+ dist/
9
+ build/
10
+ *.log
11
+ *.bak
12
+ *.tgz
13
+ *.tar.gz
14
+ *.zip
15
+ .env
16
+ .env.*
17
+ *.pyc
18
+ .DS_Store
19
+ Thumbs.db
@@ -0,0 +1,54 @@
1
+ name: Refresh Project Tree
2
+
3
+ on:
4
+ schedule:
5
+ - cron: '17 3 * * *' # Daily at 03:17 UTC
6
+ workflow_dispatch: {}
7
+
8
+ permissions:
9
+ contents: write
10
+
11
+ jobs:
12
+ refresh:
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - uses: actions/checkout@v4
16
+
17
+ - name: Generate project tree
18
+ run: |
19
+ TS=$(date -u +%Y-%m-%dT%H:%M:%SZ)
20
+ echo "# Project Tree (snapshot)" > context/project_tree.md
21
+ echo "_Generated: ${TS}_" >> context/project_tree.md
22
+ echo "" >> context/project_tree.md
23
+ echo '```' >> context/project_tree.md
24
+
25
+ # Use find to create tree (cross-platform)
26
+ find . \
27
+ -path './.git' -prune -o \
28
+ -path './node_modules' -prune -o \
29
+ -path './dist' -prune -o \
30
+ -path './build' -prune -o \
31
+ -path './.venv' -prune -o \
32
+ -path './__pycache__' -prune -o \
33
+ -path './tools/cli/dist' -prune -o \
34
+ -path './tools/cli/build' -prune -o \
35
+ -path './**/*.egg-info' -prune -o \
36
+ -type f -print -o \
37
+ -type d -print | \
38
+ sed 's|^\./||' | \
39
+ grep -v '^\.$' | \
40
+ sort >> context/project_tree.md
41
+
42
+ echo '```' >> context/project_tree.md
43
+
44
+ - name: Commit changes if any
45
+ run: |
46
+ git config user.name "github-actions[bot]"
47
+ git config user.email "github-actions[bot]@users.noreply.github.com"
48
+ git add context/project_tree.md || true
49
+ if ! git diff --cached --quiet; then
50
+ git commit -m "chore(context): refresh project_tree snapshot [skip ci]"
51
+ git push
52
+ else
53
+ echo "No changes to commit."
54
+ fi
@@ -0,0 +1,29 @@
1
+ # Agents Guide (Root Pointer)
2
+
3
+ Welcome, AI agent! This project uses PairCoder for AI pair programming.
4
+
5
+ ## Where to Start
6
+
7
+ All instructions, context, and project information are maintained in the `/context` directory:
8
+
9
+ 1. **Read first:** `/context/agents.md` - Complete playbook and guidelines
10
+ 2. **Current state:** `/context/development.md` - Roadmap and Context Loop
11
+ 3. **File structure:** `/context/project_tree.md` - Repository layout
12
+ 4. **Component docs:** `/context/directory_notes/` - Directory-specific guidance
13
+
14
+ ## Critical Reminder
15
+
16
+ Always check the Context Loop at the end of `/context/development.md` for:
17
+ - **Overall goal is:** The project's primary objective
18
+ - **Last action was:** What was just completed
19
+ - **Next action will be:** The immediate next step
20
+ - **Blockers/Risks:** Any issues needing attention
21
+
22
+ ## After Making Changes
23
+
24
+ Update the Context Loop using:
25
+ ```bash
26
+ bpsai-pair context-sync --last "What you did" --next "Next step" --blockers "Any issues"
27
+ ```
28
+
29
+ Begin by reading `/context/agents.md` for complete instructions.
@@ -0,0 +1,32 @@
1
+ # Claude Guide (Root Pointer)
2
+
3
+ Hello Claude! This project follows PairCoder conventions for AI pair programming.
4
+
5
+ ## Getting Started
6
+
7
+ Your instructions are organized in the `/context` directory:
8
+
9
+ 1. **Start here:** `/context/agents.md` - Full AI pairing playbook
10
+ 2. **Project state:** `/context/development.md` - Current goals and progress
11
+ 3. **Repository map:** `/context/project_tree.md` - File structure reference
12
+
13
+ ## Working in This Repository
14
+
15
+ Before making any changes:
16
+ - Review the Context Loop in `/context/development.md`
17
+ - Understand the current phase and next actions
18
+ - Check for any blockers or risks
19
+
20
+ After making changes:
21
+ - Update the Context Loop to maintain continuity
22
+ - Use the provided CLI command or edit directly
23
+ - Keep changes focused and well-documented
24
+
25
+ ## PairCoder Principles
26
+
27
+ - Maintain the Context Loop discipline
28
+ - Make small, reversible changes
29
+ - Add tests before implementing features
30
+ - Follow the project's established patterns
31
+
32
+ See `/context/agents.md` for detailed instructions.
@@ -0,0 +1,15 @@
1
+ # Agents Guide
2
+
3
+ This project uses a **Context Loop**. Always keep these fields current:
4
+
5
+ - **Overall goal is:** Single-sentence mission
6
+ - **Last action was:** What just completed
7
+ - **Next action will be:** The very next step
8
+ - **Blockers:** Known issues or decisions needed
9
+
10
+ ### Working Rules for Agents\n- Do not modify or examine ignored directories (see `.agentpackignore`). Assume large assets exist even if excluded.\n- Prefer minimal, reversible changes.\n- After committing code, run `bpsai-pair context-sync` to update the loop.\n- Request a new context pack when the tree or docs change significantly.\n\n### Context Pack\nRun `bpsai-pair pack --out agent_pack.tgz` and upload to your session.\n
11
+ ---
12
+
13
+ ## Branch Discipline
14
+ - Use `--type feature|fix|refactor` when creating features.
15
+ - Conventional Commits recommended.
@@ -8,3 +8,4 @@
8
8
  - **Overall goal is:** (set by feature)
9
9
  - **Last action was:** (set by feature)
10
10
  - **Next action will be:** (set by feature)
11
+ - **Blockers:** (set by feature)
@@ -1,6 +1,6 @@
1
1
  # Scripts directory (intentionally minimal)
2
2
 
3
- This project uses the **PairCoder CLI** (Python) — no Bash scripts required.
3
+ This project uses the **PairCoder CLI** (Python) — Bash scripts have been deprecated.
4
4
  Common commands:
5
5
 
6
6
  ```bash