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,68 @@
1
+ /**
2
+ * Standardized file naming convention for MyContext CLI
3
+ * Single source of truth for all context file names
4
+ */
5
+ export declare const CONTEXT_FILES: {
6
+ readonly FEATURES: "01a-features.md";
7
+ readonly USER_FLOWS: "01b-user-flows.md";
8
+ readonly EDGE_CASES: "01c-edge-cases.md";
9
+ readonly TECHNICAL_SPECS: "01d-technical-specs.md";
10
+ readonly PRD: "02-prd.md";
11
+ readonly TYPES: "02-types.ts";
12
+ readonly BRANDING: "03-branding.md";
13
+ readonly COMPONENT_LIST: "04-component-list.json";
14
+ readonly PROJECT_STRUCTURE: "05-project-structure.md";
15
+ readonly STATE: "state.json";
16
+ readonly CONTEXT_MEMORY: "context.json";
17
+ readonly PROGRESS: "progress.json";
18
+ readonly BUILD_STRATEGY_PLAN: "build-strategy-plan.json";
19
+ readonly BUILD_STRATEGY_RECOMMENDATIONS: "build-strategy-recommendations.json";
20
+ readonly BUILD_STRATEGY_TASKS: "build-strategy-tasks.json";
21
+ readonly BUILD_STRATEGY_COMPARISON: "build-strategy-comparison.json";
22
+ };
23
+ /**
24
+ * Legacy file names for backward compatibility
25
+ * @deprecated Use CONTEXT_FILES instead
26
+ */
27
+ export declare const LEGACY_FILE_NAMES: {
28
+ readonly '01a-brief.md': "01a-features.md";
29
+ readonly '01b-requirements.md': "01b-user-flows.md";
30
+ readonly '01c-flows.md': "01c-edge-cases.md";
31
+ readonly '01-prd.md': "02-prd.md";
32
+ readonly 'prd.md': "02-prd.md";
33
+ readonly 'PRD.md': "02-prd.md";
34
+ readonly '01_PRD.md': "02-prd.md";
35
+ readonly 'types.ts': "02-types.ts";
36
+ readonly '02_types.ts': "02-types.ts";
37
+ readonly 'branding.md': "03-branding.md";
38
+ readonly '03_branding.md': "03-branding.md";
39
+ readonly 'component-list.json': "04-component-list.json";
40
+ readonly 'components-list.json': "04-component-list.json";
41
+ readonly '04_component_list.json': "04-component-list.json";
42
+ readonly 'project-structure.md': "05-project-structure.md";
43
+ readonly '05_project_structure.md': "05-project-structure.md";
44
+ };
45
+ /**
46
+ * Required context files for various operations
47
+ */
48
+ export declare const REQUIRED_FILES: {
49
+ readonly COMPILE_PRD: readonly ["01a-features.md", "01b-user-flows.md", "01c-edge-cases.md", "01d-technical-specs.md"];
50
+ readonly GENERATE_TYPES: readonly ["02-prd.md"];
51
+ readonly GENERATE_BRAND: readonly ["02-prd.md"];
52
+ readonly GENERATE_COMPONENTS_LIST: readonly ["02-prd.md", "02-types.ts"];
53
+ readonly GENERATE_COMPONENTS: readonly ["02-prd.md", "02-types.ts", "04-component-list.json"];
54
+ };
55
+ /**
56
+ * Get the standardized file name for a given file
57
+ * Returns the canonical name or the original if no mapping exists
58
+ */
59
+ export declare function getStandardFileName(fileName: string): string;
60
+ /**
61
+ * Check if a file name is legacy
62
+ */
63
+ export declare function isLegacyFileName(fileName: string): boolean;
64
+ /**
65
+ * Get all possible names for a canonical file (including legacy)
66
+ */
67
+ export declare function getAllFileNameVariants(canonicalName: string): string[];
68
+ //# sourceMappingURL=fileNames.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileNames.d.ts","sourceRoot":"","sources":["../../src/constants/fileNames.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;CAwBhB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;CAiBpB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;CAkBjB,CAAC;AAEX;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE,CAUtE"}
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ /**
3
+ * Standardized file naming convention for MyContext CLI
4
+ * Single source of truth for all context file names
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.REQUIRED_FILES = exports.LEGACY_FILE_NAMES = exports.CONTEXT_FILES = void 0;
8
+ exports.getStandardFileName = getStandardFileName;
9
+ exports.isLegacyFileName = isLegacyFileName;
10
+ exports.getAllFileNameVariants = getAllFileNameVariants;
11
+ exports.CONTEXT_FILES = {
12
+ // A/B/C/D Context Files (User-centric documentation)
13
+ FEATURES: '01a-features.md',
14
+ USER_FLOWS: '01b-user-flows.md',
15
+ EDGE_CASES: '01c-edge-cases.md',
16
+ TECHNICAL_SPECS: '01d-technical-specs.md',
17
+ // Core Context Files
18
+ PRD: '02-prd.md', // Changed from 01-prd.md to avoid conflict
19
+ TYPES: '02-types.ts',
20
+ BRANDING: '03-branding.md',
21
+ COMPONENT_LIST: '04-component-list.json',
22
+ PROJECT_STRUCTURE: '05-project-structure.md',
23
+ // State and Tracking
24
+ STATE: 'state.json',
25
+ CONTEXT_MEMORY: 'context.json',
26
+ PROGRESS: 'progress.json',
27
+ // Build Strategy
28
+ BUILD_STRATEGY_PLAN: 'build-strategy-plan.json',
29
+ BUILD_STRATEGY_RECOMMENDATIONS: 'build-strategy-recommendations.json',
30
+ BUILD_STRATEGY_TASKS: 'build-strategy-tasks.json',
31
+ BUILD_STRATEGY_COMPARISON: 'build-strategy-comparison.json',
32
+ };
33
+ /**
34
+ * Legacy file names for backward compatibility
35
+ * @deprecated Use CONTEXT_FILES instead
36
+ */
37
+ exports.LEGACY_FILE_NAMES = {
38
+ '01a-brief.md': exports.CONTEXT_FILES.FEATURES,
39
+ '01b-requirements.md': exports.CONTEXT_FILES.USER_FLOWS,
40
+ '01c-flows.md': exports.CONTEXT_FILES.EDGE_CASES,
41
+ '01-prd.md': exports.CONTEXT_FILES.PRD,
42
+ 'prd.md': exports.CONTEXT_FILES.PRD,
43
+ 'PRD.md': exports.CONTEXT_FILES.PRD,
44
+ '01_PRD.md': exports.CONTEXT_FILES.PRD,
45
+ 'types.ts': exports.CONTEXT_FILES.TYPES,
46
+ '02_types.ts': exports.CONTEXT_FILES.TYPES,
47
+ 'branding.md': exports.CONTEXT_FILES.BRANDING,
48
+ '03_branding.md': exports.CONTEXT_FILES.BRANDING,
49
+ 'component-list.json': exports.CONTEXT_FILES.COMPONENT_LIST,
50
+ 'components-list.json': exports.CONTEXT_FILES.COMPONENT_LIST,
51
+ '04_component_list.json': exports.CONTEXT_FILES.COMPONENT_LIST,
52
+ 'project-structure.md': exports.CONTEXT_FILES.PROJECT_STRUCTURE,
53
+ '05_project_structure.md': exports.CONTEXT_FILES.PROJECT_STRUCTURE,
54
+ };
55
+ /**
56
+ * Required context files for various operations
57
+ */
58
+ exports.REQUIRED_FILES = {
59
+ COMPILE_PRD: [
60
+ exports.CONTEXT_FILES.FEATURES,
61
+ exports.CONTEXT_FILES.USER_FLOWS,
62
+ exports.CONTEXT_FILES.EDGE_CASES,
63
+ exports.CONTEXT_FILES.TECHNICAL_SPECS,
64
+ ],
65
+ GENERATE_TYPES: [exports.CONTEXT_FILES.PRD],
66
+ GENERATE_BRAND: [exports.CONTEXT_FILES.PRD],
67
+ GENERATE_COMPONENTS_LIST: [
68
+ exports.CONTEXT_FILES.PRD,
69
+ exports.CONTEXT_FILES.TYPES,
70
+ ],
71
+ GENERATE_COMPONENTS: [
72
+ exports.CONTEXT_FILES.PRD,
73
+ exports.CONTEXT_FILES.TYPES,
74
+ exports.CONTEXT_FILES.COMPONENT_LIST,
75
+ ],
76
+ };
77
+ /**
78
+ * Get the standardized file name for a given file
79
+ * Returns the canonical name or the original if no mapping exists
80
+ */
81
+ function getStandardFileName(fileName) {
82
+ return exports.LEGACY_FILE_NAMES[fileName] || fileName;
83
+ }
84
+ /**
85
+ * Check if a file name is legacy
86
+ */
87
+ function isLegacyFileName(fileName) {
88
+ return fileName in exports.LEGACY_FILE_NAMES;
89
+ }
90
+ /**
91
+ * Get all possible names for a canonical file (including legacy)
92
+ */
93
+ function getAllFileNameVariants(canonicalName) {
94
+ const variants = [canonicalName];
95
+ for (const [legacy, canonical] of Object.entries(exports.LEGACY_FILE_NAMES)) {
96
+ if (canonical === canonicalName) {
97
+ variants.push(legacy);
98
+ }
99
+ }
100
+ return variants;
101
+ }
102
+ //# sourceMappingURL=fileNames.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileNames.js","sourceRoot":"","sources":["../../src/constants/fileNames.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AA8EH,kDAEC;AAKD,4CAEC;AAKD,wDAUC;AApGY,QAAA,aAAa,GAAG;IAC3B,qDAAqD;IACrD,QAAQ,EAAE,iBAAiB;IAC3B,UAAU,EAAE,mBAAmB;IAC/B,UAAU,EAAE,mBAAmB;IAC/B,eAAe,EAAE,wBAAwB;IAEzC,qBAAqB;IACrB,GAAG,EAAE,WAAW,EAAG,2CAA2C;IAC9D,KAAK,EAAE,aAAa;IACpB,QAAQ,EAAE,gBAAgB;IAC1B,cAAc,EAAE,wBAAwB;IACxC,iBAAiB,EAAE,yBAAyB;IAE5C,qBAAqB;IACrB,KAAK,EAAE,YAAY;IACnB,cAAc,EAAE,cAAc;IAC9B,QAAQ,EAAE,eAAe;IAEzB,iBAAiB;IACjB,mBAAmB,EAAE,0BAA0B;IAC/C,8BAA8B,EAAE,qCAAqC;IACrE,oBAAoB,EAAE,2BAA2B;IACjD,yBAAyB,EAAE,gCAAgC;CACnD,CAAC;AAEX;;;GAGG;AACU,QAAA,iBAAiB,GAAG;IAC/B,cAAc,EAAE,qBAAa,CAAC,QAAQ;IACtC,qBAAqB,EAAE,qBAAa,CAAC,UAAU;IAC/C,cAAc,EAAE,qBAAa,CAAC,UAAU;IACxC,WAAW,EAAE,qBAAa,CAAC,GAAG;IAC9B,QAAQ,EAAE,qBAAa,CAAC,GAAG;IAC3B,QAAQ,EAAE,qBAAa,CAAC,GAAG;IAC3B,WAAW,EAAE,qBAAa,CAAC,GAAG;IAC9B,UAAU,EAAE,qBAAa,CAAC,KAAK;IAC/B,aAAa,EAAE,qBAAa,CAAC,KAAK;IAClC,aAAa,EAAE,qBAAa,CAAC,QAAQ;IACrC,gBAAgB,EAAE,qBAAa,CAAC,QAAQ;IACxC,qBAAqB,EAAE,qBAAa,CAAC,cAAc;IACnD,sBAAsB,EAAE,qBAAa,CAAC,cAAc;IACpD,wBAAwB,EAAE,qBAAa,CAAC,cAAc;IACtD,sBAAsB,EAAE,qBAAa,CAAC,iBAAiB;IACvD,yBAAyB,EAAE,qBAAa,CAAC,iBAAiB;CAClD,CAAC;AAEX;;GAEG;AACU,QAAA,cAAc,GAAG;IAC5B,WAAW,EAAE;QACX,qBAAa,CAAC,QAAQ;QACtB,qBAAa,CAAC,UAAU;QACxB,qBAAa,CAAC,UAAU;QACxB,qBAAa,CAAC,eAAe;KAC9B;IACD,cAAc,EAAE,CAAC,qBAAa,CAAC,GAAG,CAAC;IACnC,cAAc,EAAE,CAAC,qBAAa,CAAC,GAAG,CAAC;IACnC,wBAAwB,EAAE;QACxB,qBAAa,CAAC,GAAG;QACjB,qBAAa,CAAC,KAAK;KACpB;IACD,mBAAmB,EAAE;QACnB,qBAAa,CAAC,GAAG;QACjB,qBAAa,CAAC,KAAK;QACnB,qBAAa,CAAC,cAAc;KAC7B;CACO,CAAC;AAEX;;;GAGG;AACH,SAAgB,mBAAmB,CAAC,QAAgB;IAClD,OAAO,yBAAiB,CAAC,QAA0C,CAAC,IAAI,QAAQ,CAAC;AACnF,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,QAAgB;IAC/C,OAAO,QAAQ,IAAI,yBAAiB,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,SAAgB,sBAAsB,CAAC,aAAqB;IAC1D,MAAM,QAAQ,GAAG,CAAC,aAAa,CAAC,CAAC;IAEjC,KAAK,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,yBAAiB,CAAC,EAAE,CAAC;QACpE,IAAI,SAAS,KAAK,aAAa,EAAE,CAAC;YAChC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,198 @@
1
+ /**
2
+ * AIClient Interface
3
+ *
4
+ * Unified interface for all AI client implementations in MyContext CLI.
5
+ * Supports both simple API calls and complex agentic workflows.
6
+ */
7
+ export type OperationComplexity = 'simple' | 'moderate' | 'complex';
8
+ export interface AIClientOptions {
9
+ model?: string;
10
+ modelCandidates?: string[];
11
+ temperature?: number;
12
+ maxTokens?: number;
13
+ systemPrompt?: string;
14
+ workingDirectory?: string;
15
+ }
16
+ export interface AgentContext {
17
+ prd?: string;
18
+ types?: string;
19
+ brand?: string;
20
+ componentList?: any;
21
+ projectStructure?: string;
22
+ previousOutputs?: Record<string, any>;
23
+ userPrompt?: string;
24
+ workingDirectory?: string;
25
+ }
26
+ export interface StreamingOptions {
27
+ onProgress?: (message: string) => void;
28
+ onToken?: (token: string) => void;
29
+ onToolUse?: (tool: string, input: any) => void;
30
+ onError?: (error: Error) => void;
31
+ }
32
+ export interface GenerationResult {
33
+ content: string;
34
+ usage?: {
35
+ inputTokens: number;
36
+ outputTokens: number;
37
+ totalTokens: number;
38
+ };
39
+ toolsUsed?: string[];
40
+ duration?: number;
41
+ context?: AgentContext;
42
+ }
43
+ export interface WorkflowResult {
44
+ success: boolean;
45
+ content: string;
46
+ steps: string[];
47
+ errors?: string[];
48
+ context?: AgentContext;
49
+ duration?: number;
50
+ }
51
+ /**
52
+ * Base interface that all AI clients must implement
53
+ */
54
+ export interface AIClient {
55
+ readonly clientType: 'direct-api' | 'agent-sdk' | 'hybrid';
56
+ readonly supportsTools: boolean;
57
+ readonly supportsStreaming: boolean;
58
+ hasApiKey(): boolean;
59
+ checkConnection(): Promise<boolean>;
60
+ setApiKey(apiKey: string): void;
61
+ generateText(prompt: string, options?: AIClientOptions): Promise<string>;
62
+ generateComponent(prompt: string, context?: AgentContext, options?: AIClientOptions): Promise<string>;
63
+ generateComponentRefinement(componentCode: string, prompt: string, context?: AgentContext, options?: AIClientOptions): Promise<string>;
64
+ listModels(): Promise<string[]>;
65
+ cleanup?(): Promise<void>;
66
+ }
67
+ /**
68
+ * Extended interface for Agent SDK clients with advanced capabilities
69
+ */
70
+ export interface AgentAIClient extends AIClient {
71
+ clientType: 'agent-sdk' | 'hybrid';
72
+ supportsTools: true;
73
+ generateWithTools(prompt: string, tools: string[], context?: AgentContext, options?: AIClientOptions): Promise<GenerationResult>;
74
+ generateStream(prompt: string, streamOptions: StreamingOptions, context?: AgentContext, options?: AIClientOptions): Promise<GenerationResult>;
75
+ runWorkflow(workflowPrompt: string, context?: AgentContext, options?: AIClientOptions): Promise<WorkflowResult>;
76
+ configureAgent(config: AgentConfiguration): Promise<void>;
77
+ requestPermission(operation: string, target: string): Promise<boolean>;
78
+ useAgent(agentName: string, prompt: string, context?: AgentContext, options?: AIClientOptions): Promise<GenerationResult>;
79
+ getAvailableAgents(): string[];
80
+ }
81
+ export interface AgentConfiguration {
82
+ name: string;
83
+ description: string;
84
+ tools?: string[];
85
+ systemPrompt?: string;
86
+ model?: 'sonnet' | 'opus' | 'haiku' | 'inherit';
87
+ permissionMode?: 'strict' | 'permissive' | 'default';
88
+ allowedTools?: string[];
89
+ disallowedTools?: string[];
90
+ }
91
+ /**
92
+ * MCP Tool definition (from @anthropic-ai/claude-agent-sdk)
93
+ */
94
+ export interface MCPTool {
95
+ name: string;
96
+ description: string;
97
+ inputSchema: any;
98
+ handler: (args: any, extra?: any) => Promise<MCPToolResult>;
99
+ }
100
+ export interface MCPToolResult {
101
+ content: Array<{
102
+ type: 'text';
103
+ text: string;
104
+ }>;
105
+ isError?: boolean;
106
+ }
107
+ /**
108
+ * Hook callback types (from SDK)
109
+ */
110
+ export type HookEvent = 'PreToolUse' | 'PostToolUse' | 'Notification' | 'UserPromptSubmit' | 'SessionStart' | 'SessionEnd' | 'Stop' | 'SubagentStop' | 'PreCompact';
111
+ export interface BaseHookInput {
112
+ session_id: string;
113
+ transcript_path: string;
114
+ cwd: string;
115
+ permission_mode?: string;
116
+ }
117
+ export interface PreToolUseHookInput extends BaseHookInput {
118
+ hook_event_name: 'PreToolUse';
119
+ tool_name: string;
120
+ tool_input: unknown;
121
+ }
122
+ export interface PostToolUseHookInput extends BaseHookInput {
123
+ hook_event_name: 'PostToolUse';
124
+ tool_name: string;
125
+ tool_input: unknown;
126
+ tool_response: unknown;
127
+ }
128
+ export type HookInput = PreToolUseHookInput | PostToolUseHookInput | BaseHookInput;
129
+ export interface HookOutput {
130
+ continue?: boolean;
131
+ suppressOutput?: boolean;
132
+ stopReason?: string;
133
+ decision?: 'approve' | 'block';
134
+ }
135
+ export type HookCallback = (input: HookInput, toolUseID: string | undefined, options: {
136
+ signal: AbortSignal;
137
+ }) => Promise<HookOutput>;
138
+ /**
139
+ * Permission system types
140
+ */
141
+ export type PermissionBehavior = 'allow' | 'deny' | 'ask';
142
+ export interface PermissionResult {
143
+ behavior: PermissionBehavior;
144
+ updatedInput?: Record<string, unknown>;
145
+ message?: string;
146
+ interrupt?: boolean;
147
+ }
148
+ export type CanUseToolCallback = (toolName: string, input: Record<string, unknown>, options: {
149
+ signal: AbortSignal;
150
+ suggestions?: any[];
151
+ }) => Promise<PermissionResult>;
152
+ /**
153
+ * Setting sources (from SDK)
154
+ */
155
+ export type SettingSource = 'user' | 'project' | 'local';
156
+ /**
157
+ * Operation metadata to help router decide which client to use
158
+ */
159
+ export interface OperationMetadata {
160
+ complexity: OperationComplexity;
161
+ requiresTools: boolean;
162
+ requiresStreaming: boolean;
163
+ requiresMultiStep: boolean;
164
+ requiresFileAccess: boolean;
165
+ requiresValidation: boolean;
166
+ estimatedTokens?: number;
167
+ timeoutMs?: number;
168
+ }
169
+ /**
170
+ * Factory configuration for creating AI clients
171
+ */
172
+ export interface AIClientFactoryConfig {
173
+ preferredClient?: 'direct-api' | 'agent-sdk' | 'auto';
174
+ fallbackEnabled?: boolean;
175
+ autoSelectByComplexity?: boolean;
176
+ defaultModel?: string;
177
+ defaultTemperature?: number;
178
+ defaultMaxTokens?: number;
179
+ workingDirectory?: string;
180
+ }
181
+ /**
182
+ * Error types specific to AI operations
183
+ */
184
+ export declare class AIClientError extends Error {
185
+ readonly code: string;
186
+ readonly recoverable: boolean;
187
+ constructor(message: string, code: string, recoverable?: boolean);
188
+ }
189
+ export declare class PermissionDeniedError extends AIClientError {
190
+ constructor(operation: string, target: string);
191
+ }
192
+ export declare class ToolExecutionError extends AIClientError {
193
+ constructor(tool: string, message: string);
194
+ }
195
+ export declare class ContextOverflowError extends AIClientError {
196
+ constructor(currentTokens: number, maxTokens: number);
197
+ }
198
+ //# sourceMappingURL=AIClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AIClient.d.ts","sourceRoot":"","sources":["../../src/interfaces/AIClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ /**
3
+ * AIClient Interface
4
+ *
5
+ * Unified interface for all AI client implementations in MyContext CLI.
6
+ * Supports both simple API calls and complex agentic workflows.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.ContextOverflowError = exports.ToolExecutionError = exports.PermissionDeniedError = exports.AIClientError = void 0;
10
+ /**
11
+ * Error types specific to AI operations
12
+ */
13
+ class AIClientError extends Error {
14
+ constructor(message, code, recoverable = false) {
15
+ super(message);
16
+ this.code = code;
17
+ this.recoverable = recoverable;
18
+ this.name = 'AIClientError';
19
+ }
20
+ }
21
+ exports.AIClientError = AIClientError;
22
+ class PermissionDeniedError extends AIClientError {
23
+ constructor(operation, target) {
24
+ super(`Permission denied for operation '${operation}' on '${target}'`, 'PERMISSION_DENIED', true);
25
+ }
26
+ }
27
+ exports.PermissionDeniedError = PermissionDeniedError;
28
+ class ToolExecutionError extends AIClientError {
29
+ constructor(tool, message) {
30
+ super(`Tool '${tool}' execution failed: ${message}`, 'TOOL_EXECUTION_FAILED', true);
31
+ }
32
+ }
33
+ exports.ToolExecutionError = ToolExecutionError;
34
+ class ContextOverflowError extends AIClientError {
35
+ constructor(currentTokens, maxTokens) {
36
+ super(`Context overflow: ${currentTokens} tokens exceeds maximum ${maxTokens}`, 'CONTEXT_OVERFLOW', true);
37
+ }
38
+ }
39
+ exports.ContextOverflowError = ContextOverflowError;
40
+ //# sourceMappingURL=AIClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AIClient.js","sourceRoot":"","sources":["../../src/interfaces/AIClient.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AA8QH;;GAEG;AACH,MAAa,aAAc,SAAQ,KAAK;IACtC,YACE,OAAe,EACC,IAAY,EACZ,cAAuB,KAAK;QAE5C,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,SAAI,GAAJ,IAAI,CAAQ;QACZ,gBAAW,GAAX,WAAW,CAAiB;QAG5C,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AATD,sCASC;AAED,MAAa,qBAAsB,SAAQ,aAAa;IACtD,YAAY,SAAiB,EAAE,MAAc;QAC3C,KAAK,CACH,oCAAoC,SAAS,SAAS,MAAM,GAAG,EAC/D,mBAAmB,EACnB,IAAI,CACL,CAAC;IACJ,CAAC;CACF;AARD,sDAQC;AAED,MAAa,kBAAmB,SAAQ,aAAa;IACnD,YAAY,IAAY,EAAE,OAAe;QACvC,KAAK,CACH,SAAS,IAAI,uBAAuB,OAAO,EAAE,EAC7C,uBAAuB,EACvB,IAAI,CACL,CAAC;IACJ,CAAC;CACF;AARD,gDAQC;AAED,MAAa,oBAAqB,SAAQ,aAAa;IACrD,YAAY,aAAqB,EAAE,SAAiB;QAClD,KAAK,CACH,qBAAqB,aAAa,2BAA2B,SAAS,EAAE,EACxE,kBAAkB,EAClB,IAAI,CACL,CAAC;IACJ,CAAC;CACF;AARD,oDAQC"}
package/dist/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "mycontext-cli",
3
- "version": "1.0.94",
4
- "description": "MyContext CLI - AI-powered component generation with interactive build strategy planning, shadcn/ui and Next.js 15 integration",
3
+ "version": "2.0.0",
4
+ "description": "MyContext CLI - AI-powered full-stack application generator with complete architecture generation, server actions, Next.js 15 App Router, and self-documenting components",
5
5
  "main": "dist/cli.js",
6
6
  "bin": {
7
7
  "mycontext-cli": "dist/cli.js",
@@ -47,6 +47,7 @@
47
47
  "url": "https://github.com/farajabien/mycontext/issues"
48
48
  },
49
49
  "dependencies": {
50
+ "@anthropic-ai/claude-agent-sdk": "^0.1.1",
50
51
  "axios": "^1.6.0",
51
52
  "chalk": "^5.3.0",
52
53
  "commander": "^11.1.0",
@@ -57,7 +58,8 @@
57
58
  "ora": "^7.0.1",
58
59
  "prompts": "^2.4.2",
59
60
  "sonner": "^2.0.7",
60
- "uuid": "^9.0.1"
61
+ "uuid": "^9.0.1",
62
+ "zod": "^3.25.76"
61
63
  },
62
64
  "devDependencies": {
63
65
  "@types/fs-extra": "^11.0.4",