@rahul05ranjan/dhruv-cli 0.0.0-development → 1.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/.github/labeler.yml +25 -26
- package/.github/workflows/ci.yml +1 -7
- package/.github/workflows/contribution.yml +1 -13
- package/.github/workflows/release-please.yml +29 -0
- package/CONTRIBUTING.md +0 -11
- package/README.md +1 -4
- package/dist/commands/explain.js +0 -2
- package/dist/commands/init.js +5 -10
- package/dist/core/ai.js +1 -3
- package/dist/index.js +1 -4
- package/docs/index.html +50 -8
- package/package.json +6 -8
- package/src/commands/explain.ts +0 -2
- package/src/commands/init.ts +5 -10
- package/src/core/ai.ts +2 -4
- package/src/index.ts +1 -4
- package/tsconfig.json +1 -1
- package/.eslintignore +0 -1
- package/.releaserc +0 -12
- package/CHANGELOG.md +0 -56
- package/node-fetch.d.ts +0 -4
package/.github/labeler.yml
CHANGED
|
@@ -1,27 +1,26 @@
|
|
|
1
1
|
# Automatically label PRs based on file paths or globs
|
|
2
|
-
|
|
3
|
-
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
- 'plugins/**'
|
|
2
|
+
'cli':
|
|
3
|
+
- 'src/**'
|
|
4
|
+
- 'bin/**'
|
|
5
|
+
'docs':
|
|
6
|
+
- 'docs/**'
|
|
7
|
+
- '**/*.md'
|
|
8
|
+
'ci':
|
|
9
|
+
- '.github/workflows/**'
|
|
10
|
+
- '.github/ISSUE_TEMPLATE/**'
|
|
11
|
+
- '.github/PULL_REQUEST_TEMPLATE.md'
|
|
12
|
+
- '.github/labeler.yml'
|
|
13
|
+
- '.github/auto_assign.yml'
|
|
14
|
+
- '.github/contribution.yml'
|
|
15
|
+
- '.github/stale.yml'
|
|
16
|
+
- '.github/release-please.yml'
|
|
17
|
+
- '.github/labeler.yml'
|
|
18
|
+
- '.github/auto_assign.yml'
|
|
19
|
+
- '.github/contribution.yml'
|
|
20
|
+
- '.github/stale.yml'
|
|
21
|
+
- '.github/release-please.yml'
|
|
22
|
+
'tests':
|
|
23
|
+
- 'tests/**'
|
|
24
|
+
- '**/*.test.*'
|
|
25
|
+
'plugins':
|
|
26
|
+
- 'plugins/**'
|
package/.github/workflows/ci.yml
CHANGED
|
@@ -17,7 +17,7 @@ jobs:
|
|
|
17
17
|
- name: Set up Node.js
|
|
18
18
|
uses: actions/setup-node@v4
|
|
19
19
|
with:
|
|
20
|
-
node-version: '
|
|
20
|
+
node-version: '18.x'
|
|
21
21
|
- name: Install dependencies
|
|
22
22
|
run: npm ci
|
|
23
23
|
- name: Lint
|
|
@@ -45,9 +45,3 @@ jobs:
|
|
|
45
45
|
files: |
|
|
46
46
|
dist/**
|
|
47
47
|
docs/**
|
|
48
|
-
- name: Release (semantic-release)
|
|
49
|
-
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
|
|
50
|
-
env:
|
|
51
|
-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
52
|
-
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
53
|
-
run: npx semantic-release
|
|
@@ -32,20 +32,8 @@ jobs:
|
|
|
32
32
|
run: npm test || echo "No tests yet"
|
|
33
33
|
|
|
34
34
|
pr-title:
|
|
35
|
-
if: github.event.pull_request.head.repo.full_name == github.repository
|
|
36
35
|
runs-on: ubuntu-latest
|
|
37
36
|
steps:
|
|
38
37
|
- uses: amannn/action-semantic-pull-request@v5
|
|
39
38
|
with:
|
|
40
|
-
types:
|
|
41
|
-
feat
|
|
42
|
-
fix
|
|
43
|
-
chore
|
|
44
|
-
docs
|
|
45
|
-
refactor
|
|
46
|
-
style
|
|
47
|
-
test
|
|
48
|
-
ci
|
|
49
|
-
githubBaseUrl: https://api.github.com
|
|
50
|
-
env:
|
|
51
|
-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
39
|
+
types: feat,fix,chore,docs,refactor,style,test,ci
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
name: Release Please
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
release-please:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
steps:
|
|
12
|
+
- uses: google-github-actions/release-please-action@v4
|
|
13
|
+
with:
|
|
14
|
+
release-type: node
|
|
15
|
+
- name: Checkout
|
|
16
|
+
uses: actions/checkout@v4
|
|
17
|
+
- name: Set up Node.js
|
|
18
|
+
uses: actions/setup-node@v4
|
|
19
|
+
with:
|
|
20
|
+
node-version: '18.x'
|
|
21
|
+
registry-url: 'https://npm.pkg.github.com/'
|
|
22
|
+
- name: Install dependencies
|
|
23
|
+
run: npm ci
|
|
24
|
+
- name: Build
|
|
25
|
+
run: npm run build
|
|
26
|
+
- name: Publish to GitHub Packages
|
|
27
|
+
run: npm publish
|
|
28
|
+
env:
|
|
29
|
+
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
package/CONTRIBUTING.md
CHANGED
|
@@ -41,17 +41,6 @@ Thank you for your interest in contributing! 🎉
|
|
|
41
41
|
|
|
42
42
|
## Commit Message Guidelines
|
|
43
43
|
- Use [Conventional Commits](https://www.conventionalcommits.org/) for commit messages.
|
|
44
|
-
- **Allowed PR title types:**
|
|
45
|
-
- feat
|
|
46
|
-
- fix
|
|
47
|
-
- chore
|
|
48
|
-
- docs
|
|
49
|
-
- refactor
|
|
50
|
-
- style
|
|
51
|
-
- test
|
|
52
|
-
- ci
|
|
53
|
-
- Example: `fix: update version to 1.1.3 and improve streaming response handling`
|
|
54
|
-
- PR titles are checked automatically in CI. See `.github/workflows/contribution.yml` for details.
|
|
55
44
|
|
|
56
45
|
## Code of Conduct
|
|
57
46
|
- Be respectful and inclusive. See [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md).
|
package/README.md
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
# Dhruv CLI
|
|
2
2
|
|
|
3
|
-
[📦 View on npm](https://www.npmjs.com/package/@rahul05ranjan/dhruv-cli)
|
|
4
3
|
[📖 View Documentation on GitHub Pages](https://rahul05ranjan.github.io/dhruv-cli/)
|
|
5
4
|
|
|
6
5
|
AI-powered CLI assistant for developers using Ollama.
|
|
@@ -23,11 +22,9 @@ AI-powered CLI assistant for developers using Ollama.
|
|
|
23
22
|
|
|
24
23
|
## 🛠️ Installation
|
|
25
24
|
```bash
|
|
26
|
-
npm install -g
|
|
25
|
+
npm install -g dhruv-cli
|
|
27
26
|
```
|
|
28
27
|
|
|
29
|
-
Or visit the npm page: https://www.npmjs.com/package/@rahul05ranjan/dhruv-cli
|
|
30
|
-
|
|
31
28
|
## 📝 Usage Examples
|
|
32
29
|
```bash
|
|
33
30
|
dhruv suggest "deploy react app to vercel"
|
package/dist/commands/explain.js
CHANGED
|
@@ -7,10 +7,8 @@ export async function explain(query) {
|
|
|
7
7
|
const config = loadConfig();
|
|
8
8
|
const spinner = ora('Thinking...').start();
|
|
9
9
|
let streamed = '';
|
|
10
|
-
const dhruvIntro = chalk.yellowBright('Dhruv CLI: Your AI-powered CLI assistant for developers using Ollama.\n');
|
|
11
10
|
try {
|
|
12
11
|
spinner.stop();
|
|
13
|
-
process.stdout.write(dhruvIntro); // Print Dhruv intro before explanation
|
|
14
12
|
process.stdout.write(chalk.green('Explanation: '));
|
|
15
13
|
await askOllama({
|
|
16
14
|
prompt: `Explain: ${query}`,
|
package/dist/commands/init.js
CHANGED
|
@@ -1,20 +1,15 @@
|
|
|
1
1
|
import inquirer from 'inquirer';
|
|
2
2
|
import { saveConfig, loadConfig } from '../config/config.js';
|
|
3
3
|
import chalk from 'chalk';
|
|
4
|
+
import { Ollama } from 'ollama';
|
|
4
5
|
export async function init() {
|
|
5
6
|
const current = loadConfig();
|
|
6
7
|
let modelChoices = [current.model];
|
|
7
8
|
try {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const res = await fetch('http://localhost:11434/api/tags');
|
|
13
|
-
if (res.ok) {
|
|
14
|
-
const data = (await res.json());
|
|
15
|
-
if (Array.isArray(data.models) && data.models.length > 0) {
|
|
16
|
-
modelChoices = data.models.map((m) => m.name);
|
|
17
|
-
}
|
|
9
|
+
const ollama = new Ollama();
|
|
10
|
+
const tags = await ollama.tags();
|
|
11
|
+
if (Array.isArray(tags) && tags.length > 0) {
|
|
12
|
+
modelChoices = tags.map(t => t.name);
|
|
18
13
|
}
|
|
19
14
|
}
|
|
20
15
|
catch {
|
package/dist/core/ai.js
CHANGED
|
@@ -20,9 +20,7 @@ export async function askOllama({ prompt, model, onToken }) {
|
|
|
20
20
|
try {
|
|
21
21
|
let result = '';
|
|
22
22
|
const ollama = new Ollama();
|
|
23
|
-
|
|
24
|
-
const iterator = await ollama.generate({ model: model || 'codellama', prompt, stream: true });
|
|
25
|
-
for await (const chunk of iterator) {
|
|
23
|
+
for await (const chunk of ollama.generate(model || 'codellama', prompt)) {
|
|
26
24
|
let token = '';
|
|
27
25
|
if (typeof chunk === 'object' && chunk !== null && 'response' in chunk) {
|
|
28
26
|
token = chunk.response;
|
package/dist/index.js
CHANGED
|
@@ -13,14 +13,11 @@ import { generate } from './commands/generate.js';
|
|
|
13
13
|
import { init } from './commands/init.js';
|
|
14
14
|
import { detectProjectType } from './utils/projectType.js';
|
|
15
15
|
import { menu } from './commands/menu.js';
|
|
16
|
-
import { createRequire } from 'module';
|
|
17
|
-
const require = createRequire(import.meta.url);
|
|
18
|
-
const pkg = require('../package.json');
|
|
19
16
|
const program = new Command();
|
|
20
17
|
program
|
|
21
18
|
.name('dhruv')
|
|
22
19
|
.description('AI-powered CLI assistant for developers using Ollama')
|
|
23
|
-
.version(
|
|
20
|
+
.version('1.0.0');
|
|
24
21
|
program
|
|
25
22
|
.command('explain <query>')
|
|
26
23
|
.description('Explain a concept or command')
|
package/docs/index.html
CHANGED
|
@@ -299,7 +299,6 @@
|
|
|
299
299
|
<a href="#usage">Usage</a>
|
|
300
300
|
<a href="#plugins">Plugins</a>
|
|
301
301
|
<a href="#community">Community</a>
|
|
302
|
-
<a href="https://www.npmjs.com/package/@rahul05ranjan/dhruv-cli" target="_blank">NPM</a>
|
|
303
302
|
</nav>
|
|
304
303
|
<div class="theme-toggle" id="themeToggle" title="Toggle dark/light mode">
|
|
305
304
|
<span id="themeIcon">🌙</span> <span id="themeLabel">Dark</span>
|
|
@@ -310,10 +309,7 @@
|
|
|
310
309
|
<img src="https://cdn.jsdelivr.net/gh/rahul05ranjan/dhruv-cli/docs/dhruv-favicon.png" alt="Dhruv CLI Logo" class="hero-logo" />
|
|
311
310
|
<div class="hero-title">Dhruv CLI</div>
|
|
312
311
|
<div class="hero-animated" id="animatedTagline"></div>
|
|
313
|
-
<button class="hero-install" onclick="copyInstall()" id="installBtn">npm install -g
|
|
314
|
-
<div style="margin-top:0.7em;">
|
|
315
|
-
<a href="https://www.npmjs.com/package/@rahul05ranjan/dhruv-cli" target="_blank" style="color:#eebf63;font-weight:bold;">View on npm</a>
|
|
316
|
-
</div>
|
|
312
|
+
<button class="hero-install" onclick="copyInstall()" id="installBtn">npm install -g dhruv-cli <span style='font-size:0.9em;' id='copyIcon'>📋</span></button>
|
|
317
313
|
<div class="badges">
|
|
318
314
|
<img src="https://img.shields.io/github/stars/rahul05ranjan/dhruv-cli?style=social" alt="GitHub stars">
|
|
319
315
|
<img src="https://img.shields.io/npm/v/dhruv-cli?color=blue&label=npm" alt="npm version">
|
|
@@ -321,10 +317,56 @@
|
|
|
321
317
|
<img src="https://img.shields.io/github/license/rahul05ranjan/dhruv-cli?color=green" alt="license">
|
|
322
318
|
</div>
|
|
323
319
|
</section>
|
|
320
|
+
<section class="terminal-demo" id="features">
|
|
321
|
+
<div class="terminal-bar">
|
|
322
|
+
<span class="term-dot red"></span>
|
|
323
|
+
<span class="term-dot yellow"></span>
|
|
324
|
+
<span class="term-dot green"></span>
|
|
325
|
+
<span style="margin-left:1em;color:#a1a6b4;font-size:1em;">dhruv@cli:~$</span>
|
|
326
|
+
</div>
|
|
327
|
+
<div class="terminal-content" id="terminalContent"></div>
|
|
328
|
+
<button class="copy-btn" onclick="copyTerminal()" id="copyTermBtn">Copy</button>
|
|
329
|
+
</section>
|
|
330
|
+
<div class="tabs">
|
|
331
|
+
<button class="tab active" data-tab="featuresTab">Features</button>
|
|
332
|
+
<button class="tab" data-tab="installTab">Install</button>
|
|
333
|
+
<button class="tab" data-tab="usageTab">Usage</button>
|
|
334
|
+
<button class="tab" data-tab="pluginsTab">Plugins</button>
|
|
335
|
+
<button class="tab" data-tab="communityTab">Community</button>
|
|
336
|
+
</div>
|
|
337
|
+
<section class="tab-content active" id="featuresTab">
|
|
338
|
+
<button class="collapsible">🧠 Smart Suggestions</button>
|
|
339
|
+
<div class="collapsible-content">
|
|
340
|
+
<ul>
|
|
341
|
+
<li>AI-powered suggestions, explanations, and fixes for any dev task.</li>
|
|
342
|
+
<li>Project context detection (Node, React, Python, etc.).</li>
|
|
343
|
+
</ul>
|
|
344
|
+
</div>
|
|
345
|
+
<button class="collapsible">🔍 Code Review & Security</button>
|
|
346
|
+
<div class="collapsible-content">
|
|
347
|
+
<ul>
|
|
348
|
+
<li>Review, optimize, and check your code for security issues with a single command.</li>
|
|
349
|
+
<li>Test/code generation for any file or project.</li>
|
|
350
|
+
</ul>
|
|
351
|
+
</div>
|
|
352
|
+
<button class="collapsible">⚡ Streaming & UX</button>
|
|
353
|
+
<div class="collapsible-content">
|
|
354
|
+
<ul>
|
|
355
|
+
<li>Streaming output, syntax highlighting, progress bars, colored errors, and interactive menus.</li>
|
|
356
|
+
<li>Beautiful, modern CLI design with theme support.</li>
|
|
357
|
+
</ul>
|
|
358
|
+
</div>
|
|
359
|
+
<button class="collapsible">🧩 Plugin System</button>
|
|
360
|
+
<div class="collapsible-content">
|
|
361
|
+
<ul>
|
|
362
|
+
<li>Drop ESM modules in <code>plugins/</code> to add new commands.</li>
|
|
363
|
+
<li>Fully extensible and open source.</li>
|
|
364
|
+
</ul>
|
|
365
|
+
</div>
|
|
366
|
+
</section>
|
|
324
367
|
<section class="tab-content" id="installTab">
|
|
325
368
|
<h2>Install</h2>
|
|
326
|
-
<pre><code>npm install -g
|
|
327
|
-
<p>Also available on <a href="https://www.npmjs.com/package/@rahul05ranjan/dhruv-cli" target="_blank">npm</a>.</p>
|
|
369
|
+
<pre><code>npm install -g dhruv-cli</code></pre>
|
|
328
370
|
<p>Requires <a href="https://nodejs.org/" target="_blank">Node.js</a> 18+ and <a href="https://ollama.com/" target="_blank">Ollama</a> for local AI models.</p>
|
|
329
371
|
</section>
|
|
330
372
|
<section class="tab-content" id="usageTab">
|
|
@@ -459,7 +501,7 @@ dhruv completion bash > dhruv-complete.sh</code></pre>
|
|
|
459
501
|
|
|
460
502
|
// Copy install command
|
|
461
503
|
function copyInstall() {
|
|
462
|
-
navigator.clipboard.writeText('npm install -g
|
|
504
|
+
navigator.clipboard.writeText('npm install -g dhruv-cli');
|
|
463
505
|
const btn = document.getElementById('installBtn');
|
|
464
506
|
const icon = document.getElementById('copyIcon');
|
|
465
507
|
icon.textContent = '✅';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rahul05ranjan/dhruv-cli",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "AI-powered CLI assistant for developers using Ollama",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai",
|
|
@@ -27,11 +27,10 @@
|
|
|
27
27
|
"chalk": "^5.3.0",
|
|
28
28
|
"cli-highlight": "^2.1.11",
|
|
29
29
|
"cli-progress": "^3.12.0",
|
|
30
|
-
"commander": "^
|
|
31
|
-
"inquirer": "^
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"ora": "^8.2.0"
|
|
30
|
+
"commander": "^11.0.0",
|
|
31
|
+
"inquirer": "^9.2.0",
|
|
32
|
+
"ollama": "^0.1.0",
|
|
33
|
+
"ora": "^7.0.1"
|
|
35
34
|
},
|
|
36
35
|
"devDependencies": {
|
|
37
36
|
"@eslint/js": "^8.57.1",
|
|
@@ -40,14 +39,13 @@
|
|
|
40
39
|
"@typescript-eslint/eslint-plugin": "^8.35.0",
|
|
41
40
|
"@typescript-eslint/parser": "^8.35.0",
|
|
42
41
|
"eslint": "^8.57.1",
|
|
43
|
-
"semantic-release": "^23.1.1",
|
|
44
42
|
"ts-node": "^10.9.1",
|
|
45
43
|
"typescript": "^5.8.3",
|
|
46
44
|
"typescript-eslint": "^8.35.0"
|
|
47
45
|
},
|
|
48
46
|
"repository": {
|
|
49
47
|
"type": "git",
|
|
50
|
-
"url": "git+https://github.com/rahul05ranjan/
|
|
48
|
+
"url": "git+https://github.com/rahul05ranjan/ollama-cli.git"
|
|
51
49
|
},
|
|
52
50
|
"publishConfig": {
|
|
53
51
|
"registry": "https://registry.npmjs.org/"
|
package/src/commands/explain.ts
CHANGED
|
@@ -8,10 +8,8 @@ export async function explain(query: string) {
|
|
|
8
8
|
const config = loadConfig();
|
|
9
9
|
const spinner = ora('Thinking...').start();
|
|
10
10
|
let streamed = '';
|
|
11
|
-
const dhruvIntro = chalk.yellowBright('Dhruv CLI: Your AI-powered CLI assistant for developers using Ollama.\n');
|
|
12
11
|
try {
|
|
13
12
|
spinner.stop();
|
|
14
|
-
process.stdout.write(dhruvIntro); // Print Dhruv intro before explanation
|
|
15
13
|
process.stdout.write(chalk.green('Explanation: '));
|
|
16
14
|
await askOllama({
|
|
17
15
|
prompt: `Explain: ${query}`,
|
package/src/commands/init.ts
CHANGED
|
@@ -1,21 +1,16 @@
|
|
|
1
1
|
import inquirer from 'inquirer';
|
|
2
2
|
import { saveConfig, loadConfig } from '../config/config.js';
|
|
3
3
|
import chalk from 'chalk';
|
|
4
|
+
import { Ollama } from 'ollama';
|
|
4
5
|
|
|
5
6
|
export async function init() {
|
|
6
7
|
const current = loadConfig();
|
|
7
8
|
let modelChoices = [current.model];
|
|
8
9
|
try {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const res = await fetch('http://localhost:11434/api/tags');
|
|
14
|
-
if (res.ok) {
|
|
15
|
-
const data = (await res.json()) as { models?: { name: string }[] };
|
|
16
|
-
if (Array.isArray(data.models) && data.models.length > 0) {
|
|
17
|
-
modelChoices = data.models.map((m) => m.name);
|
|
18
|
-
}
|
|
10
|
+
const ollama = new Ollama();
|
|
11
|
+
const tags = await ollama.tags();
|
|
12
|
+
if (Array.isArray(tags) && tags.length > 0) {
|
|
13
|
+
modelChoices = tags.map(t => t.name);
|
|
19
14
|
}
|
|
20
15
|
} catch {
|
|
21
16
|
// If Ollama is not running or fails, fallback to current model
|
package/src/core/ai.ts
CHANGED
|
@@ -21,12 +21,10 @@ export async function askOllama({ prompt, model, onToken }: { prompt: string; mo
|
|
|
21
21
|
try {
|
|
22
22
|
let result = '';
|
|
23
23
|
const ollama = new Ollama();
|
|
24
|
-
|
|
25
|
-
const iterator = await ollama.generate({ model: model || 'codellama', prompt, stream: true });
|
|
26
|
-
for await (const chunk of iterator) {
|
|
24
|
+
for await (const chunk of ollama.generate(model || 'codellama', prompt)) {
|
|
27
25
|
let token = '';
|
|
28
26
|
if (typeof chunk === 'object' && chunk !== null && 'response' in chunk) {
|
|
29
|
-
token = (chunk as { response: string }).response;
|
|
27
|
+
token = (chunk as unknown as { response: string }).response;
|
|
30
28
|
} else if (typeof chunk === 'string') {
|
|
31
29
|
token = chunk;
|
|
32
30
|
}
|
package/src/index.ts
CHANGED
|
@@ -13,16 +13,13 @@ import { generate } from './commands/generate.js';
|
|
|
13
13
|
import { init } from './commands/init.js';
|
|
14
14
|
import { detectProjectType } from './utils/projectType.js';
|
|
15
15
|
import { menu } from './commands/menu.js';
|
|
16
|
-
import { createRequire } from 'module';
|
|
17
|
-
const require = createRequire(import.meta.url);
|
|
18
|
-
const pkg = require('../package.json');
|
|
19
16
|
|
|
20
17
|
const program = new Command();
|
|
21
18
|
|
|
22
19
|
program
|
|
23
20
|
.name('dhruv')
|
|
24
21
|
.description('AI-powered CLI assistant for developers using Ollama')
|
|
25
|
-
.version(
|
|
22
|
+
.version('1.0.0');
|
|
26
23
|
|
|
27
24
|
program
|
|
28
25
|
.command('explain <query>')
|
package/tsconfig.json
CHANGED
package/.eslintignore
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
node-fetch.d.ts
|
package/.releaserc
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"types": [
|
|
3
|
-
{"type": "feat", "section": "Features"},
|
|
4
|
-
{"type": "fix", "section": "Bug Fixes"},
|
|
5
|
-
{"type": "chore", "section": "Chores"},
|
|
6
|
-
{"type": "docs", "section": "Documentation"},
|
|
7
|
-
{"type": "refactor", "section": "Refactoring"},
|
|
8
|
-
{"type": "style", "section": "Style"},
|
|
9
|
-
{"type": "test", "section": "Tests"},
|
|
10
|
-
{"type": "ci", "section": "CI"}
|
|
11
|
-
]
|
|
12
|
-
}
|
package/CHANGELOG.md
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
## [1.1.1](https://github.com/rahul05ranjan/dhruv-cli/compare/v1.1.0...v1.1.1) (2025-06-29)
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
### Bug Fixes
|
|
7
|
-
|
|
8
|
-
* **init:** add type declaration for dynamically imported node-fetch ([4014dc4](https://github.com/rahul05ranjan/dhruv-cli/commit/4014dc4e8f3e4779296a2d97c7526cabb1cc05ec))
|
|
9
|
-
|
|
10
|
-
## [1.1.0](https://github.com/rahul05ranjan/dhruv-cli/compare/v1.0.0...v1.1.0) (2025-06-29)
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
### Features
|
|
14
|
-
|
|
15
|
-
* Add ESLint configuration for TypeScript and Node.js in devai-cli ([ebc0879](https://github.com/rahul05ranjan/dhruv-cli/commit/ebc0879d3359462773d39e5effa7d21618367bab))
|
|
16
|
-
* **api:** update model fetching to use REST API and improve error handling ([de3f86f](https://github.com/rahul05ranjan/dhruv-cli/commit/de3f86f3bf01e44cc0aa6579bf27cf39d56ebc75))
|
|
17
|
-
* Enhance README and index.html with updated documentation, improved layout, and new features ([2075819](https://github.com/rahul05ranjan/dhruv-cli/commit/2075819ac732a72620d5eb560b3e88a5583cd37c))
|
|
18
|
-
* Initialize Dhruv CLI project with core commands and configuration ([aacab76](https://github.com/rahul05ranjan/dhruv-cli/commit/aacab76cdc0369f0c3c0f8b40573cc7bd89e5206))
|
|
19
|
-
* Initialize Dhruv CLI project with core functionality and AI integration ([6f5987b](https://github.com/rahul05ranjan/dhruv-cli/commit/6f5987b296799c51b2c99488148dae2663f7fa0d))
|
|
20
|
-
* **types:** add node-fetch type declaration and update tsconfig to include it ([d3c12dd](https://github.com/rahul05ranjan/dhruv-cli/commit/d3c12dd6ddbcde3ca6dd7fad04601c00205d0a46))
|
|
21
|
-
* Update devDependencies for ESLint and TypeScript in package.json and package-lock.json ([a01255d](https://github.com/rahul05ranjan/dhruv-cli/commit/a01255d1540ba0f16e4548a57cae78ea26a9d4fb))
|
|
22
|
-
* Update package-lock.json to use scoped package name for dhruv-cli ([4e0e47e](https://github.com/rahul05ranjan/dhruv-cli/commit/4e0e47e166af30fdf62c43935325900489f7ac63))
|
|
23
|
-
* Update package.json with scoped name and repository details; enhance release workflow ([f380f07](https://github.com/rahul05ranjan/dhruv-cli/commit/f380f079393926baff0d4421edf1494f68501320))
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
### Bug Fixes
|
|
27
|
-
|
|
28
|
-
* **ci:** remove redundant entries in labeler configuration ([de3f86f](https://github.com/rahul05ranjan/dhruv-cli/commit/de3f86f3bf01e44cc0aa6579bf27cf39d56ebc75))
|
|
29
|
-
* correct bin path and update repository URL format in package.json ([20952d8](https://github.com/rahul05ranjan/dhruv-cli/commit/20952d83edce54cb5d5e499938a5f9e257bbcbdc))
|
|
30
|
-
* **init:** dynamically import node-fetch for compatibility ([62b568a](https://github.com/rahul05ranjan/dhruv-cli/commit/62b568abeeb6d3e24eb1694e5bda1b588442c632))
|
|
31
|
-
* **release:** ensure RELEASE_PLEASE_TOKEN is set for release action ([78978e4](https://github.com/rahul05ranjan/dhruv-cli/commit/78978e4a7d55dc4c69d90642f54a28632da4b5ba))
|
|
32
|
-
* update installation command to include the correct package scope ([0004a7c](https://github.com/rahul05ranjan/dhruv-cli/commit/0004a7cfa51fb7cc8d36305eeabde89fd73b39fb))
|
|
33
|
-
* update publishConfig registry URL to npm registry ([7cda997](https://github.com/rahul05ranjan/dhruv-cli/commit/7cda9975cc95cac82a6ef7a39d285613ba6a0abf))
|
|
34
|
-
* update version in package.json and package-lock.json; refactor askOllama to await result directly ([e4db280](https://github.com/rahul05ranjan/dhruv-cli/commit/e4db280428878ce9b9c45e8df509f54b1833d37a))
|
|
35
|
-
* update version to 1.0.1 in package.json and add permissions to release workflow ([e4adaee](https://github.com/rahul05ranjan/dhruv-cli/commit/e4adaee8d2bbd3918bde91afc104dd78ce7dea82))
|
|
36
|
-
|
|
37
|
-
## 1.0.0 (2025-06-29)
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
### Features
|
|
41
|
-
|
|
42
|
-
* Add ESLint configuration for TypeScript and Node.js in devai-cli ([ebc0879](https://github.com/rahul05ranjan/dhruv-cli/commit/ebc0879d3359462773d39e5effa7d21618367bab))
|
|
43
|
-
* Enhance README and index.html with updated documentation, improved layout, and new features ([2075819](https://github.com/rahul05ranjan/dhruv-cli/commit/2075819ac732a72620d5eb560b3e88a5583cd37c))
|
|
44
|
-
* Initialize Dhruv CLI project with core commands and configuration ([aacab76](https://github.com/rahul05ranjan/dhruv-cli/commit/aacab76cdc0369f0c3c0f8b40573cc7bd89e5206))
|
|
45
|
-
* Initialize Dhruv CLI project with core functionality and AI integration ([6f5987b](https://github.com/rahul05ranjan/dhruv-cli/commit/6f5987b296799c51b2c99488148dae2663f7fa0d))
|
|
46
|
-
* Update devDependencies for ESLint and TypeScript in package.json and package-lock.json ([a01255d](https://github.com/rahul05ranjan/dhruv-cli/commit/a01255d1540ba0f16e4548a57cae78ea26a9d4fb))
|
|
47
|
-
* Update package-lock.json to use scoped package name for dhruv-cli ([4e0e47e](https://github.com/rahul05ranjan/dhruv-cli/commit/4e0e47e166af30fdf62c43935325900489f7ac63))
|
|
48
|
-
* Update package.json with scoped name and repository details; enhance release workflow ([f380f07](https://github.com/rahul05ranjan/dhruv-cli/commit/f380f079393926baff0d4421edf1494f68501320))
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
### Bug Fixes
|
|
52
|
-
|
|
53
|
-
* correct bin path and update repository URL format in package.json ([20952d8](https://github.com/rahul05ranjan/dhruv-cli/commit/20952d83edce54cb5d5e499938a5f9e257bbcbdc))
|
|
54
|
-
* update installation command to include the correct package scope ([0004a7c](https://github.com/rahul05ranjan/dhruv-cli/commit/0004a7cfa51fb7cc8d36305eeabde89fd73b39fb))
|
|
55
|
-
* update publishConfig registry URL to npm registry ([7cda997](https://github.com/rahul05ranjan/dhruv-cli/commit/7cda9975cc95cac82a6ef7a39d285613ba6a0abf))
|
|
56
|
-
* update version to 1.0.1 in package.json and add permissions to release workflow ([e4adaee](https://github.com/rahul05ranjan/dhruv-cli/commit/e4adaee8d2bbd3918bde91afc104dd78ce7dea82))
|
package/node-fetch.d.ts
DELETED