ineedcodes 0.1.5 → 0.2.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/agent.mjs +244 -0
- package/package.json +10 -25
- package/docs/assets/ineed-logo.svg +0 -161
- package/docs/configuration.md +0 -71
- package/docs/skills.md +0 -58
- package/packages/agent/dist/boost.d.ts +0 -34
- package/packages/agent/dist/boost.js +0 -138
- package/packages/agent/dist/boost.js.map +0 -1
- package/packages/agent/dist/events.d.ts +0 -67
- package/packages/agent/dist/events.js +0 -16
- package/packages/agent/dist/events.js.map +0 -1
- package/packages/agent/dist/index.d.ts +0 -6
- package/packages/agent/dist/index.js +0 -7
- package/packages/agent/dist/index.js.map +0 -1
- package/packages/agent/dist/lead-agent.d.ts +0 -85
- package/packages/agent/dist/lead-agent.js +0 -235
- package/packages/agent/dist/lead-agent.js.map +0 -1
- package/packages/agent/dist/orchestrator.d.ts +0 -43
- package/packages/agent/dist/orchestrator.js +0 -135
- package/packages/agent/dist/orchestrator.js.map +0 -1
- package/packages/agent/dist/runtime.d.ts +0 -44
- package/packages/agent/dist/runtime.js +0 -265
- package/packages/agent/dist/runtime.js.map +0 -1
- package/packages/agent/dist/system-prompts.d.ts +0 -24
- package/packages/agent/dist/system-prompts.js +0 -91
- package/packages/agent/dist/system-prompts.js.map +0 -1
- package/packages/agent/package.json +0 -21
- package/packages/cli/dist/index.d.ts +0 -3
- package/packages/cli/dist/index.js +0 -11440
- package/packages/cli/dist/index.js.map +0 -1
- package/packages/cli/dist/setup.d.ts +0 -37
- package/packages/cli/dist/setup.js +0 -250
- package/packages/cli/dist/setup.js.map +0 -1
- package/packages/cli/dist/tools-setup.d.ts +0 -12
- package/packages/cli/dist/tools-setup.js +0 -28
- package/packages/cli/dist/tools-setup.js.map +0 -1
- package/packages/cli/dist/ui/approval.d.ts +0 -12
- package/packages/cli/dist/ui/approval.js +0 -52
- package/packages/cli/dist/ui/approval.js.map +0 -1
- package/packages/cli/dist/ui/colors.d.ts +0 -14
- package/packages/cli/dist/ui/colors.js +0 -21
- package/packages/cli/dist/ui/colors.js.map +0 -1
- package/packages/cli/dist/ui/prompts.d.ts +0 -46
- package/packages/cli/dist/ui/prompts.js +0 -135
- package/packages/cli/dist/ui/prompts.js.map +0 -1
- package/packages/cli/dist/ui/renderer.d.ts +0 -13
- package/packages/cli/dist/ui/renderer.js +0 -95
- package/packages/cli/dist/ui/renderer.js.map +0 -1
- package/packages/cli/package.json +0 -23
- package/packages/core/dist/config/config.d.ts +0 -32
- package/packages/core/dist/config/config.js +0 -43
- package/packages/core/dist/config/config.js.map +0 -1
- package/packages/core/dist/context/engine.d.ts +0 -25
- package/packages/core/dist/context/engine.js +0 -98
- package/packages/core/dist/context/engine.js.map +0 -1
- package/packages/core/dist/index.d.ts +0 -20
- package/packages/core/dist/index.js +0 -21
- package/packages/core/dist/index.js.map +0 -1
- package/packages/core/dist/llm/openai-compatible.d.ts +0 -23
- package/packages/core/dist/llm/openai-compatible.js +0 -177
- package/packages/core/dist/llm/openai-compatible.js.map +0 -1
- package/packages/core/dist/memory/icm-adapter.d.ts +0 -31
- package/packages/core/dist/memory/icm-adapter.js +0 -98
- package/packages/core/dist/memory/icm-adapter.js.map +0 -1
- package/packages/core/dist/permissions/permissions.d.ts +0 -28
- package/packages/core/dist/permissions/permissions.js +0 -89
- package/packages/core/dist/permissions/permissions.js.map +0 -1
- package/packages/core/dist/security/secrets.d.ts +0 -4
- package/packages/core/dist/security/secrets.js +0 -43
- package/packages/core/dist/security/secrets.js.map +0 -1
- package/packages/core/dist/session/store.d.ts +0 -16
- package/packages/core/dist/session/store.js +0 -54
- package/packages/core/dist/session/store.js.map +0 -1
- package/packages/core/dist/shell/process.d.ts +0 -26
- package/packages/core/dist/shell/process.js +0 -128
- package/packages/core/dist/shell/process.js.map +0 -1
- package/packages/core/dist/skills/loader.d.ts +0 -9
- package/packages/core/dist/skills/loader.js +0 -163
- package/packages/core/dist/skills/loader.js.map +0 -1
- package/packages/core/dist/tools/fs.d.ts +0 -10
- package/packages/core/dist/tools/fs.js +0 -409
- package/packages/core/dist/tools/fs.js.map +0 -1
- package/packages/core/dist/tools/git.d.ts +0 -7
- package/packages/core/dist/tools/git.js +0 -251
- package/packages/core/dist/tools/git.js.map +0 -1
- package/packages/core/dist/tools/mcp.d.ts +0 -42
- package/packages/core/dist/tools/mcp.js +0 -158
- package/packages/core/dist/tools/mcp.js.map +0 -1
- package/packages/core/dist/tools/registry.d.ts +0 -21
- package/packages/core/dist/tools/registry.js +0 -50
- package/packages/core/dist/tools/registry.js.map +0 -1
- package/packages/core/dist/tools/search.d.ts +0 -2
- package/packages/core/dist/tools/search.js +0 -243
- package/packages/core/dist/tools/search.js.map +0 -1
- package/packages/core/dist/tools/shell.d.ts +0 -8
- package/packages/core/dist/tools/shell.js +0 -164
- package/packages/core/dist/tools/shell.js.map +0 -1
- package/packages/core/dist/tools/web.d.ts +0 -14
- package/packages/core/dist/tools/web.js +0 -125
- package/packages/core/dist/tools/web.js.map +0 -1
- package/packages/core/dist/types.d.ts +0 -202
- package/packages/core/dist/types.js +0 -7
- package/packages/core/dist/types.js.map +0 -1
- package/packages/core/dist/util/fs.d.ts +0 -5
- package/packages/core/dist/util/fs.js +0 -33
- package/packages/core/dist/util/fs.js.map +0 -1
- package/packages/core/dist/util/shell-quote.d.ts +0 -7
- package/packages/core/dist/util/shell-quote.js +0 -20
- package/packages/core/dist/util/shell-quote.js.map +0 -1
- package/packages/core/dist/workspace/workspace.d.ts +0 -15
- package/packages/core/dist/workspace/workspace.js +0 -84
- package/packages/core/dist/workspace/workspace.js.map +0 -1
- package/packages/core/package.json +0 -22
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Interactive first-run setup. The user should never need to hand-edit
|
|
3
|
-
* JSON or set environment variables to get started.
|
|
4
|
-
*/
|
|
5
|
-
export interface ProviderPreset {
|
|
6
|
-
label: string;
|
|
7
|
-
baseUrl: string;
|
|
8
|
-
hint: string;
|
|
9
|
-
}
|
|
10
|
-
export declare const PRESETS: ProviderPreset[];
|
|
11
|
-
export interface ProviderSetup {
|
|
12
|
-
baseUrl: string;
|
|
13
|
-
apiKey: string;
|
|
14
|
-
model: string;
|
|
15
|
-
}
|
|
16
|
-
/** Fetch the model list from an OpenAI-compatible server. */
|
|
17
|
-
export declare function fetchModels(baseUrl: string, apiKey: string, timeoutMs?: number): Promise<string[]>;
|
|
18
|
-
/** Send one tiny chat completion to prove the setup works. */
|
|
19
|
-
export declare function testConnection(baseUrl: string, apiKey: string, model: string, timeoutMs?: number): Promise<{
|
|
20
|
-
ok: boolean;
|
|
21
|
-
detail: string;
|
|
22
|
-
servedBy?: string;
|
|
23
|
-
}>;
|
|
24
|
-
/** Anything that can ask the user a question (LineReader, main prompt, …). */
|
|
25
|
-
export interface Askable {
|
|
26
|
-
ask(label: string): Promise<{
|
|
27
|
-
input: string;
|
|
28
|
-
cancelled: boolean;
|
|
29
|
-
}>;
|
|
30
|
-
}
|
|
31
|
-
/** Interactive model picker against the live server. Returns a model id. */
|
|
32
|
-
export declare function pickModel(lr: Askable, baseUrl: string, apiKey: string, prefill: string, curated?: string[]): Promise<string | undefined>;
|
|
33
|
-
/**
|
|
34
|
-
* Full first-run wizard. Saves into ~/.ineedcodes/config.json via onSave.
|
|
35
|
-
* Returns the configured values, or undefined if the user cancelled.
|
|
36
|
-
*/
|
|
37
|
-
export declare function runSetupWizard(lr: Askable, existing?: Partial<ProviderSetup>, onSave?: (values: ProviderSetup) => Promise<void>): Promise<ProviderSetup | undefined>;
|
|
@@ -1,250 +0,0 @@
|
|
|
1
|
-
import { bold, dim, green, red, yellow, cyan, truncate } from './ui/colors.js';
|
|
2
|
-
export const PRESETS = [
|
|
3
|
-
{ label: 'OpenAI', baseUrl: 'https://api.openai.com/v1', hint: 'api.openai.com' },
|
|
4
|
-
{ label: 'Other OpenAI-compatible API (custom URL)', baseUrl: '', hint: 'LM Studio, Ollama, vLLM, any /v1 endpoint' }
|
|
5
|
-
];
|
|
6
|
-
/** Fetch the model list from an OpenAI-compatible server. */
|
|
7
|
-
export async function fetchModels(baseUrl, apiKey, timeoutMs = 15_000) {
|
|
8
|
-
const controller = new AbortController();
|
|
9
|
-
const timer = setTimeout(() => controller.abort(), timeoutMs);
|
|
10
|
-
try {
|
|
11
|
-
const res = await fetch(`${baseUrl.replace(/\/+$/, '')}/models`, {
|
|
12
|
-
signal: controller.signal,
|
|
13
|
-
headers: apiKey ? { authorization: `Bearer ${apiKey}` } : {}
|
|
14
|
-
});
|
|
15
|
-
if (!res.ok)
|
|
16
|
-
return [];
|
|
17
|
-
const body = (await res.json());
|
|
18
|
-
return (body.data ?? []).map((m) => m.id ?? '').filter(Boolean).sort();
|
|
19
|
-
}
|
|
20
|
-
catch {
|
|
21
|
-
return [];
|
|
22
|
-
}
|
|
23
|
-
finally {
|
|
24
|
-
clearTimeout(timer);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
/** Send one tiny chat completion to prove the setup works. */
|
|
28
|
-
export async function testConnection(baseUrl, apiKey, model, timeoutMs = 45_000) {
|
|
29
|
-
const controller = new AbortController();
|
|
30
|
-
const timer = setTimeout(() => controller.abort(), timeoutMs);
|
|
31
|
-
try {
|
|
32
|
-
const res = await fetch(`${baseUrl.replace(/\/+$/, '')}/chat/completions`, {
|
|
33
|
-
method: 'POST',
|
|
34
|
-
signal: controller.signal,
|
|
35
|
-
headers: { 'content-type': 'application/json', authorization: `Bearer ${apiKey}` },
|
|
36
|
-
body: JSON.stringify({
|
|
37
|
-
model,
|
|
38
|
-
messages: [{ role: 'user', content: 'Reply with exactly: OK' }],
|
|
39
|
-
max_tokens: 20
|
|
40
|
-
})
|
|
41
|
-
});
|
|
42
|
-
if (!res.ok) {
|
|
43
|
-
const text = await res.text().catch(() => '');
|
|
44
|
-
return { ok: false, detail: `HTTP ${res.status}: ${text.slice(0, 200) || res.statusText}` };
|
|
45
|
-
}
|
|
46
|
-
const body = (await res.json());
|
|
47
|
-
const reply = body.choices?.[0]?.message?.content?.trim().slice(0, 40) ?? '';
|
|
48
|
-
return { ok: true, detail: reply ? `model replied "${truncate(reply, 30)}"` : 'model replied', servedBy: body.model };
|
|
49
|
-
}
|
|
50
|
-
catch (err) {
|
|
51
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
52
|
-
return { ok: false, detail: message };
|
|
53
|
-
}
|
|
54
|
-
finally {
|
|
55
|
-
clearTimeout(timer);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
/** Interactive model picker against the live server. Returns a model id. */
|
|
59
|
-
export async function pickModel(lr, baseUrl, apiKey, prefill, curated) {
|
|
60
|
-
// Curated list wins when present: show only those, keep it simple.
|
|
61
|
-
if (curated && curated.length > 0) {
|
|
62
|
-
process.stdout.write(green(`\nAvailable models (${curated.length}):\n`));
|
|
63
|
-
curated.forEach((m, i) => {
|
|
64
|
-
const marker = m === prefill ? green(' ← current') : '';
|
|
65
|
-
process.stdout.write(` ${cyan(String(i + 1).padStart(2))}. ${m}${marker}\n`);
|
|
66
|
-
});
|
|
67
|
-
while (true) {
|
|
68
|
-
const pick = await lr.ask(`Pick a number ${dim('[1]')} (or type a full model id):`);
|
|
69
|
-
if (pick.cancelled)
|
|
70
|
-
return undefined;
|
|
71
|
-
if (!pick.input)
|
|
72
|
-
return curated[0];
|
|
73
|
-
const idx = Number.parseInt(pick.input, 10);
|
|
74
|
-
if (Number.isInteger(idx) && idx >= 1 && idx <= curated.length)
|
|
75
|
-
return curated[idx - 1];
|
|
76
|
-
if (pick.input.includes('/'))
|
|
77
|
-
return pick.input; // escape hatch: any id
|
|
78
|
-
process.stdout.write(red('Not a valid number. Try again.\n'));
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
process.stdout.write(dim('\nFetching the model list…\n'));
|
|
82
|
-
const models = await fetchModels(baseUrl, apiKey);
|
|
83
|
-
if (models.length === 0) {
|
|
84
|
-
// Server hides /models: ask the user to type a model id directly.
|
|
85
|
-
process.stdout.write(yellow('Server did not return a model list (many routers hide it). Type the model id instead, e.g. "gpt-4o-mini" or check the provider docs.\n'));
|
|
86
|
-
while (true) {
|
|
87
|
-
const r = await lr.ask(`Model id ${prefill ? dim(`[default: ${prefill}]`) : ''}:`);
|
|
88
|
-
if (r.cancelled)
|
|
89
|
-
return undefined;
|
|
90
|
-
const id = r.input.trim() || prefill;
|
|
91
|
-
if (id)
|
|
92
|
-
return id;
|
|
93
|
-
process.stdout.write(red('A model id is required. Example: gpt-4o-mini\n'));
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
process.stdout.write(green(`Found ${models.length} model(s).\n`));
|
|
97
|
-
while (true) {
|
|
98
|
-
const filterR = await lr.ask(`Filter models by typing part of the name ${dim(`(e.g. "fast", "claude"; Enter shows popular ones${prefill ? `; default: ${prefill}` : ''})`)}:`);
|
|
99
|
-
if (filterR.cancelled)
|
|
100
|
-
return undefined;
|
|
101
|
-
const typed = filterR.input.trim();
|
|
102
|
-
if (typed && models.includes(typed))
|
|
103
|
-
return typed;
|
|
104
|
-
if (!typed && prefill && models.includes(prefill)) {
|
|
105
|
-
const keep = await lr.ask(dim(`Keep current model "${prefill}"? [Y/n]:`));
|
|
106
|
-
if (!keep.cancelled && !/^n/i.test(keep.input))
|
|
107
|
-
return prefill;
|
|
108
|
-
}
|
|
109
|
-
const needle = typed.toLowerCase();
|
|
110
|
-
const matches = models.filter((m) => m.toLowerCase().includes(needle));
|
|
111
|
-
if (matches.length === 0) {
|
|
112
|
-
process.stdout.write(red(`No model matches "${typed}". Try another word.\n`));
|
|
113
|
-
continue;
|
|
114
|
-
}
|
|
115
|
-
const shown = matches.slice(0, 15);
|
|
116
|
-
process.stdout.write('\n');
|
|
117
|
-
shown.forEach((m, i) => {
|
|
118
|
-
process.stdout.write(` ${cyan(String(i + 1).padStart(2))}. ${m}\n`);
|
|
119
|
-
});
|
|
120
|
-
if (matches.length > shown.length) {
|
|
121
|
-
process.stdout.write(dim(` … ${matches.length - shown.length} more: type a narrower filter\n`));
|
|
122
|
-
}
|
|
123
|
-
const pick = await lr.ask(`Pick a number ${dim('[1]')}:`);
|
|
124
|
-
if (pick.cancelled)
|
|
125
|
-
return undefined;
|
|
126
|
-
if (!pick.input)
|
|
127
|
-
return shown[0];
|
|
128
|
-
const idx = Number.parseInt(pick.input, 10);
|
|
129
|
-
if (Number.isInteger(idx) && idx >= 1 && idx <= shown.length)
|
|
130
|
-
return shown[idx - 1];
|
|
131
|
-
if (models.includes(pick.input))
|
|
132
|
-
return pick.input;
|
|
133
|
-
process.stdout.write(red('Not a valid number. Try again.\n'));
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
/** Classify why a server did not return a model list. */
|
|
137
|
-
async function diagnoseConnection(baseUrl, apiKey) {
|
|
138
|
-
try {
|
|
139
|
-
const controller = new AbortController();
|
|
140
|
-
const timer = setTimeout(() => controller.abort(), 12_000);
|
|
141
|
-
const res = await fetch(`${baseUrl.replace(/\/+$/, '')}/models`, {
|
|
142
|
-
signal: controller.signal,
|
|
143
|
-
headers: apiKey ? { authorization: `Bearer ${apiKey}` } : {}
|
|
144
|
-
});
|
|
145
|
-
clearTimeout(timer);
|
|
146
|
-
if (res.status === 401 || res.status === 403)
|
|
147
|
-
return 'bad_key';
|
|
148
|
-
return 'no_models';
|
|
149
|
-
}
|
|
150
|
-
catch {
|
|
151
|
-
return 'unreachable';
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* Full first-run wizard. Saves into ~/.ineedcodes/config.json via onSave.
|
|
156
|
-
* Returns the configured values, or undefined if the user cancelled.
|
|
157
|
-
*/
|
|
158
|
-
export async function runSetupWizard(lr, existing, onSave) {
|
|
159
|
-
process.stdout.write('\n' + bold('Welcome to iNeedCodes!') + '\n');
|
|
160
|
-
process.stdout.write('Let\'s connect it to an AI provider. You only do this once.\n\n');
|
|
161
|
-
// 1. Preset
|
|
162
|
-
let selected;
|
|
163
|
-
while (true) {
|
|
164
|
-
process.stdout.write(bold('Which provider do you want to use?') + '\n');
|
|
165
|
-
PRESETS.forEach((p, i) => {
|
|
166
|
-
process.stdout.write(` ${cyan(String(i + 1))}. ${p.label} ${dim(`(${p.hint})`)}\n`);
|
|
167
|
-
});
|
|
168
|
-
const choice = await lr.ask(`Your choice ${dim('[1]')}:`);
|
|
169
|
-
if (choice.cancelled)
|
|
170
|
-
return undefined;
|
|
171
|
-
const n = Number.parseInt(choice.input || '1', 10);
|
|
172
|
-
selected = PRESETS[n - 1];
|
|
173
|
-
if (selected)
|
|
174
|
-
break;
|
|
175
|
-
process.stdout.write(red('Pick a number from the list.\n'));
|
|
176
|
-
}
|
|
177
|
-
// 2. Base URL
|
|
178
|
-
let baseUrl = selected.baseUrl;
|
|
179
|
-
while (true) {
|
|
180
|
-
const r = await lr.ask(`API base URL ${dim(`[${selected.baseUrl || existing?.baseUrl || 'https://api.openai.com/v1'}]`)}:`);
|
|
181
|
-
if (r.cancelled)
|
|
182
|
-
return undefined;
|
|
183
|
-
const typed = r.input.trim();
|
|
184
|
-
baseUrl = typed || selected.baseUrl || existing?.baseUrl || 'https://api.openai.com/v1';
|
|
185
|
-
if (/^https?:\/\//.test(baseUrl))
|
|
186
|
-
break;
|
|
187
|
-
process.stdout.write(red('URL must start with http:// or https://\n'));
|
|
188
|
-
}
|
|
189
|
-
// 3. API key
|
|
190
|
-
let apiKey = existing?.apiKey ?? '';
|
|
191
|
-
while (!apiKey) {
|
|
192
|
-
const r = await lr.ask('API key (paste it, then Enter):');
|
|
193
|
-
if (r.cancelled)
|
|
194
|
-
return undefined;
|
|
195
|
-
apiKey = r.input.trim();
|
|
196
|
-
if (!apiKey)
|
|
197
|
-
process.stdout.write(yellow('An API key is required.\n'));
|
|
198
|
-
}
|
|
199
|
-
// 4. Connection check. /models may be locked on some routers even with a
|
|
200
|
-
// valid key, so a 401 there does NOT prove the key is bad: only a real
|
|
201
|
-
// chat completion proves auth. Try cheap first, verify with a real request
|
|
202
|
-
// if the cheap one fails.
|
|
203
|
-
process.stdout.write(dim('\nChecking connection…\n'));
|
|
204
|
-
const reachable = await fetchModels(baseUrl, apiKey, 12_000);
|
|
205
|
-
if (reachable.length > 0) {
|
|
206
|
-
process.stdout.write(green('✓ Connected.') + dim(` (${reachable.length} model(s) available)\n`));
|
|
207
|
-
}
|
|
208
|
-
else {
|
|
209
|
-
const probe = await testConnection(baseUrl, apiKey, 'gpt-4o-mini', 30_000).catch(() => ({ ok: false, detail: 'unreachable', servedBy: undefined }));
|
|
210
|
-
if (probe.ok) {
|
|
211
|
-
process.stdout.write(green('✓ Connected.') + dim(' (server hides its model list; that is fine)\n'));
|
|
212
|
-
}
|
|
213
|
-
else if (/fetch|econn|abort|timeout|enotfound/i.test(probe.detail)) {
|
|
214
|
-
process.stdout.write(yellow(`⚠ Could not reach ${baseUrl}.\n`));
|
|
215
|
-
const keep = await lr.ask('Keep this URL anyway? [y/N]:');
|
|
216
|
-
if (keep.cancelled || !/^y/i.test(keep.input))
|
|
217
|
-
return undefined;
|
|
218
|
-
}
|
|
219
|
-
else {
|
|
220
|
-
// Wrong key OR model name not routed; ask for a new key with a clear loop.
|
|
221
|
-
process.stdout.write(yellow(`⚠ Connection test failed: ${probe.detail.slice(0, 120)}\n`));
|
|
222
|
-
const retry = await lr.ask('Re-paste the API key (Enter to continue anyway):');
|
|
223
|
-
if (retry.cancelled)
|
|
224
|
-
return undefined;
|
|
225
|
-
if (retry.input.trim())
|
|
226
|
-
apiKey = retry.input.trim();
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
// 5. Model: type the id directly (no /models listing required).
|
|
230
|
-
const model = await pickModel(lr, baseUrl, apiKey, existing?.model ?? '');
|
|
231
|
-
if (!model)
|
|
232
|
-
return undefined;
|
|
233
|
-
// 6. Final verification with the chosen model
|
|
234
|
-
process.stdout.write(dim(`\nTesting ${model}…\n`));
|
|
235
|
-
const final = await testConnection(baseUrl, apiKey, model);
|
|
236
|
-
if (final.ok) {
|
|
237
|
-
process.stdout.write(green('✓ Works!') + (final.servedBy && final.servedBy !== model ? dim(` (routed to ${final.servedBy})`) : '') + '\n');
|
|
238
|
-
}
|
|
239
|
-
else {
|
|
240
|
-
process.stdout.write(yellow(`⚠ Model test did not pass (${final.detail}). Saving anyway: you can change the model later with /model.\n`));
|
|
241
|
-
}
|
|
242
|
-
const values = { baseUrl, apiKey, model };
|
|
243
|
-
if (onSave) {
|
|
244
|
-
await onSave(values);
|
|
245
|
-
process.stdout.write(green('\nSaved to ~/.ineedcodes/config.json') + '\n');
|
|
246
|
-
process.stdout.write('All set! From now on just run ' + bold('ineed') + ' in any project and say what you want.\n');
|
|
247
|
-
}
|
|
248
|
-
return values;
|
|
249
|
-
}
|
|
250
|
-
//# sourceMappingURL=setup.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { ToolRegistry, ToolContext } from '@ineedcodes/core';
|
|
2
|
-
import { ProcessManager } from '@ineedcodes/core';
|
|
3
|
-
export declare function getProcessManager(): ProcessManager;
|
|
4
|
-
export declare function shutdownProcesses(): void;
|
|
5
|
-
export declare function registerBuiltinTools(registry: ToolRegistry, opts: {
|
|
6
|
-
webSearch?: {
|
|
7
|
-
provider: string;
|
|
8
|
-
apiKey?: string;
|
|
9
|
-
baseUrl?: string;
|
|
10
|
-
};
|
|
11
|
-
}): void;
|
|
12
|
-
export declare function buildToolContext(workspaceRoot: string, cwd: string, permissions: ToolContext['permissions']): ToolContext;
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { createFilesystemTools, createSearchTools, createShellTools, createGitTools, createWebTools, ProcessManager } from '@ineedcodes/core';
|
|
2
|
-
let manager;
|
|
3
|
-
export function getProcessManager() {
|
|
4
|
-
if (!manager) {
|
|
5
|
-
manager = new ProcessManager();
|
|
6
|
-
globalThis['__ineedcodesProcessManager'] = manager;
|
|
7
|
-
}
|
|
8
|
-
return manager;
|
|
9
|
-
}
|
|
10
|
-
export function shutdownProcesses() {
|
|
11
|
-
manager?.drain();
|
|
12
|
-
}
|
|
13
|
-
export function registerBuiltinTools(registry, opts) {
|
|
14
|
-
for (const tool of createFilesystemTools())
|
|
15
|
-
registry.register(tool);
|
|
16
|
-
for (const tool of createSearchTools())
|
|
17
|
-
registry.register(tool);
|
|
18
|
-
for (const tool of createShellTools())
|
|
19
|
-
registry.register(tool);
|
|
20
|
-
for (const tool of createGitTools())
|
|
21
|
-
registry.register(tool);
|
|
22
|
-
for (const tool of createWebTools(opts.webSearch))
|
|
23
|
-
registry.register(tool);
|
|
24
|
-
}
|
|
25
|
-
export function buildToolContext(workspaceRoot, cwd, permissions) {
|
|
26
|
-
return { workspaceRoot, cwd, permissions, processManager: getProcessManager() };
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=tools-setup.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tools-setup.js","sourceRoot":"","sources":["../src/tools-setup.ts"],"names":[],"mappings":"AACA,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,cAAc,EACf,MAAM,kBAAkB,CAAC;AAE1B,IAAI,OAAmC,CAAC;AAExC,MAAM,UAAU,iBAAiB;IAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;QAC9B,UAA8D,CAAC,4BAA4B,CAAC,GAAG,OAAO,CAAC;IAC1G,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,EAAE,KAAK,EAAE,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,QAAsB,EACtB,IAA6E;IAE7E,KAAK,MAAM,IAAI,IAAI,qBAAqB,EAAE;QAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACpE,KAAK,MAAM,IAAI,IAAI,iBAAiB,EAAE;QAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAChE,KAAK,MAAM,IAAI,IAAI,gBAAgB,EAAE;QAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/D,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE;QAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7D,KAAK,MAAM,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC;QAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,aAAqB,EAAE,GAAW,EAAE,WAAuC;IAC1G,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,WAAW,EAAE,cAAc,EAAE,iBAAiB,EAAE,EAAE,CAAC;AAClF,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { PermissionCategory, PermissionDecision } from '@ineedcodes/core';
|
|
2
|
-
/**
|
|
3
|
-
* Terminal approval prompt used by the permission engine when a high-impact
|
|
4
|
-
* action needs a decision. Asking is the runtime's job, not the prompt's.
|
|
5
|
-
*/
|
|
6
|
-
export declare function askApproval(question: string, detail?: string): Promise<boolean>;
|
|
7
|
-
export declare function askApprovalWithScope(question: string, detail?: string): Promise<{
|
|
8
|
-
approved: boolean;
|
|
9
|
-
always: boolean;
|
|
10
|
-
}>;
|
|
11
|
-
export declare function printDecision(decision: PermissionDecision): void;
|
|
12
|
-
export declare function listCategories(categories: readonly PermissionCategory[]): string;
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { bold, dim, green, red, yellow } from './colors.js';
|
|
2
|
-
/**
|
|
3
|
-
* Terminal approval prompt used by the permission engine when a high-impact
|
|
4
|
-
* action needs a decision. Asking is the runtime's job, not the prompt's.
|
|
5
|
-
*/
|
|
6
|
-
export async function askApproval(question, detail) {
|
|
7
|
-
const { approved } = await askApprovalWithScope(question, detail);
|
|
8
|
-
return approved;
|
|
9
|
-
}
|
|
10
|
-
export async function askApprovalWithScope(question, detail) {
|
|
11
|
-
process.stdout.write('\n' + bold(yellow('⚠ Approval needed')) + '\n');
|
|
12
|
-
process.stdout.write(` ${question}\n`);
|
|
13
|
-
if (detail)
|
|
14
|
-
process.stdout.write(dim(` ${detail}\n`));
|
|
15
|
-
process.stdout.write(dim(' [y] yes, once · [a] always for this session · [n] no\n'));
|
|
16
|
-
const answer = await readLine('your choice: ');
|
|
17
|
-
const normalized = answer.trim().toLowerCase();
|
|
18
|
-
if (normalized === 'a')
|
|
19
|
-
return { approved: true, always: true };
|
|
20
|
-
return { approved: normalized === 'y', always: false };
|
|
21
|
-
}
|
|
22
|
-
export function printDecision(decision) {
|
|
23
|
-
if (decision.allowed) {
|
|
24
|
-
process.stdout.write(green('✓ allowed') + '\n');
|
|
25
|
-
}
|
|
26
|
-
else {
|
|
27
|
-
process.stdout.write(red('✗ blocked') + ' ' + dim(decision.reason) + '\n');
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
export function listCategories(categories) {
|
|
31
|
-
return categories.join(', ');
|
|
32
|
-
}
|
|
33
|
-
function readLine(promptText) {
|
|
34
|
-
return new Promise((resolve) => {
|
|
35
|
-
process.stdout.write(dim(promptText));
|
|
36
|
-
let input = '';
|
|
37
|
-
const onData = (chunk) => {
|
|
38
|
-
input += chunk.toString('utf8');
|
|
39
|
-
if (input.includes('\n')) {
|
|
40
|
-
cleanup();
|
|
41
|
-
resolve(input.trim());
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
const cleanup = () => {
|
|
45
|
-
process.stdin.removeListener('data', onData);
|
|
46
|
-
process.stdin.pause();
|
|
47
|
-
};
|
|
48
|
-
process.stdin.resume();
|
|
49
|
-
process.stdin.on('data', onData);
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
//# sourceMappingURL=approval.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"approval.js","sourceRoot":"","sources":["../../src/ui/approval.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE5D;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,QAAgB,EAAE,MAAe;IACjE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAClE,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,QAAgB,EAChB,MAAe;IAEf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACtE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC;IACxC,IAAI,MAAM;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC;IACvD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC,CAAC;IAEtF,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC/C,IAAI,UAAU,KAAK,GAAG;QAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAChE,OAAO,EAAE,QAAQ,EAAE,UAAU,KAAK,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAA4B;IACxD,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC;IAClD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;IAC7E,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,UAAyC;IACtE,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,QAAQ,CAAC,UAAkB;IAClC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QACtC,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,EAAE;YAC/B,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAChC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzB,OAAO,EAAE,CAAC;gBACV,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YACxB,CAAC;QACH,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC7C,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC,CAAC;QACF,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Minimal ANSI helpers: zero dependencies, safe on all modern terminals.
|
|
3
|
-
*/
|
|
4
|
-
export declare function ansi(code: string, text: string): string;
|
|
5
|
-
export declare const bold: (t: string) => string;
|
|
6
|
-
export declare const dim: (t: string) => string;
|
|
7
|
-
export declare const red: (t: string) => string;
|
|
8
|
-
export declare const green: (t: string) => string;
|
|
9
|
-
export declare const yellow: (t: string) => string;
|
|
10
|
-
export declare const blue: (t: string) => string;
|
|
11
|
-
export declare const magenta: (t: string) => string;
|
|
12
|
-
export declare const cyan: (t: string) => string;
|
|
13
|
-
export declare const gray: (t: string) => string;
|
|
14
|
-
export declare function truncate(text: string, max?: number): string;
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Minimal ANSI helpers: zero dependencies, safe on all modern terminals.
|
|
3
|
-
*/
|
|
4
|
-
const enabled = process.env['NO_COLOR'] === undefined && process.stdout.isTTY;
|
|
5
|
-
export function ansi(code, text) {
|
|
6
|
-
return enabled ? `\x1b[${code}m${text}\x1b[0m` : text;
|
|
7
|
-
}
|
|
8
|
-
export const bold = (t) => ansi('1', t);
|
|
9
|
-
export const dim = (t) => ansi('2', t);
|
|
10
|
-
export const red = (t) => ansi('31', t);
|
|
11
|
-
export const green = (t) => ansi('32', t);
|
|
12
|
-
export const yellow = (t) => ansi('33', t);
|
|
13
|
-
export const blue = (t) => ansi('34', t);
|
|
14
|
-
export const magenta = (t) => ansi('35', t);
|
|
15
|
-
export const cyan = (t) => ansi('36', t);
|
|
16
|
-
export const gray = (t) => ansi('90', t);
|
|
17
|
-
export function truncate(text, max = 160) {
|
|
18
|
-
const oneLine = text.replaceAll('\n', ' ⏎ ');
|
|
19
|
-
return oneLine.length > max ? oneLine.slice(0, max - 1) + '…' : oneLine;
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=colors.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"colors.js","sourceRoot":"","sources":["../../src/ui/colors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;AAE9E,MAAM,UAAU,IAAI,CAAC,IAAY,EAAE,IAAY;IAC7C,OAAO,OAAO,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AACxD,CAAC;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACxD,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACvD,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACxD,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC1D,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC3D,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACzD,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC5D,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACzD,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAEzD,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,GAAG,GAAG,GAAG;IAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7C,OAAO,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;AAC1E,CAAC"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* One shared line reader for the whole process. Lines that arrive while no
|
|
3
|
-
* question is pending are buffered, so piped input works too.
|
|
4
|
-
*/
|
|
5
|
-
export declare class LineReader {
|
|
6
|
-
private rl;
|
|
7
|
-
private buffered;
|
|
8
|
-
private pending?;
|
|
9
|
-
private closed;
|
|
10
|
-
constructor();
|
|
11
|
-
ask(label: string): Promise<PromptResult>;
|
|
12
|
-
/** True once stdin hit EOF: no more input will ever arrive. */
|
|
13
|
-
isClosed(): boolean;
|
|
14
|
-
close(): void;
|
|
15
|
-
}
|
|
16
|
-
export interface PromptResult {
|
|
17
|
-
input: string;
|
|
18
|
-
cancelled: boolean;
|
|
19
|
-
}
|
|
20
|
-
/** The main session prompt: `ineedcodes ❯` */
|
|
21
|
-
export declare function createPrompt(): {
|
|
22
|
-
ask(): Promise<PromptResult>;
|
|
23
|
-
question(text: string): Promise<PromptResult>;
|
|
24
|
-
isClosed(): boolean;
|
|
25
|
-
close(): void;
|
|
26
|
-
};
|
|
27
|
-
export declare const BANNER: string;
|
|
28
|
-
export declare function printHelp(): void;
|
|
29
|
-
export declare function printStatus(info: {
|
|
30
|
-
model: string;
|
|
31
|
-
provider: string;
|
|
32
|
-
mode: string;
|
|
33
|
-
depth: string;
|
|
34
|
-
projectRoot: string;
|
|
35
|
-
git: string;
|
|
36
|
-
memory: string;
|
|
37
|
-
skills: string[];
|
|
38
|
-
processes: number;
|
|
39
|
-
agentMode: 'plan' | 'build';
|
|
40
|
-
thinking: 'low' | 'medium' | 'high';
|
|
41
|
-
contextTokens: {
|
|
42
|
-
total: number;
|
|
43
|
-
limit: number;
|
|
44
|
-
compactsAt: number;
|
|
45
|
-
};
|
|
46
|
-
}): void;
|