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,323 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JFL Banner & Taglines
|
|
3
|
+
* Beautiful ASCII art banner with rotating taglines (Clawdbot-style)
|
|
4
|
+
*/
|
|
5
|
+
import chalk from "chalk";
|
|
6
|
+
import { theme, colors, getTerminalWidth, center } from "./theme.js";
|
|
7
|
+
// ============================================================================
|
|
8
|
+
// ASCII BANNER (Clawdbot-style with block characters)
|
|
9
|
+
// ============================================================================
|
|
10
|
+
// Box-drawing style "GTM" with "JUST*LAUNCH" subtitle
|
|
11
|
+
const BANNER_ART = [
|
|
12
|
+
" ██████╗ ████████╗███╗ ███╗",
|
|
13
|
+
" ██╔════╝ ╚══██╔══╝████╗ ████║",
|
|
14
|
+
" ██║ ███╗ ██║ ██╔████╔██║",
|
|
15
|
+
" ██║ ██║ ██║ ██║╚██╔╝██║",
|
|
16
|
+
" ╚██████╔╝ ██║ ██║ ╚═╝ ██║",
|
|
17
|
+
" ╚═════╝ ╚═╝ ╚═╝ ╚═╝",
|
|
18
|
+
" ",
|
|
19
|
+
" 🚀 JUST * LAUNCH 🚀 ",
|
|
20
|
+
];
|
|
21
|
+
// Simpler version for medium terminals
|
|
22
|
+
const BANNER_MEDIUM = [
|
|
23
|
+
" ██████╗ ████████╗███╗ ███╗",
|
|
24
|
+
" ██╔════╝ ╚══██╔══╝████╗ ████║",
|
|
25
|
+
" ██║ ███╗ ██║ ██╔████╔██║",
|
|
26
|
+
" ██║ ██║ ██║ ██║╚██╔╝██║",
|
|
27
|
+
" ╚██████╔╝ ██║ ██║ ╚═╝ ██║",
|
|
28
|
+
" ╚═════╝ ╚═╝ ╚═╝ ╚═╝",
|
|
29
|
+
" ",
|
|
30
|
+
" 🚀 JUST * LAUNCH 🚀 ",
|
|
31
|
+
];
|
|
32
|
+
// Compact for narrow terminals
|
|
33
|
+
const BANNER_COMPACT = [
|
|
34
|
+
" ██████╗ ████████╗███╗ ███╗",
|
|
35
|
+
"██╔════╝ ╚══██╔══╝████╗ ████║",
|
|
36
|
+
"██║ ███╗ ██║ ██╔████╔██║",
|
|
37
|
+
"╚██████╔╝ ██║ ██║ ╚═╝ ██║",
|
|
38
|
+
" ╚═════╝ ╚═╝ ╚═╝ ╚═╝",
|
|
39
|
+
" ",
|
|
40
|
+
" 🚀 JUST * LAUNCH 🚀 ",
|
|
41
|
+
];
|
|
42
|
+
// Minimal fallback
|
|
43
|
+
const BANNER_MINIMAL = "🚀 JFL — Just Fucking Launch";
|
|
44
|
+
// ============================================================================
|
|
45
|
+
// TAGLINES (70+ like Clawdbot)
|
|
46
|
+
// ============================================================================
|
|
47
|
+
const TAGLINES = [
|
|
48
|
+
// Core philosophy
|
|
49
|
+
"Ship it or it didn't happen.",
|
|
50
|
+
"Your context layer for shipping.",
|
|
51
|
+
"Vision emerges from doing, not declaring.",
|
|
52
|
+
"Stop planning. Start shipping.",
|
|
53
|
+
"The best launch is the one that happens.",
|
|
54
|
+
"Context compounds. Ship daily.",
|
|
55
|
+
"Ideas are cheap. Execution is everything.",
|
|
56
|
+
"Built different. Ships different.",
|
|
57
|
+
// Motivational
|
|
58
|
+
"Less roadmap, more road.",
|
|
59
|
+
"Your MVP is ready when you are.",
|
|
60
|
+
"Perfect is the enemy of shipped.",
|
|
61
|
+
"Launch first. Iterate forever.",
|
|
62
|
+
"The market doesn't care about your Notion.",
|
|
63
|
+
"Features ship. Decks don't.",
|
|
64
|
+
"Momentum > perfection.",
|
|
65
|
+
"Your competition shipped while you were planning.",
|
|
66
|
+
"The best time to launch was yesterday. The second best is now.",
|
|
67
|
+
"Shipped beats perfect every single time.",
|
|
68
|
+
"Nobody ever got funded by a roadmap alone.",
|
|
69
|
+
// Technical / Dev humor
|
|
70
|
+
"AI-powered shipping.",
|
|
71
|
+
"From zero to shipped.",
|
|
72
|
+
"Claude Code's best friend.",
|
|
73
|
+
"GTM on autopilot.",
|
|
74
|
+
"git push origin main && celebrate",
|
|
75
|
+
"We ship on Fridays. Assert dominance.",
|
|
76
|
+
"Your TODO list, automated.",
|
|
77
|
+
"Less JIRA, more shipped.",
|
|
78
|
+
"Prod is the best QA environment.",
|
|
79
|
+
"Works on my machine → Works in production.",
|
|
80
|
+
"The only standup that matters is the one where you shipped.",
|
|
81
|
+
"Agile, but like... actually agile.",
|
|
82
|
+
// Cheeky
|
|
83
|
+
"Because 'next quarter' is not a date.",
|
|
84
|
+
"We don't do beta.",
|
|
85
|
+
"README-driven development.",
|
|
86
|
+
"The only vaporware is the one you don't ship.",
|
|
87
|
+
"Funded by impatience.",
|
|
88
|
+
"Moving fast, breaking nothing.",
|
|
89
|
+
"Your pitch deck is not a product.",
|
|
90
|
+
"Stealth mode is just fear with better branding.",
|
|
91
|
+
"Traction > Slideware.",
|
|
92
|
+
"The market doesn't wait for your feelings.",
|
|
93
|
+
"Launch anxiety is just excitement wearing a mask.",
|
|
94
|
+
"Your competitors don't have a \"launch committee\".",
|
|
95
|
+
"Analysis paralysis is the enemy of progress.",
|
|
96
|
+
"Ship now, apologize never.",
|
|
97
|
+
"Done is better than perfect. Shipped is better than done.",
|
|
98
|
+
// Startup culture
|
|
99
|
+
"Zero to one, one commit at a time.",
|
|
100
|
+
"Your users want the feature, not the spec.",
|
|
101
|
+
"Build in public, ship in peace.",
|
|
102
|
+
"The lean startup, but make it leaner.",
|
|
103
|
+
"PMF is a verb, not a milestone.",
|
|
104
|
+
"Iterate until it hurts, then iterate more.",
|
|
105
|
+
"Feedback loops > focus groups.",
|
|
106
|
+
"Launch small, dream big, ship constantly.",
|
|
107
|
+
"Revenue is the ultimate validation.",
|
|
108
|
+
"Growth hacking is just shipping with analytics.",
|
|
109
|
+
// Meta / Self-aware
|
|
110
|
+
"I can't write your code, but I can make sure it ships.",
|
|
111
|
+
"Your context, my context, our context.",
|
|
112
|
+
"Less planning docs, more doing docs.",
|
|
113
|
+
"Strategy is what happens after you ship.",
|
|
114
|
+
"Press enter and find out.",
|
|
115
|
+
"Your keyboard's best friend.",
|
|
116
|
+
"Making founders dangerous since 2026.",
|
|
117
|
+
"Because your co-founder is tired of your excuses.",
|
|
118
|
+
"The bot that believes in you (and your deploy button).",
|
|
119
|
+
];
|
|
120
|
+
// Holiday-specific taglines
|
|
121
|
+
const HOLIDAY_TAGLINES = {
|
|
122
|
+
"new-year": [
|
|
123
|
+
"New year, new ship date. This time it's real.",
|
|
124
|
+
"2026: The year you actually launch.",
|
|
125
|
+
"Resolution: Ship more, plan less.",
|
|
126
|
+
],
|
|
127
|
+
halloween: [
|
|
128
|
+
"The scariest thing is not launching.",
|
|
129
|
+
"Don't be afraid to ship.",
|
|
130
|
+
"Bugs are temporary. Not shipping is forever.",
|
|
131
|
+
],
|
|
132
|
+
christmas: [
|
|
133
|
+
"The best gift is a shipped product.",
|
|
134
|
+
"'Tis the season to deploy.",
|
|
135
|
+
"All I want for Christmas is a production URL.",
|
|
136
|
+
],
|
|
137
|
+
thanksgiving: [
|
|
138
|
+
"Grateful for that deploy button.",
|
|
139
|
+
"Thanks for shipping.",
|
|
140
|
+
],
|
|
141
|
+
"july-4": [
|
|
142
|
+
"Independence from feature creep.",
|
|
143
|
+
"Freedom to ship.",
|
|
144
|
+
],
|
|
145
|
+
friday: [
|
|
146
|
+
"Deploy on Friday. Assert dominance.",
|
|
147
|
+
"TGIF: Thank God It's Finally shipped.",
|
|
148
|
+
],
|
|
149
|
+
};
|
|
150
|
+
function getActiveHoliday() {
|
|
151
|
+
const now = new Date();
|
|
152
|
+
const month = now.getMonth() + 1; // 1-12
|
|
153
|
+
const day = now.getDate();
|
|
154
|
+
const dayOfWeek = now.getDay(); // 0 = Sunday
|
|
155
|
+
// Check specific dates
|
|
156
|
+
if (month === 1 && day <= 7) {
|
|
157
|
+
return { name: "new-year", taglines: HOLIDAY_TAGLINES["new-year"] };
|
|
158
|
+
}
|
|
159
|
+
if (month === 10 && day >= 25 && day <= 31) {
|
|
160
|
+
return { name: "halloween", taglines: HOLIDAY_TAGLINES["halloween"] };
|
|
161
|
+
}
|
|
162
|
+
if (month === 12 && day >= 20 && day <= 26) {
|
|
163
|
+
return { name: "christmas", taglines: HOLIDAY_TAGLINES["christmas"] };
|
|
164
|
+
}
|
|
165
|
+
if (month === 11 && day >= 22 && day <= 28) {
|
|
166
|
+
return { name: "thanksgiving", taglines: HOLIDAY_TAGLINES["thanksgiving"] };
|
|
167
|
+
}
|
|
168
|
+
if (month === 7 && day >= 1 && day <= 4) {
|
|
169
|
+
return { name: "july-4", taglines: HOLIDAY_TAGLINES["july-4"] };
|
|
170
|
+
}
|
|
171
|
+
// Friday special (10% chance)
|
|
172
|
+
if (dayOfWeek === 5 && Math.random() < 0.1) {
|
|
173
|
+
return { name: "friday", taglines: HOLIDAY_TAGLINES["friday"] };
|
|
174
|
+
}
|
|
175
|
+
return null;
|
|
176
|
+
}
|
|
177
|
+
// ============================================================================
|
|
178
|
+
// BANNER FUNCTIONS
|
|
179
|
+
// ============================================================================
|
|
180
|
+
function pickRandom(arr) {
|
|
181
|
+
return arr[Math.floor(Math.random() * arr.length)];
|
|
182
|
+
}
|
|
183
|
+
export function getTagline() {
|
|
184
|
+
const holiday = getActiveHoliday();
|
|
185
|
+
if (holiday) {
|
|
186
|
+
return pickRandom(holiday.taglines);
|
|
187
|
+
}
|
|
188
|
+
return pickRandom(TAGLINES);
|
|
189
|
+
}
|
|
190
|
+
export function getBannerArt() {
|
|
191
|
+
const width = getTerminalWidth();
|
|
192
|
+
if (width >= 50) {
|
|
193
|
+
return BANNER_ART;
|
|
194
|
+
}
|
|
195
|
+
else if (width >= 40) {
|
|
196
|
+
return BANNER_MEDIUM;
|
|
197
|
+
}
|
|
198
|
+
else if (width >= 35) {
|
|
199
|
+
return BANNER_COMPACT;
|
|
200
|
+
}
|
|
201
|
+
return [BANNER_MINIMAL];
|
|
202
|
+
}
|
|
203
|
+
// Color a character based on what it is (Clawdbot-style)
|
|
204
|
+
function colorChar(ch) {
|
|
205
|
+
if (ch === "█")
|
|
206
|
+
return chalk.hex(colors.accent)(ch); // Bright gold for solid blocks
|
|
207
|
+
if (ch === "░")
|
|
208
|
+
return chalk.hex(colors.accentDim)(ch); // Dim gold for shade
|
|
209
|
+
if (ch === "▀" || ch === "▄")
|
|
210
|
+
return chalk.hex(colors.accentSoft)(ch); // Orange for half-blocks
|
|
211
|
+
// Box-drawing characters (╗╔═║╚╝╣) → gold accent
|
|
212
|
+
if ("╗╔═║╚╝╣╩╦╠╬".includes(ch))
|
|
213
|
+
return chalk.hex(colors.accent)(ch);
|
|
214
|
+
if (ch === "🚀")
|
|
215
|
+
return ch; // Keep emoji as-is
|
|
216
|
+
return chalk.hex(colors.dim)(ch); // Dim for other chars
|
|
217
|
+
}
|
|
218
|
+
// Color a whole line of ASCII art
|
|
219
|
+
function colorLine(line) {
|
|
220
|
+
// Special handling for the tagline/slogan line
|
|
221
|
+
if (line.includes("🚀") && (line.includes("SHIP") || line.includes("JFL") || line.includes("LAUNCH"))) {
|
|
222
|
+
// Extract the text between rockets
|
|
223
|
+
const match = line.match(/^(\s*)(🚀\s*)(.+?)(\s*🚀)(\s*)$/);
|
|
224
|
+
if (match) {
|
|
225
|
+
const [, leadingSpace, leftRocket, text, rightRocket, trailingSpace] = match;
|
|
226
|
+
return (chalk.hex(colors.dim)(leadingSpace) +
|
|
227
|
+
leftRocket +
|
|
228
|
+
chalk.hex(colors.accentSoft)(text) +
|
|
229
|
+
rightRocket +
|
|
230
|
+
chalk.hex(colors.dim)(trailingSpace));
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
// Color each character
|
|
234
|
+
return Array.from(line).map(colorChar).join("");
|
|
235
|
+
}
|
|
236
|
+
export function renderBanner(options = {}) {
|
|
237
|
+
const { version, tagline = getTagline(), showTagline = true, centered = true, } = options;
|
|
238
|
+
const width = getTerminalWidth();
|
|
239
|
+
const lines = [];
|
|
240
|
+
// Get appropriate banner art
|
|
241
|
+
const artLines = getBannerArt();
|
|
242
|
+
const isMinimal = artLines.length === 1 && artLines[0] === BANNER_MINIMAL;
|
|
243
|
+
if (isMinimal) {
|
|
244
|
+
// Minimal banner for very narrow terminals
|
|
245
|
+
const versionStr = version ? ` v${version}` : "";
|
|
246
|
+
lines.push("");
|
|
247
|
+
lines.push(theme.accentBold(`🚀 JFL${versionStr}`) + theme.dim(" — Just Fucking Launch"));
|
|
248
|
+
if (showTagline) {
|
|
249
|
+
lines.push(theme.soft(`"${tagline}"`));
|
|
250
|
+
}
|
|
251
|
+
lines.push("");
|
|
252
|
+
}
|
|
253
|
+
else {
|
|
254
|
+
// Full ASCII art banner
|
|
255
|
+
lines.push("");
|
|
256
|
+
// Color and center each line
|
|
257
|
+
for (const line of artLines) {
|
|
258
|
+
const coloredLine = colorLine(line);
|
|
259
|
+
lines.push(centered ? center(coloredLine, width) : coloredLine);
|
|
260
|
+
}
|
|
261
|
+
lines.push("");
|
|
262
|
+
// Version line (smaller, below art)
|
|
263
|
+
if (version) {
|
|
264
|
+
const versionLine = theme.dim(`v${version}`);
|
|
265
|
+
lines.push(centered ? center(versionLine, width) : versionLine);
|
|
266
|
+
}
|
|
267
|
+
// Tagline
|
|
268
|
+
if (showTagline) {
|
|
269
|
+
const taglineFormatted = theme.soft(`"${tagline}"`);
|
|
270
|
+
lines.push(centered ? center(taglineFormatted, width) : taglineFormatted);
|
|
271
|
+
}
|
|
272
|
+
lines.push("");
|
|
273
|
+
}
|
|
274
|
+
return lines.join("\n");
|
|
275
|
+
}
|
|
276
|
+
// ============================================================================
|
|
277
|
+
// QUICK ACCESS
|
|
278
|
+
// ============================================================================
|
|
279
|
+
export function showBanner(version) {
|
|
280
|
+
console.log(renderBanner({ version }));
|
|
281
|
+
}
|
|
282
|
+
// One-liner status banner (for after commands)
|
|
283
|
+
export function showStatus(message) {
|
|
284
|
+
console.log(`\n${theme.accent("🚀")} ${theme.text(message)}\n`);
|
|
285
|
+
}
|
|
286
|
+
// Section header
|
|
287
|
+
export function showSection(title) {
|
|
288
|
+
const width = Math.min(getTerminalWidth(), 60);
|
|
289
|
+
console.log("");
|
|
290
|
+
console.log(theme.accentBold(title));
|
|
291
|
+
console.log(theme.dimmer("─".repeat(width)));
|
|
292
|
+
}
|
|
293
|
+
// ============================================================================
|
|
294
|
+
// HOW IT WORKS NOTICE (Clawdbot-style)
|
|
295
|
+
// ============================================================================
|
|
296
|
+
export function showHowItWorksNotice() {
|
|
297
|
+
const width = Math.min(getTerminalWidth(), 70);
|
|
298
|
+
console.log("");
|
|
299
|
+
console.log(theme.accentBold("How JFL Works"));
|
|
300
|
+
console.log(theme.dimmer("─".repeat(width)));
|
|
301
|
+
console.log("");
|
|
302
|
+
console.log(theme.text("JFL creates isolated work sessions that sync automatically:"));
|
|
303
|
+
console.log("");
|
|
304
|
+
console.log(theme.success(" ✓") + theme.text(" Your session runs in its own workspace (git worktree)"));
|
|
305
|
+
console.log(theme.success(" ✓") + theme.text(" Changes auto-commit every 2 minutes (never lose work)"));
|
|
306
|
+
console.log(theme.success(" ✓") + theme.text(" Context compounds across sessions (journal + knowledge docs)"));
|
|
307
|
+
console.log(theme.success(" ✓") + theme.text(" Multiple teammates can work in parallel (see who's active)"));
|
|
308
|
+
console.log(theme.success(" ✓") + theme.text(" Works with any AI (Claude Code, Clawdbot, Aider, etc.)"));
|
|
309
|
+
console.log("");
|
|
310
|
+
console.log(theme.dimmer("Your AI agent can:"));
|
|
311
|
+
console.log(theme.dim(" • Read/write files in your project"));
|
|
312
|
+
console.log(theme.dim(" • Run git commands (isolated to your session)"));
|
|
313
|
+
console.log(theme.dim(" • Execute bash commands"));
|
|
314
|
+
console.log(theme.dim(" • Search and modify code"));
|
|
315
|
+
console.log("");
|
|
316
|
+
console.log(theme.dimmer("Safety features:"));
|
|
317
|
+
console.log(theme.dim(" • All work happens in isolated branches"));
|
|
318
|
+
console.log(theme.dim(" • Auto-commit backs up constantly"));
|
|
319
|
+
console.log(theme.dim(" • Easy to review changes before merging"));
|
|
320
|
+
console.log(theme.dim(" • Team presence shows overlap warnings"));
|
|
321
|
+
console.log("");
|
|
322
|
+
}
|
|
323
|
+
//# sourceMappingURL=banner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"banner.js","sourceRoot":"","sources":["../../src/ui/banner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA"}
|
package/dist/ui/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JFL Prompts - Wrapper around @clack/prompts with JFL styling
|
|
3
|
+
*/
|
|
4
|
+
import * as clack from "@clack/prompts";
|
|
5
|
+
export declare function intro(version?: string): void;
|
|
6
|
+
export declare function outro(message: string): void;
|
|
7
|
+
export declare function note(message: string, title?: string): void;
|
|
8
|
+
export declare function cancel(message?: string): void;
|
|
9
|
+
export declare function spinner(): ReturnType<typeof clack.spinner>;
|
|
10
|
+
export declare function text(opts: {
|
|
11
|
+
message: string;
|
|
12
|
+
placeholder?: string;
|
|
13
|
+
defaultValue?: string;
|
|
14
|
+
validate?: (value: string) => string | undefined;
|
|
15
|
+
}): Promise<string | symbol>;
|
|
16
|
+
export declare function select<T>(opts: {
|
|
17
|
+
message: string;
|
|
18
|
+
options: {
|
|
19
|
+
value: T;
|
|
20
|
+
label: string;
|
|
21
|
+
hint?: string;
|
|
22
|
+
}[];
|
|
23
|
+
initialValue?: T;
|
|
24
|
+
}): Promise<T | symbol>;
|
|
25
|
+
export declare function confirm(opts: {
|
|
26
|
+
message: string;
|
|
27
|
+
initialValue?: boolean;
|
|
28
|
+
}): Promise<boolean | symbol>;
|
|
29
|
+
export declare function multiselect<T>(opts: {
|
|
30
|
+
message: string;
|
|
31
|
+
options: {
|
|
32
|
+
value: T;
|
|
33
|
+
label: string;
|
|
34
|
+
hint?: string;
|
|
35
|
+
}[];
|
|
36
|
+
required?: boolean;
|
|
37
|
+
initialValues?: T[];
|
|
38
|
+
}): Promise<T[] | symbol>;
|
|
39
|
+
export declare function password(opts: {
|
|
40
|
+
message: string;
|
|
41
|
+
mask?: string;
|
|
42
|
+
validate?: (value: string) => string | undefined;
|
|
43
|
+
}): Promise<string | symbol>;
|
|
44
|
+
export declare function isCancel(value: unknown): value is symbol;
|
|
45
|
+
export declare function log(message: string): void;
|
|
46
|
+
export declare function logStep(message: string): void;
|
|
47
|
+
export declare function logSuccess(message: string): void;
|
|
48
|
+
export declare function logWarning(message: string): void;
|
|
49
|
+
export declare function logError(message: string): void;
|
|
50
|
+
export declare function logInfo(message: string): void;
|
|
51
|
+
export { clack };
|
|
52
|
+
//# sourceMappingURL=prompts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/ui/prompts.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAA;AAQvC,wBAAgB,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAE5C;AAED,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE3C;AAED,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAE1D;AAED,wBAAgB,MAAM,CAAC,OAAO,GAAE,MAAoB,GAAG,IAAI,CAE1D;AAGD,wBAAgB,OAAO,IAAI,UAAU,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,CAE1D;AAMD,wBAAsB,IAAI,CAAC,IAAI,EAAE;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAA;CACjD,GAAG,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,CAE3B;AAED,wBAAsB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE;IACpC,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE;QAAE,KAAK,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IACrD,YAAY,CAAC,EAAE,CAAC,CAAA;CACjB,GAAG,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,CAEtB;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,GAAG,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,CAE5B;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE;IACzC,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE;QAAE,KAAK,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IACrD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,aAAa,CAAC,EAAE,CAAC,EAAE,CAAA;CACpB,GAAG,OAAO,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAExB;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE;IACnC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAA;CACjD,GAAG,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,CAE3B;AAMD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAExD;AAED,wBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEzC;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE7C;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEhD;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEhD;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE9C;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE7C;AAMD,OAAO,EAAE,KAAK,EAAE,CAAA"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JFL Prompts - Wrapper around @clack/prompts with JFL styling
|
|
3
|
+
*/
|
|
4
|
+
import * as clack from "@clack/prompts";
|
|
5
|
+
import { theme } from "./theme.js";
|
|
6
|
+
import { renderBanner } from "./banner.js";
|
|
7
|
+
// ============================================================================
|
|
8
|
+
// STYLED WRAPPERS
|
|
9
|
+
// ============================================================================
|
|
10
|
+
export function intro(version) {
|
|
11
|
+
console.log(renderBanner({ version }));
|
|
12
|
+
}
|
|
13
|
+
export function outro(message) {
|
|
14
|
+
clack.outro(theme.success("✓") + " " + theme.text(message));
|
|
15
|
+
}
|
|
16
|
+
export function note(message, title) {
|
|
17
|
+
clack.note(message, title);
|
|
18
|
+
}
|
|
19
|
+
export function cancel(message = "Cancelled") {
|
|
20
|
+
clack.cancel(theme.dim(message));
|
|
21
|
+
}
|
|
22
|
+
// Spinner with JFL styling
|
|
23
|
+
export function spinner() {
|
|
24
|
+
return clack.spinner();
|
|
25
|
+
}
|
|
26
|
+
// ============================================================================
|
|
27
|
+
// PROMPTS - Re-export with simpler types
|
|
28
|
+
// ============================================================================
|
|
29
|
+
export async function text(opts) {
|
|
30
|
+
return clack.text(opts);
|
|
31
|
+
}
|
|
32
|
+
export async function select(opts) {
|
|
33
|
+
return clack.select(opts);
|
|
34
|
+
}
|
|
35
|
+
export async function confirm(opts) {
|
|
36
|
+
return clack.confirm(opts);
|
|
37
|
+
}
|
|
38
|
+
export async function multiselect(opts) {
|
|
39
|
+
return clack.multiselect(opts);
|
|
40
|
+
}
|
|
41
|
+
export async function password(opts) {
|
|
42
|
+
return clack.password(opts);
|
|
43
|
+
}
|
|
44
|
+
// ============================================================================
|
|
45
|
+
// UTILITIES
|
|
46
|
+
// ============================================================================
|
|
47
|
+
export function isCancel(value) {
|
|
48
|
+
return clack.isCancel(value);
|
|
49
|
+
}
|
|
50
|
+
export function log(message) {
|
|
51
|
+
clack.log.message(message);
|
|
52
|
+
}
|
|
53
|
+
export function logStep(message) {
|
|
54
|
+
clack.log.step(message);
|
|
55
|
+
}
|
|
56
|
+
export function logSuccess(message) {
|
|
57
|
+
clack.log.success(message);
|
|
58
|
+
}
|
|
59
|
+
export function logWarning(message) {
|
|
60
|
+
clack.log.warn(message);
|
|
61
|
+
}
|
|
62
|
+
export function logError(message) {
|
|
63
|
+
clack.log.error(message);
|
|
64
|
+
}
|
|
65
|
+
export function logInfo(message) {
|
|
66
|
+
clack.log.info(message);
|
|
67
|
+
}
|
|
68
|
+
// ============================================================================
|
|
69
|
+
// RE-EXPORT clack for advanced usage
|
|
70
|
+
// ============================================================================
|
|
71
|
+
export { clack };
|
|
72
|
+
//# sourceMappingURL=prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/ui/prompts.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E,MAAM,UAAU,KAAK,CAAC,OAAgB;IACpC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;AACxC,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,OAAe;IACnC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;AAC7D,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,OAAe,EAAE,KAAc;IAClD,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;AAC5B,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,UAAkB,WAAW;IAClD,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;AAClC,CAAC;AAED,2BAA2B;AAC3B,MAAM,UAAU,OAAO;IACrB,OAAO,KAAK,CAAC,OAAO,EAAE,CAAA;AACxB,CAAC;AAED,+EAA+E;AAC/E,yCAAyC;AACzC,+EAA+E;AAE/E,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAK1B;IACC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAAI,IAI/B;IACC,OAAO,KAAK,CAAC,MAAM,CAAC,IAA0C,CAAwB,CAAA;AACxF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAG7B;IACC,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AAC5B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAI,IAKpC;IACC,OAAO,KAAK,CAAC,WAAW,CAAC,IAA+C,CAA0B,CAAA;AACpG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAI9B;IACC,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;AAC7B,CAAC;AAED,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,OAAe;IACjC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;AAC5B,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,OAAe;IACrC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AACzB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;AAC5B,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AACzB,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAe;IACtC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;AAC1B,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,OAAe;IACrC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AACzB,CAAC;AAED,+EAA+E;AAC/E,qCAAqC;AACrC,+EAA+E;AAE/E,OAAO,EAAE,KAAK,EAAE,CAAA"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JFL Theme System
|
|
3
|
+
* Consistent colors and styling across the CLI
|
|
4
|
+
*/
|
|
5
|
+
export declare const colors: {
|
|
6
|
+
accent: string;
|
|
7
|
+
accentSoft: string;
|
|
8
|
+
accentDim: string;
|
|
9
|
+
text: string;
|
|
10
|
+
textSoft: string;
|
|
11
|
+
dim: string;
|
|
12
|
+
dimmer: string;
|
|
13
|
+
success: string;
|
|
14
|
+
error: string;
|
|
15
|
+
warning: string;
|
|
16
|
+
info: string;
|
|
17
|
+
rocket: string;
|
|
18
|
+
ship: string;
|
|
19
|
+
code: string;
|
|
20
|
+
bgDark: string;
|
|
21
|
+
bgCard: string;
|
|
22
|
+
};
|
|
23
|
+
export declare const theme: {
|
|
24
|
+
text: (s: string) => string;
|
|
25
|
+
soft: (s: string) => string;
|
|
26
|
+
dim: (s: string) => string;
|
|
27
|
+
dimmer: (s: string) => string;
|
|
28
|
+
accent: (s: string) => string;
|
|
29
|
+
accentSoft: (s: string) => string;
|
|
30
|
+
accentBold: (s: string) => string;
|
|
31
|
+
success: (s: string) => string;
|
|
32
|
+
error: (s: string) => string;
|
|
33
|
+
warning: (s: string) => string;
|
|
34
|
+
info: (s: string) => string;
|
|
35
|
+
rocket: (s: string) => string;
|
|
36
|
+
ship: (s: string) => string;
|
|
37
|
+
code: (s: string) => string;
|
|
38
|
+
bold: import("chalk").ChalkInstance;
|
|
39
|
+
italic: import("chalk").ChalkInstance;
|
|
40
|
+
underline: import("chalk").ChalkInstance;
|
|
41
|
+
check: string;
|
|
42
|
+
cross: string;
|
|
43
|
+
dot: string;
|
|
44
|
+
arrow: string;
|
|
45
|
+
};
|
|
46
|
+
export declare const symbols: {
|
|
47
|
+
success: string;
|
|
48
|
+
error: string;
|
|
49
|
+
warning: string;
|
|
50
|
+
info: string;
|
|
51
|
+
spinner: string[];
|
|
52
|
+
dots: string[];
|
|
53
|
+
bullet: string;
|
|
54
|
+
arrow: string;
|
|
55
|
+
arrowRight: string;
|
|
56
|
+
line: string;
|
|
57
|
+
corner: string;
|
|
58
|
+
tee: string;
|
|
59
|
+
pipe: string;
|
|
60
|
+
rocket: string;
|
|
61
|
+
ship: string;
|
|
62
|
+
fire: string;
|
|
63
|
+
star: string;
|
|
64
|
+
sparkle: string;
|
|
65
|
+
};
|
|
66
|
+
export declare const box: {
|
|
67
|
+
topLeft: string;
|
|
68
|
+
topRight: string;
|
|
69
|
+
bottomLeft: string;
|
|
70
|
+
bottomRight: string;
|
|
71
|
+
horizontal: string;
|
|
72
|
+
vertical: string;
|
|
73
|
+
teeRight: string;
|
|
74
|
+
teeLeft: string;
|
|
75
|
+
heavyHorizontal: string;
|
|
76
|
+
heavyVertical: string;
|
|
77
|
+
};
|
|
78
|
+
export declare function drawBox(content: string[], width?: number): string;
|
|
79
|
+
export declare function getTerminalWidth(): number;
|
|
80
|
+
export declare function center(text: string, width?: number): string;
|
|
81
|
+
export declare function hr(char?: string, width?: number): string;
|
|
82
|
+
//# sourceMappingURL=theme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/ui/theme.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;CA0BlB,CAAA;AAMD,eAAO,MAAM,KAAK;cAEN,MAAM;cACN,MAAM;aACP,MAAM;gBACH,MAAM;gBAGN,MAAM;oBACF,MAAM;oBACN,MAAM;iBAGT,MAAM;eACR,MAAM;iBACJ,MAAM;cACT,MAAM;gBAGJ,MAAM;cACR,MAAM;cACN,MAAM;;;;;;;;CAYjB,CAAA;AAMD,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;CA0BnB,CAAA;AAMD,eAAO,MAAM,GAAG;;;;;;;;;;;CAaf,CAAA;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAejE;AAYD,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAGD,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAK3D;AAGD,wBAAgB,EAAE,CAAC,IAAI,SAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAGrD"}
|