mycontext-cli 1.0.94 → 2.0.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 (98) hide show
  1. package/README.md +446 -130
  2. package/dist/agents/implementations/ClaudeAgentWorkflow.d.ts +110 -0
  3. package/dist/agents/implementations/ClaudeAgentWorkflow.d.ts.map +1 -0
  4. package/dist/agents/implementations/ClaudeAgentWorkflow.js +590 -0
  5. package/dist/agents/implementations/ClaudeAgentWorkflow.js.map +1 -0
  6. package/dist/agents/implementations/WorkflowAgent.d.ts +5 -0
  7. package/dist/agents/implementations/WorkflowAgent.d.ts.map +1 -1
  8. package/dist/agents/implementations/WorkflowAgent.js +98 -10
  9. package/dist/agents/implementations/WorkflowAgent.js.map +1 -1
  10. package/dist/agents/interfaces/SubAgent.d.ts +5 -0
  11. package/dist/agents/interfaces/SubAgent.d.ts.map +1 -1
  12. package/dist/commands/build-app.d.ts +5 -0
  13. package/dist/commands/build-app.d.ts.map +1 -1
  14. package/dist/commands/build-app.js +127 -4
  15. package/dist/commands/build-app.js.map +1 -1
  16. package/dist/commands/compile-prd.d.ts.map +1 -1
  17. package/dist/commands/compile-prd.js +18 -54
  18. package/dist/commands/compile-prd.js.map +1 -1
  19. package/dist/commands/enhance.d.ts +21 -0
  20. package/dist/commands/enhance.d.ts.map +1 -1
  21. package/dist/commands/enhance.js +155 -12
  22. package/dist/commands/enhance.js.map +1 -1
  23. package/dist/commands/generate-components.d.ts +43 -0
  24. package/dist/commands/generate-components.d.ts.map +1 -1
  25. package/dist/commands/generate-components.js +270 -0
  26. package/dist/commands/generate-components.js.map +1 -1
  27. package/dist/constants/fileNames.d.ts +68 -0
  28. package/dist/constants/fileNames.d.ts.map +1 -0
  29. package/dist/constants/fileNames.js +102 -0
  30. package/dist/constants/fileNames.js.map +1 -0
  31. package/dist/interfaces/AIClient.d.ts +198 -0
  32. package/dist/interfaces/AIClient.d.ts.map +1 -0
  33. package/dist/interfaces/AIClient.js +40 -0
  34. package/dist/interfaces/AIClient.js.map +1 -0
  35. package/dist/package.json +5 -3
  36. package/dist/types/index.d.ts +423 -0
  37. package/dist/types/index.d.ts.map +1 -1
  38. package/dist/utils/agentDefinitions.d.ts +60 -0
  39. package/dist/utils/agentDefinitions.d.ts.map +1 -0
  40. package/dist/utils/agentDefinitions.js +344 -0
  41. package/dist/utils/agentDefinitions.js.map +1 -0
  42. package/dist/utils/aiClientFactory.d.ts +93 -0
  43. package/dist/utils/aiClientFactory.d.ts.map +1 -0
  44. package/dist/utils/aiClientFactory.js +290 -0
  45. package/dist/utils/aiClientFactory.js.map +1 -0
  46. package/dist/utils/aiClientRouter.d.ts +121 -0
  47. package/dist/utils/aiClientRouter.d.ts.map +1 -0
  48. package/dist/utils/aiClientRouter.js +401 -0
  49. package/dist/utils/aiClientRouter.js.map +1 -0
  50. package/dist/utils/claudeAgentClient.d.ts +166 -0
  51. package/dist/utils/claudeAgentClient.d.ts.map +1 -0
  52. package/dist/utils/claudeAgentClient.js +714 -0
  53. package/dist/utils/claudeAgentClient.js.map +1 -0
  54. package/dist/utils/claudeClient.d.ts +7 -3
  55. package/dist/utils/claudeClient.d.ts.map +1 -1
  56. package/dist/utils/claudeClient.js +28 -5
  57. package/dist/utils/claudeClient.js.map +1 -1
  58. package/dist/utils/completeArchitectureEngine.d.ts +67 -0
  59. package/dist/utils/completeArchitectureEngine.d.ts.map +1 -0
  60. package/dist/utils/completeArchitectureEngine.js +329 -0
  61. package/dist/utils/completeArchitectureEngine.js.map +1 -0
  62. package/dist/utils/contextLoader.d.ts +1 -12
  63. package/dist/utils/contextLoader.d.ts.map +1 -1
  64. package/dist/utils/contextLoader.js +29 -150
  65. package/dist/utils/contextLoader.js.map +1 -1
  66. package/dist/utils/contextManager.d.ts +76 -0
  67. package/dist/utils/contextManager.d.ts.map +1 -0
  68. package/dist/utils/contextManager.js +327 -0
  69. package/dist/utils/contextManager.js.map +1 -0
  70. package/dist/utils/hybridAIClient.d.ts +25 -1
  71. package/dist/utils/hybridAIClient.d.ts.map +1 -1
  72. package/dist/utils/hybridAIClient.js +69 -2
  73. package/dist/utils/hybridAIClient.js.map +1 -1
  74. package/dist/utils/mcpAgentIntegration.d.ts +104 -0
  75. package/dist/utils/mcpAgentIntegration.d.ts.map +1 -0
  76. package/dist/utils/mcpAgentIntegration.js +382 -0
  77. package/dist/utils/mcpAgentIntegration.js.map +1 -0
  78. package/dist/utils/mcpTools.d.ts +164 -0
  79. package/dist/utils/mcpTools.d.ts.map +1 -0
  80. package/dist/utils/mcpTools.js +385 -0
  81. package/dist/utils/mcpTools.js.map +1 -0
  82. package/dist/utils/routeGenerator.d.ts +56 -0
  83. package/dist/utils/routeGenerator.d.ts.map +1 -0
  84. package/dist/utils/routeGenerator.js +231 -0
  85. package/dist/utils/routeGenerator.js.map +1 -0
  86. package/dist/utils/serverActionGenerator.d.ts +56 -0
  87. package/dist/utils/serverActionGenerator.d.ts.map +1 -0
  88. package/dist/utils/serverActionGenerator.js +258 -0
  89. package/dist/utils/serverActionGenerator.js.map +1 -0
  90. package/dist/utils/streamingHandler.d.ts +98 -0
  91. package/dist/utils/streamingHandler.d.ts.map +1 -0
  92. package/dist/utils/streamingHandler.js +259 -0
  93. package/dist/utils/streamingHandler.js.map +1 -0
  94. package/dist/utils/toolPermissions.d.ts +105 -0
  95. package/dist/utils/toolPermissions.d.ts.map +1 -0
  96. package/dist/utils/toolPermissions.js +408 -0
  97. package/dist/utils/toolPermissions.js.map +1 -0
  98. package/package.json +5 -3
@@ -0,0 +1,259 @@
1
+ "use strict";
2
+ /**
3
+ * Streaming Handler for Claude Agent SDK
4
+ *
5
+ * Handles streaming messages, progress tracking, and user feedback
6
+ * for long-running agent operations.
7
+ */
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.StreamingHandler = void 0;
13
+ exports.streamWithProgress = streamWithProgress;
14
+ exports.simpleStream = simpleStream;
15
+ const chalk_1 = __importDefault(require("chalk"));
16
+ const ora_1 = __importDefault(require("ora"));
17
+ /**
18
+ * Handles streaming from Claude Agent SDK with progress tracking
19
+ */
20
+ class StreamingHandler {
21
+ constructor(options = {}) {
22
+ this.spinner = null;
23
+ this.stats = {
24
+ totalTokens: 0,
25
+ inputTokens: 0,
26
+ outputTokens: 0,
27
+ toolsUsed: [],
28
+ duration: 0,
29
+ messagesProcessed: 0,
30
+ };
31
+ this.startTime = 0;
32
+ this.options = {
33
+ showProgress: options.showProgress !== false,
34
+ showTokens: options.showTokens !== false,
35
+ showToolUsage: options.showToolUsage !== false,
36
+ ...options,
37
+ };
38
+ }
39
+ /**
40
+ * Start streaming handler
41
+ */
42
+ start(message = 'Processing...') {
43
+ this.startTime = Date.now();
44
+ if (this.options.showProgress) {
45
+ this.spinner = (0, ora_1.default)(message).start();
46
+ }
47
+ }
48
+ /**
49
+ * Process streaming messages from query
50
+ */
51
+ async processStream(query) {
52
+ let fullResponse = '';
53
+ try {
54
+ for await (const message of query) {
55
+ this.stats.messagesProcessed++;
56
+ // Handle different message types
57
+ switch (message.type) {
58
+ case 'assistant':
59
+ const text = this.handleAssistantMessage(message);
60
+ fullResponse += text;
61
+ break;
62
+ case 'result':
63
+ this.handleToolResult(message);
64
+ break;
65
+ case 'system':
66
+ this.handleSystemMessage(message);
67
+ break;
68
+ default:
69
+ // Handle other message types
70
+ if (message.type === 'partial_assistant') {
71
+ this.handlePartialMessage(message);
72
+ }
73
+ else if (message.type === 'permission_denial') {
74
+ this.handlePermissionDenial(message);
75
+ }
76
+ break;
77
+ }
78
+ }
79
+ this.stats.duration = Date.now() - this.startTime;
80
+ this.complete();
81
+ return fullResponse;
82
+ }
83
+ catch (error) {
84
+ this.error(error);
85
+ throw error;
86
+ }
87
+ }
88
+ /**
89
+ * Handle assistant message
90
+ */
91
+ handleAssistantMessage(message) {
92
+ let text = '';
93
+ if (message.message && message.message.content) {
94
+ for (const content of message.message.content) {
95
+ if (content.type === 'text') {
96
+ text += content.text;
97
+ // Stream tokens if enabled
98
+ if (this.options.onToken) {
99
+ this.options.onToken(content.text);
100
+ }
101
+ }
102
+ else if (content.type === 'tool_use') {
103
+ // Track tool usage
104
+ const toolName = content.name;
105
+ if (!this.stats.toolsUsed.includes(toolName)) {
106
+ this.stats.toolsUsed.push(toolName);
107
+ }
108
+ if (this.options.showToolUsage) {
109
+ this.updateSpinner(`🔧 Using tool: ${toolName}`);
110
+ }
111
+ if (this.options.onToolUse) {
112
+ this.options.onToolUse(toolName, content.input);
113
+ }
114
+ }
115
+ }
116
+ // Update token stats if available
117
+ if (message.message.usage) {
118
+ this.stats.inputTokens += message.message.usage.input_tokens || 0;
119
+ this.stats.outputTokens += message.message.usage.output_tokens || 0;
120
+ this.stats.totalTokens = this.stats.inputTokens + this.stats.outputTokens;
121
+ }
122
+ }
123
+ return text;
124
+ }
125
+ /**
126
+ * Handle partial assistant message (streaming)
127
+ */
128
+ handlePartialMessage(message) {
129
+ if (message.message && message.message.content) {
130
+ for (const content of message.message.content) {
131
+ if (content.type === 'text') {
132
+ // Update progress with partial text
133
+ const preview = content.text.substring(0, 50);
134
+ if (this.options.showProgress) {
135
+ this.updateSpinner(`📝 ${preview}...`);
136
+ }
137
+ if (this.options.onProgress) {
138
+ this.options.onProgress(content.text);
139
+ }
140
+ }
141
+ }
142
+ }
143
+ }
144
+ /**
145
+ * Handle tool result message
146
+ */
147
+ handleToolResult(message) {
148
+ if (this.options.showToolUsage && message.content) {
149
+ const preview = JSON.stringify(message.content).substring(0, 50);
150
+ this.updateSpinner(`✅ Tool result: ${preview}...`);
151
+ }
152
+ }
153
+ /**
154
+ * Handle system message
155
+ */
156
+ handleSystemMessage(message) {
157
+ if (message.message) {
158
+ if (this.options.showProgress) {
159
+ this.updateSpinner(`ℹ️ ${message.message}`);
160
+ }
161
+ }
162
+ }
163
+ /**
164
+ * Handle permission denial
165
+ */
166
+ handlePermissionDenial(message) {
167
+ if (this.spinner) {
168
+ this.spinner.warn(chalk_1.default.yellow(`⚠️ Permission denied: ${message.message || 'Unknown operation'}`));
169
+ this.spinner = (0, ora_1.default)().start();
170
+ }
171
+ }
172
+ /**
173
+ * Update spinner text
174
+ */
175
+ updateSpinner(text) {
176
+ if (this.spinner) {
177
+ this.spinner.text = text;
178
+ }
179
+ }
180
+ /**
181
+ * Complete streaming successfully
182
+ */
183
+ complete(message) {
184
+ if (this.spinner) {
185
+ this.spinner.succeed(message || chalk_1.default.green('✅ Completed'));
186
+ }
187
+ // Show stats if enabled
188
+ if (this.options.showTokens && this.stats.totalTokens > 0) {
189
+ console.log(chalk_1.default.gray(` Tokens: ${this.stats.totalTokens} (in: ${this.stats.inputTokens}, out: ${this.stats.outputTokens})`));
190
+ }
191
+ if (this.options.showToolUsage && this.stats.toolsUsed.length > 0) {
192
+ console.log(chalk_1.default.gray(` Tools used: ${this.stats.toolsUsed.join(', ')}`));
193
+ }
194
+ if (this.options.showProgress) {
195
+ console.log(chalk_1.default.gray(` Duration: ${(this.stats.duration / 1000).toFixed(2)}s`));
196
+ }
197
+ }
198
+ /**
199
+ * Handle error during streaming
200
+ */
201
+ error(error) {
202
+ if (this.spinner) {
203
+ this.spinner.fail(chalk_1.default.red(`❌ Error: ${error.message}`));
204
+ }
205
+ if (this.options.onError) {
206
+ this.options.onError(error);
207
+ }
208
+ }
209
+ /**
210
+ * Stop spinner without completion
211
+ */
212
+ stop() {
213
+ if (this.spinner) {
214
+ this.spinner.stop();
215
+ }
216
+ }
217
+ /**
218
+ * Get current statistics
219
+ */
220
+ getStats() {
221
+ return { ...this.stats };
222
+ }
223
+ /**
224
+ * Reset statistics
225
+ */
226
+ resetStats() {
227
+ this.stats = {
228
+ totalTokens: 0,
229
+ inputTokens: 0,
230
+ outputTokens: 0,
231
+ toolsUsed: [],
232
+ duration: 0,
233
+ messagesProcessed: 0,
234
+ };
235
+ }
236
+ }
237
+ exports.StreamingHandler = StreamingHandler;
238
+ /**
239
+ * Convenience function to create and use streaming handler
240
+ */
241
+ async function streamWithProgress(query, options = {}) {
242
+ const handler = new StreamingHandler(options);
243
+ handler.start();
244
+ const content = await handler.processStream(query);
245
+ const stats = handler.getStats();
246
+ return { content, stats };
247
+ }
248
+ /**
249
+ * Simplified streaming with default options
250
+ */
251
+ async function simpleStream(query) {
252
+ const { content } = await streamWithProgress(query, {
253
+ showProgress: true,
254
+ showTokens: true,
255
+ showToolUsage: true,
256
+ });
257
+ return content;
258
+ }
259
+ //# sourceMappingURL=streamingHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamingHandler.js","sourceRoot":"","sources":["../../src/utils/streamingHandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ export type PermissionMode = 'strict' | 'permissive' | 'custom';
2
+ export type ToolCategory = 'file' | 'code' | 'web' | 'database' | 'api' | 'system' | 'custom';
3
+ export interface ToolPermission {
4
+ name: string;
5
+ category: ToolCategory;
6
+ allowed: boolean;
7
+ reason?: string;
8
+ restrictions?: string[];
9
+ }
10
+ export interface PermissionConfig {
11
+ mode: PermissionMode;
12
+ allowedTools: string[];
13
+ disallowedTools: string[];
14
+ categoryPermissions: Record<ToolCategory, boolean>;
15
+ customPermissions: Record<string, ToolPermission>;
16
+ restrictions: {
17
+ maxFileSize?: number;
18
+ allowedFileTypes?: string[];
19
+ blockedDomains?: string[];
20
+ maxApiCalls?: number;
21
+ allowedDirectories?: string[];
22
+ };
23
+ }
24
+ export declare class ToolPermissionManager {
25
+ private config;
26
+ private configFile;
27
+ private workingDirectory;
28
+ constructor(workingDirectory?: string);
29
+ /**
30
+ * Check if a tool is allowed
31
+ */
32
+ isToolAllowed(toolName: string, category?: ToolCategory): boolean;
33
+ /**
34
+ * Get permission reason for a tool
35
+ */
36
+ getPermissionReason(toolName: string): string;
37
+ /**
38
+ * Get all allowed tools
39
+ */
40
+ getAllowedTools(): string[];
41
+ /**
42
+ * Get all disallowed tools
43
+ */
44
+ getDisallowedTools(): string[];
45
+ /**
46
+ * Set permission mode
47
+ */
48
+ setPermissionMode(mode: PermissionMode): void;
49
+ /**
50
+ * Allow a specific tool
51
+ */
52
+ allowTool(toolName: string, reason?: string): void;
53
+ /**
54
+ * Disallow a specific tool
55
+ */
56
+ disallowTool(toolName: string, reason?: string): void;
57
+ /**
58
+ * Set category permissions
59
+ */
60
+ setCategoryPermission(category: ToolCategory, allowed: boolean): void;
61
+ /**
62
+ * Get permission configuration for Claude Agent SDK
63
+ */
64
+ getClaudeAgentConfig(): {
65
+ allowedTools?: string[];
66
+ disallowedTools?: string[];
67
+ permissionMode: 'strict' | 'permissive';
68
+ };
69
+ /**
70
+ * Validate tool usage against restrictions
71
+ */
72
+ validateToolUsage(toolName: string, params: any): {
73
+ allowed: boolean;
74
+ reason?: string;
75
+ };
76
+ /**
77
+ * Get permission summary
78
+ */
79
+ getPermissionSummary(): string;
80
+ /**
81
+ * Reset to default permissions
82
+ */
83
+ resetToDefaults(): void;
84
+ /**
85
+ * Get default permission configuration
86
+ */
87
+ private getDefaultConfig;
88
+ /**
89
+ * Load configuration from file
90
+ */
91
+ private loadConfig;
92
+ /**
93
+ * Save configuration to file
94
+ */
95
+ private saveConfig;
96
+ /**
97
+ * Get tools by category
98
+ */
99
+ private getToolsByCategory;
100
+ /**
101
+ * Get category for a tool
102
+ */
103
+ private getToolCategory;
104
+ }
105
+ //# sourceMappingURL=toolPermissions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolPermissions.d.ts","sourceRoot":"","sources":["../../src/utils/toolPermissions.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,YAAY,GAAG,QAAQ,CAAC;AAChE,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,UAAU,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE9F,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,cAAc,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACnD,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAClD,YAAY,EAAE;QACZ,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC5B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;KAC/B,CAAC;CACH;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,gBAAgB,CAAS;gBAErB,gBAAgB,CAAC,EAAE,MAAM;IAOrC;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,YAAY,GAAG,OAAO;IAkCjE;;OAEG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IA0B7C;;OAEG;IACH,eAAe,IAAI,MAAM,EAAE;IA2B3B;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAwB9B;;OAEG;IACH,iBAAiB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAM7C;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAoBlD;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAoBrD;;OAEG;IACH,qBAAqB,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAMrE;;OAEG;IACH,oBAAoB,IAAI;QACtB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;QAC3B,cAAc,EAAE,QAAQ,GAAG,YAAY,CAAC;KACzC;IAWD;;OAEG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IAoDvF;;OAEG;IACH,oBAAoB,IAAI,MAAM;IAa9B;;OAEG;IACH,eAAe,IAAI,IAAI;IAMvB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAsCxB;;OAEG;IACH,OAAO,CAAC,UAAU;IAalB;;OAEG;IACH,OAAO,CAAC,UAAU;IAYlB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAc1B;;OAEG;IACH,OAAO,CAAC,eAAe;CA6BxB"}