boomcode 0.5.0__tar.gz → 0.5.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.
Files changed (62) hide show
  1. {boomcode-0.5.0 → boomcode-0.5.2}/PKG-INFO +1 -1
  2. {boomcode-0.5.0 → boomcode-0.5.2}/boomcode.egg-info/PKG-INFO +1 -1
  3. {boomcode-0.5.0 → boomcode-0.5.2}/pyproject.toml +1 -1
  4. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/__init__.py +1 -1
  5. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/cli.py +1 -1
  6. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/scripts/oc-settings.sh +143 -137
  7. {boomcode-0.5.0 → boomcode-0.5.2}/LICENSE +0 -0
  8. {boomcode-0.5.0 → boomcode-0.5.2}/README.md +0 -0
  9. {boomcode-0.5.0 → boomcode-0.5.2}/boomcode.egg-info/SOURCES.txt +0 -0
  10. {boomcode-0.5.0 → boomcode-0.5.2}/boomcode.egg-info/dependency_links.txt +0 -0
  11. {boomcode-0.5.0 → boomcode-0.5.2}/boomcode.egg-info/entry_points.txt +0 -0
  12. {boomcode-0.5.0 → boomcode-0.5.2}/boomcode.egg-info/top_level.txt +0 -0
  13. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/README.md +0 -0
  14. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/config/agent/build.md +0 -0
  15. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/config/agent/debugger.md +0 -0
  16. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/config/agent/designer.md +0 -0
  17. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/config/agent/vision.md +0 -0
  18. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/config/agent/writer.md +0 -0
  19. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/config/command/ask.md +0 -0
  20. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/config/command/boom.md +0 -0
  21. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/config/command/explore.md +0 -0
  22. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/config/command/fix.md +0 -0
  23. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/config/command/open.md +0 -0
  24. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/config/command/review.md +0 -0
  25. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/config/opencode.json +0 -0
  26. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/config/themes/bangladeshi.json +0 -0
  27. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/config/themes/boomcode.json +0 -0
  28. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/config/tui.json +0 -0
  29. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/install.sh +0 -0
  30. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/scripts/__pycache__/patch-brand.cpython-312.pyc +0 -0
  31. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/scripts/boomcode +0 -0
  32. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/scripts/boomcode-browser +0 -0
  33. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/scripts/boomcode-menu +0 -0
  34. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/scripts/boomcode-uninstall +0 -0
  35. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/scripts/boomcode-vision +0 -0
  36. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/scripts/patch-brand.py +0 -0
  37. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/skills/android-app/SKILL.md +0 -0
  38. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/skills/api-integration/SKILL.md +0 -0
  39. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/skills/bash-cli-expert/SKILL.md +0 -0
  40. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/skills/bot-development/SKILL.md +0 -0
  41. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/skills/clean-code-performance/SKILL.md +0 -0
  42. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/skills/database/SKILL.md +0 -0
  43. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/skills/debugging-fixes/SKILL.md +0 -0
  44. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/skills/deploy-hosting/SKILL.md +0 -0
  45. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/skills/docker/SKILL.md +0 -0
  46. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/skills/firebase-supabase/SKILL.md +0 -0
  47. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/skills/git-workflow/SKILL.md +0 -0
  48. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/skills/lets-scroll/SKILL.md +0 -0
  49. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/skills/lets-scroll/references/index-template.html +0 -0
  50. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/skills/lets-scroll/references/knockout.py +0 -0
  51. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/skills/lets-scroll/references/pipeline.md +0 -0
  52. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/skills/lets-scroll/references/prompts.md +0 -0
  53. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/skills/lets-scroll/references/scrub-engine.js +0 -0
  54. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/skills/project-structure/SKILL.md +0 -0
  55. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/skills/python-automation/SKILL.md +0 -0
  56. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/skills/react-next-best-practices/SKILL.md +0 -0
  57. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/skills/security-review/SKILL.md +0 -0
  58. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/skills/seo-basics/SKILL.md +0 -0
  59. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/skills/testing/SKILL.md +0 -0
  60. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/skills/ui-ux-responsive/SKILL.md +0 -0
  61. {boomcode-0.5.0 → boomcode-0.5.2}/python/boomcode/layer/skills/website-builder/SKILL.md +0 -0
  62. {boomcode-0.5.0 → boomcode-0.5.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boomcode
3
- Version: 0.5.0
3
+ Version: 0.5.2
4
4
  Summary: BOOMCODE — AI coding CLI for Termux. Your app, BLAM, done!
5
5
  Author: zyvo9
6
6
  License: MIT
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boomcode
3
- Version: 0.5.0
3
+ Version: 0.5.2
4
4
  Summary: BOOMCODE — AI coding CLI for Termux. Your app, BLAM, done!
5
5
  Author: zyvo9
6
6
  License: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "boomcode"
7
- version = "0.5.0"
7
+ version = "0.5.2"
8
8
  description = "BOOMCODE — AI coding CLI for Termux. Your app, BLAM, done!"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.8"
@@ -6,4 +6,4 @@ hands over to the real installer (install.sh) which does everything
6
6
  else (core engine, deps, single-line live progress).
7
7
  """
8
8
 
9
- __version__ = "0.5.0"
9
+ __version__ = "0.5.2"
@@ -49,7 +49,7 @@ def _jump_to_installer(boot):
49
49
  # prefer bash when available (install.sh animates; POSIX sh works too)
50
50
  shell = "bash" if shutil.which("bash") else "sh"
51
51
  env = dict(os.environ, BOOMCODE_BOOT=boot)
52
- print("\nblamcode: layer ready — starting the core installer…\n")
52
+ print("\nboomcode: layer ready — starting the core installer…\n")
53
53
  sys.exit(subprocess.call([shell, installer], env=env))
54
54
 
55
55
 
@@ -1,138 +1,144 @@
1
- #!/data/data/com.termux/files/usr/bin/bash
2
- # oc-settings — BOOMCODE model tier switcher
3
- # Usage:
4
- # oc-settings (menu)
5
- # oc-settings model (menu: max/mid/ultra/tiny)
6
- # oc-settings model <tier>
7
- # oc-settings apply (rewrites the config)
8
- set -e
9
-
10
- CONFIG_DIR="${HOME}/.config/opencode"
11
- AGENT="build"
12
- USERNAME="boomcode-dev"
13
-
14
- # Model ids are passed to the Zen API WITHOUT a provider prefix — the
15
- # API only knows bare ids like "deepseek-v4-flash-free" (a prefixed
16
- # "boomcode/deepseek-..." gets rejected with "not valid type").
17
-
18
- MODEL="deepseek-v4-flash-free"
19
- SMALL="laguna-s-2.1-free"
20
-
21
- saved_model() {
22
- [ -f "$CONFIG_DIR/opencode.json" ] && sed -n 's/.*"model"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p' "$CONFIG_DIR/opencode.json" | head -n1
23
- }
24
- saved_small() {
25
- [ -f "$CONFIG_DIR/opencode.json" ] && sed -n 's/.*"small_model"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p' "$CONFIG_DIR/opencode.json" | head -n1
26
- }
27
-
28
- # Surgical JSON edit: only the model keys change; everything else
29
- # (provider, apiKey, auth, permission) is preserved. Both opencode.json and
30
- # opencode.jsonc are updated so config merging can't override the choice.
31
- apply_model() { # $1 = model, $2 = small_model
32
- python3 - "$CONFIG_DIR" "$USERNAME" "$AGENT" "$1" "$2" <<'PY'
33
- import json, os, sys
34
- d, user, agent, model, small = sys.argv[1:6]
35
- files = [os.path.join(d, "opencode.json"), os.path.join(d, "opencode.jsonc")]
36
- cfg = {}
37
- for f in files:
38
- if os.path.exists(f):
39
- try:
40
- cfg = json.load(open(f))
41
- break
42
- except Exception:
43
- continue
44
- cfg.setdefault("username", user)
45
- cfg.setdefault("default_agent", agent)
46
- if model:
47
- cfg["model"] = model
48
- if small:
49
- cfg["small_model"] = small
50
- os.makedirs(d, exist_ok=True)
51
- for f in files:
52
- with open(f, "w") as fh:
53
- json.dump(cfg, fh, indent=2)
54
- fh.write("\n")
55
- PY
56
- }
57
-
58
- pick_model() {
59
- local prev="$1"
60
- local TIER_ARG="${2:-}"
61
- case "$TIER_ARG" in
62
- max|flash|fast|default|full) MODEL="deepseek-v4-flash-free"; SMALL="laguna-s-2.1-free"; return;;
63
- lightning) MODEL="nemotron-3.5-lightning-free"; SMALL="laguna-s-2.1-free"; return;;
64
- mid|medium) MODEL="mimo-v2.5-free"; SMALL="laguna-s-2.1-free"; return;;
65
- ultra|strong) MODEL="nemotron-3-ultra-free"; SMALL="laguna-s-2.1-free"; return;;
66
- *) ;;
67
- esac
68
- echo
69
- echo " Select a model tier:"
70
- echo " 1) Max (default) : deepseek-v4-flash-free [full-power, stable]"
71
- echo " 2) Lightning : nemotron-3.5-lightning-free"
72
- echo " 3) Mid : mimo-v2.5-free"
73
- echo " 4) Nemotron Ultra : nemotron-3-ultra-free [! provider errors reported — experimental]"
74
- echo " 5) Custom ID (e.g. gpt-5.5)"
75
- echo -n " [1-5, Enter keeps - $prev]: "
76
- read -r CHOICE || CHOICE=0
77
- case "$CHOICE" in
78
- 1) MODEL="deepseek-v4-flash-free"
79
- SMALL="laguna-s-2.1-free";;
80
- 2) MODEL="nemotron-3.5-lightning-free"
81
- SMALL="laguna-s-2.1-free";;
82
- 3) MODEL="mimo-v2.5-free"
83
- SMALL="laguna-s-2.1-free";;
84
- 4) MODEL="nemotron-3-ultra-free"
85
- SMALL="laguna-s-2.1-free"
86
- echo " Warning: provider errors have been reported for this model — if it does not work, run: oc-settings model max" ;;
87
- 5) echo -n " Model ID: "; read -r CUSTOM
88
- [ -n "$CUSTOM" ] && MODEL="$CUSTOM"
89
- echo -n " Small Model ID (Enter keeps current): "; read -r CSMALL
90
- [ -n "$CSMALL" ] && SMALL="$CSMALL";;
91
- *) echo " Keeping the current selection.";;
92
- esac
93
- }
94
-
95
- case "${1:-}" in
96
- model|ultra|strong|max|flash|fast|lightning|mid|medium|default)
97
- pick_model "$MODEL" "${2:-}"
98
- apply_model "$MODEL" "$SMALL"
99
- echo
100
- echo "Config updated (model + saved settings preserved):"
101
- echo " model: $MODEL"
102
- echo " small_model: $SMALL"
103
- echo "NOTE: restart boomcode (config is loaded at startup)."
104
- ;;
105
- apply)
106
- apply_model "$(saved_model)" "$(saved_small)"
107
- echo
108
- echo "Config re-written (existing model/provider preserved)."
109
- echo "NOTE: restart boomcode (config is loaded at startup)."
110
- ;;
111
- ls|models|list)
112
- echo "Free zen models:"
113
- curl -fsSL -m 15 "https://opencode.ai/zen/v1/models" 2>/dev/null \
114
- | grep -o '"id":"[^"]*free[^"]*"' | sed 's/.*"id":"\([^"]*\)".*/\1/' || echo "(network problem)"
115
- ;;
116
- -h|--help|help)
117
- sed -n '2,9p' "$0"
118
- ;;
119
- "")
120
- echo
121
- echo " BOOMCODE settings"
122
- echo " 1) Model tier (max / mid / ultra / tiny)"
123
- echo " 2) Free models list"
124
- echo -n " [1-2]: "
125
- read -r CHOICE || CHOICE=""
126
- case "$CHOICE" in
127
- 1) pick_model "$MODEL"; apply_model "$MODEL" "$SMALL"
128
- echo; echo " model: $MODEL restart boomcode.";;
129
- 2) "$0" models;;
130
- *) echo " Bye.";;
131
- esac
132
- ;;
133
- *)
134
- echo "Unknown: $1"
135
- sed -n '2,9p' "$0"
136
- exit 1
137
- ;;
1
+ #!/data/data/com.termux/files/usr/bin/bash
2
+ # oc-settings — BOOMCODE model tier switcher
3
+ # Usage:
4
+ # oc-settings (menu)
5
+ # oc-settings model (menu: max/mid/ultra/tiny)
6
+ # oc-settings model <tier>
7
+ # oc-settings apply (rewrites the config)
8
+ set -e
9
+
10
+ CONFIG_DIR="${HOME}/.config/opencode"
11
+ AGENT="build"
12
+ USERNAME="boomcode-dev"
13
+
14
+ # Model ids are passed to the Zen API WITHOUT a provider prefix — the
15
+ # API only knows bare ids like "deepseek-v4-flash-free" (a prefixed
16
+ # "boomcode/deepseek-..." gets rejected with "not valid type").
17
+
18
+ MODEL="deepseek-v4-flash-free"
19
+ SMALL="laguna-s-2.1-free"
20
+
21
+ saved_model() {
22
+ [ -f "$CONFIG_DIR/opencode.json" ] && sed -n 's/.*"model"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p' "$CONFIG_DIR/opencode.json" | head -n1
23
+ }
24
+ saved_small() {
25
+ [ -f "$CONFIG_DIR/opencode.json" ] && sed -n 's/.*"small_model"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p' "$CONFIG_DIR/opencode.json" | head -n1
26
+ }
27
+
28
+ # Surgical JSON edit: only the model keys change; everything else
29
+ # (provider, apiKey, auth, permission) is preserved. Both opencode.json and
30
+ # opencode.jsonc are updated so config merging can't override the choice.
31
+ apply_model() { # $1 = model, $2 = small_model
32
+ python3 - "$CONFIG_DIR" "$USERNAME" "$AGENT" "$1" "$2" <<'PY'
33
+ import json, os, sys
34
+ d, user, agent, model, small = sys.argv[1:6]
35
+ files = [os.path.join(d, "opencode.json"), os.path.join(d, "opencode.jsonc")]
36
+ cfg = {}
37
+ for f in files:
38
+ if os.path.exists(f):
39
+ try:
40
+ cfg = json.load(open(f))
41
+ break
42
+ except Exception:
43
+ continue
44
+ cfg.setdefault("username", user)
45
+ cfg.setdefault("default_agent", agent)
46
+ if model:
47
+ cfg["model"] = model
48
+ if small:
49
+ cfg["small_model"] = small
50
+ os.makedirs(d, exist_ok=True)
51
+ for f in files:
52
+ with open(f, "w") as fh:
53
+ json.dump(cfg, fh, indent=2)
54
+ fh.write("\n")
55
+ PY
56
+ }
57
+
58
+ pick_model() {
59
+ # tier ladder: Low -> Mid -> High (default) -> Ultra -> Ultra+ (highest free)
60
+ local prev="$1"
61
+ local TIER_ARG="${2:-}"
62
+ case "$TIER_ARG" in
63
+ low|light|lightning|fast) MODEL="nemotron-3.5-lightning-free"; SMALL="laguna-s-2.1-free"; return;;
64
+ mid|medium) MODEL="mimo-v2.5-free"; SMALL="laguna-s-2.1-free"; return;;
65
+ high|max|flash|default|full) MODEL="deepseek-v4-flash-free"; SMALL="laguna-s-2.1-free"; return;;
66
+ ultra|strong) MODEL="nemotron-3-ultra-free"; SMALL="laguna-s-2.1-free"; return;;
67
+ ultra+|ultraplus|ultrahigher|higher) MODEL="x-preview-f-free"; SMALL="laguna-s-2.1-free"; return;;
68
+ *) ;;
69
+ esac
70
+ echo
71
+ echo " Select a model tier (Low -> Mid -> High -> Ultra -> Ultra+):"
72
+ echo " 1) Low : nemotron-3.5-lightning-free [fastest, lightest]"
73
+ echo " 2) Mid : mimo-v2.5-free [balanced]"
74
+ echo " 3) High : deepseek-v4-flash-free [default — full-power, stable]"
75
+ echo " 4) Ultra : nemotron-3-ultra-free [biggest open model — some provider errors reported]"
76
+ echo " 5) Ultra+ : x-preview-f-free [highest tier — frontier preview model]"
77
+ echo " 6) Custom ID (e.g. gpt-5.5)"
78
+ echo -n " [1-6, Enter keeps - $prev]: "
79
+ read -r CHOICE || CHOICE=0
80
+ case "$CHOICE" in
81
+ 1) MODEL="nemotron-3.5-lightning-free"
82
+ SMALL="laguna-s-2.1-free";;
83
+ 2) MODEL="mimo-v2.5-free"
84
+ SMALL="laguna-s-2.1-free";;
85
+ 3) MODEL="deepseek-v4-flash-free"
86
+ SMALL="laguna-s-2.1-free";;
87
+ 4) MODEL="nemotron-3-ultra-free"
88
+ SMALL="laguna-s-2.1-free"
89
+ echo " Note: provider errors have been reported for this model — if it fails, run: oc-settings model high" ;;
90
+ 5) MODEL="x-preview-f-free"
91
+ SMALL="laguna-s-2.1-free"
92
+ echo " Note: Ultra+ is a preview model — bleeding-edge, may change or rate-limit." ;;
93
+ 6) echo -n " Model ID: "; read -r CUSTOM
94
+ [ -n "$CUSTOM" ] && MODEL="$CUSTOM"
95
+ echo -n " Small Model ID (Enter keeps current): "; read -r CSMALL
96
+ [ -n "$CSMALL" ] && SMALL="$CSMALL";;
97
+ *) echo " Keeping the current selection.";;
98
+ esac
99
+ }
100
+
101
+ case "${1:-}" in
102
+ model|ultra|ultra+|ultraplus|ultrahigher|higher|strong|max|flash|fast|lightning|low|light|mid|medium|default|high)
103
+ pick_model "$MODEL" "${2:-}"
104
+ apply_model "$MODEL" "$SMALL"
105
+ echo
106
+ echo "Config updated (model + saved settings preserved):"
107
+ echo " model: $MODEL"
108
+ echo " small_model: $SMALL"
109
+ echo "NOTE: restart boomcode (config is loaded at startup)."
110
+ ;;
111
+ apply)
112
+ apply_model "$(saved_model)" "$(saved_small)"
113
+ echo
114
+ echo "Config re-written (existing model/provider preserved)."
115
+ echo "NOTE: restart boomcode (config is loaded at startup)."
116
+ ;;
117
+ ls|models|list)
118
+ echo "Free zen models:"
119
+ curl -fsSL -m 15 "https://opencode.ai/zen/v1/models" 2>/dev/null \
120
+ | grep -o '"id":"[^"]*free[^"]*"' | sed 's/.*"id":"\([^"]*\)".*/\1/' || echo "(network problem)"
121
+ ;;
122
+ -h|--help|help)
123
+ sed -n '2,9p' "$0"
124
+ ;;
125
+ "")
126
+ echo
127
+ echo " BOOMCODE settings"
128
+ echo " 1) Model tier (max / mid / ultra / tiny)"
129
+ echo " 2) Free models list"
130
+ echo -n " [1-2]: "
131
+ read -r CHOICE || CHOICE=""
132
+ case "$CHOICE" in
133
+ 1) pick_model "$MODEL"; apply_model "$MODEL" "$SMALL"
134
+ echo; echo " model: $MODEL — restart boomcode.";;
135
+ 2) "$0" models;;
136
+ *) echo " Bye.";;
137
+ esac
138
+ ;;
139
+ *)
140
+ echo "Unknown: $1"
141
+ sed -n '2,9p' "$0"
142
+ exit 1
143
+ ;;
138
144
  esac
File without changes
File without changes
File without changes