codeforge-dev 1.12.0 → 1.14.1

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 (226) hide show
  1. package/.devcontainer/CHANGELOG.md +175 -2
  2. package/.devcontainer/CLAUDE.md +61 -268
  3. package/.devcontainer/README.md +17 -9
  4. package/.devcontainer/config/defaults/ccstatusline-settings.json +147 -0
  5. package/.devcontainer/config/defaults/main-system-prompt.md +6 -1
  6. package/.devcontainer/config/defaults/rules/spec-workflow.md +1 -55
  7. package/.devcontainer/config/defaults/rules/workspace-scope.md +13 -4
  8. package/.devcontainer/config/defaults/settings.json +5 -3
  9. package/.devcontainer/config/file-manifest.json +14 -0
  10. package/.devcontainer/devcontainer.json +32 -7
  11. package/.devcontainer/docs/optional-features.md +0 -65
  12. package/.devcontainer/docs/plugins.md +38 -23
  13. package/.devcontainer/features/ast-grep/devcontainer-feature.json +0 -1
  14. package/.devcontainer/features/biome/install.sh +13 -0
  15. package/.devcontainer/features/ccburn/devcontainer-feature.json +0 -1
  16. package/.devcontainer/features/ccms/devcontainer-feature.json +0 -1
  17. package/.devcontainer/features/ccms/install.sh +1 -1
  18. package/.devcontainer/features/ccstatusline/devcontainer-feature.json +0 -1
  19. package/.devcontainer/features/ccstatusline/install.sh +17 -115
  20. package/.devcontainer/features/ccusage/devcontainer-feature.json +0 -1
  21. package/.devcontainer/features/chromaterm/README.md +42 -0
  22. package/.devcontainer/features/chromaterm/chromaterm.yml +35 -0
  23. package/.devcontainer/features/chromaterm/devcontainer-feature.json +22 -0
  24. package/.devcontainer/features/chromaterm/install.sh +113 -0
  25. package/.devcontainer/features/claude-monitor/devcontainer-feature.json +0 -1
  26. package/.devcontainer/features/claude-session-dashboard/README.md +40 -0
  27. package/.devcontainer/features/claude-session-dashboard/devcontainer-feature.json +34 -0
  28. package/.devcontainer/features/claude-session-dashboard/install.sh +172 -0
  29. package/.devcontainer/features/kitty-terminfo/README.md +32 -0
  30. package/.devcontainer/features/kitty-terminfo/devcontainer-feature.json +13 -0
  31. package/.devcontainer/features/kitty-terminfo/install.sh +72 -0
  32. package/.devcontainer/features/lsp-servers/devcontainer-feature.json +0 -1
  33. package/.devcontainer/features/mcp-qdrant/devcontainer-feature.json +0 -1
  34. package/.devcontainer/features/shellcheck/install.sh +6 -2
  35. package/.devcontainer/features/tree-sitter/devcontainer-feature.json +0 -1
  36. package/.devcontainer/plugins/devs-marketplace/.claude-plugin/marketplace.json +48 -59
  37. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/.claude-plugin/plugin.json +7 -0
  38. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/AGENT-REDIRECTION.md +7 -12
  39. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/README.md +197 -0
  40. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/REVIEW-RUBRIC.md +1 -1
  41. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/architect.md +3 -1
  42. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/bash-exec.md +3 -0
  43. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/claude-guide.md +5 -2
  44. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/debug-logs.md +7 -2
  45. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/dependency-analyst.md +6 -2
  46. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/doc-writer.md +4 -1
  47. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/explorer.md +4 -2
  48. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/generalist.md +10 -2
  49. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/git-archaeologist.md +5 -2
  50. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/migrator.md +4 -1
  51. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/perf-profiler.md +4 -1
  52. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/refactorer.md +5 -1
  53. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/researcher.md +6 -2
  54. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/security-auditor.md +5 -2
  55. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/spec-writer.md +3 -1
  56. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/statusline-config.md +4 -1
  57. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/agents/test-writer.md +4 -1
  58. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/hooks/hooks.json +51 -0
  59. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/scripts/guard-readonly-bash.py +2 -2
  60. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/scripts/inject-cwd.py +7 -4
  61. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/scripts/redirect-builtin-agents.py +17 -6
  62. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/scripts/task-completed-check.py +166 -0
  63. package/.devcontainer/plugins/devs-marketplace/plugins/agent-system/scripts/teammate-idle-check.py +81 -0
  64. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/scripts/verify-no-regression.py +14 -10
  65. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → agent-system}/scripts/verify-tests-pass.py +2 -14
  66. package/.devcontainer/plugins/devs-marketplace/plugins/auto-code-quality/README.md +17 -31
  67. package/.devcontainer/plugins/devs-marketplace/plugins/auto-code-quality/hooks/hooks.json +5 -1
  68. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → auto-code-quality}/scripts/advisory-test-runner.py +9 -8
  69. package/.devcontainer/plugins/devs-marketplace/plugins/codeforge-lsp/README.md +28 -0
  70. package/.devcontainer/plugins/devs-marketplace/plugins/dangerous-command-blocker/README.md +28 -0
  71. package/.devcontainer/plugins/devs-marketplace/plugins/dangerous-command-blocker/scripts/block-dangerous.py +2 -2
  72. package/.devcontainer/plugins/devs-marketplace/plugins/notify-hook/README.md +28 -0
  73. package/.devcontainer/plugins/devs-marketplace/plugins/notify-hook/hooks/hooks.json +0 -1
  74. package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/README.md +28 -0
  75. package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/scripts/guard-protected-bash.py +1 -1
  76. package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/scripts/guard-protected.py +2 -2
  77. package/.devcontainer/plugins/devs-marketplace/plugins/session-context/.claude-plugin/plugin.json +7 -0
  78. package/.devcontainer/plugins/devs-marketplace/plugins/session-context/README.md +140 -0
  79. package/.devcontainer/plugins/devs-marketplace/plugins/session-context/hooks/hooks.json +33 -0
  80. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → session-context}/scripts/commit-reminder.py +3 -2
  81. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → session-context}/scripts/git-state-injector.py +18 -2
  82. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → session-context}/scripts/todo-harvester.py +9 -1
  83. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/.claude-plugin/plugin.json +7 -0
  84. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/README.md +158 -0
  85. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/hooks/hooks.json +16 -0
  86. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/scripts/skill-suggester.py +189 -100
  87. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/api-design/SKILL.md +9 -6
  88. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/ast-grep-patterns/SKILL.md +7 -6
  89. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/claude-agent-sdk/SKILL.md +8 -8
  90. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/claude-code-headless/SKILL.md +8 -9
  91. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/debugging/SKILL.md +11 -7
  92. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/dependency-management/SKILL.md +10 -6
  93. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/docker/SKILL.md +8 -8
  94. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/docker-py/SKILL.md +9 -7
  95. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/documentation-patterns/SKILL.md +7 -6
  96. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/fastapi/SKILL.md +9 -8
  97. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/git-forensics/SKILL.md +11 -9
  98. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/migration-patterns/SKILL.md +7 -6
  99. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/performance-profiling/SKILL.md +10 -8
  100. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/pydantic-ai/SKILL.md +8 -7
  101. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/refactoring-patterns/SKILL.md +9 -8
  102. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/security-checklist/SKILL.md +9 -8
  103. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/skill-building/SKILL.md +7 -7
  104. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/sqlite/SKILL.md +9 -7
  105. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/svelte5/SKILL.md +7 -8
  106. package/.devcontainer/plugins/devs-marketplace/plugins/skill-engine/skills/team/SKILL.md +271 -0
  107. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/testing/SKILL.md +10 -7
  108. package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/.claude-plugin/plugin.json +7 -0
  109. package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/README.md +192 -0
  110. package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/hooks/hooks.json +16 -0
  111. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/scripts/spec-reminder.py +3 -2
  112. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/skills/spec-build/SKILL.md +9 -6
  113. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/skills/spec-check/SKILL.md +10 -5
  114. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/skills/spec-init/SKILL.md +8 -4
  115. package/.devcontainer/plugins/devs-marketplace/plugins/spec-workflow/skills/spec-init/references/roadmap-template.md +33 -0
  116. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/skills/spec-new/SKILL.md +8 -4
  117. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/skills/spec-refine/SKILL.md +10 -7
  118. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/skills/spec-review/SKILL.md +10 -6
  119. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/skills/spec-update/SKILL.md +10 -5
  120. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/skills/specification-writing/SKILL.md +9 -9
  121. package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/.claude-plugin/plugin.json +1 -2
  122. package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/README.md +28 -0
  123. package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/hooks/hooks.json +16 -0
  124. package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → ticket-workflow}/scripts/ticket-linker.py +9 -1
  125. package/.devcontainer/plugins/devs-marketplace/plugins/workspace-scope-guard/README.md +104 -32
  126. package/.devcontainer/plugins/devs-marketplace/plugins/workspace-scope-guard/hooks/hooks.json +49 -3
  127. package/.devcontainer/plugins/devs-marketplace/plugins/workspace-scope-guard/scripts/guard-workspace-scope.py +269 -58
  128. package/.devcontainer/plugins/devs-marketplace/plugins/workspace-scope-guard/scripts/inject-workspace-cwd.py +44 -0
  129. package/.devcontainer/scripts/setup-aliases.sh +13 -5
  130. package/.devcontainer/scripts/setup-config.sh +1 -0
  131. package/.devcontainer/scripts/setup-projects.sh +1 -1
  132. package/README.md +5 -5
  133. package/package.json +6 -2
  134. package/setup.js +3 -2
  135. package/.devcontainer/.env +0 -33
  136. package/.devcontainer/features/README.md +0 -126
  137. package/.devcontainer/plugins/devs-marketplace/plugins/auto-formatter/.claude-plugin/plugin.json +0 -7
  138. package/.devcontainer/plugins/devs-marketplace/plugins/auto-formatter/README.md +0 -81
  139. package/.devcontainer/plugins/devs-marketplace/plugins/auto-formatter/hooks/hooks.json +0 -17
  140. package/.devcontainer/plugins/devs-marketplace/plugins/auto-formatter/scripts/__pycache__/format-on-stop.cpython-314.pyc +0 -0
  141. package/.devcontainer/plugins/devs-marketplace/plugins/auto-formatter/scripts/format-on-stop.py +0 -297
  142. package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/.claude-plugin/plugin.json +0 -7
  143. package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/README.md +0 -92
  144. package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/hooks/hooks.json +0 -17
  145. package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/scripts/__pycache__/lint-file.cpython-314.pyc +0 -0
  146. package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/scripts/lint-file.py +0 -536
  147. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/.claude-plugin/plugin.json +0 -8
  148. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/README.md +0 -250
  149. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/hooks/hooks.json +0 -112
  150. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/advisory-test-runner.cpython-314.pyc +0 -0
  151. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/collect-edited-files.cpython-314.pyc +0 -0
  152. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/commit-reminder.cpython-314.pyc +0 -0
  153. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/git-state-injector.cpython-314.pyc +0 -0
  154. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/guard-readonly-bash.cpython-314.pyc +0 -0
  155. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/redirect-builtin-agents.cpython-314.pyc +0 -0
  156. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/skill-suggester.cpython-314.pyc +0 -0
  157. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/syntax-validator.cpython-314.pyc +0 -0
  158. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/ticket-linker.cpython-314.pyc +0 -0
  159. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/todo-harvester.cpython-314.pyc +0 -0
  160. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/verify-no-regression.cpython-314.pyc +0 -0
  161. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/verify-tests-pass.cpython-314.pyc +0 -0
  162. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/collect-edited-files.py +0 -46
  163. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/syntax-validator.py +0 -146
  164. package/.devcontainer/plugins/devs-marketplace/plugins/dangerous-command-blocker/scripts/__pycache__/block-dangerous.cpython-314.pyc +0 -0
  165. package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/scripts/__pycache__/guard-protected.cpython-314.pyc +0 -0
  166. package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/.claude-plugin/system-prompt.md +0 -184
  167. package/.devcontainer/plugins/devs-marketplace/plugins/workspace-scope-guard/scripts/__pycache__/guard-workspace-scope.cpython-314.pyc +0 -0
  168. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive/.claude-plugin/commands/debug.md → agent-system/skills/debug/SKILL.md} +0 -0
  169. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/api-design/references/error-handling.md +0 -0
  170. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/api-design/references/rest-conventions.md +0 -0
  171. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/ast-grep-patterns/references/language-patterns.md +0 -0
  172. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/claude-agent-sdk/references/sdk-typescript-reference.md +0 -0
  173. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/claude-code-headless/references/cli-flags-and-output.md +0 -0
  174. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/claude-code-headless/references/sdk-and-mcp.md +0 -0
  175. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/debugging/references/error-patterns.md +0 -0
  176. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/debugging/references/log-locations.md +0 -0
  177. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/dependency-management/references/ecosystem-commands.md +0 -0
  178. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/dependency-management/references/license-compliance.md +0 -0
  179. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/docker/references/compose-services.md +0 -0
  180. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/docker/references/dockerfile-patterns.md +0 -0
  181. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/docker-py/references/container-lifecycle.md +0 -0
  182. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/docker-py/references/resources-and-security.md +0 -0
  183. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/documentation-patterns/references/api-doc-templates.md +0 -0
  184. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/documentation-patterns/references/docstring-formats.md +0 -0
  185. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/fastapi/references/middleware-and-lifespan.md +0 -0
  186. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/fastapi/references/pydantic-models.md +0 -0
  187. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/fastapi/references/routing-and-dependencies.md +0 -0
  188. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/fastapi/references/sse-and-streaming.md +0 -0
  189. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/git-forensics/references/advanced-commands.md +0 -0
  190. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/git-forensics/references/investigation-playbooks.md +0 -0
  191. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/migration-patterns/references/javascript-migrations.md +0 -0
  192. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/migration-patterns/references/python-migrations.md +0 -0
  193. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/performance-profiling/references/interpreting-results.md +0 -0
  194. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/performance-profiling/references/tool-commands.md +0 -0
  195. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/pydantic-ai/references/agents-and-tools.md +0 -0
  196. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/pydantic-ai/references/models-and-streaming.md +0 -0
  197. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/refactoring-patterns/references/safe-transformations.md +0 -0
  198. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/refactoring-patterns/references/smell-catalog.md +0 -0
  199. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/security-checklist/references/owasp-patterns.md +0 -0
  200. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/security-checklist/references/secrets-patterns.md +0 -0
  201. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/skill-building/references/cross-vendor-principles.md +0 -0
  202. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/skill-building/references/patterns-and-antipatterns.md +0 -0
  203. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/skill-building/references/skill-authoring-patterns.md +0 -0
  204. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/sqlite/references/advanced-queries.md +0 -0
  205. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/sqlite/references/javascript-patterns.md +0 -0
  206. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/sqlite/references/python-patterns.md +0 -0
  207. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/sqlite/references/schema-and-pragmas.md +0 -0
  208. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/svelte5/references/ai-sdk-svelte.md +0 -0
  209. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/svelte5/references/component-patterns.md +0 -0
  210. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/svelte5/references/layercake.md +0 -0
  211. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/svelte5/references/migration-guide.md +0 -0
  212. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/svelte5/references/runes-and-reactivity.md +0 -0
  213. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/svelte5/references/spa-and-routing.md +0 -0
  214. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/svelte5/references/svelte-dnd-action.md +0 -0
  215. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/testing/references/fastapi-testing.md +0 -0
  216. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → skill-engine}/skills/testing/references/svelte-testing.md +0 -0
  217. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/skills/spec-build/references/review-checklist.md +0 -0
  218. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/skills/spec-init/references/backlog-template.md +0 -0
  219. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/skills/spec-init/references/milestones-template.md +0 -0
  220. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/skills/spec-new/references/template.md +0 -0
  221. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/skills/specification-writing/references/criteria-patterns.md +0 -0
  222. /package/.devcontainer/plugins/devs-marketplace/plugins/{code-directive → spec-workflow}/skills/specification-writing/references/ears-templates.md +0 -0
  223. /package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/{.claude-plugin/commands/ticket/357/200/272create-pr.md" → skills/ticketcreate-pr/SKILL.md} +0 -0
  224. /package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/{.claude-plugin/commands/ticket/357/200/272new.md" → skills/ticketnew/SKILL.md} +0 -0
  225. /package/.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/{.claude-plugin/commands/ticket/357/200/272review-commit.md" → skills/ticketreview-commit/SKILL.md} +0 -0
  226. /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
- echo "[ccstatusline] Generating powerline configuration..."
70
-
71
- # Generate powerline configuration using jq (ANSI colors - same as module)
72
- # 6-line layout with session resume command and ccburn burn rate tracking
73
- CONFIG_JSON=$(jq -n '{
74
- version: 3,
75
- lines: [
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
- TEMPLATE_FILE=/usr/local/share/ccstatusline/settings.template.json
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 " • Config file: ${CONFIG_FILE}"
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. Configuration will be applied automatically on container creation"
245
+ echo "1. Widget config is deployed automatically on container start"
344
246
  echo ""
345
- echo "2. Test manually:"
346
- echo " echo '{\"model\":{\"display_name\":\"Test\"}}' | npx -y ccstatusline@latest"
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. View configuration:"
349
- echo " cat ${CONFIG_FILE} | jq ."
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": {
@@ -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": {
@@ -0,0 +1,40 @@
1
+ # Claude Session Dashboard (devcontainer feature)
2
+
3
+ Installs [claude-session-dashboard](https://github.com/dlupiak/claude-session-dashboard) — a local analytics dashboard for Claude Code sessions.
4
+
5
+ ## What it provides
6
+
7
+ - `claude-dashboard` command to launch the web UI
8
+ - Session browsing with full-text search and filtering
9
+ - Token usage breakdown, cost estimates, and activity heatmaps
10
+ - Tool call timeline visualization
11
+ - Per-project aggregated analytics
12
+ - Settings persisted across container rebuilds via symlink to `/workspaces/.claude-dashboard/`
13
+
14
+ ## Options
15
+
16
+ | Option | Default | Description |
17
+ |--------|---------|-------------|
18
+ | `version` | `latest` | npm package version (`latest`, `1.0.0`, or `none` to skip) |
19
+ | `port` | `7847` | Default port for the dashboard server |
20
+ | `shells` | `both` | Shell configs to add alias to (`bash`, `zsh`, `both`) |
21
+ | `username` | `automatic` | Container user to install for |
22
+
23
+ ## Usage
24
+
25
+ ```bash
26
+ # Start the dashboard (default port 7847)
27
+ claude-dashboard
28
+
29
+ # Start on a custom port
30
+ claude-dashboard -p 8080
31
+
32
+ # Show help
33
+ claude-dashboard --help
34
+ ```
35
+
36
+ The dashboard reads session data from `~/.claude/projects/` (symlinked to `/workspaces/.claude/projects/` in this devcontainer).
37
+
38
+ ## How persistence works
39
+
40
+ Dashboard settings and cache are stored at `~/.claude-dashboard/`. Since the home directory is ephemeral in devcontainers, a poststart hook symlinks `~/.claude-dashboard` → `/workspaces/.claude-dashboard/`, which is bind-mounted and survives rebuilds.
@@ -0,0 +1,34 @@
1
+ {
2
+ "id": "claude-session-dashboard",
3
+ "version": "1.0.0",
4
+ "name": "Claude Session Dashboard",
5
+ "description": "Local analytics dashboard for Claude Code sessions (token usage, tool calls, cost estimates)",
6
+ "documentationURL": "https://github.com/dlupiak/claude-session-dashboard",
7
+ "options": {
8
+ "version": {
9
+ "type": "string",
10
+ "description": "Dashboard version (e.g., 'latest', '1.0.0', 'none' to skip)",
11
+ "default": "latest"
12
+ },
13
+ "port": {
14
+ "type": "string",
15
+ "description": "Default port for the dashboard server",
16
+ "default": "7847"
17
+ },
18
+ "shells": {
19
+ "type": "string",
20
+ "description": "Which shells to configure aliases in (bash, zsh, or both)",
21
+ "default": "both",
22
+ "enum": ["bash", "zsh", "both"],
23
+ "proposals": ["bash", "zsh", "both"]
24
+ },
25
+ "username": {
26
+ "type": "string",
27
+ "description": "Container user to install for",
28
+ "default": "automatic"
29
+ }
30
+ },
31
+ "installsAfter": [
32
+ "ghcr.io/devcontainers/features/node:1"
33
+ ]
34
+ }
@@ -0,0 +1,172 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+
4
+ # ==============================
5
+ # Claude Session Dashboard
6
+ # DevContainer Feature Installer
7
+ # ==============================
8
+
9
+ # === IMPORT OPTIONS ===
10
+ DASHBOARD_VERSION="${VERSION:-latest}"
11
+ PORT="${PORT:-7847}"
12
+ SHELLS="${SHELLS:-both}"
13
+ USERNAME="${USERNAME:-automatic}"
14
+
15
+ # === SKIP IF DISABLED ===
16
+ if [ "${DASHBOARD_VERSION}" = "none" ]; then
17
+ echo "[claude-session-dashboard] Skipping installation (version=none)"
18
+ exit 0
19
+ fi
20
+
21
+ echo "[claude-session-dashboard] Starting installation..."
22
+
23
+ # === SOURCE NVM ===
24
+ if [ -f /usr/local/share/nvm/nvm.sh ]; then
25
+ source /usr/local/share/nvm/nvm.sh
26
+ fi
27
+
28
+ # === VALIDATE DEPENDENCIES ===
29
+ if ! command -v npm &>/dev/null; then
30
+ echo "[claude-session-dashboard] ERROR: npm is not available"
31
+ echo " Ensure the node feature is installed first"
32
+ exit 1
33
+ fi
34
+
35
+ NODE_MAJOR="$(node --version 2>/dev/null | sed 's/v\([0-9]*\).*/\1/' || echo 0)"
36
+ if [ "${NODE_MAJOR}" -lt 18 ]; then
37
+ echo "[claude-session-dashboard] ERROR: Node.js >= 18 required (found v${NODE_MAJOR})"
38
+ exit 1
39
+ fi
40
+
41
+ # === VALIDATE INPUT ===
42
+ if [[ ! "${SHELLS}" =~ ^(bash|zsh|both)$ ]]; then
43
+ echo "[claude-session-dashboard] ERROR: shells must be 'bash', 'zsh', or 'both'"
44
+ exit 1
45
+ fi
46
+
47
+ if [[ ! "${DASHBOARD_VERSION}" =~ ^[a-zA-Z0-9._-]+$ ]]; then
48
+ echo "[claude-session-dashboard] ERROR: version contains invalid characters"
49
+ exit 1
50
+ fi
51
+
52
+ # === DETECT USER ===
53
+ if [ "${USERNAME}" = "auto" ] || [ "${USERNAME}" = "automatic" ]; then
54
+ USERNAME=""
55
+ for CURRENT_USER in vscode node codespace; do
56
+ if id -u "${CURRENT_USER}" >/dev/null 2>&1; then
57
+ USERNAME=${CURRENT_USER}
58
+ break
59
+ fi
60
+ done
61
+ [ -z "${USERNAME}" ] && USERNAME=root
62
+ elif [ "${USERNAME}" = "none" ] || ! id -u "${USERNAME}" >/dev/null 2>&1; then
63
+ USERNAME=root
64
+ fi
65
+
66
+ USER_HOME=$(eval echo "~${USERNAME}")
67
+ if [ ! -d "${USER_HOME}" ]; then
68
+ echo "[claude-session-dashboard] ERROR: Home directory not found for user ${USERNAME}"
69
+ exit 1
70
+ fi
71
+
72
+ echo "[claude-session-dashboard] Installing for user: ${USERNAME}"
73
+
74
+ # === INSTALL VIA NPM ===
75
+ echo "[claude-session-dashboard] Installing claude-session-dashboard@${DASHBOARD_VERSION} globally..."
76
+ npm install -g "claude-session-dashboard@${DASHBOARD_VERSION}"
77
+
78
+ # === PERSISTENCE SYMLINK (POSTSTART HOOK) ===
79
+ # Settings/cache live at ~/.claude-dashboard, which is ephemeral (/home/vscode).
80
+ # Create a poststart hook to symlink it to /workspaces/.claude-dashboard for persistence.
81
+ POSTSTART_DIR="/usr/local/devcontainer-poststart.d"
82
+ HOOK_SCRIPT="${POSTSTART_DIR}/claude-dashboard-symlink.sh"
83
+
84
+ mkdir -p "${POSTSTART_DIR}"
85
+ cat > "${HOOK_SCRIPT}" << 'HOOKEOF'
86
+ #!/bin/bash
87
+ # Symlink ~/.claude-dashboard → /workspaces/.claude-dashboard for persistence
88
+ DASHBOARD_DATA="/workspaces/.claude-dashboard"
89
+ USER_HOME="${HOME:-/home/vscode}"
90
+ LINK_PATH="${USER_HOME}/.claude-dashboard"
91
+
92
+ mkdir -p "${DASHBOARD_DATA}"
93
+
94
+ # Already correct symlink — nothing to do
95
+ if [ -L "${LINK_PATH}" ]; then
96
+ CURRENT_TARGET="$(readlink "${LINK_PATH}")"
97
+ if [ "${CURRENT_TARGET}" = "${DASHBOARD_DATA}" ]; then
98
+ exit 0
99
+ fi
100
+ rm "${LINK_PATH}"
101
+ fi
102
+
103
+ # Real directory exists — merge contents, then replace with symlink
104
+ if [ -d "${LINK_PATH}" ]; then
105
+ cp -rn "${LINK_PATH}/." "${DASHBOARD_DATA}/" 2>/dev/null || true
106
+ rm -rf "${LINK_PATH}"
107
+ fi
108
+
109
+ ln -s "${DASHBOARD_DATA}" "${LINK_PATH}"
110
+ HOOKEOF
111
+ chmod +x "${HOOK_SCRIPT}"
112
+ echo "[claude-session-dashboard] Created poststart hook for settings persistence"
113
+
114
+ # === SHELL ALIASES ===
115
+ ALIAS_CMD="alias claude-dashboard=\"claude-dashboard --host 0.0.0.0 --port ${PORT}\""
116
+
117
+ configure_shell() {
118
+ local shell_rc="$1"
119
+ local shell_name="$2"
120
+
121
+ if [ ! -f "${shell_rc}" ]; then
122
+ echo "[claude-session-dashboard] Creating ${shell_name} config: ${shell_rc}"
123
+ sudo -u "${USERNAME}" touch "${shell_rc}"
124
+ fi
125
+
126
+ if grep -q "alias claude-dashboard=" "${shell_rc}"; then
127
+ echo "[claude-session-dashboard] ${shell_name} alias already configured. Skipping..."
128
+ else
129
+ echo "[claude-session-dashboard] Adding alias to ${shell_name}"
130
+ echo "${ALIAS_CMD}" >> "${shell_rc}"
131
+ chown "${USERNAME}:${USERNAME}" "${shell_rc}" 2>/dev/null || true
132
+ fi
133
+ }
134
+
135
+ if [ "${SHELLS}" = "bash" ] || [ "${SHELLS}" = "both" ]; then
136
+ configure_shell "${USER_HOME}/.bashrc" "bash"
137
+ fi
138
+
139
+ if [ "${SHELLS}" = "zsh" ] || [ "${SHELLS}" = "both" ]; then
140
+ configure_shell "${USER_HOME}/.zshrc" "zsh"
141
+ fi
142
+
143
+ # === VERIFICATION ===
144
+ echo "[claude-session-dashboard] Verifying installation..."
145
+ if command -v claude-dashboard &>/dev/null; then
146
+ INSTALLED_VERSION="$(claude-dashboard --version 2>/dev/null || echo "unknown")"
147
+ echo "[claude-session-dashboard] ✓ claude-dashboard installed (${INSTALLED_VERSION})"
148
+ else
149
+ echo "[claude-session-dashboard] WARNING: claude-dashboard not found in PATH"
150
+ echo " The global npm install may need PATH adjustment"
151
+ echo " Try: npx claude-session-dashboard --version"
152
+ fi
153
+
154
+ # === SUMMARY ===
155
+ echo ""
156
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
157
+ echo " Claude Session Dashboard Installation Complete"
158
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
159
+ echo ""
160
+ echo "Configuration:"
161
+ echo " • User: ${USERNAME}"
162
+ echo " • Version: ${DASHBOARD_VERSION}"
163
+ echo " • Default port: ${PORT}"
164
+ echo " • Shells: ${SHELLS}"
165
+ echo " • Settings persist to: /workspaces/.claude-dashboard/"
166
+ echo ""
167
+ echo "Usage:"
168
+ echo " claude-dashboard # Start on port ${PORT}"
169
+ echo " claude-dashboard -p 8080 # Start on custom port"
170
+ echo " claude-dashboard --help # Full options"
171
+ echo ""
172
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
@@ -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`