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.
Files changed (113) hide show
  1. package/agent.mjs +244 -0
  2. package/package.json +10 -25
  3. package/docs/assets/ineed-logo.svg +0 -161
  4. package/docs/configuration.md +0 -71
  5. package/docs/skills.md +0 -58
  6. package/packages/agent/dist/boost.d.ts +0 -34
  7. package/packages/agent/dist/boost.js +0 -138
  8. package/packages/agent/dist/boost.js.map +0 -1
  9. package/packages/agent/dist/events.d.ts +0 -67
  10. package/packages/agent/dist/events.js +0 -16
  11. package/packages/agent/dist/events.js.map +0 -1
  12. package/packages/agent/dist/index.d.ts +0 -6
  13. package/packages/agent/dist/index.js +0 -7
  14. package/packages/agent/dist/index.js.map +0 -1
  15. package/packages/agent/dist/lead-agent.d.ts +0 -85
  16. package/packages/agent/dist/lead-agent.js +0 -235
  17. package/packages/agent/dist/lead-agent.js.map +0 -1
  18. package/packages/agent/dist/orchestrator.d.ts +0 -43
  19. package/packages/agent/dist/orchestrator.js +0 -135
  20. package/packages/agent/dist/orchestrator.js.map +0 -1
  21. package/packages/agent/dist/runtime.d.ts +0 -44
  22. package/packages/agent/dist/runtime.js +0 -265
  23. package/packages/agent/dist/runtime.js.map +0 -1
  24. package/packages/agent/dist/system-prompts.d.ts +0 -24
  25. package/packages/agent/dist/system-prompts.js +0 -91
  26. package/packages/agent/dist/system-prompts.js.map +0 -1
  27. package/packages/agent/package.json +0 -21
  28. package/packages/cli/dist/index.d.ts +0 -3
  29. package/packages/cli/dist/index.js +0 -11440
  30. package/packages/cli/dist/index.js.map +0 -1
  31. package/packages/cli/dist/setup.d.ts +0 -37
  32. package/packages/cli/dist/setup.js +0 -250
  33. package/packages/cli/dist/setup.js.map +0 -1
  34. package/packages/cli/dist/tools-setup.d.ts +0 -12
  35. package/packages/cli/dist/tools-setup.js +0 -28
  36. package/packages/cli/dist/tools-setup.js.map +0 -1
  37. package/packages/cli/dist/ui/approval.d.ts +0 -12
  38. package/packages/cli/dist/ui/approval.js +0 -52
  39. package/packages/cli/dist/ui/approval.js.map +0 -1
  40. package/packages/cli/dist/ui/colors.d.ts +0 -14
  41. package/packages/cli/dist/ui/colors.js +0 -21
  42. package/packages/cli/dist/ui/colors.js.map +0 -1
  43. package/packages/cli/dist/ui/prompts.d.ts +0 -46
  44. package/packages/cli/dist/ui/prompts.js +0 -135
  45. package/packages/cli/dist/ui/prompts.js.map +0 -1
  46. package/packages/cli/dist/ui/renderer.d.ts +0 -13
  47. package/packages/cli/dist/ui/renderer.js +0 -95
  48. package/packages/cli/dist/ui/renderer.js.map +0 -1
  49. package/packages/cli/package.json +0 -23
  50. package/packages/core/dist/config/config.d.ts +0 -32
  51. package/packages/core/dist/config/config.js +0 -43
  52. package/packages/core/dist/config/config.js.map +0 -1
  53. package/packages/core/dist/context/engine.d.ts +0 -25
  54. package/packages/core/dist/context/engine.js +0 -98
  55. package/packages/core/dist/context/engine.js.map +0 -1
  56. package/packages/core/dist/index.d.ts +0 -20
  57. package/packages/core/dist/index.js +0 -21
  58. package/packages/core/dist/index.js.map +0 -1
  59. package/packages/core/dist/llm/openai-compatible.d.ts +0 -23
  60. package/packages/core/dist/llm/openai-compatible.js +0 -177
  61. package/packages/core/dist/llm/openai-compatible.js.map +0 -1
  62. package/packages/core/dist/memory/icm-adapter.d.ts +0 -31
  63. package/packages/core/dist/memory/icm-adapter.js +0 -98
  64. package/packages/core/dist/memory/icm-adapter.js.map +0 -1
  65. package/packages/core/dist/permissions/permissions.d.ts +0 -28
  66. package/packages/core/dist/permissions/permissions.js +0 -89
  67. package/packages/core/dist/permissions/permissions.js.map +0 -1
  68. package/packages/core/dist/security/secrets.d.ts +0 -4
  69. package/packages/core/dist/security/secrets.js +0 -43
  70. package/packages/core/dist/security/secrets.js.map +0 -1
  71. package/packages/core/dist/session/store.d.ts +0 -16
  72. package/packages/core/dist/session/store.js +0 -54
  73. package/packages/core/dist/session/store.js.map +0 -1
  74. package/packages/core/dist/shell/process.d.ts +0 -26
  75. package/packages/core/dist/shell/process.js +0 -128
  76. package/packages/core/dist/shell/process.js.map +0 -1
  77. package/packages/core/dist/skills/loader.d.ts +0 -9
  78. package/packages/core/dist/skills/loader.js +0 -163
  79. package/packages/core/dist/skills/loader.js.map +0 -1
  80. package/packages/core/dist/tools/fs.d.ts +0 -10
  81. package/packages/core/dist/tools/fs.js +0 -409
  82. package/packages/core/dist/tools/fs.js.map +0 -1
  83. package/packages/core/dist/tools/git.d.ts +0 -7
  84. package/packages/core/dist/tools/git.js +0 -251
  85. package/packages/core/dist/tools/git.js.map +0 -1
  86. package/packages/core/dist/tools/mcp.d.ts +0 -42
  87. package/packages/core/dist/tools/mcp.js +0 -158
  88. package/packages/core/dist/tools/mcp.js.map +0 -1
  89. package/packages/core/dist/tools/registry.d.ts +0 -21
  90. package/packages/core/dist/tools/registry.js +0 -50
  91. package/packages/core/dist/tools/registry.js.map +0 -1
  92. package/packages/core/dist/tools/search.d.ts +0 -2
  93. package/packages/core/dist/tools/search.js +0 -243
  94. package/packages/core/dist/tools/search.js.map +0 -1
  95. package/packages/core/dist/tools/shell.d.ts +0 -8
  96. package/packages/core/dist/tools/shell.js +0 -164
  97. package/packages/core/dist/tools/shell.js.map +0 -1
  98. package/packages/core/dist/tools/web.d.ts +0 -14
  99. package/packages/core/dist/tools/web.js +0 -125
  100. package/packages/core/dist/tools/web.js.map +0 -1
  101. package/packages/core/dist/types.d.ts +0 -202
  102. package/packages/core/dist/types.js +0 -7
  103. package/packages/core/dist/types.js.map +0 -1
  104. package/packages/core/dist/util/fs.d.ts +0 -5
  105. package/packages/core/dist/util/fs.js +0 -33
  106. package/packages/core/dist/util/fs.js.map +0 -1
  107. package/packages/core/dist/util/shell-quote.d.ts +0 -7
  108. package/packages/core/dist/util/shell-quote.js +0 -20
  109. package/packages/core/dist/util/shell-quote.js.map +0 -1
  110. package/packages/core/dist/workspace/workspace.d.ts +0 -15
  111. package/packages/core/dist/workspace/workspace.js +0 -84
  112. package/packages/core/dist/workspace/workspace.js.map +0 -1
  113. 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;