@nclamvn/vibecode-cli 1.6.0 → 1.8.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.
Files changed (70) hide show
  1. package/bin/vibecode.js +101 -1
  2. package/docs-site/README.md +41 -0
  3. package/docs-site/blog/2019-05-28-first-blog-post.md +12 -0
  4. package/docs-site/blog/2019-05-29-long-blog-post.md +44 -0
  5. package/docs-site/blog/2021-08-01-mdx-blog-post.mdx +24 -0
  6. package/docs-site/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg +0 -0
  7. package/docs-site/blog/2021-08-26-welcome/index.md +29 -0
  8. package/docs-site/blog/authors.yml +25 -0
  9. package/docs-site/blog/tags.yml +19 -0
  10. package/docs-site/docs/commands/agent.md +162 -0
  11. package/docs-site/docs/commands/assist.md +71 -0
  12. package/docs-site/docs/commands/build.md +53 -0
  13. package/docs-site/docs/commands/config.md +30 -0
  14. package/docs-site/docs/commands/debug.md +173 -0
  15. package/docs-site/docs/commands/doctor.md +34 -0
  16. package/docs-site/docs/commands/go.md +128 -0
  17. package/docs-site/docs/commands/index.md +79 -0
  18. package/docs-site/docs/commands/init.md +42 -0
  19. package/docs-site/docs/commands/learn.md +82 -0
  20. package/docs-site/docs/commands/lock.md +33 -0
  21. package/docs-site/docs/commands/plan.md +29 -0
  22. package/docs-site/docs/commands/review.md +31 -0
  23. package/docs-site/docs/commands/snapshot.md +34 -0
  24. package/docs-site/docs/commands/start.md +32 -0
  25. package/docs-site/docs/commands/status.md +37 -0
  26. package/docs-site/docs/commands/undo.md +83 -0
  27. package/docs-site/docs/configuration.md +72 -0
  28. package/docs-site/docs/faq.md +83 -0
  29. package/docs-site/docs/getting-started.md +119 -0
  30. package/docs-site/docs/guides/agent-mode.md +94 -0
  31. package/docs-site/docs/guides/debug-mode.md +83 -0
  32. package/docs-site/docs/guides/magic-mode.md +107 -0
  33. package/docs-site/docs/installation.md +98 -0
  34. package/docs-site/docs/intro.md +67 -0
  35. package/docs-site/docusaurus.config.ts +141 -0
  36. package/docs-site/package-lock.json +18039 -0
  37. package/docs-site/package.json +48 -0
  38. package/docs-site/sidebars.ts +70 -0
  39. package/docs-site/src/components/HomepageFeatures/index.tsx +72 -0
  40. package/docs-site/src/components/HomepageFeatures/styles.module.css +16 -0
  41. package/docs-site/src/css/custom.css +30 -0
  42. package/docs-site/src/pages/index.module.css +23 -0
  43. package/docs-site/src/pages/index.tsx +44 -0
  44. package/docs-site/src/pages/markdown-page.md +7 -0
  45. package/docs-site/src/theme/Footer/index.tsx +127 -0
  46. package/docs-site/src/theme/Footer/styles.module.css +285 -0
  47. package/docs-site/static/.nojekyll +0 -0
  48. package/docs-site/static/img/docusaurus-social-card.jpg +0 -0
  49. package/docs-site/static/img/docusaurus.png +0 -0
  50. package/docs-site/static/img/favicon.ico +0 -0
  51. package/docs-site/static/img/logo.svg +1 -0
  52. package/docs-site/static/img/undraw_docusaurus_mountain.svg +171 -0
  53. package/docs-site/static/img/undraw_docusaurus_react.svg +170 -0
  54. package/docs-site/static/img/undraw_docusaurus_tree.svg +40 -0
  55. package/docs-site/tsconfig.json +8 -0
  56. package/package.json +2 -1
  57. package/src/commands/ask.js +230 -0
  58. package/src/commands/debug.js +109 -1
  59. package/src/commands/docs.js +167 -0
  60. package/src/commands/git.js +1024 -0
  61. package/src/commands/migrate.js +341 -0
  62. package/src/commands/refactor.js +205 -0
  63. package/src/commands/review.js +126 -1
  64. package/src/commands/security.js +229 -0
  65. package/src/commands/shell.js +486 -0
  66. package/src/commands/test.js +194 -0
  67. package/src/commands/watch.js +556 -0
  68. package/src/debug/image-analyzer.js +304 -0
  69. package/src/index.js +27 -0
  70. package/src/utils/image.js +222 -0
@@ -0,0 +1,48 @@
1
+ {
2
+ "name": "docs-site",
3
+ "version": "0.0.0",
4
+ "private": true,
5
+ "scripts": {
6
+ "docusaurus": "docusaurus",
7
+ "start": "docusaurus start",
8
+ "build": "docusaurus build",
9
+ "swizzle": "docusaurus swizzle",
10
+ "deploy": "docusaurus deploy",
11
+ "clear": "docusaurus clear",
12
+ "serve": "docusaurus serve",
13
+ "write-translations": "docusaurus write-translations",
14
+ "write-heading-ids": "docusaurus write-heading-ids",
15
+ "typecheck": "tsc"
16
+ },
17
+ "dependencies": {
18
+ "@docusaurus/core": "3.9.2",
19
+ "@docusaurus/preset-classic": "3.9.2",
20
+ "@mdx-js/react": "^3.0.0",
21
+ "clsx": "^2.0.0",
22
+ "lucide-react": "^0.562.0",
23
+ "prism-react-renderer": "^2.3.0",
24
+ "react": "^19.0.0",
25
+ "react-dom": "^19.0.0"
26
+ },
27
+ "devDependencies": {
28
+ "@docusaurus/module-type-aliases": "3.9.2",
29
+ "@docusaurus/tsconfig": "3.9.2",
30
+ "@docusaurus/types": "3.9.2",
31
+ "typescript": "~5.6.2"
32
+ },
33
+ "browserslist": {
34
+ "production": [
35
+ ">0.5%",
36
+ "not dead",
37
+ "not op_mini all"
38
+ ],
39
+ "development": [
40
+ "last 3 chrome version",
41
+ "last 3 firefox version",
42
+ "last 5 safari version"
43
+ ]
44
+ },
45
+ "engines": {
46
+ "node": ">=20.0"
47
+ }
48
+ }
@@ -0,0 +1,70 @@
1
+ import type {SidebarsConfig} from '@docusaurus/plugin-content-docs';
2
+
3
+ const sidebars: SidebarsConfig = {
4
+ docsSidebar: [
5
+ 'intro',
6
+ 'getting-started',
7
+ 'installation',
8
+ {
9
+ type: 'category',
10
+ label: 'Commands',
11
+ collapsed: false,
12
+ items: [
13
+ 'commands/index',
14
+ {
15
+ type: 'category',
16
+ label: 'Workflow',
17
+ items: [
18
+ 'commands/init',
19
+ 'commands/start',
20
+ 'commands/status',
21
+ 'commands/lock',
22
+ 'commands/doctor',
23
+ ],
24
+ },
25
+ {
26
+ type: 'category',
27
+ label: 'Build',
28
+ items: [
29
+ 'commands/plan',
30
+ 'commands/build',
31
+ 'commands/review',
32
+ 'commands/snapshot',
33
+ 'commands/config',
34
+ ],
35
+ },
36
+ {
37
+ type: 'category',
38
+ label: 'Power Features',
39
+ items: [
40
+ 'commands/go',
41
+ 'commands/agent',
42
+ 'commands/debug',
43
+ 'commands/assist',
44
+ ],
45
+ },
46
+ {
47
+ type: 'category',
48
+ label: 'Polish',
49
+ items: [
50
+ 'commands/undo',
51
+ 'commands/learn',
52
+ ],
53
+ },
54
+ ],
55
+ },
56
+ {
57
+ type: 'category',
58
+ label: 'Guides',
59
+ items: [
60
+ 'guides/magic-mode',
61
+ 'guides/agent-mode',
62
+ 'guides/debug-mode',
63
+ ],
64
+ },
65
+ 'configuration',
66
+ 'faq',
67
+ ],
68
+ };
69
+
70
+ export default sidebars;
@@ -0,0 +1,72 @@
1
+ import type {ReactNode} from 'react';
2
+ import clsx from 'clsx';
3
+ import Heading from '@theme/Heading';
4
+ import { Wand2, Bot, Search } from 'lucide-react';
5
+ import styles from './styles.module.css';
6
+
7
+ type FeatureItem = {
8
+ title: string;
9
+ Icon: React.ComponentType<{size?: number; className?: string}>;
10
+ description: ReactNode;
11
+ };
12
+
13
+ const FeatureList: FeatureItem[] = [
14
+ {
15
+ title: 'Magic Mode',
16
+ Icon: Wand2,
17
+ description: (
18
+ <>
19
+ One command to build an entire project. Just describe what you want and
20
+ Vibecode handles requirements, architecture, and implementation.
21
+ </>
22
+ ),
23
+ },
24
+ {
25
+ title: 'Agent Mode',
26
+ Icon: Bot,
27
+ description: (
28
+ <>
29
+ Build complex multi-module systems autonomously. Self-healing capabilities
30
+ automatically fix errors and retry failed builds.
31
+ </>
32
+ ),
33
+ },
34
+ {
35
+ title: 'Debug Mode',
36
+ Icon: Search,
37
+ description: (
38
+ <>
39
+ Intelligent 9-step debugging protocol. Analyze errors, generate hypotheses,
40
+ apply fixes, and learn from solutions.
41
+ </>
42
+ ),
43
+ },
44
+ ];
45
+
46
+ function Feature({title, Icon, description}: FeatureItem) {
47
+ return (
48
+ <div className={clsx('col col--4')}>
49
+ <div className="text--center">
50
+ <Icon size={64} className={styles.featureIcon} />
51
+ </div>
52
+ <div className="text--center padding-horiz--md">
53
+ <Heading as="h3">{title}</Heading>
54
+ <p>{description}</p>
55
+ </div>
56
+ </div>
57
+ );
58
+ }
59
+
60
+ export default function HomepageFeatures(): ReactNode {
61
+ return (
62
+ <section className={styles.features}>
63
+ <div className="container">
64
+ <div className="row">
65
+ {FeatureList.map((props, idx) => (
66
+ <Feature key={idx} {...props} />
67
+ ))}
68
+ </div>
69
+ </div>
70
+ </section>
71
+ );
72
+ }
@@ -0,0 +1,16 @@
1
+ .features {
2
+ display: flex;
3
+ align-items: center;
4
+ padding: 2rem 0;
5
+ width: 100%;
6
+ }
7
+
8
+ .featureSvg {
9
+ height: 200px;
10
+ width: 200px;
11
+ }
12
+
13
+ .featureIcon {
14
+ color: var(--ifm-color-primary);
15
+ margin-bottom: 1rem;
16
+ }
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Any CSS included here will be global. The classic template
3
+ * bundles Infima by default. Infima is a CSS framework designed to
4
+ * work well for content-centric websites.
5
+ */
6
+
7
+ /* You can override the default Infima variables here. */
8
+ :root {
9
+ --ifm-color-primary: #2e8555;
10
+ --ifm-color-primary-dark: #29784c;
11
+ --ifm-color-primary-darker: #277148;
12
+ --ifm-color-primary-darkest: #205d3b;
13
+ --ifm-color-primary-light: #33925d;
14
+ --ifm-color-primary-lighter: #359962;
15
+ --ifm-color-primary-lightest: #3cad6e;
16
+ --ifm-code-font-size: 95%;
17
+ --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1);
18
+ }
19
+
20
+ /* For readability concerns, you should choose a lighter palette in dark mode. */
21
+ [data-theme='dark'] {
22
+ --ifm-color-primary: #25c2a0;
23
+ --ifm-color-primary-dark: #21af90;
24
+ --ifm-color-primary-darker: #1fa588;
25
+ --ifm-color-primary-darkest: #1a8870;
26
+ --ifm-color-primary-light: #29d5b0;
27
+ --ifm-color-primary-lighter: #32d8b4;
28
+ --ifm-color-primary-lightest: #4fddbf;
29
+ --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3);
30
+ }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * CSS files with the .module.css suffix will be treated as CSS modules
3
+ * and scoped locally.
4
+ */
5
+
6
+ .heroBanner {
7
+ padding: 4rem 0;
8
+ text-align: center;
9
+ position: relative;
10
+ overflow: hidden;
11
+ }
12
+
13
+ @media screen and (max-width: 996px) {
14
+ .heroBanner {
15
+ padding: 2rem;
16
+ }
17
+ }
18
+
19
+ .buttons {
20
+ display: flex;
21
+ align-items: center;
22
+ justify-content: center;
23
+ }
@@ -0,0 +1,44 @@
1
+ import type {ReactNode} from 'react';
2
+ import clsx from 'clsx';
3
+ import Link from '@docusaurus/Link';
4
+ import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
5
+ import Layout from '@theme/Layout';
6
+ import HomepageFeatures from '@site/src/components/HomepageFeatures';
7
+ import Heading from '@theme/Heading';
8
+
9
+ import styles from './index.module.css';
10
+
11
+ function HomepageHeader() {
12
+ const {siteConfig} = useDocusaurusContext();
13
+ return (
14
+ <header className={clsx('hero hero--primary', styles.heroBanner)}>
15
+ <div className="container">
16
+ <Heading as="h1" className="hero__title">
17
+ {siteConfig.title}
18
+ </Heading>
19
+ <p className="hero__subtitle">{siteConfig.tagline}</p>
20
+ <div className={styles.buttons}>
21
+ <Link
22
+ className="button button--secondary button--lg"
23
+ to="/docs/intro">
24
+ Get Started
25
+ </Link>
26
+ </div>
27
+ </div>
28
+ </header>
29
+ );
30
+ }
31
+
32
+ export default function Home(): ReactNode {
33
+ const {siteConfig} = useDocusaurusContext();
34
+ return (
35
+ <Layout
36
+ title="AI-Assisted Development with Guardrails"
37
+ description="Build software faster with AI assistance while maintaining discipline and control. Magic Mode, Agent Mode, Debug Mode, and more.">
38
+ <HomepageHeader />
39
+ <main>
40
+ <HomepageFeatures />
41
+ </main>
42
+ </Layout>
43
+ );
44
+ }
@@ -0,0 +1,7 @@
1
+ ---
2
+ title: Markdown page example
3
+ ---
4
+
5
+ # Markdown page example
6
+
7
+ You don't need React to write simple standalone pages.
@@ -0,0 +1,127 @@
1
+ import React from 'react';
2
+ import Link from '@docusaurus/Link';
3
+ import { Github, Package, Terminal, Zap, Bot, Bug, BookOpen, Settings, HelpCircle, ArrowRight } from 'lucide-react';
4
+ import styles from './styles.module.css';
5
+
6
+ function Footer(): JSX.Element {
7
+ return (
8
+ <footer className={styles.footer}>
9
+ <div className={styles.gradientTop} />
10
+
11
+ <div className={styles.container}>
12
+ {/* Brand Section */}
13
+ <div className={styles.brandSection}>
14
+ <div className={styles.brand}>
15
+ <Terminal size={32} className={styles.brandIcon} />
16
+ <span className={styles.brandName}>Vibecode</span>
17
+ </div>
18
+ <p className={styles.brandTagline}>
19
+ Build software with discipline.<br />
20
+ AI coding with guardrails.
21
+ </p>
22
+ <div className={styles.socialLinks}>
23
+ <a
24
+ href="https://github.com/nclamvn/vibecode-cli"
25
+ target="_blank"
26
+ rel="noopener noreferrer"
27
+ className={styles.socialLink}
28
+ aria-label="GitHub"
29
+ >
30
+ <Github size={20} />
31
+ </a>
32
+ <a
33
+ href="https://www.npmjs.com/package/@nclamvn/vibecode-cli"
34
+ target="_blank"
35
+ rel="noopener noreferrer"
36
+ className={styles.socialLink}
37
+ aria-label="npm"
38
+ >
39
+ <Package size={20} />
40
+ </a>
41
+ </div>
42
+ </div>
43
+
44
+ {/* Links Grid */}
45
+ <div className={styles.linksGrid}>
46
+ {/* Getting Started */}
47
+ <div className={styles.linkColumn}>
48
+ <h4 className={styles.columnTitle}>
49
+ <BookOpen size={16} />
50
+ Getting Started
51
+ </h4>
52
+ <ul className={styles.linkList}>
53
+ <li><Link to="/docs/intro">Introduction</Link></li>
54
+ <li><Link to="/docs/getting-started">Quick Start</Link></li>
55
+ <li><Link to="/docs/installation">Installation</Link></li>
56
+ <li><Link to="/docs/configuration">Configuration</Link></li>
57
+ </ul>
58
+ </div>
59
+
60
+ {/* Core Features */}
61
+ <div className={styles.linkColumn}>
62
+ <h4 className={styles.columnTitle}>
63
+ <Zap size={16} />
64
+ Core Features
65
+ </h4>
66
+ <ul className={styles.linkList}>
67
+ <li><Link to="/docs/commands/go">Magic Mode</Link></li>
68
+ <li><Link to="/docs/commands/agent">Agent Mode</Link></li>
69
+ <li><Link to="/docs/commands/debug">Debug Mode</Link></li>
70
+ <li><Link to="/docs/commands/assist">Assist Mode</Link></li>
71
+ </ul>
72
+ </div>
73
+
74
+ {/* More Commands */}
75
+ <div className={styles.linkColumn}>
76
+ <h4 className={styles.columnTitle}>
77
+ <Terminal size={16} />
78
+ More Commands
79
+ </h4>
80
+ <ul className={styles.linkList}>
81
+ <li><Link to="/docs/commands/build">Build</Link></li>
82
+ <li><Link to="/docs/commands/undo">Undo/Rollback</Link></li>
83
+ <li><Link to="/docs/commands/learn">Learning</Link></li>
84
+ <li><Link to="/docs/commands">All Commands</Link></li>
85
+ </ul>
86
+ </div>
87
+
88
+ {/* Resources */}
89
+ <div className={styles.linkColumn}>
90
+ <h4 className={styles.columnTitle}>
91
+ <HelpCircle size={16} />
92
+ Resources
93
+ </h4>
94
+ <ul className={styles.linkList}>
95
+ <li><Link to="/docs/faq">FAQ</Link></li>
96
+ <li>
97
+ <a href="https://github.com/nclamvn/vibecode-cli/issues" target="_blank" rel="noopener noreferrer">
98
+ Report Issue
99
+ </a>
100
+ </li>
101
+ <li>
102
+ <a href="https://github.com/nclamvn/vibecode-cli" target="_blank" rel="noopener noreferrer">
103
+ Contribute
104
+ </a>
105
+ </li>
106
+ </ul>
107
+ </div>
108
+ </div>
109
+ </div>
110
+
111
+ {/* Bottom Bar */}
112
+ <div className={styles.bottomBar}>
113
+ <div className={styles.bottomContainer}>
114
+ <p className={styles.copyright}>
115
+ &copy; {new Date().getFullYear()} Vibecode. Open source under MIT License.
116
+ </p>
117
+ <div className={styles.installHint}>
118
+ <code>npm install -g @nclamvn/vibecode-cli</code>
119
+ <ArrowRight size={14} />
120
+ </div>
121
+ </div>
122
+ </div>
123
+ </footer>
124
+ );
125
+ }
126
+
127
+ export default React.memo(Footer);