codehere 0.5.0-alpha → 0.5.1-alpha

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 (82) hide show
  1. package/dist/application/agents/execution-agent.js +2 -2
  2. package/dist/application/services/dependency-container.d.ts.map +1 -1
  3. package/dist/application/services/dependency-container.js +3 -25
  4. package/dist/application/services/dependency-container.js.map +1 -1
  5. package/dist/application/services/intelligent-router.d.ts +5 -11
  6. package/dist/application/services/intelligent-router.d.ts.map +1 -1
  7. package/dist/application/services/intelligent-router.js +80 -147
  8. package/dist/application/services/intelligent-router.js.map +1 -1
  9. package/dist/application/use-cases/ask-question-use-case.d.ts +0 -1
  10. package/dist/application/use-cases/ask-question-use-case.d.ts.map +1 -1
  11. package/dist/application/use-cases/ask-question-use-case.js +3 -4
  12. package/dist/application/use-cases/ask-question-use-case.js.map +1 -1
  13. package/dist/chat.d.ts.map +1 -1
  14. package/dist/chat.js +18 -7
  15. package/dist/chat.js.map +1 -1
  16. package/dist/index.js +7 -3
  17. package/dist/index.js.map +1 -1
  18. package/dist/infrastructure/ai/cohere-ai-service.js +1 -1
  19. package/dist/infrastructure/ai/provider-ai-service.js +1 -1
  20. package/dist/infrastructure/context/conversation-context.d.ts +11 -10
  21. package/dist/infrastructure/context/conversation-context.d.ts.map +1 -1
  22. package/dist/infrastructure/context/conversation-context.js +2 -5
  23. package/dist/infrastructure/context/conversation-context.js.map +1 -1
  24. package/dist/infrastructure/index.d.ts +0 -1
  25. package/dist/infrastructure/index.d.ts.map +1 -1
  26. package/dist/infrastructure/index.js +2 -1
  27. package/dist/infrastructure/index.js.map +1 -1
  28. package/dist/infrastructure/providers/cohere-provider.d.ts +2 -1
  29. package/dist/infrastructure/providers/cohere-provider.d.ts.map +1 -1
  30. package/dist/infrastructure/providers/cohere-provider.js +37 -13
  31. package/dist/infrastructure/providers/cohere-provider.js.map +1 -1
  32. package/dist/infrastructure/providers/operation-provider-resolver.d.ts.map +1 -1
  33. package/dist/infrastructure/providers/operation-provider-resolver.js +7 -33
  34. package/dist/infrastructure/providers/operation-provider-resolver.js.map +1 -1
  35. package/dist/infrastructure/security/network-guard.d.ts +8 -0
  36. package/dist/infrastructure/security/network-guard.d.ts.map +1 -0
  37. package/dist/infrastructure/security/network-guard.js +70 -0
  38. package/dist/infrastructure/security/network-guard.js.map +1 -0
  39. package/dist/infrastructure/security/offline.d.ts +16 -0
  40. package/dist/infrastructure/security/offline.d.ts.map +1 -0
  41. package/dist/infrastructure/security/offline.js +24 -0
  42. package/dist/infrastructure/security/offline.js.map +1 -0
  43. package/dist/infrastructure/storage/memory-stream-service.d.ts.map +1 -1
  44. package/dist/infrastructure/storage/memory-stream-service.js +88 -58
  45. package/dist/infrastructure/storage/memory-stream-service.js.map +1 -1
  46. package/dist/infrastructure/storage/sqljs-init.d.ts +8 -0
  47. package/dist/infrastructure/storage/sqljs-init.d.ts.map +1 -0
  48. package/dist/infrastructure/storage/sqljs-init.js +23 -0
  49. package/dist/infrastructure/storage/sqljs-init.js.map +1 -0
  50. package/dist/infrastructure/ux/meta-query.d.ts +9 -0
  51. package/dist/infrastructure/ux/meta-query.d.ts.map +1 -0
  52. package/dist/infrastructure/ux/meta-query.js +63 -0
  53. package/dist/infrastructure/ux/meta-query.js.map +1 -0
  54. package/dist/infrastructure/ux/progress-indicator.d.ts +10 -49
  55. package/dist/infrastructure/ux/progress-indicator.d.ts.map +1 -1
  56. package/dist/infrastructure/ux/progress-indicator.js +9 -112
  57. package/dist/infrastructure/ux/progress-indicator.js.map +1 -1
  58. package/dist/infrastructure/ux/repo-fingerprint.d.ts +10 -0
  59. package/dist/infrastructure/ux/repo-fingerprint.d.ts.map +1 -0
  60. package/dist/infrastructure/ux/repo-fingerprint.js +55 -0
  61. package/dist/infrastructure/ux/repo-fingerprint.js.map +1 -0
  62. package/dist/presentation/cli/commands/ask-command.d.ts.map +1 -1
  63. package/dist/presentation/cli/commands/ask-command.js +56 -77
  64. package/dist/presentation/cli/commands/ask-command.js.map +1 -1
  65. package/dist/presentation/cli/commands/fix-command.d.ts.map +1 -1
  66. package/dist/presentation/cli/commands/fix-command.js +1 -23
  67. package/dist/presentation/cli/commands/fix-command.js.map +1 -1
  68. package/dist/presentation/cli/commands/smart-command.d.ts.map +1 -1
  69. package/dist/presentation/cli/commands/smart-command.js +0 -1
  70. package/dist/presentation/cli/commands/smart-command.js.map +1 -1
  71. package/dist/search.d.ts.map +1 -1
  72. package/dist/search.js +18 -5
  73. package/dist/search.js.map +1 -1
  74. package/dist/session.d.ts +0 -1
  75. package/dist/session.d.ts.map +1 -1
  76. package/dist/session.js +5 -11
  77. package/dist/session.js.map +1 -1
  78. package/dist/tools/bash.d 2.ts +53 -0
  79. package/dist/tools/bash.js 2.map +1 -0
  80. package/dist/tools/edit 2.js +235 -0
  81. package/dist/tools/edit.d.ts 2.map +1 -0
  82. package/package.json +4 -3
@@ -18,72 +18,88 @@ export class MemoryStreamService {
18
18
  * Store observation
19
19
  */
20
20
  async recordObservation(description, metadata, codebaseId, codebasePath) {
21
- const embedding = await this.aiService.embed(description);
22
- if (Array.isArray(embedding[0])) {
23
- throw new Error('Expected single embedding');
24
- }
25
- const memory = {
26
- type: 'observation',
27
- description,
28
- embedding: embedding,
29
- timestamp: new Date(),
30
- importance: this.calculateImportance(description),
31
- lastAccessed: new Date(),
32
- metadata: {
33
- ...metadata,
34
- ...(codebaseId && { codebaseId }),
35
- ...(codebasePath && { codebasePath }),
36
- },
37
- };
38
- await this.repository.store(memory);
21
+ try {
22
+ const embedding = await this.aiService.embed(description);
23
+ if (Array.isArray(embedding[0])) {
24
+ throw new Error('Expected single embedding');
25
+ }
26
+ const memory = {
27
+ type: 'observation',
28
+ description,
29
+ embedding: embedding,
30
+ timestamp: new Date(),
31
+ importance: this.calculateImportance(description),
32
+ lastAccessed: new Date(),
33
+ metadata: {
34
+ ...metadata,
35
+ ...(codebaseId && { codebaseId }),
36
+ ...(codebasePath && { codebasePath }),
37
+ },
38
+ };
39
+ await this.repository.store(memory);
40
+ }
41
+ catch (error) {
42
+ // Best-effort: skip memory storage if embedding fails (non-critical)
43
+ // Don't throw - memory is optional
44
+ }
39
45
  }
40
46
  /**
41
47
  * Store reflection
42
48
  */
43
49
  async recordReflection(description, trajectory, reward, errors, codebaseId, codebasePath) {
44
- const embedding = await this.aiService.embed(description);
45
- if (Array.isArray(embedding[0])) {
46
- throw new Error('Expected single embedding');
47
- }
48
- const memory = {
49
- type: 'reflection',
50
- description,
51
- embedding: embedding,
52
- timestamp: new Date(),
53
- importance: 8, // Reflections are high importance
54
- lastAccessed: new Date(),
55
- metadata: {
56
- trajectory,
57
- reward,
58
- errors,
59
- ...(codebaseId && { codebaseId }),
60
- ...(codebasePath && { codebasePath }),
61
- },
62
- };
63
- await this.repository.store(memory);
50
+ try {
51
+ const embedding = await this.aiService.embed(description);
52
+ if (Array.isArray(embedding[0])) {
53
+ throw new Error('Expected single embedding');
54
+ }
55
+ const memory = {
56
+ type: 'reflection',
57
+ description,
58
+ embedding: embedding,
59
+ timestamp: new Date(),
60
+ importance: 8, // Reflections are high importance
61
+ lastAccessed: new Date(),
62
+ metadata: {
63
+ trajectory,
64
+ reward,
65
+ errors,
66
+ ...(codebaseId && { codebaseId }),
67
+ ...(codebasePath && { codebasePath }),
68
+ },
69
+ };
70
+ await this.repository.store(memory);
71
+ }
72
+ catch (error) {
73
+ // Best-effort: skip memory storage if embedding fails (non-critical)
74
+ }
64
75
  }
65
76
  /**
66
77
  * Store plan
67
78
  */
68
79
  async recordPlan(description, plan, codebaseId, codebasePath) {
69
- const embedding = await this.aiService.embed(description);
70
- if (Array.isArray(embedding[0])) {
71
- throw new Error('Expected single embedding');
72
- }
73
- const memory = {
74
- type: 'plan',
75
- description,
76
- embedding: embedding,
77
- timestamp: new Date(),
78
- importance: 7,
79
- lastAccessed: new Date(),
80
- metadata: {
81
- plan,
82
- ...(codebaseId && { codebaseId }),
83
- ...(codebasePath && { codebasePath }),
84
- },
85
- };
86
- await this.repository.store(memory);
80
+ try {
81
+ const embedding = await this.aiService.embed(description);
82
+ if (Array.isArray(embedding[0])) {
83
+ throw new Error('Expected single embedding');
84
+ }
85
+ const memory = {
86
+ type: 'plan',
87
+ description,
88
+ embedding: embedding,
89
+ timestamp: new Date(),
90
+ importance: 7,
91
+ lastAccessed: new Date(),
92
+ metadata: {
93
+ plan,
94
+ ...(codebaseId && { codebaseId }),
95
+ ...(codebasePath && { codebasePath }),
96
+ },
97
+ };
98
+ await this.repository.store(memory);
99
+ }
100
+ catch (error) {
101
+ // Best-effort: skip memory storage if embedding fails (non-critical)
102
+ }
87
103
  }
88
104
  /**
89
105
  * Retrieve relevant memories with optional reranking
@@ -91,7 +107,14 @@ export class MemoryStreamService {
91
107
  * Performance: Uses embedding cache to avoid redundant API calls
92
108
  */
93
109
  async retrieve(query, limit = 10, useRerank = true) {
94
- const allMemories = await this.repository.getAll();
110
+ let allMemories;
111
+ try {
112
+ allMemories = await this.repository.getAll();
113
+ }
114
+ catch (error) {
115
+ // Best-effort: return empty if repository access fails
116
+ return [];
117
+ }
95
118
  if (allMemories.length === 0) {
96
119
  return [];
97
120
  }
@@ -136,7 +159,14 @@ export class MemoryStreamService {
136
159
  */
137
160
  async retrieveByCodebase(query, codebaseId, limit = 10, useRerank = true) {
138
161
  // Get all memories for this codebase first
139
- const codebaseMemories = await this.repository.getAllByCodebase(codebaseId);
162
+ let codebaseMemories;
163
+ try {
164
+ codebaseMemories = await this.repository.getAllByCodebase(codebaseId);
165
+ }
166
+ catch (error) {
167
+ // Best-effort: return empty if repository access fails
168
+ return [];
169
+ }
140
170
  if (codebaseMemories.length === 0) {
141
171
  return [];
142
172
  }
@@ -1 +1 @@
1
- {"version":3,"file":"memory-stream-service.js","sourceRoot":"","sources":["../../../src/infrastructure/storage/memory-stream-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory-stream-service.js","sourceRoot":"","sources":["../../../src/infrastructure/storage/memory-stream-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { Database } from 'sql.js';
2
+ export type SqlJsStaticLike = {
3
+ Database: {
4
+ new (data?: Uint8Array): Database;
5
+ };
6
+ };
7
+ export declare function initSqlJsSafe(): Promise<SqlJsStaticLike>;
8
+ //# sourceMappingURL=sqljs-init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqljs-init.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/storage/sqljs-init.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEvC,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE;QACR,KAAK,IAAI,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;KACnC,CAAC;CACH,CAAC;AAEF,wBAAsB,aAAa,IAAI,OAAO,CAAC,eAAe,CAAC,CAkC9D"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * sql.js initialization helper
3
+ * Ensures the wasm file can be located reliably in Node (especially in non-TTY / spawned processes).
4
+ *
5
+ * NOTE: sql.js requires locateFile in some environments to avoid hanging while resolving sql-wasm.wasm.
6
+ */
7
+ import initSqlJs from 'sql.js';
8
+ import { createRequire } from 'module';
9
+ export async function initSqlJsSafe() {
10
+ try {
11
+ const require = createRequire(import.meta.url);
12
+ const wasmPath = require.resolve('sql.js/dist/sql-wasm.wasm');
13
+ return (await initSqlJs({
14
+ locateFile: (file) => (file.endsWith('.wasm') ? wasmPath : file),
15
+ }));
16
+ }
17
+ catch {
18
+ // Fallback: let sql.js try its default resolution strategy.
19
+ // If that fails in the current environment, callers should surface the error quickly.
20
+ return (await initSqlJs());
21
+ }
22
+ }
23
+ //# sourceMappingURL=sqljs-init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqljs-init.js","sourceRoot":"","sources":["../../../src/infrastructure/storage/sqljs-init.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AASvC,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE;QACtB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC;QACvD,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC,CAAC,EAAE,CAAC;IAEL,MAAM,WAAW,GAAG,KAAK,EAAK,CAAa,EAAE,EAAU,EAAc,EAAE;QACrE,IAAI,CAAC,GAA0B,IAAI,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;YAC3C,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA+B,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrF,CAAC,CAAC,CAAC;QACH,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1C,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC;gBAAE,YAAY,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;QAC9D,OAAO,CAAC,MAAM,WAAW,CAAC,SAAS,CAAC;YAClC,UAAU,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;SACzE,CAAC,EAAE,SAAS,CAAC,CAA+B,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,4DAA4D;QAC5D,sFAAsF;QACtF,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtD,OAAO,CAAC,MAAM,WAAW,CAAC,SAAS,EAAE,EAAE,SAAS,CAAC,CAA+B,CAAC;IACnF,CAAC;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ export type MetaQueryResult = {
2
+ handled: false;
3
+ } | {
4
+ handled: true;
5
+ kind: 'capabilities' | 'project' | 'goto';
6
+ message: string;
7
+ };
8
+ export declare function handleMetaQuery(query: string, cwd: string): MetaQueryResult;
9
+ //# sourceMappingURL=meta-query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta-query.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/ux/meta-query.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,eAAe,GACvB;IAAE,OAAO,EAAE,KAAK,CAAA;CAAE,GAClB;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,cAAc,GAAG,SAAS,GAAG,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAElF,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,eAAe,CAyD3E"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * UX: Meta-query handler (deterministic, no LLM)
3
+ * Used to keep UX professional for "what can I do" / "what project is this" / "go to <path>".
4
+ */
5
+ import { fingerprintRepo } from './repo-fingerprint.js';
6
+ import { isOfflineModeEnabled } from '../security/offline.js';
7
+ export function handleMetaQuery(query, cwd) {
8
+ const trimmed = query.trim();
9
+ const lower = trimmed.toLowerCase();
10
+ const normalized = lower.replace(/[?!.\u2026]+$/g, '').trim();
11
+ if (normalized === 'what can i do' || normalized === 'what i can do' || normalized === 'capabilities') {
12
+ const offlineNote = isOfflineModeEnabled()
13
+ ? 'Offline: ON (no outbound network).'
14
+ : 'Offline: use `--offline` or CODEHERE_OFFLINE=1 to block outbound network (localhost allowed).';
15
+ return {
16
+ handled: true,
17
+ kind: 'capabilities',
18
+ message: [
19
+ 'Commands you can run:',
20
+ '- codehere ask "..." --json',
21
+ '- codehere explain <file>',
22
+ '- codehere plan "..." --json',
23
+ '- codehere fix <file> "..." --review',
24
+ '- codehere orchestrate "..." --json',
25
+ '- codehere memory --list --json',
26
+ '- codehere trace export <runId> --json',
27
+ '',
28
+ 'Tips:',
29
+ `- Current directory: ${cwd}`,
30
+ '- To work on another repo: `cd /path/to/repo` in your shell, then re-run.',
31
+ `- ${offlineNote}`,
32
+ ].join('\n'),
33
+ };
34
+ }
35
+ if (normalized === 'what project is this' || normalized === 'what is this project' || normalized === 'project') {
36
+ const fp = fingerprintRepo(cwd);
37
+ const lines = [
38
+ 'Project fingerprint:',
39
+ `- directory: ${fp.cwd}`,
40
+ `- type: ${fp.kind}`,
41
+ ];
42
+ if (fp.name)
43
+ lines.push(`- name: ${fp.name}`);
44
+ if (fp.description)
45
+ lines.push(`- description: ${fp.description}`);
46
+ if (fp.packageManager)
47
+ lines.push(`- package manager: ${fp.packageManager}`);
48
+ if (fp.scripts && fp.scripts.length > 0)
49
+ lines.push(`- scripts: ${fp.scripts.slice(0, 12).join(', ')}${fp.scripts.length > 12 ? ', ...' : ''}`);
50
+ return { handled: true, kind: 'project', message: lines.join('\n') };
51
+ }
52
+ const goToMatch = trimmed.match(/\b(go to|switch to|cd to)\s+(\S+)/i);
53
+ if (goToMatch) {
54
+ const target = goToMatch[2];
55
+ return {
56
+ handled: true,
57
+ kind: 'goto',
58
+ message: `I can’t change your shell’s working directory. Run this in your terminal:\n\ncd ${target}\n\nThen run:\ncodehere ask \"what project is this\" --json`,
59
+ };
60
+ }
61
+ return { handled: false };
62
+ }
63
+ //# sourceMappingURL=meta-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta-query.js","sourceRoot":"","sources":["../../../src/infrastructure/ux/meta-query.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAM9D,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,GAAW;IACxD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACpC,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAE9D,IAAI,UAAU,KAAK,eAAe,IAAI,UAAU,KAAK,eAAe,IAAI,UAAU,KAAK,cAAc,EAAE,CAAC;QACtG,MAAM,WAAW,GAAG,oBAAoB,EAAE;YACxC,CAAC,CAAC,oCAAoC;YACtC,CAAC,CAAC,+FAA+F,CAAC;QAEpG,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,cAAc;YACpB,OAAO,EACL;gBACE,uBAAuB;gBACvB,6BAA6B;gBAC7B,2BAA2B;gBAC3B,8BAA8B;gBAC9B,sCAAsC;gBACtC,qCAAqC;gBACrC,iCAAiC;gBACjC,wCAAwC;gBACxC,EAAE;gBACF,OAAO;gBACP,wBAAwB,GAAG,EAAE;gBAC7B,2EAA2E;gBAC3E,KAAK,WAAW,EAAE;aACnB,CAAC,IAAI,CAAC,IAAI,CAAC;SACf,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,KAAK,sBAAsB,IAAI,UAAU,KAAK,sBAAsB,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC/G,MAAM,EAAE,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,KAAK,GAAa;YACtB,sBAAsB;YACtB,gBAAgB,EAAE,CAAC,GAAG,EAAE;YACxB,WAAW,EAAE,CAAC,IAAI,EAAE;SACrB,CAAC;QACF,IAAI,EAAE,CAAC,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9C,IAAI,EAAE,CAAC,WAAW;YAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QACnE,IAAI,EAAE,CAAC,cAAc;YAAE,KAAK,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC;QAC7E,IAAI,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChJ,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACvE,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACtE,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC5B,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,mFAAmF,MAAM,6DAA6D;SAChK,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC5B,CAAC"}
@@ -1,53 +1,14 @@
1
- /**
2
- * Progress Indicator Utilities
3
- * Provides progress indicators for long-running operations
4
- *
5
- * Phase 1: v0.5.0-alpha.0
6
- */
7
- export interface ProgressOptions {
8
- total?: number;
9
- message?: string;
10
- showPercentage?: boolean;
11
- showCount?: boolean;
12
- }
13
- export declare class ProgressIndicator {
14
- private spinner;
15
- private progressBar;
16
- private operationStartTime;
17
- private currentValue;
18
- private total;
19
- private message;
20
- /**
21
- * Start progress indicator
22
- */
23
- start(options?: ProgressOptions): void;
24
- /**
25
- * Update progress
26
- */
27
- update(value: number, message?: string): void;
28
- /**
29
- * Increment progress
30
- */
31
- increment(delta?: number, message?: string): void;
32
- /**
33
- * Stop progress indicator with smooth transition
34
- */
35
- stop(success?: boolean, finalMessage?: string, suppressMessage?: boolean): void;
36
- /**
37
- * Get elapsed time
38
- */
39
- getElapsedTime(): number;
1
+ export interface ProgressHandle {
2
+ start: (opts?: {
3
+ message?: string;
4
+ }) => void;
5
+ stop: (success?: boolean, finalMessage?: string) => void;
40
6
  }
41
7
  /**
42
- * Create progress indicator for embedding search
43
- */
44
- export declare function createEmbeddingSearchProgress(total: number): ProgressIndicator;
45
- /**
46
- * Create progress indicator for plan generation
47
- */
48
- export declare function createPlanGenerationProgress(): ProgressIndicator;
49
- /**
50
- * Create progress indicator for memory synthesis
8
+ * Lightweight progress indicator for embedding search.
9
+ *
10
+ * This is intentionally a **no-op** implementation to avoid adding dependencies
11
+ * or noisy console output in non-interactive/test environments.
51
12
  */
52
- export declare function createMemorySynthesisProgress(): ProgressIndicator;
13
+ export declare function createEmbeddingSearchProgress(_estimatedTotalChunks: number): ProgressHandle;
53
14
  //# sourceMappingURL=progress-indicator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"progress-indicator.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/ux/progress-indicator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAiD;IAChE,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,kBAAkB,CAAa;IACvC,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,OAAO,CAAc;IAE7B;;OAEG;IACH,KAAK,CAAC,OAAO,GAAE,eAAoB,GAAG,IAAI;IAgB1C;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAoB7C;;OAEG;IACH,SAAS,CAAC,KAAK,GAAE,MAAU,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAIpD;;OAEG;IACH,IAAI,CAAC,OAAO,GAAE,OAAc,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,eAAe,GAAE,OAAe,GAAG,IAAI;IAc5F;;OAEG;IACH,cAAc,IAAI,MAAM;CAGzB;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,CAS9E;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,iBAAiB,CAMhE;AAED;;GAEG;AACH,wBAAgB,6BAA6B,IAAI,iBAAiB,CAMjE"}
1
+ {"version":3,"file":"progress-indicator.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/ux/progress-indicator.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC7C,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1D;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,qBAAqB,EAAE,MAAM,GAAG,cAAc,CAK3F"}
@@ -1,116 +1,13 @@
1
1
  /**
2
- * Progress Indicator Utilities
3
- * Provides progress indicators for long-running operations
2
+ * Lightweight progress indicator for embedding search.
4
3
  *
5
- * Phase 1: v0.5.0-alpha.0
6
- */
7
- import { createSpinner } from '../../ui.js';
8
- export class ProgressIndicator {
9
- spinner = null;
10
- progressBar = '';
11
- operationStartTime = 0;
12
- currentValue = 0;
13
- total = 0;
14
- message = '';
15
- /**
16
- * Start progress indicator
17
- */
18
- start(options = {}) {
19
- this.operationStartTime = Date.now();
20
- this.currentValue = 0;
21
- this.total = options.total || 0;
22
- this.message = options.message || 'Processing...';
23
- if (this.total > 0) {
24
- // Progress bar mode
25
- this.update(0, this.message);
26
- }
27
- else {
28
- // Spinner mode
29
- this.spinner = createSpinner(this.message);
30
- this.spinner.start();
31
- }
32
- }
33
- /**
34
- * Update progress
35
- */
36
- update(value, message) {
37
- this.currentValue = value;
38
- if (message) {
39
- this.message = message;
40
- }
41
- if (this.total > 0) {
42
- // Progress bar
43
- const percentage = Math.min(100, Math.floor((value / this.total) * 100));
44
- const barLength = 20;
45
- const filled = Math.floor((percentage / 100) * barLength);
46
- const bar = '█'.repeat(filled) + '░'.repeat(barLength - filled);
47
- process.stdout.write(`\r${this.message} [${bar}] ${percentage}% (${value}/${this.total})`);
48
- }
49
- else if (this.spinner) {
50
- // Spinner
51
- this.spinner.text = this.message;
52
- }
53
- }
54
- /**
55
- * Increment progress
56
- */
57
- increment(delta = 1, message) {
58
- this.update(this.currentValue + delta, message);
59
- }
60
- /**
61
- * Stop progress indicator with smooth transition
62
- */
63
- stop(success = true, finalMessage, suppressMessage = false) {
64
- if (this.spinner) {
65
- this.spinner.stop();
66
- this.spinner = null;
67
- }
68
- else if (this.total > 0) {
69
- // Clear progress bar
70
- process.stdout.write('\r' + ' '.repeat(80) + '\r');
71
- }
72
- if (finalMessage && !suppressMessage) {
73
- console.log(finalMessage);
74
- }
75
- }
76
- /**
77
- * Get elapsed time
78
- */
79
- getElapsedTime() {
80
- return Date.now() - this.operationStartTime;
81
- }
82
- }
83
- /**
84
- * Create progress indicator for embedding search
85
- */
86
- export function createEmbeddingSearchProgress(total) {
87
- const indicator = new ProgressIndicator();
88
- indicator.start({
89
- total,
90
- message: 'Searching embeddings',
91
- showPercentage: true,
92
- showCount: true,
93
- });
94
- return indicator;
95
- }
96
- /**
97
- * Create progress indicator for plan generation
98
- */
99
- export function createPlanGenerationProgress() {
100
- const indicator = new ProgressIndicator();
101
- indicator.start({
102
- message: 'Generating plan',
103
- });
104
- return indicator;
105
- }
106
- /**
107
- * Create progress indicator for memory synthesis
108
- */
109
- export function createMemorySynthesisProgress() {
110
- const indicator = new ProgressIndicator();
111
- indicator.start({
112
- message: 'Synthesizing memories',
113
- });
114
- return indicator;
4
+ * This is intentionally a **no-op** implementation to avoid adding dependencies
5
+ * or noisy console output in non-interactive/test environments.
6
+ */
7
+ export function createEmbeddingSearchProgress(_estimatedTotalChunks) {
8
+ return {
9
+ start: () => { },
10
+ stop: () => { },
11
+ };
115
12
  }
116
13
  //# sourceMappingURL=progress-indicator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"progress-indicator.js","sourceRoot":"","sources":["../../../src/infrastructure/ux/progress-indicator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAS5C,MAAM,OAAO,iBAAiB;IACpB,OAAO,GAA4C,IAAI,CAAC;IACxD,WAAW,GAAW,EAAE,CAAC;IACzB,kBAAkB,GAAW,CAAC,CAAC;IAC/B,YAAY,GAAW,CAAC,CAAC;IACzB,KAAK,GAAW,CAAC,CAAC;IAClB,OAAO,GAAW,EAAE,CAAC;IAE7B;;OAEG;IACH,KAAK,CAAC,UAA2B,EAAE;QACjC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACrC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,eAAe,CAAC;QAElD,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YACnB,oBAAoB;YACpB,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,eAAe;YACf,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3C,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAa,EAAE,OAAgB;QACpC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACzB,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YACnB,eAAe;YACf,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YACzE,MAAM,SAAS,GAAG,EAAE,CAAC;YACrB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;YAC1D,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC;YAEhE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,OAAO,KAAK,GAAG,KAAK,UAAU,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QAC7F,CAAC;aAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACxB,UAAU;YACV,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;QACnC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,QAAgB,CAAC,EAAE,OAAgB;QAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,GAAG,KAAK,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,UAAmB,IAAI,EAAE,YAAqB,EAAE,kBAA2B,KAAK;QACnF,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC;aAAM,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YAC1B,qBAAqB;YACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,YAAY,IAAI,CAAC,eAAe,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC;IAC9C,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,6BAA6B,CAAC,KAAa;IACzD,MAAM,SAAS,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAC1C,SAAS,CAAC,KAAK,CAAC;QACd,KAAK;QACL,OAAO,EAAE,sBAAsB;QAC/B,cAAc,EAAE,IAAI;QACpB,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IACH,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,4BAA4B;IAC1C,MAAM,SAAS,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAC1C,SAAS,CAAC,KAAK,CAAC;QACd,OAAO,EAAE,iBAAiB;KAC3B,CAAC,CAAC;IACH,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,6BAA6B;IAC3C,MAAM,SAAS,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAC1C,SAAS,CAAC,KAAK,CAAC;QACd,OAAO,EAAE,uBAAuB;KACjC,CAAC,CAAC;IACH,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"progress-indicator.js","sourceRoot":"","sources":["../../../src/infrastructure/ux/progress-indicator.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,MAAM,UAAU,6BAA6B,CAAC,qBAA6B;IACzE,OAAO;QACL,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;QACf,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;KACf,CAAC;AACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ export type RepoFingerprint = {
2
+ cwd: string;
3
+ kind: 'node' | 'python' | 'go' | 'rust' | 'unknown';
4
+ name?: string;
5
+ description?: string;
6
+ packageManager?: 'npm' | 'pnpm' | 'yarn';
7
+ scripts?: string[];
8
+ };
9
+ export declare function fingerprintRepo(cwd: string): RepoFingerprint;
10
+ //# sourceMappingURL=repo-fingerprint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repo-fingerprint.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/ux/repo-fingerprint.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IACzC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAUF,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CA0C5D"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * UX: Repo Fingerprint (deterministic, no LLM)
3
+ * Produces a quick, reliable summary of the current directory/repo.
4
+ */
5
+ import { existsSync, readFileSync, readdirSync } from 'fs';
6
+ import { join } from 'path';
7
+ function safeReadJson(path) {
8
+ try {
9
+ return JSON.parse(readFileSync(path, 'utf-8'));
10
+ }
11
+ catch {
12
+ return null;
13
+ }
14
+ }
15
+ export function fingerprintRepo(cwd) {
16
+ const pkgPath = join(cwd, 'package.json');
17
+ const pnpmLock = join(cwd, 'pnpm-lock.yaml');
18
+ const yarnLock = join(cwd, 'yarn.lock');
19
+ const npmLock = join(cwd, 'package-lock.json');
20
+ if (existsSync(pkgPath)) {
21
+ const pkg = safeReadJson(pkgPath) || {};
22
+ const scripts = pkg.scripts && typeof pkg.scripts === 'object'
23
+ ? Object.keys(pkg.scripts).sort()
24
+ : [];
25
+ const packageManager = existsSync(pnpmLock) ? 'pnpm' : existsSync(yarnLock) ? 'yarn' : existsSync(npmLock) ? 'npm' : 'npm';
26
+ return {
27
+ cwd,
28
+ kind: 'node',
29
+ name: typeof pkg.name === 'string' ? pkg.name : undefined,
30
+ description: typeof pkg.description === 'string' ? pkg.description : undefined,
31
+ packageManager,
32
+ scripts,
33
+ };
34
+ }
35
+ if (existsSync(join(cwd, 'pyproject.toml')) || existsSync(join(cwd, 'requirements.txt'))) {
36
+ return { cwd, kind: 'python' };
37
+ }
38
+ if (existsSync(join(cwd, 'go.mod'))) {
39
+ return { cwd, kind: 'go' };
40
+ }
41
+ if (existsSync(join(cwd, 'Cargo.toml'))) {
42
+ return { cwd, kind: 'rust' };
43
+ }
44
+ // Lightweight heuristic: if directory is empty-ish, call it unknown
45
+ try {
46
+ const entries = readdirSync(cwd);
47
+ if (entries.length === 0)
48
+ return { cwd, kind: 'unknown' };
49
+ }
50
+ catch {
51
+ // ignore
52
+ }
53
+ return { cwd, kind: 'unknown' };
54
+ }
55
+ //# sourceMappingURL=repo-fingerprint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repo-fingerprint.js","sourceRoot":"","sources":["../../../src/infrastructure/ux/repo-fingerprint.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAW5B,SAAS,YAAY,CAAC,IAAY;IAChC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;IAE/C,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;YAC5D,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE;YACjC,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,cAAc,GAClB,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;QACtG,OAAO;YACL,GAAG;YACH,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YACzD,WAAW,EAAE,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;YAC9E,cAAc;YACd,OAAO;SACR,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC;QACzF,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjC,CAAC;IACD,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;QACpC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC7B,CAAC;IACD,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC;QACxC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC/B,CAAC;IAED,oEAAoE;IACpE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,SAAS;IACX,CAAC;IAED,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AAClC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ask-command.d.ts","sourceRoot":"","sources":["../../../../src/presentation/cli/commands/ask-command.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA0BH,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAke1I"}
1
+ {"version":3,"file":"ask-command.d.ts","sourceRoot":"","sources":["../../../../src/presentation/cli/commands/ask-command.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA0BH,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA8c1I"}