pi-agent-toolkit 0.1.0

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 (53) hide show
  1. package/dist/dotfiles/AGENTS.md +197 -0
  2. package/dist/dotfiles/APPEND_SYSTEM.md +78 -0
  3. package/dist/dotfiles/agent-modes.json +12 -0
  4. package/dist/dotfiles/agent-skills/exa-search/.env.example +4 -0
  5. package/dist/dotfiles/agent-skills/exa-search/SKILL.md +234 -0
  6. package/dist/dotfiles/agent-skills/exa-search/scripts/exa-api.cjs +197 -0
  7. package/dist/dotfiles/auth.json.template +5 -0
  8. package/dist/dotfiles/damage-control-rules.yaml +318 -0
  9. package/dist/dotfiles/extensions/btw.ts +1031 -0
  10. package/dist/dotfiles/extensions/commit-approval.ts +590 -0
  11. package/dist/dotfiles/extensions/context.ts +578 -0
  12. package/dist/dotfiles/extensions/control.ts +1748 -0
  13. package/dist/dotfiles/extensions/damage-control/index.ts +543 -0
  14. package/dist/dotfiles/extensions/damage-control/node_modules/.package-lock.json +22 -0
  15. package/dist/dotfiles/extensions/damage-control/package-lock.json +28 -0
  16. package/dist/dotfiles/extensions/damage-control/package.json +7 -0
  17. package/dist/dotfiles/extensions/dirty-repo-guard.ts +56 -0
  18. package/dist/dotfiles/extensions/exa-enforce.ts +51 -0
  19. package/dist/dotfiles/extensions/exa-search-tool.ts +384 -0
  20. package/dist/dotfiles/extensions/execute-command/index.ts +82 -0
  21. package/dist/dotfiles/extensions/files.ts +1112 -0
  22. package/dist/dotfiles/extensions/loop.ts +446 -0
  23. package/dist/dotfiles/extensions/pr-approval.ts +730 -0
  24. package/dist/dotfiles/extensions/qna-interactive.ts +532 -0
  25. package/dist/dotfiles/extensions/question-mode.ts +242 -0
  26. package/dist/dotfiles/extensions/require-session-name-on-exit.ts +141 -0
  27. package/dist/dotfiles/extensions/review.ts +2091 -0
  28. package/dist/dotfiles/extensions/session-breakdown.ts +1629 -0
  29. package/dist/dotfiles/extensions/term-notify.ts +150 -0
  30. package/dist/dotfiles/extensions/tilldone.ts +527 -0
  31. package/dist/dotfiles/extensions/todos.ts +2082 -0
  32. package/dist/dotfiles/extensions/tools.ts +146 -0
  33. package/dist/dotfiles/extensions/uv.ts +123 -0
  34. package/dist/dotfiles/global-skills/brainstorm/SKILL.md +10 -0
  35. package/dist/dotfiles/global-skills/cli-detector/SKILL.md +192 -0
  36. package/dist/dotfiles/global-skills/gh-issue-creator/SKILL.md +173 -0
  37. package/dist/dotfiles/global-skills/google-chat-cards-v2/SKILL.md +237 -0
  38. package/dist/dotfiles/global-skills/google-chat-cards-v2/references/bridge_tap_implementation.md +466 -0
  39. package/dist/dotfiles/global-skills/technical-docs/SKILL.md +204 -0
  40. package/dist/dotfiles/global-skills/technical-docs/references/diagrams.md +168 -0
  41. package/dist/dotfiles/global-skills/technical-docs/references/examples.md +449 -0
  42. package/dist/dotfiles/global-skills/technical-docs/scripts/validate_docs.py +352 -0
  43. package/dist/dotfiles/global-skills/whats-new/SKILL.md +159 -0
  44. package/dist/dotfiles/intercepted-commands/pip +7 -0
  45. package/dist/dotfiles/intercepted-commands/pip3 +7 -0
  46. package/dist/dotfiles/intercepted-commands/poetry +10 -0
  47. package/dist/dotfiles/intercepted-commands/python +104 -0
  48. package/dist/dotfiles/intercepted-commands/python3 +104 -0
  49. package/dist/dotfiles/mcp.json.template +32 -0
  50. package/dist/dotfiles/models.json +27 -0
  51. package/dist/dotfiles/settings.json +25 -0
  52. package/dist/index.js +1344 -0
  53. package/package.json +34 -0
@@ -0,0 +1,104 @@
1
+ #!/bin/bash
2
+
3
+ # Check for disallowed module invocations
4
+ for arg in "$@"; do
5
+ case "$arg" in
6
+ -mpip|-m\ pip|pip)
7
+ echo "Error: 'python3 -m pip' is disabled. Use uv instead:" >&2
8
+ echo "" >&2
9
+ echo " To install a package for a script: uv run --with PACKAGE python script.py" >&2
10
+ echo " To add a dependency to the project: uv add PACKAGE" >&2
11
+ echo "" >&2
12
+ exit 1
13
+ ;;
14
+ -mvenv|-m\ venv|venv)
15
+ echo "Error: 'python3 -m venv' is disabled. Use uv instead:" >&2
16
+ echo "" >&2
17
+ echo " To create a virtual environment: uv venv" >&2
18
+ echo "" >&2
19
+ exit 1
20
+ ;;
21
+ -mpy_compile|-m\ py_compile|py_compile)
22
+ echo "Error: 'python3 -m py_compile' is disabled because it writes .pyc files to __pycache__." >&2
23
+ echo "" >&2
24
+ echo " To verify syntax without bytecode output: uv run python -m ast path/to/file.py >/dev/null" >&2
25
+ echo "" >&2
26
+ exit 1
27
+ ;;
28
+ esac
29
+ done
30
+
31
+ # Check for -m flag followed by pip or venv
32
+ prev=""
33
+ for arg in "$@"; do
34
+ if [ "$prev" = "-m" ]; then
35
+ case "$arg" in
36
+ pip)
37
+ echo "Error: 'python3 -m pip' is disabled. Use uv instead:" >&2
38
+ echo "" >&2
39
+ echo " To install a package for a script: uv run --with PACKAGE python script.py" >&2
40
+ echo " To add a dependency to the project: uv add PACKAGE" >&2
41
+ echo "" >&2
42
+ exit 1
43
+ ;;
44
+ venv)
45
+ echo "Error: 'python3 -m venv' is disabled. Use uv instead:" >&2
46
+ echo "" >&2
47
+ echo " To create a virtual environment: uv venv" >&2
48
+ echo "" >&2
49
+ exit 1
50
+ ;;
51
+ py_compile)
52
+ echo "Error: 'python3 -m py_compile' is disabled because it writes .pyc files to __pycache__." >&2
53
+ echo "" >&2
54
+ echo " To verify syntax without bytecode output: uv run python -m ast path/to/file.py >/dev/null" >&2
55
+ echo "" >&2
56
+ exit 1
57
+ ;;
58
+ esac
59
+ fi
60
+ prev="$arg"
61
+ done
62
+
63
+ # Resolve a Python interpreter for uv. Prefer uv-managed Python to match
64
+ # `uv run python` defaults, while still avoiding shim recursion.
65
+ resolve_uv_python() {
66
+ local shim_dir candidate candidate_dir
67
+ shim_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
68
+
69
+ candidate="$(uv python find --managed-python 2>/dev/null || true)"
70
+ if [ -n "$candidate" ] && [ -x "$candidate" ]; then
71
+ candidate_dir="$(cd "$(dirname "$candidate")" && pwd)"
72
+ if [ "$candidate_dir" != "$shim_dir" ]; then
73
+ echo "$candidate"
74
+ return 0
75
+ fi
76
+ fi
77
+
78
+ while IFS= read -r candidate; do
79
+ [ -n "$candidate" ] || continue
80
+ candidate_dir="$(cd "$(dirname "$candidate")" && pwd)"
81
+ [ "$candidate_dir" = "$shim_dir" ] && continue
82
+ echo "$candidate"
83
+ return 0
84
+ done < <(type -aP python3 2>/dev/null)
85
+
86
+ while IFS= read -r candidate; do
87
+ [ -n "$candidate" ] || continue
88
+ candidate_dir="$(cd "$(dirname "$candidate")" && pwd)"
89
+ [ "$candidate_dir" = "$shim_dir" ] && continue
90
+ echo "$candidate"
91
+ return 0
92
+ done < <(type -aP python 2>/dev/null)
93
+
94
+ return 1
95
+ }
96
+
97
+ UV_PYTHON="$(resolve_uv_python)"
98
+ if [ -z "$UV_PYTHON" ]; then
99
+ echo "Error: Unable to locate a Python interpreter outside intercepted-commands." >&2
100
+ exit 1
101
+ fi
102
+
103
+ # Dispatch through uv with an explicit interpreter path to avoid recursion.
104
+ exec uv run --python "$UV_PYTHON" python "$@"
@@ -0,0 +1,32 @@
1
+ {
2
+ "mcpServers": {
3
+ "jcodemunch": {
4
+ "command": "uvx",
5
+ "args": ["jcodemunch-mcp@latest"]
6
+ },
7
+ "pg-example-prod": {
8
+ "command": "docker",
9
+ "args": [
10
+ "run",
11
+ "-i",
12
+ "--rm",
13
+ "-e",
14
+ "DATABASE_URI",
15
+ "crystaldba/postgres-mcp",
16
+ "--access-mode=restricted"
17
+ ],
18
+ "env": {
19
+ "DATABASE_URI": "postgresql://USER:PASSWORD@HOST:PORT/DATABASE"
20
+ },
21
+ "lifecycle": "lazy"
22
+ },
23
+ "chrome-devtools": {
24
+ "command": "npx",
25
+ "args": [
26
+ "-y",
27
+ "chrome-devtools-mcp@latest",
28
+ "--autoConnect"
29
+ ]
30
+ }
31
+ }
32
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "providers": {
3
+ "mlx-local": {
4
+ "baseUrl": "http://127.0.0.1:8880/v1",
5
+ "api": "openai-completions",
6
+ "apiKey": "mlx-local",
7
+ "compat": {
8
+ "supportsDeveloperRole": false,
9
+ "supportsReasoningEffort": false,
10
+ "supportsUsageInStreaming": false,
11
+ "maxTokensField": "max_tokens",
12
+ "thinkingFormat": "qwen-chat-template"
13
+ },
14
+ "models": [
15
+ {
16
+ "id": "mlx-community/qwen3-coder-next-4bit",
17
+ "name": "Qwen3 Coder Next (MLX Local)",
18
+ "reasoning": true,
19
+ "input": ["text"],
20
+ "contextWindow": 262144,
21
+ "maxTokens": 32768,
22
+ "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
23
+ }
24
+ ]
25
+ }
26
+ }
27
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "lastChangelogVersion": "0.63.1",
3
+ "defaultProvider": "anthropic",
4
+ "defaultModel": "claude-opus-4-6",
5
+ "defaultThinkingLevel": "xhigh",
6
+ "hideThinkingBlock": false,
7
+ "enabledModels": [
8
+ "anthropic/claude-opus-4-6",
9
+ "anthropic/claude-sonnet-4-6",
10
+ "anthropic/claude-haiku-4-5",
11
+ "openai-codex/gpt-5.4",
12
+ "google-antigravity/gemini-3.1-pro-low",
13
+ "google-antigravity/gemini-3.1-pro-high",
14
+ "ollama/qwen3-coder-next:latest"
15
+ ],
16
+ "compaction": {
17
+ "enabled": true,
18
+ "reserveTokens": 16384,
19
+ "keepRecentTokens": 40000
20
+ },
21
+ "packages": [
22
+ "npm:@danchamorro/pi-prompt-enhancer",
23
+ "npm:@danchamorro/pi-agent-modes"
24
+ ]
25
+ }