hackwriter 0.0.5 → 0.0.7
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 +150 -29
- package/dist/agent/ApprovalManager.d.ts +10 -3
- package/dist/agent/ApprovalManager.d.ts.map +1 -1
- package/dist/agent/ApprovalManager.js +55 -21
- package/dist/agent/ApprovalManager.js.map +1 -1
- package/dist/agent/ApprovalProvider.d.ts +3 -1
- package/dist/agent/ApprovalProvider.d.ts.map +1 -1
- package/dist/cli.js +5 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +69 -119
- package/dist/commands/setup.js.map +1 -1
- package/dist/config/AnthropicDiscovery.d.ts +6 -0
- package/dist/config/AnthropicDiscovery.d.ts.map +1 -0
- package/dist/config/AnthropicDiscovery.js +52 -0
- package/dist/config/AnthropicDiscovery.js.map +1 -0
- package/dist/config/ConfigurationLoader.d.ts +0 -1
- package/dist/config/ConfigurationLoader.d.ts.map +1 -1
- package/dist/config/ConfigurationLoader.js +51 -26
- package/dist/config/ConfigurationLoader.js.map +1 -1
- package/dist/config/OllamaDiscovery.d.ts +6 -0
- package/dist/config/OllamaDiscovery.d.ts.map +1 -0
- package/dist/config/OllamaDiscovery.js +31 -0
- package/dist/config/OllamaDiscovery.js.map +1 -0
- package/dist/config/OpenAIDiscovery.d.ts +6 -0
- package/dist/config/OpenAIDiscovery.d.ts.map +1 -0
- package/dist/config/OpenAIDiscovery.js +74 -0
- package/dist/config/OpenAIDiscovery.js.map +1 -0
- package/dist/config/ProviderDiscovery.d.ts +5 -0
- package/dist/config/ProviderDiscovery.d.ts.map +1 -0
- package/dist/config/ProviderDiscovery.js +94 -0
- package/dist/config/ProviderDiscovery.js.map +1 -0
- package/dist/config/ProviderRegistry.d.ts +16 -0
- package/dist/config/ProviderRegistry.d.ts.map +1 -0
- package/dist/config/ProviderRegistry.js +56 -0
- package/dist/config/ProviderRegistry.js.map +1 -0
- package/dist/messaging/MessageTypes.d.ts +7 -0
- package/dist/messaging/MessageTypes.d.ts.map +1 -1
- package/dist/ui/shell/CommandRegistry.d.ts.map +1 -1
- package/dist/ui/shell/CommandRegistry.js +33 -10
- package/dist/ui/shell/CommandRegistry.js.map +1 -1
- package/dist/ui/shell/InteractiveShell.d.ts +2 -0
- package/dist/ui/shell/InteractiveShell.d.ts.map +1 -1
- package/dist/ui/shell/InteractiveShell.js +10 -2
- package/dist/ui/shell/InteractiveShell.js.map +1 -1
- package/dist/ui/shell/OutputRenderer.d.ts.map +1 -1
- package/dist/ui/shell/OutputRenderer.js +11 -3
- package/dist/ui/shell/OutputRenderer.js.map +1 -1
- package/package.json +12 -13
package/README.md
CHANGED
|
@@ -1,55 +1,176 @@
|
|
|
1
1
|
# HackWriter
|
|
2
2
|
|
|
3
|
-
Writing
|
|
3
|
+
**Writing Agent for HackMD** - Zero-config, multi-provider LLM support
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Quick Start
|
|
6
6
|
|
|
7
|
-
```
|
|
7
|
+
```bash
|
|
8
8
|
npx hackwriter
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
If you don't have API keys configured, the setup wizard will guide you through it.
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
**That's it!** No config files needed.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
16
|
|
|
17
|
-
##
|
|
17
|
+
## Installation
|
|
18
|
+
|
|
19
|
+
**One-time use**:
|
|
20
|
+
```bash
|
|
21
|
+
npx hackwriter
|
|
22
|
+
```
|
|
18
23
|
|
|
19
|
-
|
|
24
|
+
**Global install**:
|
|
25
|
+
```bash
|
|
26
|
+
npm i -g hackwriter
|
|
20
27
|
|
|
21
|
-
```sh
|
|
22
28
|
hackwriter
|
|
23
29
|
```
|
|
24
30
|
|
|
25
|
-
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Features
|
|
34
|
+
|
|
35
|
+
✅ **Zero-Config** - detected existing environment variables
|
|
36
|
+
✅ **Multi-Provider** - Anthropic, OpenAI, Ollama (auto-detected)
|
|
37
|
+
✅ **Model Switching** - Switch models on-the-fly with `/model`
|
|
38
|
+
✅ **Session Persistence** - Resume your work anytime
|
|
39
|
+
✅ **Smart Approvals** - Confirms destructive actions
|
|
26
40
|
|
|
41
|
+
**HackMD Operations**:
|
|
42
|
+
- List, read, create, update, delete notes
|
|
43
|
+
- Personal & team notes support
|
|
44
|
+
- Search and export notes
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Configuration
|
|
49
|
+
|
|
50
|
+
### Automatic Setup
|
|
51
|
+
|
|
52
|
+
Run `hackwriter` and follow the setup wizard. It will ask for:
|
|
53
|
+
- LLM provider (Anthropic, OpenAI, or Ollama) API key (if needed)
|
|
27
54
|
- HackMD API token
|
|
28
|
-
|
|
55
|
+
|
|
56
|
+
### Manual Setup (Optional)
|
|
57
|
+
|
|
58
|
+
**Environment Variables** - Skip setup wizard by setting these:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
export ANTHROPIC_API_KEY=sk-ant-xxx # or OPENAI_API_KEY
|
|
62
|
+
export HACKMD_API_TOKEN=your-token
|
|
63
|
+
hackwriter # Starts immediately!
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
| Variable | Description |
|
|
67
|
+
|----------|-------------|
|
|
68
|
+
| `ANTHROPIC_API_KEY` | Anthropic API key (optional) |
|
|
69
|
+
| `OPENAI_API_KEY` | OpenAI API key (optional) |
|
|
70
|
+
| `HACKMD_API_TOKEN` | HackMD API token (required) |
|
|
71
|
+
|
|
72
|
+
**Config File** - Override defaults with `~/.hackwriter/config.json`:
|
|
73
|
+
|
|
74
|
+
```json
|
|
75
|
+
{
|
|
76
|
+
"defaultModel": "anthropic-claude-3-5-sonnet-latest",
|
|
77
|
+
"models": {
|
|
78
|
+
"fast": {
|
|
79
|
+
"provider": "anthropic",
|
|
80
|
+
"model": "claude-3-5-haiku-latest",
|
|
81
|
+
"maxContextSize": 200000
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
---
|
|
29
88
|
|
|
30
89
|
## Usage
|
|
31
90
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
hackwriter
|
|
36
|
-
hackwriter --
|
|
37
|
-
hackwriter --debug
|
|
91
|
+
### Interactive Shell
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
hackwriter # Start interactive mode
|
|
95
|
+
hackwriter --continue # Resume last session
|
|
96
|
+
hackwriter --debug # Enable debug logging
|
|
97
|
+
hackwriter -m gpt-4o # Use specific model
|
|
38
98
|
```
|
|
39
99
|
|
|
40
|
-
|
|
100
|
+
### Shell Commands
|
|
41
101
|
|
|
42
|
-
|
|
102
|
+
```bash
|
|
103
|
+
/help # Show available commands
|
|
104
|
+
/model # List/switch models
|
|
105
|
+
/model openai-gpt-4o # Switch to GPT-4o
|
|
106
|
+
/status # Show current status
|
|
107
|
+
/exit # Exit (or /quit, /q)
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Single Command
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
hackwriter -c "list my notes"
|
|
114
|
+
hackwriter -c "create a note titled 'Meeting Notes'"
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### Auto-Approve Mode
|
|
43
118
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
119
|
+
```bash
|
|
120
|
+
hackwriter --yolo # Skip all confirmations
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
---
|
|
48
124
|
|
|
49
|
-
##
|
|
125
|
+
## Supported Providers
|
|
50
126
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
pnpm run test
|
|
127
|
+
### Anthropic
|
|
128
|
+
```bash
|
|
129
|
+
export ANTHROPIC_API_KEY=sk-ant-xxx
|
|
55
130
|
```
|
|
131
|
+
Models: Claude 3.5 Haiku, Sonnet, Opus 4
|
|
132
|
+
|
|
133
|
+
### OpenAI
|
|
134
|
+
```bash
|
|
135
|
+
export OPENAI_API_KEY=sk-xxx
|
|
136
|
+
```
|
|
137
|
+
Models: GPT-4o, GPT-4o-mini, o1
|
|
138
|
+
|
|
139
|
+
### Ollama (Local)
|
|
140
|
+
```bash
|
|
141
|
+
# Ollama auto-detected if running
|
|
142
|
+
ollama serve
|
|
143
|
+
```
|
|
144
|
+
All local models automatically discovered
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## Advanced
|
|
149
|
+
|
|
150
|
+
### Custom Ollama Models
|
|
151
|
+
|
|
152
|
+
```json
|
|
153
|
+
{
|
|
154
|
+
"models": {
|
|
155
|
+
"llama": {
|
|
156
|
+
"provider": "ollama",
|
|
157
|
+
"model": "llama3.1:70b",
|
|
158
|
+
"maxContextSize": 128000
|
|
159
|
+
}
|
|
160
|
+
},
|
|
161
|
+
"providers": {
|
|
162
|
+
"ollama": {
|
|
163
|
+
"type": "ollama",
|
|
164
|
+
"baseUrl": "http://localhost:11434/api"
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### Model Management
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
/model # Show all available models
|
|
174
|
+
/model anthropic-* # List Anthropic models
|
|
175
|
+
/model ollama-llama3.1 # Switch to specific model
|
|
176
|
+
```
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as readline from "readline";
|
|
1
2
|
import type { ApprovalProvider, ApprovalResponse } from "./ApprovalProvider.js";
|
|
2
3
|
/**
|
|
3
4
|
* CLI-based approval provider using readline
|
|
@@ -8,14 +9,18 @@ export declare class CLIApprovalProvider implements ApprovalProvider {
|
|
|
8
9
|
toolName: string;
|
|
9
10
|
action: string;
|
|
10
11
|
description: string;
|
|
11
|
-
}): Promise<ApprovalResponse>;
|
|
12
|
+
}, mainRl?: readline.Interface): Promise<ApprovalResponse>;
|
|
12
13
|
}
|
|
13
14
|
/**
|
|
14
15
|
* Non-interactive approval provider (auto-approves everything)
|
|
15
16
|
* Useful for -c flag / yolo mode
|
|
16
17
|
*/
|
|
17
18
|
export declare class YoloApprovalProvider implements ApprovalProvider {
|
|
18
|
-
request(
|
|
19
|
+
request(_req: {
|
|
20
|
+
toolName: string;
|
|
21
|
+
action: string;
|
|
22
|
+
description: string;
|
|
23
|
+
}, _mainRl?: readline.Interface): Promise<ApprovalResponse>;
|
|
19
24
|
}
|
|
20
25
|
/**
|
|
21
26
|
* Approval manager that delegates to a provider
|
|
@@ -24,7 +29,9 @@ export declare class YoloApprovalProvider implements ApprovalProvider {
|
|
|
24
29
|
export declare class ApprovalManager {
|
|
25
30
|
private autoApproveActions;
|
|
26
31
|
private provider;
|
|
27
|
-
|
|
32
|
+
private mainRl?;
|
|
33
|
+
constructor(provider?: ApprovalProvider, yolo?: boolean, mainRl?: readline.Interface);
|
|
34
|
+
setMainRl(rl: readline.Interface): void;
|
|
28
35
|
request(toolName: string, action: string, description: string): Promise<boolean>;
|
|
29
36
|
setProvider(provider: ApprovalProvider): void;
|
|
30
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApprovalManager.d.ts","sourceRoot":"","sources":["../../src/agent/ApprovalManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ApprovalManager.d.ts","sourceRoot":"","sources":["../../src/agent/ApprovalManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAIhF;;;GAGG;AACH,qBAAa,mBAAoB,YAAW,gBAAgB;IACpD,OAAO,CACX,GAAG,EAAE;QACH,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;KACrB,EACD,MAAM,CAAC,EAAE,QAAQ,CAAC,SAAS,GAC1B,OAAO,CAAC,gBAAgB,CAAC;CA2C7B;AAED;;;GAGG;AACH,qBAAa,oBAAqB,YAAW,gBAAgB;IAC3D,OAAO,CACL,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAC/D,OAAO,CAAC,EAAE,QAAQ,CAAC,SAAS,GAC3B,OAAO,CAAC,gBAAgB,CAAC;CAG7B;AAED;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,MAAM,CAAC,CAAqB;gBAExB,QAAQ,CAAC,EAAE,gBAAgB,EAAE,IAAI,UAAQ,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,SAAS;IAOlF,SAAS,CAAC,EAAE,EAAE,QAAQ,CAAC,SAAS,GAAG,IAAI;IAIjC,OAAO,CACX,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC;IAyCnB,WAAW,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;CAG9C"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import * as readline from "readline";
|
|
2
|
+
import { MessageBus } from "../messaging/MessageBus.js";
|
|
3
|
+
import { Logger } from "../utils/Logger.js";
|
|
2
4
|
/**
|
|
3
5
|
* CLI-based approval provider using readline
|
|
4
6
|
* This is the implementation for interactive terminal use
|
|
5
7
|
*/
|
|
6
8
|
export class CLIApprovalProvider {
|
|
7
|
-
async request(req) {
|
|
9
|
+
async request(req, mainRl) {
|
|
8
10
|
console.log("\n⚠️ Approval Required");
|
|
9
11
|
console.log(`Tool: ${req.toolName}`);
|
|
10
12
|
console.log(`Action: ${req.description}`);
|
|
@@ -12,14 +14,27 @@ export class CLIApprovalProvider {
|
|
|
12
14
|
console.log(" 1. Approve once");
|
|
13
15
|
console.log(" 2. Approve for this session");
|
|
14
16
|
console.log(" 3. Reject");
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
17
|
+
let answer;
|
|
18
|
+
if (mainRl) {
|
|
19
|
+
// Use the main readline interface - don't create a second one!
|
|
20
|
+
Logger.debug("ApprovalProvider", "Using main readline for approval prompt");
|
|
21
|
+
answer = await new Promise((resolve) => {
|
|
22
|
+
mainRl.question("\nYour choice (1-3): ", resolve);
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
// Fallback: create temporary readline (for tests or non-interactive use)
|
|
27
|
+
Logger.debug("ApprovalProvider", "Creating temporary readline for approval");
|
|
28
|
+
const rl = readline.createInterface({
|
|
29
|
+
input: process.stdin,
|
|
30
|
+
output: process.stdout,
|
|
31
|
+
terminal: false,
|
|
32
|
+
});
|
|
33
|
+
answer = await new Promise((resolve) => {
|
|
34
|
+
rl.question("\nYour choice (1-3): ", resolve);
|
|
35
|
+
});
|
|
36
|
+
rl.close();
|
|
37
|
+
}
|
|
23
38
|
switch (answer.trim()) {
|
|
24
39
|
case "1":
|
|
25
40
|
return "approve";
|
|
@@ -36,7 +51,7 @@ export class CLIApprovalProvider {
|
|
|
36
51
|
* Useful for -c flag / yolo mode
|
|
37
52
|
*/
|
|
38
53
|
export class YoloApprovalProvider {
|
|
39
|
-
request() {
|
|
54
|
+
request(_req, _mainRl) {
|
|
40
55
|
return Promise.resolve("approve");
|
|
41
56
|
}
|
|
42
57
|
}
|
|
@@ -47,31 +62,50 @@ export class YoloApprovalProvider {
|
|
|
47
62
|
export class ApprovalManager {
|
|
48
63
|
autoApproveActions = new Set();
|
|
49
64
|
provider;
|
|
50
|
-
|
|
65
|
+
mainRl;
|
|
66
|
+
constructor(provider, yolo = false, mainRl) {
|
|
51
67
|
this.provider =
|
|
52
68
|
provider ??
|
|
53
69
|
(yolo ? new YoloApprovalProvider() : new CLIApprovalProvider());
|
|
70
|
+
this.mainRl = mainRl;
|
|
71
|
+
}
|
|
72
|
+
setMainRl(rl) {
|
|
73
|
+
this.mainRl = rl;
|
|
54
74
|
}
|
|
55
75
|
async request(toolName, action, description) {
|
|
56
76
|
// Check if already auto-approved for this session
|
|
57
77
|
if (this.autoApproveActions.has(action)) {
|
|
58
78
|
return true;
|
|
59
79
|
}
|
|
80
|
+
// Notify UI that approval is being requested (stop spinner)
|
|
81
|
+
MessageBus.getInstance().publish({
|
|
82
|
+
type: 'approval_requested',
|
|
83
|
+
toolName,
|
|
84
|
+
action,
|
|
85
|
+
});
|
|
60
86
|
const response = await this.provider.request({
|
|
61
87
|
toolName,
|
|
62
88
|
action,
|
|
63
89
|
description,
|
|
90
|
+
}, this.mainRl);
|
|
91
|
+
const approved = (() => {
|
|
92
|
+
switch (response) {
|
|
93
|
+
case "approve":
|
|
94
|
+
return true;
|
|
95
|
+
case "approve_for_session":
|
|
96
|
+
this.autoApproveActions.add(action);
|
|
97
|
+
return true;
|
|
98
|
+
case "reject":
|
|
99
|
+
default:
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
})();
|
|
103
|
+
// Notify UI that approval is complete
|
|
104
|
+
MessageBus.getInstance().publish({
|
|
105
|
+
type: 'approval_completed',
|
|
106
|
+
approved,
|
|
64
107
|
});
|
|
65
|
-
|
|
66
|
-
case "approve":
|
|
67
|
-
return true;
|
|
68
|
-
case "approve_for_session":
|
|
69
|
-
this.autoApproveActions.add(action);
|
|
70
|
-
return true;
|
|
71
|
-
case "reject":
|
|
72
|
-
default:
|
|
73
|
-
return false;
|
|
74
|
-
}
|
|
108
|
+
return approved;
|
|
75
109
|
}
|
|
76
110
|
setProvider(provider) {
|
|
77
111
|
this.provider = provider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApprovalManager.js","sourceRoot":"","sources":["../../src/agent/ApprovalManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"ApprovalManager.js","sourceRoot":"","sources":["../../src/agent/ApprovalManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as readline from "readline";
|
|
1
2
|
/**
|
|
2
3
|
* Response type for approval requests
|
|
3
4
|
*/
|
|
@@ -10,12 +11,13 @@ export interface ApprovalProvider {
|
|
|
10
11
|
/**
|
|
11
12
|
* Request approval for a potentially dangerous operation
|
|
12
13
|
* @param request The approval request details
|
|
14
|
+
* @param mainRl Optional main readline interface to pause during approval
|
|
13
15
|
* @returns Promise resolving to approval response
|
|
14
16
|
*/
|
|
15
17
|
request(request: {
|
|
16
18
|
toolName: string;
|
|
17
19
|
action: string;
|
|
18
20
|
description: string;
|
|
19
|
-
}): Promise<ApprovalResponse>;
|
|
21
|
+
}, mainRl?: readline.Interface): Promise<ApprovalResponse>;
|
|
20
22
|
}
|
|
21
23
|
//# sourceMappingURL=ApprovalProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApprovalProvider.d.ts","sourceRoot":"","sources":["../../src/agent/ApprovalProvider.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,qBAAqB,GAAG,QAAQ,CAAC;AAE5E;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B
|
|
1
|
+
{"version":3,"file":"ApprovalProvider.d.ts","sourceRoot":"","sources":["../../src/agent/ApprovalProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AAErC;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,qBAAqB,GAAG,QAAQ,CAAC;AAE5E;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;OAKG;IACH,OAAO,CACL,OAAO,EAAE;QACP,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;KACrB,EACD,MAAM,CAAC,EAAE,QAAQ,CAAC,SAAS,GAC1B,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC9B"}
|
package/dist/cli.js
CHANGED
|
@@ -49,8 +49,10 @@ async function runAgent(options) {
|
|
|
49
49
|
}
|
|
50
50
|
const config = await ConfigurationLoader.load();
|
|
51
51
|
Logger.debug("CLI", `Config loaded: ${config.defaultModel || "no default"}, ${Object.keys(config.models).length} model(s)`);
|
|
52
|
+
// Check if we have discovered providers from environment
|
|
53
|
+
const hasDiscoveredProviders = Object.keys(config.providers).some((name) => config.providers[name].apiKey);
|
|
52
54
|
const needsSetup = !config.services.hackmd?.apiToken ||
|
|
53
|
-
(!config.defaultModel && !options.model);
|
|
55
|
+
(!config.defaultModel && !options.model && !hasDiscoveredProviders);
|
|
54
56
|
if (needsSetup) {
|
|
55
57
|
console.log(chalk.yellow("⚙️ Configuration needed. Starting setup wizard...\n"));
|
|
56
58
|
await setupCommand(true);
|
|
@@ -115,6 +117,8 @@ async function runAgent(options) {
|
|
|
115
117
|
toolRegistry,
|
|
116
118
|
systemPrompt: agent.systemPrompt,
|
|
117
119
|
});
|
|
120
|
+
// Connect approval manager to shell's readline to prevent stdin conflicts
|
|
121
|
+
approvalManager.setMainRl(shell.getReadline());
|
|
118
122
|
await shell.start(options.command);
|
|
119
123
|
}
|
|
120
124
|
function buildSystemPrompt(workDir) {
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAMA,wBAAsB,YAAY,CAAC,eAAe,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAoFzE"}
|