codeforge-dev 1.13.0 → 1.14.2
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.
- package/.devcontainer/CHANGELOG.md +146 -4
- package/.devcontainer/CLAUDE.md +61 -276
- package/.devcontainer/README.md +1 -1
- package/.devcontainer/config/defaults/ccstatusline-settings.json +147 -0
- package/.devcontainer/config/defaults/main-system-prompt.md +6 -1
- package/.devcontainer/config/defaults/rules/spec-workflow.md +1 -55
- package/.devcontainer/config/file-manifest.json +14 -0
- package/.devcontainer/devcontainer.json +19 -1
- package/.devcontainer/docs/optional-features.md +0 -65
- package/.devcontainer/docs/plugins.md +38 -23
- package/.devcontainer/features/ast-grep/devcontainer-feature.json +0 -1
- package/.devcontainer/features/biome/install.sh +13 -0
- package/.devcontainer/features/ccburn/devcontainer-feature.json +0 -6
- package/.devcontainer/features/ccms/devcontainer-feature.json +0 -1
- package/.devcontainer/features/ccms/install.sh +1 -1
- package/.devcontainer/features/ccstatusline/devcontainer-feature.json +0 -1
- package/.devcontainer/features/ccstatusline/install.sh +17 -115
- package/.devcontainer/features/ccusage/devcontainer-feature.json +0 -6
- package/.devcontainer/features/chromaterm/README.md +42 -0
- package/.devcontainer/features/chromaterm/chromaterm.yml +35 -0
- package/.devcontainer/features/chromaterm/devcontainer-feature.json +22 -0
- package/.devcontainer/features/chromaterm/install.sh +113 -0
- package/.devcontainer/features/claude-monitor/devcontainer-feature.json +0 -6
- package/.devcontainer/features/claude-session-dashboard/README.md +2 -2
- package/.devcontainer/features/claude-session-dashboard/devcontainer-feature.json +2 -4
- package/.devcontainer/features/claude-session-dashboard/install.sh +2 -2
- package/.devcontainer/features/kitty-terminfo/README.md +32 -0
- package/.devcontainer/features/kitty-terminfo/devcontainer-feature.json +13 -0
- package/.devcontainer/features/kitty-terminfo/install.sh +72 -0
- package/.devcontainer/features/lsp-servers/devcontainer-feature.json +0 -1
- package/.devcontainer/features/mcp-qdrant/devcontainer-feature.json +0 -7
- package/.devcontainer/features/shellcheck/install.sh +6 -2
- package/.devcontainer/features/tree-sitter/devcontainer-feature.json +0 -7
- package/.devcontainer/plugins/devs-marketplace/.claude-plugin/marketplace.json +37 -69
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/.claude-plugin/plugin.json +0 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/README.md +197 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/architect.md +3 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/bash-exec.md +3 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/claude-guide.md +4 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/debug-logs.md +6 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/dependency-analyst.md +5 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/doc-writer.md +4 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/explorer.md +3 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/generalist.md +9 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/git-archaeologist.md +3 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/migrator.md +4 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/perf-profiler.md +4 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/refactorer.md +5 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/researcher.md +5 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/security-auditor.md +4 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/spec-writer.md +3 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/statusline-config.md +4 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents/test-writer.md +4 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/hooks/hooks.json +23 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/scripts/guard-readonly-bash.py +2 -2
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/scripts/inject-cwd.py +7 -4
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/scripts/task-completed-check.py +166 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/scripts/teammate-idle-check.py +81 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/scripts/verify-no-regression.py +14 -10
- package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/scripts/verify-tests-pass.py +2 -14
- package/.devcontainer/plugins/devs-marketplace/plugins/auto-code-quality/README.md +17 -31
- package/.devcontainer/plugins/devs-marketplace/plugins/auto-code-quality/hooks/hooks.json +5 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/auto-code-quality/scripts/advisory-test-runner.py +9 -8
- package/.devcontainer/plugins/devs-marketplace/plugins/codeforge-lsp/README.md +28 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/dangerous-command-blocker/README.md +28 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/dangerous-command-blocker/scripts/block-dangerous.py +2 -2
- package/.devcontainer/plugins/devs-marketplace/plugins/notify-hook/README.md +28 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/notify-hook/hooks/hooks.json +0 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/README.md +28 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/scripts/guard-protected-bash.py +1 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/scripts/guard-protected.py +2 -2
- package/.devcontainer/plugins/devs-marketplace/plugins/session-context/.claude-plugin/plugin.json +0 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/session-context/README.md +140 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/session-context/hooks/hooks.json +0 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/session-context/scripts/commit-reminder.py +3 -2
- package/.devcontainer/plugins/devs-marketplace/plugins/session-context/scripts/git-state-injector.py +18 -2
- package/.devcontainer/plugins/devs-marketplace/plugins/session-context/scripts/todo-harvester.py +9 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/.claude-plugin/plugin.json +0 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/README.md +158 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/hooks/hooks.json +1 -14
- package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/scripts/skill-suggester.py +189 -100
- package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/api-design/SKILL.md +9 -6
- package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/ast-grep-patterns/SKILL.md +7 -6
- package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/claude-agent-sdk/SKILL.md +8 -8
- package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/claude-code-headless/SKILL.md +8 -9
- package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/debugging/SKILL.md +11 -7
- package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/dependency-management/SKILL.md +10 -6
- package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/docker/SKILL.md +8 -8
- package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/docker-py/SKILL.md +9 -7
- package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/documentation-patterns/SKILL.md +7 -6
- package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/fastapi/SKILL.md +9 -8
- package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/git-forensics/SKILL.md +11 -9
- package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/migration-patterns/SKILL.md +7 -6
- package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/performance-profiling/SKILL.md +10 -8
- package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/pydantic-ai/SKILL.md +8 -7
- package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/refactoring-patterns/SKILL.md +9 -8
- package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/security-checklist/SKILL.md +9 -8
- package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/skill-building/SKILL.md +7 -7
- package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/sqlite/SKILL.md +9 -7
- package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/svelte5/SKILL.md +7 -8
- package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/team/SKILL.md +71 -5
- package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/testing/SKILL.md +10 -7
- package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/.claude-plugin/plugin.json +0 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/README.md +192 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/hooks/hooks.json +0 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/scripts/spec-reminder.py +3 -2
- package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/skills/spec-build/SKILL.md +9 -6
- package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/skills/spec-check/SKILL.md +10 -5
- package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/skills/spec-init/SKILL.md +8 -4
- package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/skills/spec-new/SKILL.md +8 -4
- package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/skills/spec-refine/SKILL.md +10 -7
- package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/skills/spec-review/SKILL.md +10 -6
- package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/skills/spec-update/SKILL.md +10 -5
- package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/skills/specification-writing/SKILL.md +9 -9
- package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/.claude-plugin/plugin.json +1 -2
- package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/README.md +28 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/hooks/hooks.json +0 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/scripts/ticket-linker.py +9 -1
- package/.devcontainer/plugins/devs-marketplace/plugins/workspace-scope-guard/README.md +104 -32
- package/.devcontainer/plugins/devs-marketplace/plugins/workspace-scope-guard/hooks/hooks.json +49 -3
- package/.devcontainer/plugins/devs-marketplace/plugins/workspace-scope-guard/scripts/guard-workspace-scope.py +269 -56
- package/.devcontainer/plugins/devs-marketplace/plugins/workspace-scope-guard/scripts/inject-workspace-cwd.py +44 -0
- package/.devcontainer/scripts/setup-aliases.sh +13 -5
- package/.devcontainer/scripts/setup-config.sh +1 -0
- package/README.md +5 -5
- package/package.json +6 -2
- package/setup.js +3 -2
- package/.devcontainer/.env +0 -33
- package/.devcontainer/features/README.md +0 -126
- package/.devcontainer/plugins/devs-marketplace/plugins/auto-formatter/.claude-plugin/plugin.json +0 -7
- package/.devcontainer/plugins/devs-marketplace/plugins/auto-formatter/README.md +0 -81
- package/.devcontainer/plugins/devs-marketplace/plugins/auto-formatter/hooks/hooks.json +0 -17
- package/.devcontainer/plugins/devs-marketplace/plugins/auto-formatter/scripts/__pycache__/format-on-stop.cpython-314.pyc +0 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/auto-formatter/scripts/format-on-stop.py +0 -297
- package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/.claude-plugin/plugin.json +0 -7
- package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/README.md +0 -92
- package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/hooks/hooks.json +0 -17
- package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/scripts/__pycache__/lint-file.cpython-314.pyc +0 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/scripts/lint-file.py +0 -536
- package/.devcontainer/plugins/devs-marketplace/plugins/dangerous-command-blocker/scripts/__pycache__/block-dangerous.cpython-314.pyc +0 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/scripts/__pycache__/guard-protected.cpython-314.pyc +0 -0
- package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/.claude-plugin/system-prompt.md +0 -184
- package/.devcontainer/plugins/devs-marketplace/plugins/workspace-scope-guard/scripts/__pycache__/guard-workspace-scope.cpython-314.pyc +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/{.claude-plugin/commands/debug.md → skills/debug/SKILL.md} +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/{.claude-plugin/commands/ticket/357/200/272create-pr.md" → skills/ticketcreate-pr/SKILL.md} +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/{.claude-plugin/commands/ticket/357/200/272new.md" → skills/ticketnew/SKILL.md} +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/{.claude-plugin/commands/ticket/357/200/272review-commit.md" → skills/ticketreview-commit/SKILL.md} +0 -0
- /package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/{.claude-plugin/commands/ticket/357/200/272work.md" → skills/ticketwork/SKILL.md} +0 -0
|
@@ -66,105 +66,16 @@ else
|
|
|
66
66
|
echo "[ccstatusline] ccstatusline will be cached on first use via npx"
|
|
67
67
|
fi
|
|
68
68
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
#
|
|
72
|
-
#
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
{id: "1", type: "context-length", color: "cyan"},
|
|
78
|
-
{id: "db519d5a-80a7-4b44-8a9c-2c7d8c0a7176", type: "context-percentage-usable", backgroundColor: "bgRed"},
|
|
79
|
-
{id: "d904cca6-ade8-41c1-a4f5-ddea30607a5e", type: "model", backgroundColor: "bgMagenta"}
|
|
80
|
-
],
|
|
81
|
-
[
|
|
82
|
-
{id: "5", type: "tokens-input", color: "magenta"},
|
|
83
|
-
{id: "ac094d46-3673-4d41-84e3-dc8c5bcf639f", type: "tokens-output", backgroundColor: "bgMagenta"},
|
|
84
|
-
{id: "2ad12147-05fd-45fb-8336-53ba2e7df56c", type: "tokens-cached", backgroundColor: "bgBrightRed"}
|
|
85
|
-
],
|
|
86
|
-
[
|
|
87
|
-
{id: "3", type: "git-branch", color: "brightBlack"},
|
|
88
|
-
{id: "a529e50e-b9f3-4150-a812-937ab81545e8", type: "git-changes", backgroundColor: "bgBrightBlue"},
|
|
89
|
-
{id: "a9eaae3f-7f91-459c-833a-fbc9f01a09ae", type: "git-worktree", backgroundColor: "bgBrightBlue"}
|
|
90
|
-
],
|
|
91
|
-
[
|
|
92
|
-
{id: "7", type: "session-clock", color: "yellow"},
|
|
93
|
-
{id: "a4fe7f75-2f6c-49c7-88f6-ac7381142c2c", type: "session-cost", backgroundColor: "bgBrightWhite"},
|
|
94
|
-
{id: "90aae111-3d3f-4bb0-8336-230f322cc2e8", type: "block-timer", backgroundColor: "bgYellow"}
|
|
95
|
-
],
|
|
96
|
-
[
|
|
97
|
-
{id: "9bacbdb4-2e01-45de-a0c0-ee6ec30fa3c2", type: "tokens-total", backgroundColor: "bgGreen"},
|
|
98
|
-
{id: "2cdff909-8297-44a1-83f9-ad4bf024391e", type: "version", backgroundColor: "bgRed"}
|
|
99
|
-
],
|
|
100
|
-
[
|
|
101
|
-
{id: "cc-resume-session", type: "custom-command", commandPath: "/usr/local/bin/ccstatusline-session-resume", timeout: 500, preserveColors: false, maxWidth: 50, color: "cyan", backgroundColor: "bgBrightBlack"}
|
|
102
|
-
],
|
|
103
|
-
[
|
|
104
|
-
{id: "cc-cwd", type: "custom-command", commandPath: "/usr/local/bin/ccstatusline-cwd", timeout: 500, preserveColors: false, maxWidth: 40, color: "brightWhite", backgroundColor: "bgBrightBlack"}
|
|
105
|
-
],
|
|
106
|
-
[
|
|
107
|
-
{id: "ccburn-compact", type: "custom-command", commandPath: "/usr/local/bin/ccburn-statusline", timeout: 8000, preserveColors: true, maxWidth: 80, color: "green", backgroundColor: "bgBlack"}
|
|
108
|
-
]
|
|
109
|
-
],
|
|
110
|
-
flexMode: "full-minus-40",
|
|
111
|
-
compactThreshold: 60,
|
|
112
|
-
colorLevel: 2,
|
|
113
|
-
inheritSeparatorColors: false,
|
|
114
|
-
globalBold: false,
|
|
115
|
-
powerline: {
|
|
116
|
-
enabled: true,
|
|
117
|
-
separators: ["\ue0b0"],
|
|
118
|
-
separatorInvertBackground: [false],
|
|
119
|
-
startCaps: ["\ue0b6"],
|
|
120
|
-
endCaps: ["\ue0b4"],
|
|
121
|
-
autoAlign: false,
|
|
122
|
-
theme: "monokai"
|
|
123
|
-
},
|
|
124
|
-
defaultPadding: " "
|
|
125
|
-
}')
|
|
126
|
-
|
|
127
|
-
# Validate generated config
|
|
128
|
-
if ! echo "${CONFIG_JSON}" | jq empty 2>/dev/null; then
|
|
129
|
-
echo "[ccstatusline] ERROR: Generated configuration is invalid JSON"
|
|
130
|
-
exit 1
|
|
131
|
-
fi
|
|
132
|
-
|
|
133
|
-
echo "[ccstatusline] Writing configuration..."
|
|
134
|
-
|
|
135
|
-
CONFIG_DIR="${USER_HOME}/.config/ccstatusline"
|
|
136
|
-
CONFIG_FILE="${CONFIG_DIR}/settings.json"
|
|
137
|
-
|
|
138
|
-
# Create directory
|
|
139
|
-
mkdir -p "${CONFIG_DIR}"
|
|
140
|
-
|
|
141
|
-
# Write config using secure temp file
|
|
142
|
-
TEMP_CONFIG=$(mktemp)
|
|
143
|
-
chmod 644 "${TEMP_CONFIG}"
|
|
144
|
-
echo "${CONFIG_JSON}" | jq . > "${TEMP_CONFIG}"
|
|
145
|
-
|
|
146
|
-
# Move to final location
|
|
147
|
-
mv "${TEMP_CONFIG}" "${CONFIG_FILE}"
|
|
148
|
-
|
|
149
|
-
# Set ownership
|
|
150
|
-
if ! chown "${USERNAME}:${USERNAME}" "${CONFIG_FILE}" 2>/dev/null; then
|
|
151
|
-
echo "[ccstatusline] WARNING: Could not set ownership on ${CONFIG_FILE}"
|
|
152
|
-
echo " Fix: sudo chown ${USERNAME}:${USERNAME} ${CONFIG_FILE}"
|
|
153
|
-
fi
|
|
154
|
-
|
|
155
|
-
if ! chown "${USERNAME}:${USERNAME}" "${CONFIG_DIR}" 2>/dev/null; then
|
|
156
|
-
echo "[ccstatusline] WARNING: Could not set ownership on ${CONFIG_DIR}"
|
|
157
|
-
fi
|
|
158
|
-
|
|
159
|
-
echo "[ccstatusline] ✓ Configuration written to ${CONFIG_FILE}"
|
|
160
|
-
|
|
161
|
-
# Create template directory and save config template
|
|
162
|
-
echo "[ccstatusline] Creating configuration template..."
|
|
69
|
+
# Widget config is managed by file-manifest.json (deployed by setup-config.sh)
|
|
70
|
+
# Source: .devcontainer/config/defaults/ccstatusline-settings.json
|
|
71
|
+
# Deployed to: ~/.config/ccstatusline/settings.json (if-changed)
|
|
72
|
+
# Template: /usr/local/share/ccstatusline/settings.template.json (always)
|
|
73
|
+
echo "[ccstatusline] Widget config managed by file-manifest.json"
|
|
74
|
+
|
|
75
|
+
# Create directories so wrapper doesn't fail before first post-start
|
|
76
|
+
mkdir -p "${USER_HOME}/.config/ccstatusline"
|
|
163
77
|
mkdir -p /usr/local/share/ccstatusline
|
|
164
|
-
|
|
165
|
-
echo "${CONFIG_JSON}" | jq . > "${TEMPLATE_FILE}"
|
|
166
|
-
chmod 644 "${TEMPLATE_FILE}"
|
|
167
|
-
echo "[ccstatusline] ✓ Template saved to ${TEMPLATE_FILE}"
|
|
78
|
+
chown "${USERNAME}:${USERNAME}" "${USER_HOME}/.config/ccstatusline" 2>/dev/null || true
|
|
168
79
|
|
|
169
80
|
# Create session resume helper script for custom-command widget
|
|
170
81
|
# Reads Claude Code JSON from stdin, outputs the session ID
|
|
@@ -321,31 +232,22 @@ echo " ccstatusline Installation Complete"
|
|
|
321
232
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
322
233
|
echo ""
|
|
323
234
|
echo "Configuration:"
|
|
324
|
-
echo " •
|
|
235
|
+
echo " • Source: .devcontainer/config/defaults/ccstatusline-settings.json"
|
|
236
|
+
echo " • Deployed to: ~/.config/ccstatusline/settings.json (by file-manifest)"
|
|
237
|
+
echo " • Template: /usr/local/share/ccstatusline/settings.template.json"
|
|
325
238
|
echo " • User: ${USERNAME}"
|
|
326
|
-
echo " • Theme: Powerline (8 lines, 17 widgets, ANSI colors)"
|
|
327
239
|
echo " • Protected by: /usr/local/bin/ccstatusline-wrapper"
|
|
328
240
|
echo ""
|
|
329
|
-
echo "Display:"
|
|
330
|
-
echo " Line 1: Context Length | Context % | Model"
|
|
331
|
-
echo " Line 2: Tokens In | Tokens Out | Tokens Cached"
|
|
332
|
-
echo " Line 3: Git Branch | Git Changes | Git Worktree"
|
|
333
|
-
echo " Line 4: Session Clock | Session Cost | Block Timer"
|
|
334
|
-
echo " Line 5: Tokens Total | Version"
|
|
335
|
-
echo " Line 6: Session ID"
|
|
336
|
-
echo " Line 7: Working Directory"
|
|
337
|
-
echo " Line 8: Burn Rate (ccburn compact)"
|
|
338
|
-
echo ""
|
|
339
241
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
340
242
|
echo " Next Steps"
|
|
341
243
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
342
244
|
echo ""
|
|
343
|
-
echo "1.
|
|
245
|
+
echo "1. Widget config is deployed automatically on container start"
|
|
344
246
|
echo ""
|
|
345
|
-
echo "2.
|
|
346
|
-
echo "
|
|
247
|
+
echo "2. To customize: edit .devcontainer/config/defaults/ccstatusline-settings.json"
|
|
248
|
+
echo " Changes deploy on next container start (if-changed)"
|
|
347
249
|
echo ""
|
|
348
|
-
echo "3.
|
|
349
|
-
echo "
|
|
250
|
+
echo "3. Test manually:"
|
|
251
|
+
echo " echo '{\"model\":{\"display_name\":\"Test\"}}' | npx -y ccstatusline@latest"
|
|
350
252
|
echo ""
|
|
351
253
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
"version": "1.0.0",
|
|
4
4
|
"name": "ccusage - Claude Code Usage Analyzer",
|
|
5
5
|
"description": "Installs ccusage CLI tool for analyzing Claude Code token usage",
|
|
6
|
-
"maintainer": "AnExiledDev",
|
|
7
6
|
"documentationURL": "https://github.com/ryoppippi/ccusage",
|
|
8
7
|
"options": {
|
|
9
8
|
"version": {
|
|
@@ -19,11 +18,6 @@
|
|
|
19
18
|
"bash",
|
|
20
19
|
"zsh",
|
|
21
20
|
"both"
|
|
22
|
-
],
|
|
23
|
-
"proposals": [
|
|
24
|
-
"bash",
|
|
25
|
-
"zsh",
|
|
26
|
-
"both"
|
|
27
21
|
]
|
|
28
22
|
},
|
|
29
23
|
"username": {
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# chromaterm
|
|
2
|
+
|
|
3
|
+
Terminal output colorizer using regex-based YAML rules.
|
|
4
|
+
|
|
5
|
+
## What It Does
|
|
6
|
+
|
|
7
|
+
Installs [ChromaTerm2](https://github.com/rgcr/ChromaTerm2) via `uv tool`. ChromaTerm2 applies regex-based color highlighting to terminal output using configurable YAML rules.
|
|
8
|
+
|
|
9
|
+
## Options
|
|
10
|
+
|
|
11
|
+
| Option | Default | Description |
|
|
12
|
+
|--------|---------|-------------|
|
|
13
|
+
| `version` | `latest` | ChromaTerm2 version to install. Set `"none"` to skip. |
|
|
14
|
+
| `username` | `automatic` | Container user to install for |
|
|
15
|
+
|
|
16
|
+
## Usage
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
# Pipe any command through ct for colorized output
|
|
20
|
+
some-command | ct
|
|
21
|
+
|
|
22
|
+
# Use with a custom config
|
|
23
|
+
ct --config ~/.chromaterm.yml
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Configuration
|
|
27
|
+
|
|
28
|
+
Create a `~/.chromaterm.yml` file with regex rules:
|
|
29
|
+
|
|
30
|
+
```yaml
|
|
31
|
+
rules:
|
|
32
|
+
- regex: "ERROR|FATAL"
|
|
33
|
+
color: red bold
|
|
34
|
+
- regex: "WARNING|WARN"
|
|
35
|
+
color: yellow
|
|
36
|
+
- regex: "INFO"
|
|
37
|
+
color: green
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Prerequisites
|
|
41
|
+
|
|
42
|
+
Requires `uv` (pre-installed in CodeForge container).
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# ChromaTerm rules — additive to built-in defaults
|
|
2
|
+
# Customize to taste — this file won't be overwritten on rebuild.
|
|
3
|
+
#
|
|
4
|
+
# Built-in defaults already cover: errors, warnings, success, URLs,
|
|
5
|
+
# IPv4/IPv6, MAC addresses, dates, times, sizes, numbers.
|
|
6
|
+
# See: https://github.com/rgcr/ChromaTerm2
|
|
7
|
+
#
|
|
8
|
+
# These rules add patterns the defaults don't handle.
|
|
9
|
+
# Colors: f#HEX (foreground), b#HEX (background), bold, italic, underline
|
|
10
|
+
|
|
11
|
+
palette:
|
|
12
|
+
file_purple: '#bd93f9'
|
|
13
|
+
line_gray: '#6272a4'
|
|
14
|
+
info_blue: '#8be9fd'
|
|
15
|
+
hash_yellow: '#f1fa8c'
|
|
16
|
+
|
|
17
|
+
rules:
|
|
18
|
+
# File paths with optional line numbers (e.g., src/main.py:42)
|
|
19
|
+
# Covers common extensions for languages used in development
|
|
20
|
+
- description: File paths with line numbers
|
|
21
|
+
regex: '(?<=[\s(]|^)([a-zA-Z0-9_./-]+\.(py|ts|tsx|js|jsx|md|json|yml|yaml|toml|sh|rs|go|sql|css|html|svelte))(:(\d+))?'
|
|
22
|
+
color:
|
|
23
|
+
1: f.file_purple underline
|
|
24
|
+
4: f.line_gray
|
|
25
|
+
exclusive: true
|
|
26
|
+
|
|
27
|
+
# Info/debug markers (not covered by defaults)
|
|
28
|
+
- description: Info and debug markers
|
|
29
|
+
regex: '\b(INFO|DEBUG|HINT|NOTE|TRACE|VERBOSE)\b'
|
|
30
|
+
color: f.info_blue
|
|
31
|
+
|
|
32
|
+
# Git short commit hashes (7-12 hex chars)
|
|
33
|
+
- description: Git commit hashes
|
|
34
|
+
regex: '(?<=commit |merge |pick |revert |fixup )[0-9a-f]{7,40}'
|
|
35
|
+
color: f.hash_yellow
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "chromaterm",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"name": "ChromaTerm - Terminal Output Colorizer",
|
|
5
|
+
"description": "Installs ChromaTerm2 for regex-based CLI output colorization via YAML rules",
|
|
6
|
+
"documentationURL": "https://github.com/rgcr/ChromaTerm2",
|
|
7
|
+
"options": {
|
|
8
|
+
"version": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"description": "ChromaTerm2 version to install (e.g., 'latest', '2.1.0', 'none' to skip)",
|
|
11
|
+
"default": "latest"
|
|
12
|
+
},
|
|
13
|
+
"username": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"description": "Container user to install for",
|
|
16
|
+
"default": "automatic"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"installsAfter": [
|
|
20
|
+
"ghcr.io/devcontainers-extra/features/uv"
|
|
21
|
+
]
|
|
22
|
+
}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
# ==============================
|
|
5
|
+
# ChromaTerm DevContainer Feature
|
|
6
|
+
# Installs ChromaTerm2 via uv tool
|
|
7
|
+
# ==============================
|
|
8
|
+
|
|
9
|
+
CT_VERSION="${VERSION:-latest}"
|
|
10
|
+
USERNAME="${USERNAME:-automatic}"
|
|
11
|
+
|
|
12
|
+
# Skip installation if version is "none"
|
|
13
|
+
if [ "${CT_VERSION}" = "none" ]; then
|
|
14
|
+
echo "[chromaterm] Skipping installation (version=none)"
|
|
15
|
+
exit 0
|
|
16
|
+
fi
|
|
17
|
+
|
|
18
|
+
echo "[chromaterm] Starting ChromaTerm2 installation..."
|
|
19
|
+
|
|
20
|
+
# ---------- USER ----------
|
|
21
|
+
if [[ "${USERNAME}" == "auto" || "${USERNAME}" == "automatic" ]]; then
|
|
22
|
+
USERNAME=""
|
|
23
|
+
for u in vscode node codespace; do
|
|
24
|
+
if id -u "$u" >/dev/null 2>&1; then
|
|
25
|
+
USERNAME="$u"
|
|
26
|
+
break
|
|
27
|
+
fi
|
|
28
|
+
done
|
|
29
|
+
USERNAME="${USERNAME:-root}"
|
|
30
|
+
fi
|
|
31
|
+
|
|
32
|
+
USER_HOME="$(eval echo "~${USERNAME}")"
|
|
33
|
+
|
|
34
|
+
echo "[chromaterm] Target user: ${USERNAME}"
|
|
35
|
+
echo "[chromaterm] Version: ${CT_VERSION}"
|
|
36
|
+
|
|
37
|
+
fail() {
|
|
38
|
+
echo "[chromaterm] ERROR: $1" >&2
|
|
39
|
+
exit 1
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
run_as_user() {
|
|
43
|
+
sudo -u "${USERNAME}" env \
|
|
44
|
+
HOME="${USER_HOME}" \
|
|
45
|
+
"$@"
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
# ---------- UV DISCOVERY ----------
|
|
49
|
+
find_uv() {
|
|
50
|
+
command -v uv 2>/dev/null && return 0
|
|
51
|
+
for p in /usr/local/bin/uv /usr/bin/uv /opt/uv/bin/uv; do
|
|
52
|
+
[[ -x "$p" ]] && echo "$p" && return 0
|
|
53
|
+
done
|
|
54
|
+
find /usr /opt -maxdepth 4 -type f -name uv -executable 2>/dev/null | head -n 1
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
# ---------- INSTALL ----------
|
|
58
|
+
UV_BIN="$(find_uv || true)"
|
|
59
|
+
[[ -n "${UV_BIN}" ]] || fail "uv is not installed (devcontainer uv feature missing or broken)"
|
|
60
|
+
|
|
61
|
+
echo "[chromaterm] Using uv at: ${UV_BIN}"
|
|
62
|
+
|
|
63
|
+
if [[ "${CT_VERSION}" == "latest" ]]; then
|
|
64
|
+
run_as_user "${UV_BIN}" tool install chromaterm2
|
|
65
|
+
else
|
|
66
|
+
run_as_user "${UV_BIN}" tool install "chromaterm2==${CT_VERSION}"
|
|
67
|
+
fi
|
|
68
|
+
|
|
69
|
+
# ---------- DEPLOY DEFAULT CONFIG ----------
|
|
70
|
+
CT_CONFIG="${USER_HOME}/.chromaterm.yml"
|
|
71
|
+
FEATURE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
72
|
+
|
|
73
|
+
if [ ! -f "${CT_CONFIG}" ]; then
|
|
74
|
+
if [ -f "${FEATURE_DIR}/chromaterm.yml" ]; then
|
|
75
|
+
cp "${FEATURE_DIR}/chromaterm.yml" "${CT_CONFIG}"
|
|
76
|
+
chown "${USERNAME}:${USERNAME}" "${CT_CONFIG}" 2>/dev/null || true
|
|
77
|
+
echo "[chromaterm] Deployed default config to ${CT_CONFIG}"
|
|
78
|
+
fi
|
|
79
|
+
else
|
|
80
|
+
echo "[chromaterm] Config already exists at ${CT_CONFIG} — not overwriting"
|
|
81
|
+
fi
|
|
82
|
+
|
|
83
|
+
# ---------- VERIFY ----------
|
|
84
|
+
BIN_DIR="${USER_HOME}/.local/bin"
|
|
85
|
+
|
|
86
|
+
if [ -x "${BIN_DIR}/ct" ]; then
|
|
87
|
+
INSTALLED_VERSION="$("${BIN_DIR}/ct" --version 2>/dev/null || echo "unknown")"
|
|
88
|
+
echo "[chromaterm] ✓ ChromaTerm2 installed (${INSTALLED_VERSION})"
|
|
89
|
+
else
|
|
90
|
+
echo "[chromaterm] ERROR: ct not found in ${BIN_DIR}" >&2
|
|
91
|
+
ls -la "${BIN_DIR}" 2>/dev/null || true
|
|
92
|
+
exit 1
|
|
93
|
+
fi
|
|
94
|
+
|
|
95
|
+
# ---------- SUMMARY ----------
|
|
96
|
+
echo ""
|
|
97
|
+
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
98
|
+
echo " ChromaTerm2 Installation Complete"
|
|
99
|
+
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
100
|
+
echo ""
|
|
101
|
+
echo "Configuration:"
|
|
102
|
+
echo " • User: ${USERNAME}"
|
|
103
|
+
echo " • Version: ${CT_VERSION}"
|
|
104
|
+
echo " • Config: ${CT_CONFIG}"
|
|
105
|
+
echo ""
|
|
106
|
+
echo "Usage:"
|
|
107
|
+
echo " ct <command> # Wrap any command with colorization"
|
|
108
|
+
echo " echo 'ERROR test' | ct # Pipe output through ChromaTerm"
|
|
109
|
+
echo " cc / claude # Auto-wrapped when ct is installed"
|
|
110
|
+
echo ""
|
|
111
|
+
echo "Edit ~/.chromaterm.yml to customize highlighting rules."
|
|
112
|
+
echo ""
|
|
113
|
+
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
"version": "1.0.0",
|
|
4
4
|
"name": "Claude Monitor - Real-time Usage Tracker",
|
|
5
5
|
"description": "Installs claude-monitor for real-time Claude Code token usage monitoring with ML-based predictions",
|
|
6
|
-
"maintainer": "AnExiledDev",
|
|
7
6
|
"documentationURL": "https://github.com/Maciek-roboblog/Claude-Code-Usage-Monitor",
|
|
8
7
|
"options": {
|
|
9
8
|
"version": {
|
|
@@ -19,11 +18,6 @@
|
|
|
19
18
|
"uv",
|
|
20
19
|
"pipx",
|
|
21
20
|
"pip"
|
|
22
|
-
],
|
|
23
|
-
"proposals": [
|
|
24
|
-
"uv",
|
|
25
|
-
"pipx",
|
|
26
|
-
"pip"
|
|
27
21
|
]
|
|
28
22
|
},
|
|
29
23
|
"username": {
|
|
@@ -16,14 +16,14 @@ Installs [claude-session-dashboard](https://github.com/dlupiak/claude-session-da
|
|
|
16
16
|
| Option | Default | Description |
|
|
17
17
|
|--------|---------|-------------|
|
|
18
18
|
| `version` | `latest` | npm package version (`latest`, `1.0.0`, or `none` to skip) |
|
|
19
|
-
| `port` | `
|
|
19
|
+
| `port` | `7847` | Default port for the dashboard server |
|
|
20
20
|
| `shells` | `both` | Shell configs to add alias to (`bash`, `zsh`, `both`) |
|
|
21
21
|
| `username` | `automatic` | Container user to install for |
|
|
22
22
|
|
|
23
23
|
## Usage
|
|
24
24
|
|
|
25
25
|
```bash
|
|
26
|
-
# Start the dashboard (default port
|
|
26
|
+
# Start the dashboard (default port 7847)
|
|
27
27
|
claude-dashboard
|
|
28
28
|
|
|
29
29
|
# Start on a custom port
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
"version": "1.0.0",
|
|
4
4
|
"name": "Claude Session Dashboard",
|
|
5
5
|
"description": "Local analytics dashboard for Claude Code sessions (token usage, tool calls, cost estimates)",
|
|
6
|
-
"maintainer": "AnExiledDev",
|
|
7
6
|
"documentationURL": "https://github.com/dlupiak/claude-session-dashboard",
|
|
8
7
|
"options": {
|
|
9
8
|
"version": {
|
|
@@ -14,14 +13,13 @@
|
|
|
14
13
|
"port": {
|
|
15
14
|
"type": "string",
|
|
16
15
|
"description": "Default port for the dashboard server",
|
|
17
|
-
"default": "
|
|
16
|
+
"default": "7847"
|
|
18
17
|
},
|
|
19
18
|
"shells": {
|
|
20
19
|
"type": "string",
|
|
21
20
|
"description": "Which shells to configure aliases in (bash, zsh, or both)",
|
|
22
21
|
"default": "both",
|
|
23
|
-
"enum": ["bash", "zsh", "both"]
|
|
24
|
-
"proposals": ["bash", "zsh", "both"]
|
|
22
|
+
"enum": ["bash", "zsh", "both"]
|
|
25
23
|
},
|
|
26
24
|
"username": {
|
|
27
25
|
"type": "string",
|
|
@@ -8,7 +8,7 @@ set -euo pipefail
|
|
|
8
8
|
|
|
9
9
|
# === IMPORT OPTIONS ===
|
|
10
10
|
DASHBOARD_VERSION="${VERSION:-latest}"
|
|
11
|
-
PORT="${PORT:-
|
|
11
|
+
PORT="${PORT:-7847}"
|
|
12
12
|
SHELLS="${SHELLS:-both}"
|
|
13
13
|
USERNAME="${USERNAME:-automatic}"
|
|
14
14
|
|
|
@@ -112,7 +112,7 @@ chmod +x "${HOOK_SCRIPT}"
|
|
|
112
112
|
echo "[claude-session-dashboard] Created poststart hook for settings persistence"
|
|
113
113
|
|
|
114
114
|
# === SHELL ALIASES ===
|
|
115
|
-
ALIAS_CMD="alias claude-dashboard=\"claude-dashboard --port ${PORT}\""
|
|
115
|
+
ALIAS_CMD="alias claude-dashboard=\"claude-dashboard --host 0.0.0.0 --port ${PORT}\""
|
|
116
116
|
|
|
117
117
|
configure_shell() {
|
|
118
118
|
local shell_rc="$1"
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# kitty-terminfo
|
|
2
|
+
|
|
3
|
+
Installs xterm-kitty terminfo so Kitty terminal users get full color and capability support.
|
|
4
|
+
|
|
5
|
+
## What It Does
|
|
6
|
+
|
|
7
|
+
Downloads and compiles the official kitty terminfo entry from the [Kitty terminal repository](https://github.com/kovidgoyal/kitty). This ensures Kitty terminal users connecting to the container get proper color rendering, cursor shapes, and terminal capabilities.
|
|
8
|
+
|
|
9
|
+
## Options
|
|
10
|
+
|
|
11
|
+
| Option | Default | Description |
|
|
12
|
+
|--------|---------|-------------|
|
|
13
|
+
| `version` | `latest` | Set `"none"` to skip installation. |
|
|
14
|
+
|
|
15
|
+
## Usage
|
|
16
|
+
|
|
17
|
+
No configuration needed. Once installed, containers automatically recognize `TERM=xterm-kitty` and provide full capability support.
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
# Verify installation
|
|
21
|
+
infocmp xterm-kitty
|
|
22
|
+
|
|
23
|
+
# Check color support
|
|
24
|
+
tput colors # should return 256
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## How It Works
|
|
28
|
+
|
|
29
|
+
1. Checks if `xterm-kitty` terminfo is already present (skips if so)
|
|
30
|
+
2. Installs `ncurses-bin` if `tic` compiler is not available
|
|
31
|
+
3. Downloads the official kitty terminfo from GitHub
|
|
32
|
+
4. Compiles and installs to `/usr/share/terminfo`
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "kitty-terminfo",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"name": "Kitty Terminal Terminfo",
|
|
5
|
+
"description": "Installs xterm-kitty terminfo so Kitty terminal users get full color and capability support",
|
|
6
|
+
"options": {
|
|
7
|
+
"version": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"description": "'latest' to install, 'none' to skip",
|
|
10
|
+
"default": "latest"
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
# ==============================
|
|
5
|
+
# Kitty Terminfo DevContainer Feature
|
|
6
|
+
# Installs xterm-kitty terminfo entry
|
|
7
|
+
# ==============================
|
|
8
|
+
|
|
9
|
+
VERSION="${VERSION:-latest}"
|
|
10
|
+
|
|
11
|
+
# Skip installation if version is "none"
|
|
12
|
+
if [ "${VERSION}" = "none" ]; then
|
|
13
|
+
echo "[kitty-terminfo] Skipping installation (version=none)"
|
|
14
|
+
exit 0
|
|
15
|
+
fi
|
|
16
|
+
|
|
17
|
+
echo "[kitty-terminfo] Starting xterm-kitty terminfo installation..."
|
|
18
|
+
|
|
19
|
+
# ---------- CHECK EXISTING ----------
|
|
20
|
+
if infocmp xterm-kitty >/dev/null 2>&1; then
|
|
21
|
+
echo "[kitty-terminfo] xterm-kitty terminfo already installed — skipping"
|
|
22
|
+
exit 0
|
|
23
|
+
fi
|
|
24
|
+
|
|
25
|
+
# ---------- CHECK TIC ----------
|
|
26
|
+
if ! command -v tic >/dev/null 2>&1; then
|
|
27
|
+
echo "[kitty-terminfo] Installing ncurses-bin for tic compiler..."
|
|
28
|
+
apt-get update -qq && apt-get install -y -qq ncurses-bin
|
|
29
|
+
fi
|
|
30
|
+
|
|
31
|
+
# ---------- DOWNLOAD ----------
|
|
32
|
+
TERMINFO_URL="https://raw.githubusercontent.com/kovidgoyal/kitty/master/terminfo/kitty.terminfo"
|
|
33
|
+
TMPFILE="$(mktemp /tmp/kitty-terminfo.XXXXXX)"
|
|
34
|
+
|
|
35
|
+
cleanup() { rm -f "${TMPFILE}"; }
|
|
36
|
+
trap cleanup EXIT
|
|
37
|
+
|
|
38
|
+
echo "[kitty-terminfo] Downloading kitty terminfo from GitHub..."
|
|
39
|
+
if ! curl -fsSL "${TERMINFO_URL}" -o "${TMPFILE}"; then
|
|
40
|
+
echo "[kitty-terminfo] ERROR: Failed to download kitty terminfo" >&2
|
|
41
|
+
exit 1
|
|
42
|
+
fi
|
|
43
|
+
|
|
44
|
+
# ---------- COMPILE ----------
|
|
45
|
+
echo "[kitty-terminfo] Compiling terminfo entry..."
|
|
46
|
+
if ! tic -x -o /usr/share/terminfo "${TMPFILE}"; then
|
|
47
|
+
echo "[kitty-terminfo] ERROR: Failed to compile terminfo" >&2
|
|
48
|
+
exit 1
|
|
49
|
+
fi
|
|
50
|
+
|
|
51
|
+
# ---------- VERIFY ----------
|
|
52
|
+
if infocmp xterm-kitty >/dev/null 2>&1; then
|
|
53
|
+
echo "[kitty-terminfo] ✓ xterm-kitty terminfo installed successfully"
|
|
54
|
+
else
|
|
55
|
+
echo "[kitty-terminfo] ERROR: xterm-kitty terminfo not found after install" >&2
|
|
56
|
+
exit 1
|
|
57
|
+
fi
|
|
58
|
+
|
|
59
|
+
# ---------- SUMMARY ----------
|
|
60
|
+
echo ""
|
|
61
|
+
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
62
|
+
echo " Kitty Terminfo Installation Complete"
|
|
63
|
+
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
64
|
+
echo ""
|
|
65
|
+
echo " Kitty terminal users now get full color and"
|
|
66
|
+
echo " capability support when connecting to this"
|
|
67
|
+
echo " container."
|
|
68
|
+
echo ""
|
|
69
|
+
echo " Verify: infocmp xterm-kitty"
|
|
70
|
+
echo " Check: tput colors (should return 256)"
|
|
71
|
+
echo ""
|
|
72
|
+
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
"version": "1.0.0",
|
|
4
4
|
"name": "LSP Servers for Claude Code",
|
|
5
5
|
"description": "Installs language server binaries for Python (pyright), TypeScript (typescript-language-server), and Go (gopls)",
|
|
6
|
-
"maintainer": "AnExiledDev",
|
|
7
6
|
"documentationURL": "https://code.claude.com/docs/en/discover-plugins#code-intelligence",
|
|
8
7
|
"options": {
|
|
9
8
|
"version": {
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
"version": "1.0.4",
|
|
4
4
|
"name": "Qdrant MCP Server",
|
|
5
5
|
"description": "Installs Qdrant MCP server for vector database integration with AI coding agents",
|
|
6
|
-
"maintainer": "AnExiledDev",
|
|
7
6
|
"documentationURL": "https://github.com/qdrant/mcp-server-qdrant",
|
|
8
7
|
"options": {
|
|
9
8
|
"version": {
|
|
@@ -40,12 +39,6 @@
|
|
|
40
39
|
"BAAI/bge-small-en-v1.5",
|
|
41
40
|
"sentence-transformers/all-mpnet-base-v2",
|
|
42
41
|
"BAAI/bge-base-en-v1.5"
|
|
43
|
-
],
|
|
44
|
-
"proposals": [
|
|
45
|
-
"all-MiniLM-L6-v2",
|
|
46
|
-
"BAAI/bge-small-en-v1.5",
|
|
47
|
-
"sentence-transformers/all-mpnet-base-v2",
|
|
48
|
-
"BAAI/bge-base-en-v1.5"
|
|
49
42
|
]
|
|
50
43
|
},
|
|
51
44
|
"username": {
|
|
@@ -16,9 +16,13 @@ fi
|
|
|
16
16
|
|
|
17
17
|
echo "[shellcheck] Starting installation..."
|
|
18
18
|
|
|
19
|
+
cleanup() {
|
|
20
|
+
apt-get clean -y 2>/dev/null || true
|
|
21
|
+
rm -rf /var/lib/apt/lists/*
|
|
22
|
+
}
|
|
23
|
+
trap cleanup EXIT
|
|
24
|
+
|
|
19
25
|
apt-get update -y
|
|
20
26
|
apt-get install -y --no-install-recommends shellcheck
|
|
21
|
-
apt-get clean -y
|
|
22
|
-
rm -rf /var/lib/apt/lists/*
|
|
23
27
|
|
|
24
28
|
echo "[shellcheck] Installed: $(shellcheck --version 2>/dev/null | head -2 || echo 'unknown')"
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
"version": "1.1.0",
|
|
4
4
|
"name": "Tree-sitter Parser",
|
|
5
5
|
"description": "Installs tree-sitter CLI (via npm) and parsing library with Node.js and Python bindings",
|
|
6
|
-
"maintainer": "AnExiledDev",
|
|
7
6
|
"documentationURL": "https://tree-sitter.github.io/tree-sitter/",
|
|
8
7
|
"options": {
|
|
9
8
|
"version": {
|
|
@@ -20,12 +19,6 @@
|
|
|
20
19
|
"python",
|
|
21
20
|
"both",
|
|
22
21
|
"none"
|
|
23
|
-
],
|
|
24
|
-
"proposals": [
|
|
25
|
-
"node",
|
|
26
|
-
"python",
|
|
27
|
-
"both",
|
|
28
|
-
"none"
|
|
29
22
|
]
|
|
30
23
|
},
|
|
31
24
|
"installCli": {
|