mycontext-cli 2.0.27 → 2.0.29

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 (173) hide show
  1. package/README.md +71 -342
  2. package/dist/agents/implementations/CodeGenSubAgent.d.ts.map +1 -1
  3. package/dist/agents/implementations/CodeGenSubAgent.js +67 -14
  4. package/dist/agents/implementations/CodeGenSubAgent.js.map +1 -1
  5. package/dist/agents/implementations/DesignPipelineAgent.d.ts +80 -0
  6. package/dist/agents/implementations/DesignPipelineAgent.d.ts.map +1 -0
  7. package/dist/agents/implementations/DesignPipelineAgent.js +1406 -0
  8. package/dist/agents/implementations/DesignPipelineAgent.js.map +1 -0
  9. package/dist/agents/implementations/FeatureAssemblyAgent.d.ts +67 -0
  10. package/dist/agents/implementations/FeatureAssemblyAgent.d.ts.map +1 -0
  11. package/dist/agents/implementations/FeatureAssemblyAgent.js +564 -0
  12. package/dist/agents/implementations/FeatureAssemblyAgent.js.map +1 -0
  13. package/dist/agents/implementations/PromptConstructorAgent.d.ts +10 -0
  14. package/dist/agents/implementations/PromptConstructorAgent.d.ts.map +1 -1
  15. package/dist/agents/implementations/PromptConstructorAgent.js +172 -12
  16. package/dist/agents/implementations/PromptConstructorAgent.js.map +1 -1
  17. package/dist/agents/implementations/RoleBasedGenerator.d.ts +52 -0
  18. package/dist/agents/implementations/RoleBasedGenerator.d.ts.map +1 -0
  19. package/dist/agents/implementations/RoleBasedGenerator.js +370 -0
  20. package/dist/agents/implementations/RoleBasedGenerator.js.map +1 -0
  21. package/dist/cli.js +111 -56
  22. package/dist/cli.js.map +1 -1
  23. package/dist/clients/ClaudeSDKClient.d.ts +48 -0
  24. package/dist/clients/ClaudeSDKClient.d.ts.map +1 -0
  25. package/dist/clients/ClaudeSDKClient.js +158 -0
  26. package/dist/clients/ClaudeSDKClient.js.map +1 -0
  27. package/dist/clients/MyContextAIClient.d.ts +73 -0
  28. package/dist/clients/MyContextAIClient.d.ts.map +1 -0
  29. package/dist/clients/MyContextAIClient.js +280 -0
  30. package/dist/clients/MyContextAIClient.js.map +1 -0
  31. package/dist/clients/ProviderChain.d.ts +87 -0
  32. package/dist/clients/ProviderChain.d.ts.map +1 -0
  33. package/dist/clients/ProviderChain.js +246 -0
  34. package/dist/clients/ProviderChain.js.map +1 -0
  35. package/dist/clients/XAIClient.d.ts +48 -0
  36. package/dist/clients/XAIClient.d.ts.map +1 -0
  37. package/dist/clients/XAIClient.js +152 -0
  38. package/dist/clients/XAIClient.js.map +1 -0
  39. package/dist/commands/assemble-features.d.ts +40 -0
  40. package/dist/commands/assemble-features.d.ts.map +1 -0
  41. package/dist/commands/assemble-features.js +383 -0
  42. package/dist/commands/assemble-features.js.map +1 -0
  43. package/dist/commands/clone-starter.d.ts +32 -0
  44. package/dist/commands/clone-starter.d.ts.map +1 -0
  45. package/dist/commands/clone-starter.js +218 -0
  46. package/dist/commands/clone-starter.js.map +1 -0
  47. package/dist/commands/design-analyze.d.ts +46 -0
  48. package/dist/commands/design-analyze.d.ts.map +1 -0
  49. package/dist/commands/design-analyze.js +232 -0
  50. package/dist/commands/design-analyze.js.map +1 -0
  51. package/dist/commands/generate-components.d.ts +11 -0
  52. package/dist/commands/generate-components.d.ts.map +1 -1
  53. package/dist/commands/generate-components.js +342 -12
  54. package/dist/commands/generate-components.js.map +1 -1
  55. package/dist/commands/generate-context-files.d.ts +9 -0
  56. package/dist/commands/generate-context-files.d.ts.map +1 -1
  57. package/dist/commands/generate-context-files.js +57 -0
  58. package/dist/commands/generate-context-files.js.map +1 -1
  59. package/dist/commands/generate.d.ts +5 -0
  60. package/dist/commands/generate.d.ts.map +1 -1
  61. package/dist/commands/generate.js +109 -2
  62. package/dist/commands/generate.js.map +1 -1
  63. package/dist/commands/init.d.ts +1 -0
  64. package/dist/commands/init.d.ts.map +1 -1
  65. package/dist/commands/init.js +32 -10
  66. package/dist/commands/init.js.map +1 -1
  67. package/dist/commands/preview-components.d.ts +12 -0
  68. package/dist/commands/preview-components.d.ts.map +1 -0
  69. package/dist/commands/preview-components.js +122 -0
  70. package/dist/commands/preview-components.js.map +1 -0
  71. package/dist/commands/refine-component.d.ts +43 -0
  72. package/dist/commands/refine-component.d.ts.map +1 -0
  73. package/dist/commands/refine-component.js +313 -0
  74. package/dist/commands/refine-component.js.map +1 -0
  75. package/dist/commands/review-context.d.ts +47 -0
  76. package/dist/commands/review-context.d.ts.map +1 -0
  77. package/dist/commands/review-context.js +335 -0
  78. package/dist/commands/review-context.js.map +1 -0
  79. package/dist/commands/setup-complete.d.ts.map +1 -1
  80. package/dist/commands/setup-complete.js +38 -2
  81. package/dist/commands/setup-complete.js.map +1 -1
  82. package/dist/commands/workflow.d.ts.map +1 -1
  83. package/dist/commands/workflow.js +86 -7
  84. package/dist/commands/workflow.js.map +1 -1
  85. package/dist/config/intent-dictionary.json +3700 -0
  86. package/dist/package.json +12 -1
  87. package/dist/services/ContextValidator.d.ts +99 -0
  88. package/dist/services/ContextValidator.d.ts.map +1 -0
  89. package/dist/services/ContextValidator.js +433 -0
  90. package/dist/services/ContextValidator.js.map +1 -0
  91. package/dist/services/IntentEnricher.d.ts +61 -0
  92. package/dist/services/IntentEnricher.d.ts.map +1 -0
  93. package/dist/services/IntentEnricher.js +318 -0
  94. package/dist/services/IntentEnricher.js.map +1 -0
  95. package/dist/services/IntentValidator.d.ts +114 -0
  96. package/dist/services/IntentValidator.d.ts.map +1 -0
  97. package/dist/services/IntentValidator.js +680 -0
  98. package/dist/services/IntentValidator.js.map +1 -0
  99. package/dist/services/MutationLogger.d.ts +54 -0
  100. package/dist/services/MutationLogger.d.ts.map +1 -0
  101. package/dist/services/MutationLogger.js +164 -0
  102. package/dist/services/MutationLogger.js.map +1 -0
  103. package/dist/services/RegressionRunner.d.ts +49 -0
  104. package/dist/services/RegressionRunner.d.ts.map +1 -0
  105. package/dist/services/RegressionRunner.js +285 -0
  106. package/dist/services/RegressionRunner.js.map +1 -0
  107. package/dist/services/TriggerLogger.d.ts +101 -0
  108. package/dist/services/TriggerLogger.d.ts.map +1 -0
  109. package/dist/services/TriggerLogger.js +263 -0
  110. package/dist/services/TriggerLogger.js.map +1 -0
  111. package/dist/types/design-pipeline.d.ts +300 -0
  112. package/dist/types/design-pipeline.d.ts.map +1 -0
  113. package/dist/types/design-pipeline.js +9 -0
  114. package/dist/types/design-pipeline.js.map +1 -0
  115. package/dist/types/feature-bundle.d.ts +239 -0
  116. package/dist/types/feature-bundle.d.ts.map +1 -0
  117. package/dist/types/feature-bundle.js +9 -0
  118. package/dist/types/feature-bundle.js.map +1 -0
  119. package/dist/types/index.d.ts +2 -0
  120. package/dist/types/index.d.ts.map +1 -1
  121. package/dist/types/index.js +2 -0
  122. package/dist/types/index.js.map +1 -1
  123. package/dist/types/intent-dictionary.d.ts +525 -0
  124. package/dist/types/intent-dictionary.d.ts.map +1 -0
  125. package/dist/types/intent-dictionary.js +11 -0
  126. package/dist/types/intent-dictionary.js.map +1 -0
  127. package/dist/types/role-permissions.d.ts +167 -0
  128. package/dist/types/role-permissions.d.ts.map +1 -0
  129. package/dist/types/role-permissions.js +9 -0
  130. package/dist/types/role-permissions.js.map +1 -0
  131. package/dist/utils/contextEnricher.d.ts +41 -0
  132. package/dist/utils/contextEnricher.d.ts.map +1 -0
  133. package/dist/utils/contextEnricher.js +327 -0
  134. package/dist/utils/contextEnricher.js.map +1 -0
  135. package/dist/utils/designFallbacks.d.ts +48 -0
  136. package/dist/utils/designFallbacks.d.ts.map +1 -0
  137. package/dist/utils/designFallbacks.js +885 -0
  138. package/dist/utils/designFallbacks.js.map +1 -0
  139. package/dist/utils/designManifestManager.d.ts +89 -0
  140. package/dist/utils/designManifestManager.d.ts.map +1 -0
  141. package/dist/utils/designManifestManager.js +533 -0
  142. package/dist/utils/designManifestManager.js.map +1 -0
  143. package/dist/utils/designPipelineStateManager.d.ts +63 -0
  144. package/dist/utils/designPipelineStateManager.d.ts.map +1 -0
  145. package/dist/utils/designPipelineStateManager.js +174 -0
  146. package/dist/utils/designPipelineStateManager.js.map +1 -0
  147. package/dist/utils/envExampleGenerator.d.ts.map +1 -1
  148. package/dist/utils/envExampleGenerator.js +41 -171
  149. package/dist/utils/envExampleGenerator.js.map +1 -1
  150. package/dist/utils/featureBundleManager.d.ts +90 -0
  151. package/dist/utils/featureBundleManager.d.ts.map +1 -0
  152. package/dist/utils/featureBundleManager.js +340 -0
  153. package/dist/utils/featureBundleManager.js.map +1 -0
  154. package/dist/utils/githubCloner.d.ts +93 -0
  155. package/dist/utils/githubCloner.d.ts.map +1 -0
  156. package/dist/utils/githubCloner.js +305 -0
  157. package/dist/utils/githubCloner.js.map +1 -0
  158. package/dist/utils/hybridAIClient.d.ts.map +1 -1
  159. package/dist/utils/hybridAIClient.js +21 -0
  160. package/dist/utils/hybridAIClient.js.map +1 -1
  161. package/dist/utils/openRouterClient.d.ts +10 -0
  162. package/dist/utils/openRouterClient.d.ts.map +1 -0
  163. package/dist/utils/openRouterClient.js +61 -0
  164. package/dist/utils/openRouterClient.js.map +1 -0
  165. package/dist/utils/rolePermissionMapper.d.ts +89 -0
  166. package/dist/utils/rolePermissionMapper.d.ts.map +1 -0
  167. package/dist/utils/rolePermissionMapper.js +337 -0
  168. package/dist/utils/rolePermissionMapper.js.map +1 -0
  169. package/dist/utils/unifiedDesignContextLoader.d.ts +76 -0
  170. package/dist/utils/unifiedDesignContextLoader.d.ts.map +1 -0
  171. package/dist/utils/unifiedDesignContextLoader.js +344 -0
  172. package/dist/utils/unifiedDesignContextLoader.js.map +1 -0
  173. package/package.json +12 -1
@@ -0,0 +1,101 @@
1
+ export interface TriggerEvent {
2
+ id: string;
3
+ type: "context-change" | "schema-change" | "component-refinement" | "approval-change";
4
+ timestamp: string;
5
+ description: string;
6
+ affectedComponents: string[];
7
+ userAction: string;
8
+ metadata?: Record<string, any>;
9
+ }
10
+ export interface TriggerLog {
11
+ events: TriggerEvent[];
12
+ lastUpdated: string;
13
+ version: string;
14
+ }
15
+ export declare class TriggerLogger {
16
+ private logPath;
17
+ /**
18
+ * Log a trigger event
19
+ */
20
+ logTrigger(type: TriggerEvent["type"], description: string, affectedComponents: string[], userAction: string, metadata?: Record<string, any>): Promise<void>;
21
+ /**
22
+ * Log context file changes
23
+ */
24
+ logContextChange(changedFiles: string[], userAction?: string): Promise<void>;
25
+ /**
26
+ * Log schema changes
27
+ */
28
+ logSchemaChange(userAction?: string): Promise<void>;
29
+ /**
30
+ * Log component refinement
31
+ */
32
+ logComponentRefinement(componentName: string, refinementType: "in-place" | "context-update", userAction?: string): Promise<void>;
33
+ /**
34
+ * Log approval changes
35
+ */
36
+ logApprovalChange(featureId: string, oldApproval: boolean | null, newApproval: boolean | null, userAction?: string): Promise<void>;
37
+ /**
38
+ * Get recent trigger events
39
+ */
40
+ getRecentEvents(limit?: number): Promise<TriggerEvent[]>;
41
+ /**
42
+ * Get events by type
43
+ */
44
+ getEventsByType(type: TriggerEvent["type"]): Promise<TriggerEvent[]>;
45
+ /**
46
+ * Get events affecting a specific component
47
+ */
48
+ getEventsForComponent(componentName: string): Promise<TriggerEvent[]>;
49
+ /**
50
+ * Check if component needs regeneration based on triggers
51
+ */
52
+ needsRegeneration(componentName: string): Promise<boolean>;
53
+ /**
54
+ * Get regeneration recommendations
55
+ */
56
+ getRegenerationRecommendations(): Promise<{
57
+ shouldRegenerate: string[];
58
+ reason: string;
59
+ }>;
60
+ /**
61
+ * Clear old events (keep last 50)
62
+ */
63
+ cleanupOldEvents(): Promise<void>;
64
+ /**
65
+ * Load trigger log from file
66
+ */
67
+ private loadLog;
68
+ /**
69
+ * Save trigger log to file
70
+ */
71
+ private saveLog;
72
+ /**
73
+ * Generate unique event ID
74
+ */
75
+ private generateEventId;
76
+ /**
77
+ * Get affected components from context file changes
78
+ */
79
+ private getAffectedComponentsFromContext;
80
+ /**
81
+ * Get affected components from schema changes
82
+ */
83
+ private getAffectedComponentsFromSchema;
84
+ /**
85
+ * Get affected components from feature approval changes
86
+ */
87
+ private getAffectedComponentsFromFeature;
88
+ /**
89
+ * Get all component names from component list
90
+ */
91
+ private getAllComponentNames;
92
+ /**
93
+ * Display trigger log summary
94
+ */
95
+ displaySummary(): Promise<void>;
96
+ /**
97
+ * Get human-readable time ago
98
+ */
99
+ private getTimeAgo;
100
+ }
101
+ //# sourceMappingURL=TriggerLogger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TriggerLogger.d.ts","sourceRoot":"","sources":["../../src/services/TriggerLogger.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EACA,gBAAgB,GAChB,eAAe,GACf,sBAAsB,GACtB,iBAAiB,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAiC;IAEhD;;OAEG;IACG,UAAU,CACd,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,EAC1B,WAAW,EAAE,MAAM,EACnB,kBAAkB,EAAE,MAAM,EAAE,EAC5B,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B,OAAO,CAAC,IAAI,CAAC;IAkBhB;;OAEG;IACG,gBAAgB,CACpB,YAAY,EAAE,MAAM,EAAE,EACtB,UAAU,GAAE,MAAgC,GAC3C,OAAO,CAAC,IAAI,CAAC;IAchB;;OAEG;IACG,eAAe,CAAC,UAAU,GAAE,MAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IAY3E;;OAEG;IACG,sBAAsB,CAC1B,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,UAAU,GAAG,gBAAgB,EAC7C,UAAU,GAAE,MAA4B,GACvC,OAAO,CAAC,IAAI,CAAC;IAUhB;;OAEG;IACG,iBAAiB,CACrB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,OAAO,GAAG,IAAI,EAC3B,WAAW,EAAE,OAAO,GAAG,IAAI,EAC3B,UAAU,GAAE,MAAmC,GAC9C,OAAO,CAAC,IAAI,CAAC;IAchB;;OAEG;IACG,eAAe,CAAC,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAUlE;;OAEG;IACG,eAAe,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAK1E;;OAEG;IACG,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAO3E;;OAEG;IACG,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAahE;;OAEG;IACG,8BAA8B,IAAI,OAAO,CAAC;QAC9C,gBAAgB,EAAE,MAAM,EAAE,CAAC;QAC3B,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IAkBF;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAYvC;;OAEG;YACW,OAAO;IAkBrB;;OAEG;YACW,OAAO;IAMrB;;OAEG;IACH,OAAO,CAAC,eAAe;IAIvB;;OAEG;YACW,gCAAgC;IAsB9C;;OAEG;YACW,+BAA+B;IAK7C;;OAEG;YACW,gCAAgC;IAS9C;;OAEG;YACW,oBAAoB;IA8BlC;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAmCrC;;OAEG;IACH,OAAO,CAAC,UAAU;CAanB"}
@@ -0,0 +1,263 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.TriggerLogger = void 0;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ class TriggerLogger {
9
+ constructor() {
10
+ this.logPath = ".mycontext/trigger-log.json";
11
+ }
12
+ /**
13
+ * Log a trigger event
14
+ */
15
+ async logTrigger(type, description, affectedComponents, userAction, metadata) {
16
+ const event = {
17
+ id: this.generateEventId(),
18
+ type,
19
+ timestamp: new Date().toISOString(),
20
+ description,
21
+ affectedComponents,
22
+ userAction,
23
+ metadata,
24
+ };
25
+ const log = await this.loadLog();
26
+ log.events.push(event);
27
+ log.lastUpdated = new Date().toISOString();
28
+ await this.saveLog(log);
29
+ }
30
+ /**
31
+ * Log context file changes
32
+ */
33
+ async logContextChange(changedFiles, userAction = "Context files updated") {
34
+ const affectedComponents = await this.getAffectedComponentsFromContext(changedFiles);
35
+ await this.logTrigger("context-change", `Context files changed: ${changedFiles.join(", ")}`, affectedComponents, userAction, { changedFiles });
36
+ }
37
+ /**
38
+ * Log schema changes
39
+ */
40
+ async logSchemaChange(userAction = "Schema updated") {
41
+ const affectedComponents = await this.getAffectedComponentsFromSchema();
42
+ await this.logTrigger("schema-change", "InstantDB schema modified", affectedComponents, userAction, { schemaChanged: true });
43
+ }
44
+ /**
45
+ * Log component refinement
46
+ */
47
+ async logComponentRefinement(componentName, refinementType, userAction = "Component refined") {
48
+ await this.logTrigger("component-refinement", `Component ${componentName} refined via ${refinementType}`, [componentName], userAction, { refinementType, componentName });
49
+ }
50
+ /**
51
+ * Log approval changes
52
+ */
53
+ async logApprovalChange(featureId, oldApproval, newApproval, userAction = "Feature approval changed") {
54
+ const affectedComponents = await this.getAffectedComponentsFromFeature(featureId);
55
+ await this.logTrigger("approval-change", `Feature ${featureId} approval changed from ${oldApproval} to ${newApproval}`, affectedComponents, userAction, { featureId, oldApproval, newApproval });
56
+ }
57
+ /**
58
+ * Get recent trigger events
59
+ */
60
+ async getRecentEvents(limit = 10) {
61
+ const log = await this.loadLog();
62
+ return log.events
63
+ .sort((a, b) => new Date(b.timestamp).getTime() - new Date(a.timestamp).getTime())
64
+ .slice(0, limit);
65
+ }
66
+ /**
67
+ * Get events by type
68
+ */
69
+ async getEventsByType(type) {
70
+ const log = await this.loadLog();
71
+ return log.events.filter((event) => event.type === type);
72
+ }
73
+ /**
74
+ * Get events affecting a specific component
75
+ */
76
+ async getEventsForComponent(componentName) {
77
+ const log = await this.loadLog();
78
+ return log.events.filter((event) => event.affectedComponents.includes(componentName));
79
+ }
80
+ /**
81
+ * Check if component needs regeneration based on triggers
82
+ */
83
+ async needsRegeneration(componentName) {
84
+ const events = await this.getEventsForComponent(componentName);
85
+ // Check if there are any recent trigger events
86
+ const recentEvents = events.filter((event) => {
87
+ const eventTime = new Date(event.timestamp).getTime();
88
+ const oneHourAgo = Date.now() - 60 * 60 * 1000;
89
+ return eventTime > oneHourAgo;
90
+ });
91
+ return recentEvents.length > 0;
92
+ }
93
+ /**
94
+ * Get regeneration recommendations
95
+ */
96
+ async getRegenerationRecommendations() {
97
+ const recentEvents = await this.getRecentEvents(5);
98
+ const shouldRegenerate = [];
99
+ let reason = "";
100
+ for (const event of recentEvents) {
101
+ if (event.type === "context-change" || event.type === "schema-change") {
102
+ shouldRegenerate.push(...event.affectedComponents);
103
+ reason = `Recent ${event.type} detected`;
104
+ }
105
+ }
106
+ return {
107
+ shouldRegenerate: [...new Set(shouldRegenerate)], // Remove duplicates
108
+ reason,
109
+ };
110
+ }
111
+ /**
112
+ * Clear old events (keep last 50)
113
+ */
114
+ async cleanupOldEvents() {
115
+ const log = await this.loadLog();
116
+ log.events = log.events
117
+ .sort((a, b) => new Date(b.timestamp).getTime() - new Date(a.timestamp).getTime())
118
+ .slice(0, 50);
119
+ await this.saveLog(log);
120
+ }
121
+ /**
122
+ * Load trigger log from file
123
+ */
124
+ async loadLog() {
125
+ try {
126
+ const fs = require("fs-extra");
127
+ if (await fs.pathExists(this.logPath)) {
128
+ const content = await fs.readFile(this.logPath, "utf8");
129
+ return JSON.parse(content);
130
+ }
131
+ }
132
+ catch (error) {
133
+ // If file doesn't exist or is corrupted, return empty log
134
+ }
135
+ return {
136
+ events: [],
137
+ lastUpdated: new Date().toISOString(),
138
+ version: "1.0",
139
+ };
140
+ }
141
+ /**
142
+ * Save trigger log to file
143
+ */
144
+ async saveLog(log) {
145
+ const fs = require("fs-extra");
146
+ await fs.ensureDir(".mycontext");
147
+ await fs.writeFile(this.logPath, JSON.stringify(log, null, 2));
148
+ }
149
+ /**
150
+ * Generate unique event ID
151
+ */
152
+ generateEventId() {
153
+ return `event_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
154
+ }
155
+ /**
156
+ * Get affected components from context file changes
157
+ */
158
+ async getAffectedComponentsFromContext(changedFiles) {
159
+ // This would analyze which components are affected by context changes
160
+ // For now, return all components if PRD or features files changed
161
+ const criticalFiles = [
162
+ "01a-features.md",
163
+ "01b-user-flows.md",
164
+ "01c-edge-cases.md",
165
+ ];
166
+ const hasCriticalChange = changedFiles.some((file) => criticalFiles.some((critical) => file.includes(critical)));
167
+ if (hasCriticalChange) {
168
+ // Return all components - this is a conservative approach
169
+ return await this.getAllComponentNames();
170
+ }
171
+ return [];
172
+ }
173
+ /**
174
+ * Get affected components from schema changes
175
+ */
176
+ async getAffectedComponentsFromSchema() {
177
+ // Schema changes typically affect all components that use data
178
+ return await this.getAllComponentNames();
179
+ }
180
+ /**
181
+ * Get affected components from feature approval changes
182
+ */
183
+ async getAffectedComponentsFromFeature(featureId) {
184
+ // Map feature ID to component name
185
+ return [
186
+ featureId.replace(/-/g, " ").replace(/\b\w/g, (l) => l.toUpperCase()),
187
+ ];
188
+ }
189
+ /**
190
+ * Get all component names from component list
191
+ */
192
+ async getAllComponentNames() {
193
+ try {
194
+ const fs = require("fs-extra");
195
+ const componentListPath = ".mycontext/component-list.json";
196
+ if (await fs.pathExists(componentListPath)) {
197
+ const content = await fs.readFile(componentListPath, "utf8");
198
+ const componentList = JSON.parse(content);
199
+ // Extract component names from hierarchical structure
200
+ const names = [];
201
+ const extractNames = (item) => {
202
+ if (item.components) {
203
+ item.components.forEach((comp) => names.push(comp.name));
204
+ }
205
+ if (item.children) {
206
+ item.children.forEach(extractNames);
207
+ }
208
+ };
209
+ extractNames(componentList);
210
+ return names;
211
+ }
212
+ }
213
+ catch (error) {
214
+ // Return empty array if component list not found
215
+ }
216
+ return [];
217
+ }
218
+ /**
219
+ * Display trigger log summary
220
+ */
221
+ async displaySummary() {
222
+ const recentEvents = await this.getRecentEvents(5);
223
+ const recommendations = await this.getRegenerationRecommendations();
224
+ console.log(chalk_1.default.blue("\n📋 Trigger Log Summary"));
225
+ console.log(chalk_1.default.gray("Recent events affecting your components:"));
226
+ if (recentEvents.length === 0) {
227
+ console.log(chalk_1.default.green(" ✅ No recent trigger events"));
228
+ return;
229
+ }
230
+ recentEvents.forEach((event, index) => {
231
+ const timeAgo = this.getTimeAgo(event.timestamp);
232
+ console.log(chalk_1.default.yellow(` ${index + 1}. ${event.description}`));
233
+ console.log(chalk_1.default.gray(` ${timeAgo} - ${event.userAction}`));
234
+ if (event.affectedComponents.length > 0) {
235
+ console.log(chalk_1.default.gray(` Affects: ${event.affectedComponents.join(", ")}`));
236
+ }
237
+ });
238
+ if (recommendations.shouldRegenerate.length > 0) {
239
+ console.log(chalk_1.default.yellow(`\n⚠️ ${recommendations.reason}`));
240
+ console.log(chalk_1.default.blue(` Consider regenerating: ${recommendations.shouldRegenerate.join(", ")}`));
241
+ }
242
+ }
243
+ /**
244
+ * Get human-readable time ago
245
+ */
246
+ getTimeAgo(timestamp) {
247
+ const now = new Date().getTime();
248
+ const eventTime = new Date(timestamp).getTime();
249
+ const diffMs = now - eventTime;
250
+ const diffMins = Math.floor(diffMs / (1000 * 60));
251
+ const diffHours = Math.floor(diffMs / (1000 * 60 * 60));
252
+ const diffDays = Math.floor(diffMs / (1000 * 60 * 60 * 24));
253
+ if (diffMins < 1)
254
+ return "just now";
255
+ if (diffMins < 60)
256
+ return `${diffMins}m ago`;
257
+ if (diffHours < 24)
258
+ return `${diffHours}h ago`;
259
+ return `${diffDays}d ago`;
260
+ }
261
+ }
262
+ exports.TriggerLogger = TriggerLogger;
263
+ //# sourceMappingURL=TriggerLogger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TriggerLogger.js","sourceRoot":"","sources":["../../src/services/TriggerLogger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,300 @@
1
+ /**
2
+ * Design Pipeline Types
3
+ *
4
+ * Defines interfaces for all 8 phases of the design reasoning pipeline
5
+ * that replicates an internal design process for rich, contextual component generation.
6
+ */
7
+ export interface FunctionalSummary {
8
+ app_name: string;
9
+ core_purpose: string;
10
+ key_features: string[];
11
+ primary_user_actions: string[];
12
+ platform: string;
13
+ technical_requirements: string[];
14
+ complexity_level: "low" | "medium" | "high";
15
+ user_personas?: string[];
16
+ business_goals?: string[];
17
+ success_metrics?: string[];
18
+ }
19
+ export interface ProjectScope {
20
+ build_scope: "single_component" | "ui_page" | "full_app";
21
+ reason: string;
22
+ expected_outputs: string[];
23
+ estimated_screens?: number;
24
+ estimated_components?: number;
25
+ development_phases?: string[];
26
+ technical_complexity?: "simple" | "moderate" | "complex";
27
+ }
28
+ export interface ContextGaps {
29
+ missing: string[];
30
+ recommended_next_action: string;
31
+ visual_direction_needed?: boolean;
32
+ tone_guidance_needed?: boolean;
33
+ accessibility_requirements?: string[];
34
+ interaction_patterns?: string[];
35
+ brand_consistency?: string[];
36
+ }
37
+ export interface InspirationSource {
38
+ name: string;
39
+ style: string;
40
+ url?: string;
41
+ reasoning?: string;
42
+ }
43
+ export interface DesignBrief {
44
+ theme: "dark" | "light" | "mixed";
45
+ inspiration_sources: InspirationSource[];
46
+ blended_style: string;
47
+ primary_color: string;
48
+ support_colors: string[];
49
+ typography: {
50
+ heading: string;
51
+ body: string;
52
+ mono?: string;
53
+ };
54
+ ui_principles: string[];
55
+ motion_style: string;
56
+ personality_keywords: string[];
57
+ emotional_tone: string;
58
+ target_audience: string;
59
+ accessibility_focus?: string[];
60
+ }
61
+ export interface ColorPalette {
62
+ primary: string;
63
+ secondary?: string;
64
+ accent?: string;
65
+ background: string;
66
+ surface: string;
67
+ text: string;
68
+ text_muted: string;
69
+ border?: string;
70
+ success?: string;
71
+ warning?: string;
72
+ error?: string;
73
+ info?: string;
74
+ }
75
+ export interface TypographyScale {
76
+ xs: string;
77
+ sm: string;
78
+ md: string;
79
+ lg: string;
80
+ xl: string;
81
+ "2xl": string;
82
+ "3xl": string;
83
+ "4xl": string;
84
+ }
85
+ export interface SpacingScale {
86
+ xs: string;
87
+ sm: string;
88
+ md: string;
89
+ lg: string;
90
+ xl: string;
91
+ "2xl": string;
92
+ "3xl": string;
93
+ "4xl": string;
94
+ }
95
+ export interface BorderRadius {
96
+ none: string;
97
+ sm: string;
98
+ md: string;
99
+ lg: string;
100
+ xl: string;
101
+ full: string;
102
+ }
103
+ export interface ShadowSystem {
104
+ sm: string;
105
+ md: string;
106
+ lg: string;
107
+ xl: string;
108
+ inner?: string;
109
+ }
110
+ export interface MotionTokens {
111
+ duration: {
112
+ fast: string;
113
+ normal: string;
114
+ slow: string;
115
+ };
116
+ easing: {
117
+ linear: string;
118
+ ease_in: string;
119
+ ease_out: string;
120
+ ease_in_out: string;
121
+ };
122
+ }
123
+ export interface VisualSystem {
124
+ colors: ColorPalette;
125
+ typography: {
126
+ font_families: {
127
+ heading: string;
128
+ body: string;
129
+ mono: string;
130
+ };
131
+ scale: TypographyScale;
132
+ weights: {
133
+ normal: string;
134
+ medium: string;
135
+ semibold: string;
136
+ bold: string;
137
+ };
138
+ };
139
+ spacing: SpacingScale;
140
+ radii: BorderRadius;
141
+ shadows: ShadowSystem;
142
+ motion: MotionTokens;
143
+ breakpoints: {
144
+ sm: string;
145
+ md: string;
146
+ lg: string;
147
+ xl: string;
148
+ };
149
+ }
150
+ export interface ComponentProps {
151
+ name: string;
152
+ type: string;
153
+ required: boolean;
154
+ description: string;
155
+ default_value?: any;
156
+ }
157
+ export interface ComponentDefinition {
158
+ name: string;
159
+ description: string;
160
+ type: "layout" | "form" | "display" | "navigation" | "feedback" | "overlay";
161
+ props: ComponentProps[];
162
+ interactions: string[];
163
+ states: string[];
164
+ accessibility_requirements: string[];
165
+ responsive_behavior: string;
166
+ related_components: string[];
167
+ }
168
+ export interface ScreenDefinition {
169
+ name: string;
170
+ description: string;
171
+ purpose: string;
172
+ components: string[];
173
+ layout_type: "single_column" | "multi_column" | "grid" | "dashboard" | "modal";
174
+ navigation_flow: string[];
175
+ user_journey_position: "entry" | "main" | "secondary" | "exit";
176
+ }
177
+ export interface ComponentHierarchy {
178
+ screens: ScreenDefinition[];
179
+ components: ComponentDefinition[];
180
+ design_patterns: string[];
181
+ interaction_flows: string[];
182
+ state_management: string[];
183
+ data_flow: string[];
184
+ }
185
+ export interface ImplementationPlan {
186
+ framework: string;
187
+ pages: string[];
188
+ state_management: string;
189
+ build_requirements: string[];
190
+ data_persistence: string;
191
+ notifications?: string;
192
+ authentication?: string;
193
+ api_integration?: string;
194
+ deployment_strategy?: string;
195
+ performance_optimizations: string[];
196
+ accessibility_implementation: string[];
197
+ testing_strategy: string[];
198
+ monitoring_analytics?: string[];
199
+ }
200
+ export interface DesignIntent {
201
+ visual_philosophy: string;
202
+ design_anchors: string[];
203
+ user_experience_goals: string[];
204
+ brand_alignment: string;
205
+ technical_constraints: string[];
206
+ scalability_considerations: string[];
207
+ maintenance_guidelines: string[];
208
+ success_criteria: string[];
209
+ }
210
+ export interface DesignManifest {
211
+ version: string;
212
+ generated_at: string;
213
+ project_name: string;
214
+ phases: {
215
+ functional_summary: FunctionalSummary;
216
+ project_scope: ProjectScope;
217
+ context_gaps: ContextGaps;
218
+ design_brief: DesignBrief;
219
+ visual_system: VisualSystem;
220
+ component_hierarchy: ComponentHierarchy;
221
+ implementation_plan: ImplementationPlan;
222
+ design_intent: DesignIntent;
223
+ intent_validation?: {
224
+ validation_report: import("./intent-dictionary").IntentValidationReport;
225
+ enriched_intents: import("./intent-dictionary").EnrichedComponentSpec[];
226
+ clarifications: import("./intent-dictionary").ClarificationResponse[];
227
+ };
228
+ };
229
+ metadata: {
230
+ ai_model_used?: string;
231
+ confidence_scores: Record<string, number>;
232
+ fallbacks_used: string[];
233
+ generation_time_ms: number;
234
+ };
235
+ }
236
+ export interface DesignPipelineInput {
237
+ prd: string;
238
+ types?: string;
239
+ branding?: string;
240
+ component_list?: string;
241
+ project_path: string;
242
+ force_regenerate?: boolean;
243
+ target_phases?: string[];
244
+ }
245
+ export interface DesignPipelineOutput {
246
+ manifest: DesignManifest;
247
+ success: boolean;
248
+ warnings: string[];
249
+ errors: string[];
250
+ fallbacks_used: string[];
251
+ }
252
+ export interface DesignTemplate {
253
+ name: string;
254
+ description: string;
255
+ category: "dashboard" | "ecommerce" | "saas" | "mobile" | "content" | "custom";
256
+ phases: Partial<DesignManifest["phases"]>;
257
+ use_cases: string[];
258
+ complexity: "low" | "medium" | "high";
259
+ }
260
+ export interface FallbackResult {
261
+ success: boolean;
262
+ data: any;
263
+ confidence: number;
264
+ method: "ai_generation" | "rule_based" | "template_based" | "default";
265
+ warnings: string[];
266
+ }
267
+ export interface EnrichedContext {
268
+ project_summary: FunctionalSummary;
269
+ design_system: VisualSystem;
270
+ design_intent: DesignIntent;
271
+ component_architecture: ComponentHierarchy;
272
+ technical_context: {
273
+ prd: string;
274
+ types: string;
275
+ brand: string;
276
+ };
277
+ implementation_guidelines: ImplementationPlan;
278
+ design_principles: string[];
279
+ visual_tokens: Record<string, any>;
280
+ interaction_patterns: string[];
281
+ accessibility_requirements: string[];
282
+ enriched_intents?: import("./intent-dictionary").EnrichedComponentSpec[];
283
+ intent_validation_report?: import("./intent-dictionary").IntentValidationReport;
284
+ intent_clarifications?: import("./intent-dictionary").ClarificationResponse[];
285
+ }
286
+ export interface ValidationResult {
287
+ valid: boolean;
288
+ errors: string[];
289
+ warnings: string[];
290
+ suggestions: string[];
291
+ confidence_score: number;
292
+ }
293
+ export interface PhaseValidation {
294
+ phase_name: string;
295
+ result: ValidationResult;
296
+ required_fields: string[];
297
+ missing_fields: string[];
298
+ quality_indicators: Record<string, any>;
299
+ }
300
+ //# sourceMappingURL=design-pipeline.d.ts.map