jfl 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +313 -0
- package/clawdbot-skill/README.md +328 -0
- package/clawdbot-skill/SKILL.md +362 -0
- package/clawdbot-skill/index.ts +486 -0
- package/clawdbot-skill/package.json +28 -0
- package/clawdbot-skill/skill.json +28 -0
- package/dist/commands/agents.d.ts +5 -0
- package/dist/commands/agents.d.ts.map +1 -0
- package/dist/commands/agents.js +399 -0
- package/dist/commands/agents.js.map +1 -0
- package/dist/commands/context-hub.d.ts +12 -0
- package/dist/commands/context-hub.d.ts.map +1 -0
- package/dist/commands/context-hub.js +642 -0
- package/dist/commands/context-hub.js.map +1 -0
- package/dist/commands/deploy.d.ts +5 -0
- package/dist/commands/deploy.d.ts.map +1 -0
- package/dist/commands/deploy.js +370 -0
- package/dist/commands/deploy.js.map +1 -0
- package/dist/commands/feedback.d.ts +2 -0
- package/dist/commands/feedback.d.ts.map +1 -0
- package/dist/commands/feedback.js +178 -0
- package/dist/commands/feedback.js.map +1 -0
- package/dist/commands/hud.d.ts +4 -0
- package/dist/commands/hud.d.ts.map +1 -0
- package/dist/commands/hud.js +262 -0
- package/dist/commands/hud.js.map +1 -0
- package/dist/commands/init.d.ts +4 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +553 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/login.d.ts +23 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +818 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/ralph.d.ts +9 -0
- package/dist/commands/ralph.d.ts.map +1 -0
- package/dist/commands/ralph.js +67 -0
- package/dist/commands/ralph.js.map +1 -0
- package/dist/commands/repair.d.ts +7 -0
- package/dist/commands/repair.d.ts.map +1 -0
- package/dist/commands/repair.js +283 -0
- package/dist/commands/repair.js.map +1 -0
- package/dist/commands/session-mgmt.d.ts +33 -0
- package/dist/commands/session-mgmt.d.ts.map +1 -0
- package/dist/commands/session-mgmt.js +404 -0
- package/dist/commands/session-mgmt.js.map +1 -0
- package/dist/commands/session.d.ts +2 -0
- package/dist/commands/session.d.ts.map +1 -0
- package/dist/commands/session.js +639 -0
- package/dist/commands/session.js.map +1 -0
- package/dist/commands/skills.d.ts +31 -0
- package/dist/commands/skills.d.ts.map +1 -0
- package/dist/commands/skills.js +314 -0
- package/dist/commands/skills.js.map +1 -0
- package/dist/commands/status.d.ts +2 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +127 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/synopsis.d.ts +10 -0
- package/dist/commands/synopsis.d.ts.map +1 -0
- package/dist/commands/synopsis.js +277 -0
- package/dist/commands/synopsis.js.map +1 -0
- package/dist/commands/update.d.ts +10 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +165 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/commands/voice.d.ts +410 -0
- package/dist/commands/voice.d.ts.map +1 -0
- package/dist/commands/voice.js +4763 -0
- package/dist/commands/voice.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +512 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/context-hub-mcp.d.ts +11 -0
- package/dist/mcp/context-hub-mcp.d.ts.map +1 -0
- package/dist/mcp/context-hub-mcp.js +548 -0
- package/dist/mcp/context-hub-mcp.js.map +1 -0
- package/dist/telegram/voice.d.ts +146 -0
- package/dist/telegram/voice.d.ts.map +1 -0
- package/dist/telegram/voice.js +351 -0
- package/dist/telegram/voice.js.map +1 -0
- package/dist/types/skills.d.ts +44 -0
- package/dist/types/skills.d.ts.map +1 -0
- package/dist/types/skills.js +5 -0
- package/dist/types/skills.js.map +1 -0
- package/dist/ui/banner.d.ts +18 -0
- package/dist/ui/banner.d.ts.map +1 -0
- package/dist/ui/banner.js +323 -0
- package/dist/ui/banner.js.map +1 -0
- package/dist/ui/index.d.ts +8 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +8 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/prompts.d.ts +52 -0
- package/dist/ui/prompts.d.ts.map +1 -0
- package/dist/ui/prompts.js +72 -0
- package/dist/ui/prompts.js.map +1 -0
- package/dist/ui/theme.d.ts +82 -0
- package/dist/ui/theme.d.ts.map +1 -0
- package/dist/ui/theme.js +142 -0
- package/dist/ui/theme.js.map +1 -0
- package/dist/utils/auth-guard.d.ts +66 -0
- package/dist/utils/auth-guard.d.ts.map +1 -0
- package/dist/utils/auth-guard.js +348 -0
- package/dist/utils/auth-guard.js.map +1 -0
- package/dist/utils/ensure-project.d.ts +11 -0
- package/dist/utils/ensure-project.d.ts.map +1 -0
- package/dist/utils/ensure-project.js +70 -0
- package/dist/utils/ensure-project.js.map +1 -0
- package/dist/utils/git.d.ts +73 -0
- package/dist/utils/git.d.ts.map +1 -0
- package/dist/utils/git.js +219 -0
- package/dist/utils/git.js.map +1 -0
- package/dist/utils/github-auth.d.ts +54 -0
- package/dist/utils/github-auth.d.ts.map +1 -0
- package/dist/utils/github-auth.js +375 -0
- package/dist/utils/github-auth.js.map +1 -0
- package/dist/utils/github-repo.d.ts +30 -0
- package/dist/utils/github-repo.d.ts.map +1 -0
- package/dist/utils/github-repo.js +219 -0
- package/dist/utils/github-repo.js.map +1 -0
- package/dist/utils/platform-auth.d.ts +81 -0
- package/dist/utils/platform-auth.d.ts.map +1 -0
- package/dist/utils/platform-auth.js +191 -0
- package/dist/utils/platform-auth.js.map +1 -0
- package/dist/utils/project-config.d.ts +43 -0
- package/dist/utils/project-config.d.ts.map +1 -0
- package/dist/utils/project-config.js +97 -0
- package/dist/utils/project-config.js.map +1 -0
- package/dist/utils/skill-registry.d.ts +49 -0
- package/dist/utils/skill-registry.d.ts.map +1 -0
- package/dist/utils/skill-registry.js +192 -0
- package/dist/utils/skill-registry.js.map +1 -0
- package/dist/utils/wallet.d.ts +62 -0
- package/dist/utils/wallet.d.ts.map +1 -0
- package/dist/utils/wallet.js +252 -0
- package/dist/utils/wallet.js.map +1 -0
- package/dist/utils/x402-client.d.ts +86 -0
- package/dist/utils/x402-client.d.ts.map +1 -0
- package/dist/utils/x402-client.js +265 -0
- package/dist/utils/x402-client.js.map +1 -0
- package/package.json +76 -0
- package/scripts/postinstall.js +116 -0
- package/scripts/test-onboarding.sh +121 -0
- package/scripts/voice-start.sh +128 -0
- package/scripts/voice-stop.sh +33 -0
- package/template/.claude/settings.json +92 -0
- package/template/.claude/skills/agent-browser/SKILL.md +116 -0
- package/template/.claude/skills/brand-architect/SKILL.md +240 -0
- package/template/.claude/skills/brand-architect/config.yaml +137 -0
- package/template/.claude/skills/campaign-hud/config.yaml +112 -0
- package/template/.claude/skills/content-creator/SKILL.md +294 -0
- package/template/.claude/skills/debug/MULTI_AGENT.md +360 -0
- package/template/.claude/skills/debug/SKILL.md +549 -0
- package/template/.claude/skills/fly-deploy/SKILL.md +676 -0
- package/template/.claude/skills/founder-video/SKILL.md +467 -0
- package/template/.claude/skills/hud/SKILL.md +157 -0
- package/template/.claude/skills/ralph-tui/SKILL.md +210 -0
- package/template/.claude/skills/react-best-practices/AGENTS.md +2249 -0
- package/template/.claude/skills/react-best-practices/README.md +123 -0
- package/template/.claude/skills/react-best-practices/SKILL.md +125 -0
- package/template/.claude/skills/react-best-practices/metadata.json +15 -0
- package/template/.claude/skills/react-best-practices/rules/_sections.md +46 -0
- package/template/.claude/skills/react-best-practices/rules/_template.md +28 -0
- package/template/.claude/skills/react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/template/.claude/skills/react-best-practices/rules/advanced-use-latest.md +49 -0
- package/template/.claude/skills/react-best-practices/rules/async-api-routes.md +38 -0
- package/template/.claude/skills/react-best-practices/rules/async-defer-await.md +80 -0
- package/template/.claude/skills/react-best-practices/rules/async-dependencies.md +36 -0
- package/template/.claude/skills/react-best-practices/rules/async-parallel.md +28 -0
- package/template/.claude/skills/react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/template/.claude/skills/react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/template/.claude/skills/react-best-practices/rules/bundle-conditional.md +31 -0
- package/template/.claude/skills/react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/template/.claude/skills/react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/template/.claude/skills/react-best-practices/rules/bundle-preload.md +50 -0
- package/template/.claude/skills/react-best-practices/rules/client-event-listeners.md +74 -0
- package/template/.claude/skills/react-best-practices/rules/client-swr-dedup.md +56 -0
- package/template/.claude/skills/react-best-practices/rules/js-batch-dom-css.md +82 -0
- package/template/.claude/skills/react-best-practices/rules/js-cache-function-results.md +80 -0
- package/template/.claude/skills/react-best-practices/rules/js-cache-property-access.md +28 -0
- package/template/.claude/skills/react-best-practices/rules/js-cache-storage.md +70 -0
- package/template/.claude/skills/react-best-practices/rules/js-combine-iterations.md +32 -0
- package/template/.claude/skills/react-best-practices/rules/js-early-exit.md +50 -0
- package/template/.claude/skills/react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/template/.claude/skills/react-best-practices/rules/js-index-maps.md +37 -0
- package/template/.claude/skills/react-best-practices/rules/js-length-check-first.md +49 -0
- package/template/.claude/skills/react-best-practices/rules/js-min-max-loop.md +82 -0
- package/template/.claude/skills/react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/template/.claude/skills/react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/template/.claude/skills/react-best-practices/rules/rendering-activity.md +26 -0
- package/template/.claude/skills/react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/template/.claude/skills/react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/template/.claude/skills/react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/template/.claude/skills/react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/template/.claude/skills/react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/template/.claude/skills/react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/template/.claude/skills/react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/template/.claude/skills/react-best-practices/rules/rerender-dependencies.md +45 -0
- package/template/.claude/skills/react-best-practices/rules/rerender-derived-state.md +29 -0
- package/template/.claude/skills/react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/template/.claude/skills/react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/template/.claude/skills/react-best-practices/rules/rerender-memo.md +44 -0
- package/template/.claude/skills/react-best-practices/rules/rerender-transitions.md +40 -0
- package/template/.claude/skills/react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/template/.claude/skills/react-best-practices/rules/server-cache-lru.md +41 -0
- package/template/.claude/skills/react-best-practices/rules/server-cache-react.md +26 -0
- package/template/.claude/skills/react-best-practices/rules/server-parallel-fetching.md +79 -0
- package/template/.claude/skills/react-best-practices/rules/server-serialization.md +38 -0
- package/template/.claude/skills/remotion-best-practices/SKILL.md +43 -0
- package/template/.claude/skills/remotion-best-practices/rules/3d.md +86 -0
- package/template/.claude/skills/remotion-best-practices/rules/animations.md +29 -0
- package/template/.claude/skills/remotion-best-practices/rules/assets/charts-bar-chart.tsx +173 -0
- package/template/.claude/skills/remotion-best-practices/rules/assets/text-animations-typewriter.tsx +100 -0
- package/template/.claude/skills/remotion-best-practices/rules/assets/text-animations-word-highlight.tsx +108 -0
- package/template/.claude/skills/remotion-best-practices/rules/assets.md +78 -0
- package/template/.claude/skills/remotion-best-practices/rules/audio.md +172 -0
- package/template/.claude/skills/remotion-best-practices/rules/calculate-metadata.md +104 -0
- package/template/.claude/skills/remotion-best-practices/rules/can-decode.md +75 -0
- package/template/.claude/skills/remotion-best-practices/rules/charts.md +58 -0
- package/template/.claude/skills/remotion-best-practices/rules/compositions.md +146 -0
- package/template/.claude/skills/remotion-best-practices/rules/display-captions.md +126 -0
- package/template/.claude/skills/remotion-best-practices/rules/extract-frames.md +229 -0
- package/template/.claude/skills/remotion-best-practices/rules/fonts.md +152 -0
- package/template/.claude/skills/remotion-best-practices/rules/get-audio-duration.md +58 -0
- package/template/.claude/skills/remotion-best-practices/rules/get-video-dimensions.md +68 -0
- package/template/.claude/skills/remotion-best-practices/rules/get-video-duration.md +58 -0
- package/template/.claude/skills/remotion-best-practices/rules/gifs.md +138 -0
- package/template/.claude/skills/remotion-best-practices/rules/images.md +130 -0
- package/template/.claude/skills/remotion-best-practices/rules/import-srt-captions.md +67 -0
- package/template/.claude/skills/remotion-best-practices/rules/lottie.md +68 -0
- package/template/.claude/skills/remotion-best-practices/rules/measuring-dom-nodes.md +35 -0
- package/template/.claude/skills/remotion-best-practices/rules/measuring-text.md +143 -0
- package/template/.claude/skills/remotion-best-practices/rules/sequencing.md +106 -0
- package/template/.claude/skills/remotion-best-practices/rules/tailwind.md +11 -0
- package/template/.claude/skills/remotion-best-practices/rules/text-animations.md +20 -0
- package/template/.claude/skills/remotion-best-practices/rules/timing.md +179 -0
- package/template/.claude/skills/remotion-best-practices/rules/transcribe-captions.md +19 -0
- package/template/.claude/skills/remotion-best-practices/rules/transitions.md +122 -0
- package/template/.claude/skills/remotion-best-practices/rules/trimming.md +53 -0
- package/template/.claude/skills/remotion-best-practices/rules/videos.md +171 -0
- package/template/.claude/skills/search/SKILL.md +220 -0
- package/template/.claude/skills/spec/SKILL.md +377 -0
- package/template/.claude/skills/startup/SKILL.md +310 -0
- package/template/.claude/skills/web-architect/SKILL.md +309 -0
- package/template/.claude/skills/x-algorithm/SKILL.md +305 -0
- package/template/.jfl/config.json +8 -0
- package/template/.mcp.json +11 -0
- package/template/CLAUDE.md +960 -0
- package/template/content/.gitkeep +0 -0
- package/template/context-hub +3 -0
- package/template/knowledge/BRAND_BRIEF.md +124 -0
- package/template/knowledge/BRAND_DECISIONS.md +168 -0
- package/template/knowledge/NARRATIVE.md +114 -0
- package/template/knowledge/ROADMAP.md +128 -0
- package/template/knowledge/THESIS.md +108 -0
- package/template/knowledge/VISION.md +74 -0
- package/template/knowledge/VOICE_AND_TONE.md +146 -0
- package/template/previews/.gitkeep +0 -0
- package/template/scripts/session/auto-commit.sh +245 -0
- package/template/scripts/session/auto-merge.sh +325 -0
- package/template/scripts/session/jfl-doctor.sh +587 -0
- package/template/scripts/session/session-end.sh +194 -0
- package/template/scripts/session/session-init.sh +163 -0
- package/template/scripts/session/session-sync.sh +167 -0
- package/template/scripts/session/test-context-preservation.sh +160 -0
- package/template/skills/agent-browser/SKILL.md +116 -0
- package/template/skills/brand-architect/SKILL.md +240 -0
- package/template/skills/brand-architect/config.yaml +137 -0
- package/template/skills/campaign-hud/config.yaml +112 -0
- package/template/skills/content-creator/SKILL.md +294 -0
- package/template/skills/debug/MULTI_AGENT.md +360 -0
- package/template/skills/debug/SKILL.md +549 -0
- package/template/skills/fly-deploy/SKILL.md +676 -0
- package/template/skills/founder-video/SKILL.md +467 -0
- package/template/skills/hud/SKILL.md +204 -0
- package/template/skills/ralph-tui/SKILL.md +210 -0
- package/template/skills/react-best-practices/AGENTS.md +2249 -0
- package/template/skills/react-best-practices/README.md +123 -0
- package/template/skills/react-best-practices/SKILL.md +125 -0
- package/template/skills/react-best-practices/metadata.json +15 -0
- package/template/skills/react-best-practices/rules/_sections.md +46 -0
- package/template/skills/react-best-practices/rules/_template.md +28 -0
- package/template/skills/react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/template/skills/react-best-practices/rules/advanced-use-latest.md +49 -0
- package/template/skills/react-best-practices/rules/async-api-routes.md +38 -0
- package/template/skills/react-best-practices/rules/async-defer-await.md +80 -0
- package/template/skills/react-best-practices/rules/async-dependencies.md +36 -0
- package/template/skills/react-best-practices/rules/async-parallel.md +28 -0
- package/template/skills/react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/template/skills/react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/template/skills/react-best-practices/rules/bundle-conditional.md +31 -0
- package/template/skills/react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/template/skills/react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/template/skills/react-best-practices/rules/bundle-preload.md +50 -0
- package/template/skills/react-best-practices/rules/client-event-listeners.md +74 -0
- package/template/skills/react-best-practices/rules/client-swr-dedup.md +56 -0
- package/template/skills/react-best-practices/rules/js-batch-dom-css.md +82 -0
- package/template/skills/react-best-practices/rules/js-cache-function-results.md +80 -0
- package/template/skills/react-best-practices/rules/js-cache-property-access.md +28 -0
- package/template/skills/react-best-practices/rules/js-cache-storage.md +70 -0
- package/template/skills/react-best-practices/rules/js-combine-iterations.md +32 -0
- package/template/skills/react-best-practices/rules/js-early-exit.md +50 -0
- package/template/skills/react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/template/skills/react-best-practices/rules/js-index-maps.md +37 -0
- package/template/skills/react-best-practices/rules/js-length-check-first.md +49 -0
- package/template/skills/react-best-practices/rules/js-min-max-loop.md +82 -0
- package/template/skills/react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/template/skills/react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/template/skills/react-best-practices/rules/rendering-activity.md +26 -0
- package/template/skills/react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/template/skills/react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/template/skills/react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/template/skills/react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/template/skills/react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/template/skills/react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/template/skills/react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/template/skills/react-best-practices/rules/rerender-dependencies.md +45 -0
- package/template/skills/react-best-practices/rules/rerender-derived-state.md +29 -0
- package/template/skills/react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/template/skills/react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/template/skills/react-best-practices/rules/rerender-memo.md +44 -0
- package/template/skills/react-best-practices/rules/rerender-transitions.md +40 -0
- package/template/skills/react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/template/skills/react-best-practices/rules/server-cache-lru.md +41 -0
- package/template/skills/react-best-practices/rules/server-cache-react.md +26 -0
- package/template/skills/react-best-practices/rules/server-parallel-fetching.md +79 -0
- package/template/skills/react-best-practices/rules/server-serialization.md +38 -0
- package/template/skills/remotion-best-practices/SKILL.md +43 -0
- package/template/skills/remotion-best-practices/rules/3d.md +86 -0
- package/template/skills/remotion-best-practices/rules/animations.md +29 -0
- package/template/skills/remotion-best-practices/rules/assets/charts-bar-chart.tsx +173 -0
- package/template/skills/remotion-best-practices/rules/assets/text-animations-typewriter.tsx +100 -0
- package/template/skills/remotion-best-practices/rules/assets/text-animations-word-highlight.tsx +108 -0
- package/template/skills/remotion-best-practices/rules/assets.md +78 -0
- package/template/skills/remotion-best-practices/rules/audio.md +172 -0
- package/template/skills/remotion-best-practices/rules/calculate-metadata.md +104 -0
- package/template/skills/remotion-best-practices/rules/can-decode.md +75 -0
- package/template/skills/remotion-best-practices/rules/charts.md +58 -0
- package/template/skills/remotion-best-practices/rules/compositions.md +146 -0
- package/template/skills/remotion-best-practices/rules/display-captions.md +126 -0
- package/template/skills/remotion-best-practices/rules/extract-frames.md +229 -0
- package/template/skills/remotion-best-practices/rules/fonts.md +152 -0
- package/template/skills/remotion-best-practices/rules/get-audio-duration.md +58 -0
- package/template/skills/remotion-best-practices/rules/get-video-dimensions.md +68 -0
- package/template/skills/remotion-best-practices/rules/get-video-duration.md +58 -0
- package/template/skills/remotion-best-practices/rules/gifs.md +138 -0
- package/template/skills/remotion-best-practices/rules/images.md +130 -0
- package/template/skills/remotion-best-practices/rules/import-srt-captions.md +67 -0
- package/template/skills/remotion-best-practices/rules/lottie.md +68 -0
- package/template/skills/remotion-best-practices/rules/measuring-dom-nodes.md +35 -0
- package/template/skills/remotion-best-practices/rules/measuring-text.md +143 -0
- package/template/skills/remotion-best-practices/rules/sequencing.md +106 -0
- package/template/skills/remotion-best-practices/rules/tailwind.md +11 -0
- package/template/skills/remotion-best-practices/rules/text-animations.md +20 -0
- package/template/skills/remotion-best-practices/rules/timing.md +179 -0
- package/template/skills/remotion-best-practices/rules/transcribe-captions.md +19 -0
- package/template/skills/remotion-best-practices/rules/transitions.md +122 -0
- package/template/skills/remotion-best-practices/rules/trimming.md +53 -0
- package/template/skills/remotion-best-practices/rules/videos.md +171 -0
- package/template/skills/search/SKILL.md +220 -0
- package/template/skills/spec/SKILL.md +377 -0
- package/template/skills/startup/SKILL.md +310 -0
- package/template/skills/web-architect/SKILL.md +309 -0
- package/template/skills/x-algorithm/SKILL.md +305 -0
- package/template/suggestions/.gitkeep +0 -0
- package/template/templates/QUICKSTART_SKILL_TO_PRODUCT.md +242 -0
- package/template/templates/brand/BRAND_BRIEF.md +124 -0
- package/template/templates/brand/BRAND_DECISIONS.md +168 -0
- package/template/templates/brand/BRAND_GUIDELINES.md +251 -0
- package/template/templates/brand/VOICE_AND_TONE.md +146 -0
- package/template/templates/brand/global.css +240 -0
- package/template/templates/collaboration/CONTRIBUTOR.md +74 -0
- package/template/templates/collaboration/CRM.md +97 -0
- package/template/templates/collaboration/TASKS.md +83 -0
- package/template/templates/strategic/NARRATIVE.md +114 -0
- package/template/templates/strategic/ROADMAP.md +128 -0
- package/template/templates/strategic/THESIS.md +108 -0
- package/template/templates/strategic/VISION.md +74 -0
|
@@ -0,0 +1,410 @@
|
|
|
1
|
+
import { Ora } from "ora";
|
|
2
|
+
import { EventEmitter } from "events";
|
|
3
|
+
/**
|
|
4
|
+
* Error types for voice-related failures
|
|
5
|
+
*/
|
|
6
|
+
export declare enum VoiceErrorType {
|
|
7
|
+
SERVER_NOT_RUNNING = "SERVER_NOT_RUNNING",
|
|
8
|
+
MIC_UNAVAILABLE = "MIC_UNAVAILABLE",
|
|
9
|
+
CONNECTION_DROPPED = "CONNECTION_DROPPED",
|
|
10
|
+
TRANSCRIPTION_EMPTY = "TRANSCRIPTION_EMPTY",
|
|
11
|
+
PERMISSION_DENIED = "PERMISSION_DENIED",
|
|
12
|
+
MODEL_NOT_FOUND = "MODEL_NOT_FOUND",
|
|
13
|
+
AUTH_FAILED = "AUTH_FAILED",
|
|
14
|
+
SOX_NOT_INSTALLED = "SOX_NOT_INSTALLED",
|
|
15
|
+
RECORDING_FAILED = "RECORDING_FAILED",
|
|
16
|
+
TIMEOUT = "TIMEOUT",
|
|
17
|
+
ACCESSIBILITY_NOT_GRANTED = "ACCESSIBILITY_NOT_GRANTED",
|
|
18
|
+
PLATFORM_NOT_SUPPORTED = "PLATFORM_NOT_SUPPORTED",
|
|
19
|
+
WAYLAND_NOT_SUPPORTED = "WAYLAND_NOT_SUPPORTED"
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Custom error class for voice-related errors
|
|
23
|
+
*/
|
|
24
|
+
export declare class VoiceError extends Error {
|
|
25
|
+
readonly type: VoiceErrorType;
|
|
26
|
+
readonly originalError?: Error;
|
|
27
|
+
readonly context?: Record<string, unknown>;
|
|
28
|
+
readonly recoverable: boolean;
|
|
29
|
+
readonly audioBuffer?: Buffer;
|
|
30
|
+
constructor(type: VoiceErrorType, options?: {
|
|
31
|
+
originalError?: Error;
|
|
32
|
+
context?: Record<string, unknown>;
|
|
33
|
+
recoverable?: boolean;
|
|
34
|
+
audioBuffer?: Buffer;
|
|
35
|
+
});
|
|
36
|
+
/**
|
|
37
|
+
* Get user-friendly suggestions for recovering from this error
|
|
38
|
+
*/
|
|
39
|
+
getSuggestions(): string[];
|
|
40
|
+
/**
|
|
41
|
+
* Get full error message including original error if present
|
|
42
|
+
*/
|
|
43
|
+
getFullMessage(): string;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Display a voice error with formatted output and suggestions
|
|
47
|
+
*/
|
|
48
|
+
export declare function handleVoiceError(error: VoiceError | Error, spinner?: Ora): void;
|
|
49
|
+
/**
|
|
50
|
+
* Create appropriate VoiceError based on error analysis
|
|
51
|
+
*/
|
|
52
|
+
export declare function createVoiceError(error: Error, context?: Record<string, unknown>, audioBuffer?: Buffer): VoiceError;
|
|
53
|
+
/**
|
|
54
|
+
* Check if server is running and return appropriate error if not
|
|
55
|
+
* Checks both TCP port 9090 and Unix socket for backwards compatibility
|
|
56
|
+
*/
|
|
57
|
+
export declare function checkServerRunning(): VoiceError | null;
|
|
58
|
+
/**
|
|
59
|
+
* Check if auth token exists and return appropriate error if not
|
|
60
|
+
*/
|
|
61
|
+
export declare function checkAuthToken(): VoiceError | null;
|
|
62
|
+
/**
|
|
63
|
+
* Check if a model is available and return appropriate error if not
|
|
64
|
+
*/
|
|
65
|
+
export declare function checkModelAvailable(modelName?: string): VoiceError | null;
|
|
66
|
+
export declare function getJflDir(): string;
|
|
67
|
+
export declare function readAuthToken(): string | null;
|
|
68
|
+
/** Connection state for the VoiceClient */
|
|
69
|
+
type ConnectionState = "disconnected" | "connecting" | "connected" | "reconnecting";
|
|
70
|
+
/** Options for VoiceClient */
|
|
71
|
+
export interface VoiceClientOptions {
|
|
72
|
+
/** Path to the Unix socket (default: ~/.jfl/voice.sock) - deprecated, use serverUrl */
|
|
73
|
+
socketPath?: string;
|
|
74
|
+
/** Server URL for direct TCP connection (default: ws://127.0.0.1:9090) */
|
|
75
|
+
serverUrl?: string;
|
|
76
|
+
/** Auth token (default: read from ~/.jfl/voice-server.token) */
|
|
77
|
+
authToken?: string;
|
|
78
|
+
/** Maximum reconnection attempts (default: 5) */
|
|
79
|
+
maxReconnectAttempts?: number;
|
|
80
|
+
/** Initial reconnection delay in ms (default: 1000) */
|
|
81
|
+
initialReconnectDelay?: number;
|
|
82
|
+
/** Maximum reconnection delay in ms (default: 30000) */
|
|
83
|
+
maxReconnectDelay?: number;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* VoiceClient - Manages WebSocket connection to the whisper server
|
|
87
|
+
*
|
|
88
|
+
* Features:
|
|
89
|
+
* - Connects to Unix socket at ~/.jfl/voice.sock
|
|
90
|
+
* - Authenticates with token from ~/.jfl/voice-server.token
|
|
91
|
+
* - Streams 16-bit PCM audio at 16kHz mono
|
|
92
|
+
* - Receives partial and final transcripts
|
|
93
|
+
* - Auto-reconnects with exponential backoff
|
|
94
|
+
*
|
|
95
|
+
* Usage:
|
|
96
|
+
* ```typescript
|
|
97
|
+
* const client = new VoiceClient()
|
|
98
|
+
*
|
|
99
|
+
* client.onTranscript((text, isFinal) => {
|
|
100
|
+
* if (isFinal) console.log("Final:", text)
|
|
101
|
+
* else console.log("Partial:", text)
|
|
102
|
+
* })
|
|
103
|
+
*
|
|
104
|
+
* client.onError((error) => {
|
|
105
|
+
* console.error("Error:", error.message)
|
|
106
|
+
* })
|
|
107
|
+
*
|
|
108
|
+
* await client.connect()
|
|
109
|
+
*
|
|
110
|
+
* // Send audio chunks (16-bit PCM, 16kHz mono)
|
|
111
|
+
* client.sendAudio(audioBuffer)
|
|
112
|
+
*
|
|
113
|
+
* // When done
|
|
114
|
+
* client.disconnect()
|
|
115
|
+
* ```
|
|
116
|
+
*/
|
|
117
|
+
export declare class VoiceClient extends EventEmitter {
|
|
118
|
+
private ws;
|
|
119
|
+
private serverUrl;
|
|
120
|
+
private authToken;
|
|
121
|
+
private state;
|
|
122
|
+
private reconnectAttempts;
|
|
123
|
+
private reconnectTimer;
|
|
124
|
+
private shouldReconnect;
|
|
125
|
+
private maxReconnectAttempts;
|
|
126
|
+
private initialReconnectDelay;
|
|
127
|
+
private maxReconnectDelay;
|
|
128
|
+
private transcriptCallbacks;
|
|
129
|
+
private errorCallbacks;
|
|
130
|
+
private connectionCallbacks;
|
|
131
|
+
constructor(options?: VoiceClientOptions);
|
|
132
|
+
/**
|
|
133
|
+
* Get the current connection state
|
|
134
|
+
*/
|
|
135
|
+
getState(): ConnectionState;
|
|
136
|
+
/**
|
|
137
|
+
* Check if connected
|
|
138
|
+
*/
|
|
139
|
+
isConnected(): boolean;
|
|
140
|
+
/**
|
|
141
|
+
* Connect to the whisper server
|
|
142
|
+
*
|
|
143
|
+
* @throws VoiceError if auth token is missing (AUTH_FAILED)
|
|
144
|
+
* @throws VoiceError if connection fails
|
|
145
|
+
*/
|
|
146
|
+
connect(): Promise<void>;
|
|
147
|
+
/**
|
|
148
|
+
* Internal connection method
|
|
149
|
+
*/
|
|
150
|
+
private doConnect;
|
|
151
|
+
/**
|
|
152
|
+
* Disconnect from the whisper server
|
|
153
|
+
*/
|
|
154
|
+
disconnect(): void;
|
|
155
|
+
/**
|
|
156
|
+
* Send audio data to the whisper server
|
|
157
|
+
*
|
|
158
|
+
* @param buffer - 16-bit PCM audio data at 16kHz mono
|
|
159
|
+
* @throws Error if not connected
|
|
160
|
+
*/
|
|
161
|
+
sendAudio(buffer: Buffer): void;
|
|
162
|
+
/**
|
|
163
|
+
* Send end-of-audio signal to get final transcript
|
|
164
|
+
*/
|
|
165
|
+
endAudio(): void;
|
|
166
|
+
/**
|
|
167
|
+
* Register callback for transcript events
|
|
168
|
+
*
|
|
169
|
+
* @param callback - Called with transcript text and whether it's final
|
|
170
|
+
*/
|
|
171
|
+
onTranscript(callback: (text: string, isFinal: boolean) => void): void;
|
|
172
|
+
/**
|
|
173
|
+
* Register callback for error events
|
|
174
|
+
*
|
|
175
|
+
* @param callback - Called with error
|
|
176
|
+
*/
|
|
177
|
+
onError(callback: (error: Error) => void): void;
|
|
178
|
+
/**
|
|
179
|
+
* Register callback for connection state changes
|
|
180
|
+
*
|
|
181
|
+
* @param callback - Called with new connection state
|
|
182
|
+
*/
|
|
183
|
+
onConnectionStateChange(callback: (state: ConnectionState) => void): void;
|
|
184
|
+
/**
|
|
185
|
+
* Remove all callbacks
|
|
186
|
+
*/
|
|
187
|
+
removeAllCallbacks(): void;
|
|
188
|
+
private setState;
|
|
189
|
+
private handleMessage;
|
|
190
|
+
private handleError;
|
|
191
|
+
private handleClose;
|
|
192
|
+
private scheduleReconnect;
|
|
193
|
+
private clearReconnectTimer;
|
|
194
|
+
}
|
|
195
|
+
/** Represents an audio input device */
|
|
196
|
+
export interface AudioDevice {
|
|
197
|
+
/** Unique identifier for the device */
|
|
198
|
+
id: string;
|
|
199
|
+
/** Human-readable device name */
|
|
200
|
+
name: string;
|
|
201
|
+
/** Whether this is the system default device */
|
|
202
|
+
isDefault: boolean;
|
|
203
|
+
}
|
|
204
|
+
/** Options for AudioRecorder */
|
|
205
|
+
export interface AudioRecorderOptions {
|
|
206
|
+
/** Device ID to record from (default: system default device) */
|
|
207
|
+
device?: string;
|
|
208
|
+
/** Target sample rate in Hz (default: 16000) */
|
|
209
|
+
sampleRate?: number;
|
|
210
|
+
/** Recording backend to use: 'auto', 'sox', 'arecord', 'rec' (default: 'auto') */
|
|
211
|
+
recorder?: "auto" | "sox" | "arecord" | "rec";
|
|
212
|
+
}
|
|
213
|
+
/** Recording state */
|
|
214
|
+
type RecordingState = "idle" | "recording" | "stopping" | "error";
|
|
215
|
+
/**
|
|
216
|
+
* AudioRecorder - Cross-platform audio recording with sample rate conversion
|
|
217
|
+
*
|
|
218
|
+
* Records audio from the system microphone and outputs 16-bit PCM at 16kHz mono.
|
|
219
|
+
* Works on macOS, Linux, and Windows using sox/rec/arecord backends.
|
|
220
|
+
*
|
|
221
|
+
* Prerequisites:
|
|
222
|
+
* - macOS: `brew install sox`
|
|
223
|
+
* - Linux: `sudo apt-get install sox libsox-fmt-all` or `alsa-utils`
|
|
224
|
+
* - Windows: `choco install sox.portable`
|
|
225
|
+
*
|
|
226
|
+
* Usage:
|
|
227
|
+
* ```typescript
|
|
228
|
+
* const recorder = new AudioRecorder({ sampleRate: 16000 })
|
|
229
|
+
*
|
|
230
|
+
* recorder.on('data', (chunk: Buffer) => {
|
|
231
|
+
* // Process 16-bit PCM audio data
|
|
232
|
+
* voiceClient.sendAudio(chunk)
|
|
233
|
+
* })
|
|
234
|
+
*
|
|
235
|
+
* recorder.on('error', (error: Error) => {
|
|
236
|
+
* console.error('Recording error:', error)
|
|
237
|
+
* })
|
|
238
|
+
*
|
|
239
|
+
* await recorder.start()
|
|
240
|
+
*
|
|
241
|
+
* // Later...
|
|
242
|
+
* recorder.stop()
|
|
243
|
+
* ```
|
|
244
|
+
*/
|
|
245
|
+
export declare class AudioRecorder extends EventEmitter {
|
|
246
|
+
private state;
|
|
247
|
+
private process;
|
|
248
|
+
private device;
|
|
249
|
+
private targetSampleRate;
|
|
250
|
+
private recorderBackend;
|
|
251
|
+
private currentPlatform;
|
|
252
|
+
private disconnectCheckInterval;
|
|
253
|
+
constructor(options?: AudioRecorderOptions);
|
|
254
|
+
/**
|
|
255
|
+
* List available audio input devices
|
|
256
|
+
*
|
|
257
|
+
* @returns Promise resolving to array of available audio devices
|
|
258
|
+
*/
|
|
259
|
+
static listDevices(): Promise<AudioDevice[]>;
|
|
260
|
+
/**
|
|
261
|
+
* List audio devices on macOS using sox
|
|
262
|
+
*/
|
|
263
|
+
private static listDevicesMacOS;
|
|
264
|
+
/**
|
|
265
|
+
* List audio devices on Linux using arecord or pactl
|
|
266
|
+
*/
|
|
267
|
+
private static listDevicesLinux;
|
|
268
|
+
/**
|
|
269
|
+
* List audio devices on Windows using sox or powershell
|
|
270
|
+
*/
|
|
271
|
+
private static listDevicesWindows;
|
|
272
|
+
/**
|
|
273
|
+
* Select the appropriate recorder backend based on platform and availability
|
|
274
|
+
*/
|
|
275
|
+
private selectRecorder;
|
|
276
|
+
/**
|
|
277
|
+
* Check if a recorder binary is available
|
|
278
|
+
*/
|
|
279
|
+
private isRecorderAvailable;
|
|
280
|
+
/**
|
|
281
|
+
* Check if currently recording
|
|
282
|
+
*/
|
|
283
|
+
isRecording(): boolean;
|
|
284
|
+
/**
|
|
285
|
+
* Get current recording state
|
|
286
|
+
*/
|
|
287
|
+
getState(): RecordingState;
|
|
288
|
+
/**
|
|
289
|
+
* Start recording audio
|
|
290
|
+
*
|
|
291
|
+
* @throws Error if already recording
|
|
292
|
+
* @throws Error if recorder is not available
|
|
293
|
+
*/
|
|
294
|
+
start(): Promise<void>;
|
|
295
|
+
/**
|
|
296
|
+
* Stop recording
|
|
297
|
+
*/
|
|
298
|
+
stop(): void;
|
|
299
|
+
/**
|
|
300
|
+
* Build command-line arguments for the recorder
|
|
301
|
+
*/
|
|
302
|
+
private buildRecorderArgs;
|
|
303
|
+
/**
|
|
304
|
+
* Start monitoring for device disconnect
|
|
305
|
+
*/
|
|
306
|
+
private startDisconnectMonitor;
|
|
307
|
+
/**
|
|
308
|
+
* Stop disconnect monitoring
|
|
309
|
+
*/
|
|
310
|
+
private stopDisconnectMonitor;
|
|
311
|
+
/**
|
|
312
|
+
* Handle process end
|
|
313
|
+
*/
|
|
314
|
+
private handleProcessEnd;
|
|
315
|
+
/**
|
|
316
|
+
* Handle recording error
|
|
317
|
+
*/
|
|
318
|
+
private handleError;
|
|
319
|
+
}
|
|
320
|
+
export declare function listModelsCommand(): Promise<void>;
|
|
321
|
+
export declare function downloadModelCommand(modelName: string, options?: {
|
|
322
|
+
force?: boolean;
|
|
323
|
+
}): Promise<void>;
|
|
324
|
+
export declare function setDefaultModelCommand(modelName: string): Promise<void>;
|
|
325
|
+
export declare function listDevicesCommand(): Promise<void>;
|
|
326
|
+
export declare function voiceTestCommand(options?: {
|
|
327
|
+
device?: string;
|
|
328
|
+
}): Promise<void>;
|
|
329
|
+
export declare function testRecordingCommand(options?: {
|
|
330
|
+
device?: string;
|
|
331
|
+
duration?: number;
|
|
332
|
+
}): Promise<void>;
|
|
333
|
+
type HotkeyMode = "auto" | "tap" | "hold";
|
|
334
|
+
export declare function voiceSetupCommand(): Promise<void>;
|
|
335
|
+
/**
|
|
336
|
+
* Show system recording indicator via desktop notification
|
|
337
|
+
* This provides a visual indicator that recording is active, even when terminal is not visible
|
|
338
|
+
* VS-010/VS-011: Now works on macOS, Linux, and Windows
|
|
339
|
+
* Returns true on success, false on failure
|
|
340
|
+
*/
|
|
341
|
+
export declare function showRecordingIndicator(): boolean;
|
|
342
|
+
/**
|
|
343
|
+
* Hide system recording indicator (show stopped notification)
|
|
344
|
+
* VS-010/VS-011: Now works on macOS, Linux, and Windows
|
|
345
|
+
* Returns true on success, false on failure
|
|
346
|
+
*/
|
|
347
|
+
export declare function hideRecordingIndicator(reason?: "stopped" | "cancelled" | "completed"): boolean;
|
|
348
|
+
/** Voice recording with VAD options */
|
|
349
|
+
interface VoiceRecordOptions {
|
|
350
|
+
/** Audio device ID */
|
|
351
|
+
device?: string;
|
|
352
|
+
/** Silence threshold in dB (default: -40) */
|
|
353
|
+
silenceThresholdDb?: number;
|
|
354
|
+
/** Silence duration in ms before stopping (default: 1500) */
|
|
355
|
+
silenceDurationMs?: number;
|
|
356
|
+
/** Maximum recording duration in seconds (default: 60) */
|
|
357
|
+
maxDurationSecs?: number;
|
|
358
|
+
}
|
|
359
|
+
/**
|
|
360
|
+
* Voice Slash Command - /voice
|
|
361
|
+
*
|
|
362
|
+
* Records audio with VAD (voice activity detection), transcribes it,
|
|
363
|
+
* and offers to send to Claude Code or copy to clipboard.
|
|
364
|
+
*/
|
|
365
|
+
export declare function voiceSlashCommand(options?: VoiceRecordOptions): Promise<void>;
|
|
366
|
+
/**
|
|
367
|
+
* Daemon Start Command - Launch voice hotkey listener in background
|
|
368
|
+
*
|
|
369
|
+
* Spawns a detached child process running the hotkey listener that survives
|
|
370
|
+
* terminal close. PID is stored in ~/.jfl/voice-daemon.pid
|
|
371
|
+
*/
|
|
372
|
+
export declare function daemonStartCommand(options?: {
|
|
373
|
+
mode?: HotkeyMode;
|
|
374
|
+
}): Promise<void>;
|
|
375
|
+
/**
|
|
376
|
+
* Daemon Stop Command - Stop the voice daemon gracefully
|
|
377
|
+
*
|
|
378
|
+
* Reads PID from ~/.jfl/voice-daemon.pid and sends SIGTERM
|
|
379
|
+
*/
|
|
380
|
+
export declare function daemonStopCommand(): Promise<void>;
|
|
381
|
+
/**
|
|
382
|
+
* Daemon Status Command - Show daemon running status
|
|
383
|
+
*
|
|
384
|
+
* Checks if daemon is running based on PID file and process existence
|
|
385
|
+
*/
|
|
386
|
+
export declare function daemonStatusCommand(): Promise<void>;
|
|
387
|
+
/**
|
|
388
|
+
* Hotkey Command - Start global hotkey listener
|
|
389
|
+
*
|
|
390
|
+
* Listens for Ctrl+Shift+Space globally (even when other apps have focus).
|
|
391
|
+
* Supports multiple modes:
|
|
392
|
+
* - auto: Smart detection - tap to toggle, or hold for hold-to-talk
|
|
393
|
+
* - tap: Tap to start/stop recording
|
|
394
|
+
* - hold: Hold to record, release to stop
|
|
395
|
+
* VS-010/VS-011: Supported on macOS, Linux (X11), and Windows.
|
|
396
|
+
* Requires Accessibility permission on macOS. On Linux Wayland, hotkeys are not supported.
|
|
397
|
+
*/
|
|
398
|
+
export declare function hotkeyCommand(options?: {
|
|
399
|
+
device?: string;
|
|
400
|
+
mode?: HotkeyMode;
|
|
401
|
+
}): Promise<void>;
|
|
402
|
+
export declare function voiceCommand(action?: string, subaction?: string, arg?: string, options?: {
|
|
403
|
+
force?: boolean;
|
|
404
|
+
device?: string;
|
|
405
|
+
duration?: number;
|
|
406
|
+
help?: boolean;
|
|
407
|
+
mode?: string;
|
|
408
|
+
}): Promise<void>;
|
|
409
|
+
export {};
|
|
410
|
+
//# sourceMappingURL=voice.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"voice.d.ts","sourceRoot":"","sources":["../../src/commands/voice.ts"],"names":[],"mappings":"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"}
|