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.
Files changed (49) hide show
  1. package/README.md +150 -29
  2. package/dist/agent/ApprovalManager.d.ts +10 -3
  3. package/dist/agent/ApprovalManager.d.ts.map +1 -1
  4. package/dist/agent/ApprovalManager.js +55 -21
  5. package/dist/agent/ApprovalManager.js.map +1 -1
  6. package/dist/agent/ApprovalProvider.d.ts +3 -1
  7. package/dist/agent/ApprovalProvider.d.ts.map +1 -1
  8. package/dist/cli.js +5 -1
  9. package/dist/cli.js.map +1 -1
  10. package/dist/commands/setup.d.ts.map +1 -1
  11. package/dist/commands/setup.js +69 -119
  12. package/dist/commands/setup.js.map +1 -1
  13. package/dist/config/AnthropicDiscovery.d.ts +6 -0
  14. package/dist/config/AnthropicDiscovery.d.ts.map +1 -0
  15. package/dist/config/AnthropicDiscovery.js +52 -0
  16. package/dist/config/AnthropicDiscovery.js.map +1 -0
  17. package/dist/config/ConfigurationLoader.d.ts +0 -1
  18. package/dist/config/ConfigurationLoader.d.ts.map +1 -1
  19. package/dist/config/ConfigurationLoader.js +51 -26
  20. package/dist/config/ConfigurationLoader.js.map +1 -1
  21. package/dist/config/OllamaDiscovery.d.ts +6 -0
  22. package/dist/config/OllamaDiscovery.d.ts.map +1 -0
  23. package/dist/config/OllamaDiscovery.js +31 -0
  24. package/dist/config/OllamaDiscovery.js.map +1 -0
  25. package/dist/config/OpenAIDiscovery.d.ts +6 -0
  26. package/dist/config/OpenAIDiscovery.d.ts.map +1 -0
  27. package/dist/config/OpenAIDiscovery.js +74 -0
  28. package/dist/config/OpenAIDiscovery.js.map +1 -0
  29. package/dist/config/ProviderDiscovery.d.ts +5 -0
  30. package/dist/config/ProviderDiscovery.d.ts.map +1 -0
  31. package/dist/config/ProviderDiscovery.js +94 -0
  32. package/dist/config/ProviderDiscovery.js.map +1 -0
  33. package/dist/config/ProviderRegistry.d.ts +16 -0
  34. package/dist/config/ProviderRegistry.d.ts.map +1 -0
  35. package/dist/config/ProviderRegistry.js +56 -0
  36. package/dist/config/ProviderRegistry.js.map +1 -0
  37. package/dist/messaging/MessageTypes.d.ts +7 -0
  38. package/dist/messaging/MessageTypes.d.ts.map +1 -1
  39. package/dist/ui/shell/CommandRegistry.d.ts.map +1 -1
  40. package/dist/ui/shell/CommandRegistry.js +33 -10
  41. package/dist/ui/shell/CommandRegistry.js.map +1 -1
  42. package/dist/ui/shell/InteractiveShell.d.ts +2 -0
  43. package/dist/ui/shell/InteractiveShell.d.ts.map +1 -1
  44. package/dist/ui/shell/InteractiveShell.js +10 -2
  45. package/dist/ui/shell/InteractiveShell.js.map +1 -1
  46. package/dist/ui/shell/OutputRenderer.d.ts.map +1 -1
  47. package/dist/ui/shell/OutputRenderer.js +11 -3
  48. package/dist/ui/shell/OutputRenderer.js.map +1 -1
  49. package/package.json +12 -13
package/README.md CHANGED
@@ -1,55 +1,176 @@
1
1
  # HackWriter
2
2
 
3
- Writing agent for HackMD
3
+ **Writing Agent for HackMD** - Zero-config, multi-provider LLM support
4
4
 
5
- ## Install
5
+ ## Quick Start
6
6
 
7
- ```sh
7
+ ```bash
8
8
  npx hackwriter
9
9
  ```
10
10
 
11
- Or install globally:
11
+ If you don't have API keys configured, the setup wizard will guide you through it.
12
12
 
13
- ```sh
14
- npm i -g hackwriter
15
- ```
13
+ **That's it!** No config files needed.
14
+
15
+ ---
16
16
 
17
- ## Configure
17
+ ## Installation
18
+
19
+ **One-time use**:
20
+ ```bash
21
+ npx hackwriter
22
+ ```
18
23
 
19
- First run will prompt for setup:
24
+ **Global install**:
25
+ ```bash
26
+ npm i -g hackwriter
20
27
 
21
- ```sh
22
28
  hackwriter
23
29
  ```
24
30
 
25
- You'll need:
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
- - LLM provider API key (OpenAI or Anthropic)
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
- ```sh
33
- hackwriter # interactive shell
34
- hackwriter -c "list notes" # single command
35
- hackwriter --continue # resume session
36
- hackwriter --yolo # auto-approve all
37
- hackwriter --debug # detailed logs
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
- Inside shell: `/help`, `/status`, `/clear`, `exit`
100
+ ### Shell Commands
41
101
 
42
- ## Features
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
- - Lists, reads, creates, updates, deletes HackMD notes (personal & team)
45
- - Streams agent thoughts with tool-call status
46
- - Persists sessions in `~/.hackwriter/sessions`
47
- - Asks confirmation before destructive actions (unless `--yolo`)
119
+ ```bash
120
+ hackwriter --yolo # Skip all confirmations
121
+ ```
122
+
123
+ ---
48
124
 
49
- ## Development
125
+ ## Supported Providers
50
126
 
51
- ```sh
52
- pnpm install
53
- pnpm run dev
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(): Promise<ApprovalResponse>;
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
- constructor(provider?: ApprovalProvider, yolo?: boolean);
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":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEhF;;;GAGG;AACH,qBAAa,mBAAoB,YAAW,gBAAgB;IACpD,OAAO,CAAC,GAAG,EAAE;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CA8B9B;AAED;;;GAGG;AACH,qBAAa,oBAAqB,YAAW,gBAAgB;IAC3D,OAAO,IAAI,OAAO,CAAC,gBAAgB,CAAC;CAGrC;AAED;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAmB;gBAEvB,QAAQ,CAAC,EAAE,gBAAgB,EAAE,IAAI,UAAQ;IAM/C,OAAO,CACX,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC;IAwBnB,WAAW,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;CAG9C"}
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
- const rl = readline.createInterface({
16
- input: process.stdin,
17
- output: process.stdout,
18
- });
19
- const answer = await new Promise((resolve) => {
20
- rl.question("\nYour choice (1-3): ", resolve);
21
- });
22
- rl.close();
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
- constructor(provider, yolo = false) {
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
- switch (response) {
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;AAGrC;;;GAGG;AACH,MAAM,OAAO,mBAAmB;IAC9B,KAAK,CAAC,OAAO,CAAC,GAIb;QACC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAE3B,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;YAClC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;YACnD,EAAE,CAAC,QAAQ,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,KAAK,EAAE,CAAC;QAEX,QAAQ,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YACtB,KAAK,GAAG;gBACN,OAAO,SAAS,CAAC;YACnB,KAAK,GAAG;gBACN,OAAO,qBAAqB,CAAC;YAC/B,KAAK,GAAG,CAAC;YACT;gBACE,OAAO,QAAQ,CAAC;QACpB,CAAC;IACH,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,oBAAoB;IAC/B,OAAO;QACL,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,eAAe;IAClB,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,QAAQ,CAAmB;IAEnC,YAAY,QAA2B,EAAE,IAAI,GAAG,KAAK;QACnD,IAAI,CAAC,QAAQ;YACX,QAAQ;gBACR,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,OAAO,CACX,QAAgB,EAChB,MAAc,EACd,WAAmB;QAEnB,kDAAkD;QAClD,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC3C,QAAQ;YACR,MAAM;YACN,WAAW;SACZ,CAAC,CAAC;QAEH,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,SAAS;gBACZ,OAAO,IAAI,CAAC;YACd,KAAK,qBAAqB;gBACxB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACpC,OAAO,IAAI,CAAC;YACd,KAAK,QAAQ,CAAC;YACd;gBACE,OAAO,KAAK,CAAC;QACjB,CAAC;IACH,CAAC;IAED,WAAW,CAAC,QAA0B;QACpC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF"}
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;;;;OAIG;IACH,OAAO,CAAC,OAAO,EAAE;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC/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":"AAQA,wBAAsB,YAAY,CAAC,eAAe,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA4JzE"}
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"}