drift-it 0.1.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/README.md +90 -0
- package/dist/commands/agent/create.d.ts +3 -0
- package/dist/commands/agent/create.d.ts.map +1 -0
- package/dist/commands/agent/create.js +30 -0
- package/dist/commands/agent/create.js.map +1 -0
- package/dist/commands/agent/delete.d.ts +3 -0
- package/dist/commands/agent/delete.d.ts.map +1 -0
- package/dist/commands/agent/delete.js +34 -0
- package/dist/commands/agent/delete.js.map +1 -0
- package/dist/commands/agent/index.d.ts +3 -0
- package/dist/commands/agent/index.d.ts.map +1 -0
- package/dist/commands/agent/index.js +20 -0
- package/dist/commands/agent/index.js.map +1 -0
- package/dist/commands/agent/list.d.ts +3 -0
- package/dist/commands/agent/list.d.ts.map +1 -0
- package/dist/commands/agent/list.js +31 -0
- package/dist/commands/agent/list.js.map +1 -0
- package/dist/commands/agent/rename.d.ts +3 -0
- package/dist/commands/agent/rename.d.ts.map +1 -0
- package/dist/commands/agent/rename.js +19 -0
- package/dist/commands/agent/rename.js.map +1 -0
- package/dist/commands/agent/run.d.ts +3 -0
- package/dist/commands/agent/run.d.ts.map +1 -0
- package/dist/commands/agent/run.js +28 -0
- package/dist/commands/agent/run.js.map +1 -0
- package/dist/commands/agent/update.d.ts +3 -0
- package/dist/commands/agent/update.d.ts.map +1 -0
- package/dist/commands/agent/update.js +32 -0
- package/dist/commands/agent/update.js.map +1 -0
- package/dist/commands/agent/view.d.ts +3 -0
- package/dist/commands/agent/view.d.ts.map +1 -0
- package/dist/commands/agent/view.js +24 -0
- package/dist/commands/agent/view.js.map +1 -0
- package/dist/commands/config/index.d.ts +3 -0
- package/dist/commands/config/index.d.ts.map +1 -0
- package/dist/commands/config/index.js +12 -0
- package/dist/commands/config/index.js.map +1 -0
- package/dist/commands/config/reset.d.ts +3 -0
- package/dist/commands/config/reset.d.ts.map +1 -0
- package/dist/commands/config/reset.js +31 -0
- package/dist/commands/config/reset.js.map +1 -0
- package/dist/commands/config/setProvider.d.ts +3 -0
- package/dist/commands/config/setProvider.d.ts.map +1 -0
- package/dist/commands/config/setProvider.js +25 -0
- package/dist/commands/config/setProvider.js.map +1 -0
- package/dist/commands/config/view.d.ts +3 -0
- package/dist/commands/config/view.d.ts.map +1 -0
- package/dist/commands/config/view.js +24 -0
- package/dist/commands/config/view.js.map +1 -0
- package/dist/commands/doctor.d.ts +3 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +68 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/init.d.ts +3 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +83 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/pipeline/create.d.ts +3 -0
- package/dist/commands/pipeline/create.d.ts.map +1 -0
- package/dist/commands/pipeline/create.js +34 -0
- package/dist/commands/pipeline/create.js.map +1 -0
- package/dist/commands/pipeline/delete.d.ts +3 -0
- package/dist/commands/pipeline/delete.d.ts.map +1 -0
- package/dist/commands/pipeline/delete.js +31 -0
- package/dist/commands/pipeline/delete.js.map +1 -0
- package/dist/commands/pipeline/index.d.ts +3 -0
- package/dist/commands/pipeline/index.d.ts.map +1 -0
- package/dist/commands/pipeline/index.js +20 -0
- package/dist/commands/pipeline/index.js.map +1 -0
- package/dist/commands/pipeline/list.d.ts +3 -0
- package/dist/commands/pipeline/list.d.ts.map +1 -0
- package/dist/commands/pipeline/list.js +30 -0
- package/dist/commands/pipeline/list.js.map +1 -0
- package/dist/commands/pipeline/rename.d.ts +3 -0
- package/dist/commands/pipeline/rename.d.ts.map +1 -0
- package/dist/commands/pipeline/rename.js +18 -0
- package/dist/commands/pipeline/rename.js.map +1 -0
- package/dist/commands/pipeline/run.d.ts +3 -0
- package/dist/commands/pipeline/run.d.ts.map +1 -0
- package/dist/commands/pipeline/run.js +42 -0
- package/dist/commands/pipeline/run.js.map +1 -0
- package/dist/commands/pipeline/update.d.ts +3 -0
- package/dist/commands/pipeline/update.d.ts.map +1 -0
- package/dist/commands/pipeline/update.js +39 -0
- package/dist/commands/pipeline/update.js.map +1 -0
- package/dist/commands/pipeline/view.d.ts +3 -0
- package/dist/commands/pipeline/view.d.ts.map +1 -0
- package/dist/commands/pipeline/view.js +26 -0
- package/dist/commands/pipeline/view.js.map +1 -0
- package/dist/core/agentManager.d.ts +13 -0
- package/dist/core/agentManager.d.ts.map +1 -0
- package/dist/core/agentManager.js +118 -0
- package/dist/core/agentManager.js.map +1 -0
- package/dist/core/executor.d.ts +6 -0
- package/dist/core/executor.d.ts.map +1 -0
- package/dist/core/executor.js +31 -0
- package/dist/core/executor.js.map +1 -0
- package/dist/core/pipelineManager.d.ts +11 -0
- package/dist/core/pipelineManager.d.ts.map +1 -0
- package/dist/core/pipelineManager.js +99 -0
- package/dist/core/pipelineManager.js.map +1 -0
- package/dist/core/providers/AIProvider.d.ts +5 -0
- package/dist/core/providers/AIProvider.d.ts.map +1 -0
- package/dist/core/providers/AIProvider.js +2 -0
- package/dist/core/providers/AIProvider.js.map +1 -0
- package/dist/core/providers/clipboardProvider.d.ts +6 -0
- package/dist/core/providers/clipboardProvider.d.ts.map +1 -0
- package/dist/core/providers/clipboardProvider.js +24 -0
- package/dist/core/providers/clipboardProvider.js.map +1 -0
- package/dist/core/providers/ollamaProvider.d.ts +9 -0
- package/dist/core/providers/ollamaProvider.d.ts.map +1 -0
- package/dist/core/providers/ollamaProvider.js +35 -0
- package/dist/core/providers/ollamaProvider.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/utils/fileLoader.d.ts +22 -0
- package/dist/utils/fileLoader.d.ts.map +1 -0
- package/dist/utils/fileLoader.js +85 -0
- package/dist/utils/fileLoader.js.map +1 -0
- package/dist/utils/logger.d.ts +10 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +25 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/promptBuilder.d.ts +2 -0
- package/dist/utils/promptBuilder.d.ts.map +1 -0
- package/dist/utils/promptBuilder.js +4 -0
- package/dist/utils/promptBuilder.js.map +1 -0
- package/dist/utils/suggestions.d.ts +6 -0
- package/dist/utils/suggestions.d.ts.map +1 -0
- package/dist/utils/suggestions.js +40 -0
- package/dist/utils/suggestions.js.map +1 -0
- package/dist/utils/validator.d.ts +3 -0
- package/dist/utils/validator.d.ts.map +1 -0
- package/dist/utils/validator.js +20 -0
- package/dist/utils/validator.js.map +1 -0
- package/package.json +43 -0
package/README.md
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# Drift CLI
|
|
2
|
+
|
|
3
|
+
A developer-first CLI tool for creating custom AI agents, composing multi-agent pipelines, and running them locally.
|
|
4
|
+
|
|
5
|
+
**BYO AI** — Bring Your Own AI. Drift is an orchestration layer, not an AI provider.
|
|
6
|
+
|
|
7
|
+
## Features
|
|
8
|
+
|
|
9
|
+
- **Custom AI Agents** — Create prompt-based agents for code review, testing, docs, and more
|
|
10
|
+
- **Multi-Agent Pipelines** — Chain agents with sequential output passing
|
|
11
|
+
- **Ollama Integration** — Run models locally with zero cloud dependency
|
|
12
|
+
- **Clipboard Mode** — Use GitHub Copilot or any AI tool via clipboard
|
|
13
|
+
- **Privacy-First** — No API keys, no cloud, no telemetry
|
|
14
|
+
- **Smart UX** — Interactive prompts, colored output, fuzzy "did you mean?" suggestions
|
|
15
|
+
|
|
16
|
+
## Install
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
npm install -g drift-it
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Quick Start
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
# Initialize Drift
|
|
26
|
+
drift init
|
|
27
|
+
|
|
28
|
+
# Create an agent
|
|
29
|
+
drift agent create reviewer
|
|
30
|
+
|
|
31
|
+
# Run the agent on a file
|
|
32
|
+
drift agent run reviewer src/app.ts
|
|
33
|
+
|
|
34
|
+
# Create a pipeline
|
|
35
|
+
drift pipeline create code-quality
|
|
36
|
+
|
|
37
|
+
# Run the pipeline
|
|
38
|
+
drift pipeline run code-quality src/app.ts
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Commands
|
|
42
|
+
|
|
43
|
+
### Agents
|
|
44
|
+
| Command | Description |
|
|
45
|
+
|---|---|
|
|
46
|
+
| `drift agent create <name>` | Create a new agent |
|
|
47
|
+
| `drift agent list` | List all agents |
|
|
48
|
+
| `drift agent view <name>` | View agent details |
|
|
49
|
+
| `drift agent update <name>` | Update agent prompt |
|
|
50
|
+
| `drift agent rename <old> <new>` | Rename an agent |
|
|
51
|
+
| `drift agent delete <name>` | Delete an agent |
|
|
52
|
+
| `drift agent run <name> <file>` | Run an agent on a file |
|
|
53
|
+
|
|
54
|
+
### Pipelines
|
|
55
|
+
| Command | Description |
|
|
56
|
+
|---|---|
|
|
57
|
+
| `drift pipeline create <name>` | Create a pipeline |
|
|
58
|
+
| `drift pipeline list` | List all pipelines |
|
|
59
|
+
| `drift pipeline view <name>` | View pipeline details |
|
|
60
|
+
| `drift pipeline update <name>` | Update pipeline steps |
|
|
61
|
+
| `drift pipeline rename <old> <new>` | Rename a pipeline |
|
|
62
|
+
| `drift pipeline delete <name>` | Delete a pipeline |
|
|
63
|
+
| `drift pipeline run <name> <file>` | Run a pipeline on a file |
|
|
64
|
+
|
|
65
|
+
### Config
|
|
66
|
+
| Command | Description |
|
|
67
|
+
|---|---|
|
|
68
|
+
| `drift config view` | View current config |
|
|
69
|
+
| `drift config set-provider <p>` | Set provider (ollama/clipboard) |
|
|
70
|
+
| `drift config reset` | Reset to defaults |
|
|
71
|
+
|
|
72
|
+
### System
|
|
73
|
+
| Command | Description |
|
|
74
|
+
|---|---|
|
|
75
|
+
| `drift init` | Initialize Drift |
|
|
76
|
+
| `drift doctor` | Check setup |
|
|
77
|
+
|
|
78
|
+
## Providers
|
|
79
|
+
|
|
80
|
+
- **Ollama** (default) — Local LLM via `http://localhost:11434`
|
|
81
|
+
- **Clipboard** — Copy prompt to clipboard, paste into any AI tool
|
|
82
|
+
|
|
83
|
+
## Requirements
|
|
84
|
+
|
|
85
|
+
- Node.js 20+
|
|
86
|
+
- Ollama (optional, for ollama provider)
|
|
87
|
+
|
|
88
|
+
## License
|
|
89
|
+
|
|
90
|
+
MIT
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,QA0BxD"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import inquirer from "inquirer";
|
|
2
|
+
import { logger } from "../../utils/logger.js";
|
|
3
|
+
import { createAgent } from "../../core/agentManager.js";
|
|
4
|
+
export function registerAgentCreateCommand(agent) {
|
|
5
|
+
agent
|
|
6
|
+
.command("create <name>")
|
|
7
|
+
.description("Create a new AI agent with a custom prompt")
|
|
8
|
+
.action(async (name) => {
|
|
9
|
+
try {
|
|
10
|
+
const { prompt } = await inquirer.prompt([
|
|
11
|
+
{
|
|
12
|
+
type: "editor",
|
|
13
|
+
name: "prompt",
|
|
14
|
+
message: "Enter the system prompt for this agent (opens your editor):",
|
|
15
|
+
},
|
|
16
|
+
]);
|
|
17
|
+
if (!prompt || prompt.trim().length === 0) {
|
|
18
|
+
logger.error("Prompt cannot be empty.");
|
|
19
|
+
process.exit(1);
|
|
20
|
+
}
|
|
21
|
+
await createAgent(name, prompt.trim());
|
|
22
|
+
logger.success(`Agent '${name}' created successfully.`);
|
|
23
|
+
}
|
|
24
|
+
catch (err) {
|
|
25
|
+
logger.error(err.message);
|
|
26
|
+
process.exit(1);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/agent/create.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,MAAM,UAAU,0BAA0B,CAAC,KAAc;IACvD,KAAK;SACF,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,4CAA4C,CAAC;SACzD,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;QAC7B,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAqB;gBAC3D;oBACE,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,6DAA6D;iBACvE;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1C,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;gBACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACvC,MAAM,CAAC,OAAO,CAAC,UAAU,IAAI,yBAAyB,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/delete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,QAiCxD"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import inquirer from "inquirer";
|
|
2
|
+
import { logger } from "../../utils/logger.js";
|
|
3
|
+
import { deleteAgent } from "../../core/agentManager.js";
|
|
4
|
+
export function registerAgentDeleteCommand(agent) {
|
|
5
|
+
agent
|
|
6
|
+
.command("delete <name>")
|
|
7
|
+
.description("Delete an agent")
|
|
8
|
+
.action(async (name) => {
|
|
9
|
+
try {
|
|
10
|
+
const { confirm } = await inquirer.prompt([
|
|
11
|
+
{
|
|
12
|
+
type: "confirm",
|
|
13
|
+
name: "confirm",
|
|
14
|
+
message: `Are you sure you want to delete agent '${name}'?`,
|
|
15
|
+
default: false,
|
|
16
|
+
},
|
|
17
|
+
]);
|
|
18
|
+
if (!confirm) {
|
|
19
|
+
logger.info("Deletion cancelled.");
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const affectedPipelines = await deleteAgent(name);
|
|
23
|
+
logger.success(`Agent '${name}' deleted.`);
|
|
24
|
+
if (affectedPipelines.length > 0) {
|
|
25
|
+
logger.warn(`The following pipelines referenced this agent and may need updating: ${affectedPipelines.join(", ")}`);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
catch (err) {
|
|
29
|
+
logger.error(err.message);
|
|
30
|
+
process.exit(1);
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=delete.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/commands/agent/delete.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,MAAM,UAAU,0BAA0B,CAAC,KAAc;IACvD,KAAK;SACF,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,iBAAiB,CAAC;SAC9B,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;QAC7B,IAAI,CAAC;YACH,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAuB;gBAC9D;oBACE,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,0CAA0C,IAAI,IAAI;oBAC3D,OAAO,EAAE,KAAK;iBACf;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBACnC,OAAO;YACT,CAAC;YAED,MAAM,iBAAiB,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,CAAC,OAAO,CAAC,UAAU,IAAI,YAAY,CAAC,CAAC;YAE3C,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjC,MAAM,CAAC,IAAI,CACT,wEAAwE,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACvG,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,QAYrD"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { registerAgentCreateCommand } from "./create.js";
|
|
2
|
+
import { registerAgentListCommand } from "./list.js";
|
|
3
|
+
import { registerAgentViewCommand } from "./view.js";
|
|
4
|
+
import { registerAgentUpdateCommand } from "./update.js";
|
|
5
|
+
import { registerAgentRenameCommand } from "./rename.js";
|
|
6
|
+
import { registerAgentDeleteCommand } from "./delete.js";
|
|
7
|
+
import { registerAgentRunCommand } from "./run.js";
|
|
8
|
+
export function registerAgentCommands(program) {
|
|
9
|
+
const agent = program
|
|
10
|
+
.command("agent")
|
|
11
|
+
.description("Manage AI agents — create, list, view, update, rename, delete, run");
|
|
12
|
+
registerAgentCreateCommand(agent);
|
|
13
|
+
registerAgentListCommand(agent);
|
|
14
|
+
registerAgentViewCommand(agent);
|
|
15
|
+
registerAgentUpdateCommand(agent);
|
|
16
|
+
registerAgentRenameCommand(agent);
|
|
17
|
+
registerAgentDeleteCommand(agent);
|
|
18
|
+
registerAgentRunCommand(agent);
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/agent/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAEnD,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,MAAM,KAAK,GAAG,OAAO;SAClB,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,oEAAoE,CAAC,CAAC;IAErF,0BAA0B,CAAC,KAAK,CAAC,CAAC;IAClC,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAChC,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAChC,0BAA0B,CAAC,KAAK,CAAC,CAAC;IAClC,0BAA0B,CAAC,KAAK,CAAC,CAAC;IAClC,0BAA0B,CAAC,KAAK,CAAC,CAAC;IAClC,uBAAuB,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,QA2BtD"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import { logger } from "../../utils/logger.js";
|
|
3
|
+
import { listAgents } from "../../core/agentManager.js";
|
|
4
|
+
export function registerAgentListCommand(agent) {
|
|
5
|
+
agent
|
|
6
|
+
.command("list")
|
|
7
|
+
.description("List all available agents")
|
|
8
|
+
.action(async () => {
|
|
9
|
+
try {
|
|
10
|
+
const agents = await listAgents();
|
|
11
|
+
if (agents.length === 0) {
|
|
12
|
+
logger.info("No agents found. Create one with: drift agent create <name>");
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
logger.heading("Agents");
|
|
16
|
+
console.log();
|
|
17
|
+
for (const a of agents) {
|
|
18
|
+
const preview = a.prompt.length > 60 ? a.prompt.substring(0, 60) + "..." : a.prompt;
|
|
19
|
+
console.log(` ${chalk.bold.cyan(a.name)}`);
|
|
20
|
+
console.log(` ${chalk.dim(preview)}`);
|
|
21
|
+
console.log();
|
|
22
|
+
}
|
|
23
|
+
logger.dim(`${agents.length} agent(s) total`);
|
|
24
|
+
}
|
|
25
|
+
catch (err) {
|
|
26
|
+
logger.error(err.message);
|
|
27
|
+
process.exit(1);
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/agent/list.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD,MAAM,UAAU,wBAAwB,CAAC,KAAc;IACrD,KAAK;SACF,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,2BAA2B,CAAC;SACxC,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;YAClC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;gBAC3E,OAAO;YACT,CAAC;YAED,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACzB,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBACvB,MAAM,OAAO,GACX,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBACtE,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACvC,OAAO,CAAC,GAAG,EAAE,CAAC;YAChB,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,iBAAiB,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rename.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/rename.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,QAcxD"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { logger } from "../../utils/logger.js";
|
|
2
|
+
import { renameAgent } from "../../core/agentManager.js";
|
|
3
|
+
export function registerAgentRenameCommand(agent) {
|
|
4
|
+
agent
|
|
5
|
+
.command("rename <old> <new>")
|
|
6
|
+
.description("Rename an agent (also updates pipelines referencing it)")
|
|
7
|
+
.action(async (oldName, newName) => {
|
|
8
|
+
try {
|
|
9
|
+
await renameAgent(oldName, newName);
|
|
10
|
+
logger.success(`Agent '${oldName}' renamed to '${newName}'.`);
|
|
11
|
+
logger.info("Any pipelines referencing this agent have been updated.");
|
|
12
|
+
}
|
|
13
|
+
catch (err) {
|
|
14
|
+
logger.error(err.message);
|
|
15
|
+
process.exit(1);
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=rename.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rename.js","sourceRoot":"","sources":["../../../src/commands/agent/rename.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,MAAM,UAAU,0BAA0B,CAAC,KAAc;IACvD,KAAK;SACF,OAAO,CAAC,oBAAoB,CAAC;SAC7B,WAAW,CAAC,yDAAyD,CAAC;SACtE,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,OAAe,EAAE,EAAE;QACjD,IAAI,CAAC;YACH,MAAM,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACpC,MAAM,CAAC,OAAO,CAAC,UAAU,OAAO,iBAAiB,OAAO,IAAI,CAAC,CAAC;YAC9D,MAAM,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;QACzE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,QAwBrD"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import { logger } from "../../utils/logger.js";
|
|
3
|
+
import { readFileContent } from "../../utils/fileLoader.js";
|
|
4
|
+
import { resolveProvider, runAgent } from "../../core/executor.js";
|
|
5
|
+
export function registerAgentRunCommand(agent) {
|
|
6
|
+
agent
|
|
7
|
+
.command("run <name> <file>")
|
|
8
|
+
.description("Run an agent on a file")
|
|
9
|
+
.option("-p, --provider <provider>", "Override the configured provider (ollama | clipboard)")
|
|
10
|
+
.action(async (name, file, opts) => {
|
|
11
|
+
try {
|
|
12
|
+
const content = await readFileContent(file);
|
|
13
|
+
const provider = await resolveProvider(opts.provider);
|
|
14
|
+
logger.step(`Running agent '${name}' with ${provider.name} provider...`);
|
|
15
|
+
console.log();
|
|
16
|
+
const result = await runAgent(name, content, provider);
|
|
17
|
+
console.log(chalk.bold(`===== ${name.toUpperCase()} =====`));
|
|
18
|
+
console.log(result);
|
|
19
|
+
console.log();
|
|
20
|
+
logger.success("Done.");
|
|
21
|
+
}
|
|
22
|
+
catch (err) {
|
|
23
|
+
logger.error(err.message);
|
|
24
|
+
process.exit(1);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=run.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/commands/agent/run.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEnE,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACpD,KAAK;SACF,OAAO,CAAC,mBAAmB,CAAC;SAC5B,WAAW,CAAC,wBAAwB,CAAC;SACrC,MAAM,CAAC,2BAA2B,EAAE,uDAAuD,CAAC;SAC5F,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,IAAY,EAAE,IAA2B,EAAE,EAAE;QACxE,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEtD,MAAM,CAAC,IAAI,CAAC,kBAAkB,IAAI,UAAU,QAAQ,CAAC,IAAI,cAAc,CAAC,CAAC;YACzE,OAAO,CAAC,GAAG,EAAE,CAAC;YAEd,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;YAEvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpB,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,QA6BxD"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import inquirer from "inquirer";
|
|
2
|
+
import { logger } from "../../utils/logger.js";
|
|
3
|
+
import { getAgent, updateAgent } from "../../core/agentManager.js";
|
|
4
|
+
export function registerAgentUpdateCommand(agent) {
|
|
5
|
+
agent
|
|
6
|
+
.command("update <name>")
|
|
7
|
+
.description("Update an agent's prompt")
|
|
8
|
+
.action(async (name) => {
|
|
9
|
+
try {
|
|
10
|
+
const existing = await getAgent(name);
|
|
11
|
+
const { prompt } = await inquirer.prompt([
|
|
12
|
+
{
|
|
13
|
+
type: "editor",
|
|
14
|
+
name: "prompt",
|
|
15
|
+
message: "Edit the agent prompt (opens your editor):",
|
|
16
|
+
default: existing.prompt,
|
|
17
|
+
},
|
|
18
|
+
]);
|
|
19
|
+
if (!prompt || prompt.trim().length === 0) {
|
|
20
|
+
logger.error("Prompt cannot be empty.");
|
|
21
|
+
process.exit(1);
|
|
22
|
+
}
|
|
23
|
+
await updateAgent(name, prompt.trim());
|
|
24
|
+
logger.success(`Agent '${name}' updated successfully.`);
|
|
25
|
+
}
|
|
26
|
+
catch (err) {
|
|
27
|
+
logger.error(err.message);
|
|
28
|
+
process.exit(1);
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/agent/update.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEnE,MAAM,UAAU,0BAA0B,CAAC,KAAc;IACvD,KAAK;SACF,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,0BAA0B,CAAC;SACvC,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;QAC7B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;YAEtC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAqB;gBAC3D;oBACE,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,4CAA4C;oBACrD,OAAO,EAAE,QAAQ,CAAC,MAAM;iBACzB;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1C,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;gBACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACvC,MAAM,CAAC,OAAO,CAAC,UAAU,IAAI,yBAAyB,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,QAkBtD"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import { logger } from "../../utils/logger.js";
|
|
3
|
+
import { getAgent } from "../../core/agentManager.js";
|
|
4
|
+
export function registerAgentViewCommand(agent) {
|
|
5
|
+
agent
|
|
6
|
+
.command("view <name>")
|
|
7
|
+
.description("View an agent's details")
|
|
8
|
+
.action(async (name) => {
|
|
9
|
+
try {
|
|
10
|
+
const a = await getAgent(name);
|
|
11
|
+
console.log();
|
|
12
|
+
logger.heading(`Agent: ${a.name}`);
|
|
13
|
+
console.log();
|
|
14
|
+
console.log(chalk.bold("Prompt:"));
|
|
15
|
+
console.log(a.prompt);
|
|
16
|
+
console.log();
|
|
17
|
+
}
|
|
18
|
+
catch (err) {
|
|
19
|
+
logger.error(err.message);
|
|
20
|
+
process.exit(1);
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view.js","sourceRoot":"","sources":["../../../src/commands/agent/view.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,MAAM,UAAU,wBAAwB,CAAC,KAAc;IACrD,KAAK;SACF,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,yBAAyB,CAAC;SACtC,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;QAC7B,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC/B,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACnC,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YACtB,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,QAQtD"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { registerSetProviderCommand } from "./setProvider.js";
|
|
2
|
+
import { registerConfigViewCommand } from "./view.js";
|
|
3
|
+
import { registerConfigResetCommand } from "./reset.js";
|
|
4
|
+
export function registerConfigCommands(program) {
|
|
5
|
+
const config = program
|
|
6
|
+
.command("config")
|
|
7
|
+
.description("Manage Drift configuration — set-provider, view, reset");
|
|
8
|
+
registerSetProviderCommand(config);
|
|
9
|
+
registerConfigViewCommand(config);
|
|
10
|
+
registerConfigResetCommand(config);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/config/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,MAAM,MAAM,GAAG,OAAO;SACnB,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,wDAAwD,CAAC,CAAC;IAEzE,0BAA0B,CAAC,MAAM,CAAC,CAAC;IACnC,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAClC,0BAA0B,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reset.d.ts","sourceRoot":"","sources":["../../../src/commands/config/reset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,OAAO,QA2BzD"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import inquirer from "inquirer";
|
|
2
|
+
import { logger } from "../../utils/logger.js";
|
|
3
|
+
import { writeConfig, DEFAULT_CONFIG } from "../../utils/fileLoader.js";
|
|
4
|
+
export function registerConfigResetCommand(config) {
|
|
5
|
+
config
|
|
6
|
+
.command("reset")
|
|
7
|
+
.description("Reset Drift configuration to defaults")
|
|
8
|
+
.action(async () => {
|
|
9
|
+
try {
|
|
10
|
+
const { confirm } = await inquirer.prompt([
|
|
11
|
+
{
|
|
12
|
+
type: "confirm",
|
|
13
|
+
name: "confirm",
|
|
14
|
+
message: "Reset configuration to defaults? (provider: ollama, model: llama3)",
|
|
15
|
+
default: false,
|
|
16
|
+
},
|
|
17
|
+
]);
|
|
18
|
+
if (!confirm) {
|
|
19
|
+
logger.info("Reset cancelled.");
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
await writeConfig({ ...DEFAULT_CONFIG });
|
|
23
|
+
logger.success("Configuration reset to defaults.");
|
|
24
|
+
}
|
|
25
|
+
catch (err) {
|
|
26
|
+
logger.error(err.message);
|
|
27
|
+
process.exit(1);
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=reset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reset.js","sourceRoot":"","sources":["../../../src/commands/config/reset.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAExE,MAAM,UAAU,0BAA0B,CAAC,MAAe;IACxD,MAAM;SACH,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,uCAAuC,CAAC;SACpD,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,IAAI,CAAC;YACH,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAuB;gBAC9D;oBACE,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,oEAAoE;oBAC7E,OAAO,EAAE,KAAK;iBACf;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBAChC,OAAO;YACT,CAAC;YAED,MAAM,WAAW,CAAC,EAAE,GAAG,cAAc,EAAE,CAAC,CAAC;YACzC,MAAM,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;QACrD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setProvider.d.ts","sourceRoot":"","sources":["../../../src/commands/config/setProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,OAAO,QAoBzD"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { logger } from "../../utils/logger.js";
|
|
2
|
+
import { getConfig, writeConfig } from "../../utils/fileLoader.js";
|
|
3
|
+
const VALID_PROVIDERS = ["ollama", "clipboard"];
|
|
4
|
+
export function registerSetProviderCommand(config) {
|
|
5
|
+
config
|
|
6
|
+
.command("set-provider <provider>")
|
|
7
|
+
.description("Set the default AI provider (ollama | clipboard)")
|
|
8
|
+
.action(async (provider) => {
|
|
9
|
+
try {
|
|
10
|
+
if (!VALID_PROVIDERS.includes(provider)) {
|
|
11
|
+
logger.error(`Invalid provider '${provider}'. Available: ${VALID_PROVIDERS.join(", ")}`);
|
|
12
|
+
process.exit(1);
|
|
13
|
+
}
|
|
14
|
+
const current = await getConfig();
|
|
15
|
+
current.provider = provider;
|
|
16
|
+
await writeConfig(current);
|
|
17
|
+
logger.success(`Provider set to '${provider}'.`);
|
|
18
|
+
}
|
|
19
|
+
catch (err) {
|
|
20
|
+
logger.error(err.message);
|
|
21
|
+
process.exit(1);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=setProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setProvider.js","sourceRoot":"","sources":["../../../src/commands/config/setProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAEnE,MAAM,eAAe,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAU,CAAC;AAEzD,MAAM,UAAU,0BAA0B,CAAC,MAAe;IACxD,MAAM;SACH,OAAO,CAAC,yBAAyB,CAAC;SAClC,WAAW,CAAC,kDAAkD,CAAC;SAC/D,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,EAAE;QACjC,IAAI,CAAC;YACH,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,QAA0C,CAAC,EAAE,CAAC;gBAC1E,MAAM,CAAC,KAAK,CAAC,qBAAqB,QAAQ,iBAAiB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACzF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,SAAS,EAAE,CAAC;YAClC,OAAO,CAAC,QAAQ,GAAG,QAAkC,CAAC;YACtD,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;YAC3B,MAAM,CAAC,OAAO,CAAC,oBAAoB,QAAQ,IAAI,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../src/commands/config/view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,OAAO,QAkBxD"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import { logger } from "../../utils/logger.js";
|
|
3
|
+
import { getConfig } from "../../utils/fileLoader.js";
|
|
4
|
+
export function registerConfigViewCommand(config) {
|
|
5
|
+
config
|
|
6
|
+
.command("view")
|
|
7
|
+
.description("View the current Drift configuration")
|
|
8
|
+
.action(async () => {
|
|
9
|
+
try {
|
|
10
|
+
const cfg = await getConfig();
|
|
11
|
+
console.log();
|
|
12
|
+
logger.heading("Drift Configuration");
|
|
13
|
+
console.log();
|
|
14
|
+
console.log(` ${chalk.bold("Provider:")} ${chalk.cyan(cfg.provider)}`);
|
|
15
|
+
console.log(` ${chalk.bold("Model:")} ${chalk.cyan(cfg.model)}`);
|
|
16
|
+
console.log();
|
|
17
|
+
}
|
|
18
|
+
catch (err) {
|
|
19
|
+
logger.error(err.message);
|
|
20
|
+
process.exit(1);
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view.js","sourceRoot":"","sources":["../../../src/commands/config/view.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,MAAM,UAAU,yBAAyB,CAAC,MAAe;IACvD,MAAM;SACH,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,sCAAsC,CAAC;SACnD,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,SAAS,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;YACtC,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACzE,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACtE,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,QA8DrD"}
|