intention-coding 0.6.1 → 0.6.2

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.
package/dist/index.cjs CHANGED
@@ -7616,8 +7616,18 @@ ${pageStyle}
7616
7616
  return cleanHtml.trim();
7617
7617
  }
7618
7618
  const requirementAnalyzerTool = {
7619
- name: "requirement-analyzer-report",
7620
- description: `\u{667A}\u{80FD}\u{5206}\u{6790}\u{9700}\u{6C42}\u{5E76}\u{751F}\u{6210}API\u{6587}\u{6863}\u{548C}HTML\u{9875}\u{9762}\u{8BBE}\u{8BA1}\u{6587}\u{6863}\u{3002}\u{652F}\u{6301}PC\u{7AEF}\u{3001}\u{79FB}\u{52A8}\u{7AEF}\u{7B49}\u{591A}\u{79CD}\u{9875}\u{9762}\u{7C7B}\u{578B}\u{3002}`,
7619
+ name: "generate_design_doc",
7620
+ description: `\u{6839}\u{636E}\u{9700}\u{6C42}\u{5206}\u{6790}\u{7ED3}\u{679C}\u{FF0C}\u{751F}\u{6210} API \u{6280}\u{672F}\u{8BBE}\u{8BA1}\u{6587}\u{6863}\u{548C}\u{53EF}\u{4EA4}\u{4E92} HTML \u{9875}\u{9762}\u{539F}\u{578B}\u{3002}
7621
+
7622
+ \u{89E6}\u{53D1}\u{8BCD}: \u{751F}\u{6210}\u{8BBE}\u{8BA1}\u{6587}\u{6863}\u{3001}\u{751F}\u{6210}API\u{6587}\u{6863}\u{3001}\u{9700}\u{6C42}\u{8F6C}\u{8BBE}\u{8BA1}\u{3001}\u{751F}\u{6210}\u{6280}\u{672F}\u{65B9}\u{6848}\u{3001}\u{751F}\u{6210}\u{9875}\u{9762}\u{539F}\u{578B}
7623
+
7624
+ \u{4F7F}\u{7528}\u{6D41}\u{7A0B}:
7625
+ 1. \u{5148}\u{8C03}\u{7528} requirement_identifier \u{5206}\u{6790}\u{539F}\u{59CB}\u{9700}\u{6C42}
7626
+ 2. \u{5C06}\u{5206}\u{6790}\u{7ED3}\u{679C}\u{4F20}\u{5165}\u{672C}\u{5DE5}\u{5177}\u{751F}\u{6210}\u{8BBE}\u{8BA1}\u{6587}\u{6863}
7627
+
7628
+ \u{8F93}\u{51FA}:
7629
+ - API \u{6280}\u{672F}\u{9700}\u{6C42}\u{6587}\u{6863} (Markdown)
7630
+ - \u{53EF}\u{4EA4}\u{4E92} HTML \u{9875}\u{9762}\u{539F}\u{578B}`,
7621
7631
  inputSchema: {
7622
7632
  requirement_analysis: stringType().describe("requirement-identifier\u751F\u6210\u7684\u9700\u6C42\u5206\u6790\u7ED3\u679C\uFF08\u5305\u542B\u5F53\u524D\u9700\u6C42\u4E0E\u9879\u76EE\u60C5\u51B5\u7684\u5B8C\u6574\u5206\u6790\uFF09"),
7623
7633
  current_project_path: stringType().describe("\u5F53\u524D\u9879\u76EE\u8DEF\u5F84\uFF08\u5FC5\u586B\uFF09\uFF0C\u9700\u6C42\u62A5\u544A\u5C06\u751F\u6210\u5230\u8BE5\u8DEF\u5F84\u4E0B\u7684.aico/design\u76EE\u5F55"),
@@ -10942,6 +10952,40 @@ ${requirement_description}
10942
10952
  }
10943
10953
  return external_path_namespaceObject.resolve(currentDir, "\u6280\u672F\u89C4\u683C\u8BF4\u660E\u4E66\u6A21\u677F.docx");
10944
10954
  }
10955
+ function prepareRenderData(data) {
10956
+ const renderData = {
10957
+ projectName: data.projectName,
10958
+ moduleName: data.moduleName,
10959
+ year: data.year,
10960
+ month: data.month,
10961
+ referDoc: data.referDoc,
10962
+ serviceInterfaceList: data.serviceInterfaceList || [],
10963
+ designDetailList: data.designDetailList || [],
10964
+ tableInfoList: data.tableInfoList || [],
10965
+ techSolution: data.techSolution || null,
10966
+ businessExceptionList: data.businessExceptionList || [],
10967
+ appendix: data.appendix || null
10968
+ };
10969
+ if (data.techSolution) {
10970
+ const ts = data.techSolution;
10971
+ renderData.trafficEstimation = ts.trafficEstimation || null;
10972
+ renderData.messageQueueList = ts.messageQueueList || [];
10973
+ renderData.databaseSplitList = ts.databaseSplitList || [];
10974
+ renderData.distributedTransactionList = ts.distributedTransactionList || [];
10975
+ renderData.distributedLockList = ts.distributedLockList || [];
10976
+ renderData.scheduledTaskList = ts.scheduledTaskList || [];
10977
+ renderData.delayTaskList = ts.delayTaskList || [];
10978
+ renderData.cacheDesign = ts.cacheDesign || null;
10979
+ if (ts.cacheDesign) {
10980
+ renderData.cacheConstraint = ts.cacheDesign.constraint || "\u4E0D\u6D89\u53CA\u3002";
10981
+ renderData.cacheScenarioList = ts.cacheDesign.cacheScenarioList || [];
10982
+ renderData.cacheDesignDescription = ts.cacheDesign.designDescription || "\u4E0D\u6D89\u53CA\u3002";
10983
+ }
10984
+ }
10985
+ renderData.exceptionCodeList = data.appendix?.exceptionCodeList || [];
10986
+ renderData.codeValueList = data.appendix?.codeValueList || [];
10987
+ return renderData;
10988
+ }
10945
10989
  async function renderTechSpecDoc(data, outputDir) {
10946
10990
  try {
10947
10991
  const templatePath = getTemplatePath();
@@ -10964,7 +11008,8 @@ ${requirement_description}
10964
11008
  end: '}'
10965
11009
  }
10966
11010
  });
10967
- doc.render(data);
11011
+ const renderData = prepareRenderData(data);
11012
+ doc.render(renderData);
10968
11013
  const output = doc.getZip().generate({
10969
11014
  type: 'nodebuffer',
10970
11015
  compression: 'DEFLATE'
@@ -11009,7 +11054,7 @@ ${requirement_description}
11009
11054
  fieldDescription: stringType().describe("\u5B57\u6BB5\u63CF\u8FF0"),
11010
11055
  fieldLength: stringType().describe("\u5B57\u6BB5\u957F\u5EA6")
11011
11056
  });
11012
- const TableInfoSchema = objectType({
11057
+ objectType({
11013
11058
  id: stringType().describe("\u5E8F\u53F7"),
11014
11059
  tableName: stringType().describe("\u8868\u540D\u79F0"),
11015
11060
  entityName: stringType().describe("\u5BF9\u5E94\u5B9E\u4F53\u540D\u79F0"),
@@ -11038,7 +11083,7 @@ ${requirement_description}
11038
11083
  returnResultList: arrayType(ReturnResultInfoSchema).default([]).describe("\u8FD4\u56DE\u7ED3\u679C\u5217\u8868"),
11039
11084
  implementLogic: stringType().describe("\u5B9E\u73B0\u903B\u8F91")
11040
11085
  });
11041
- const DesignDetailSchema = objectType({
11086
+ objectType({
11042
11087
  serviceName: stringType().describe("\u670D\u52A1\u540D\u79F0"),
11043
11088
  serviceDesc: stringType().describe("\u529F\u80FD\u63CF\u8FF0"),
11044
11089
  interfaceDesignDetailList: arrayType(InterfaceDesignDetailSchema).default([]).describe("\u63A5\u53E3\u8BBE\u8BA1\u8BE6\u60C5\u5217\u8868")
@@ -11049,7 +11094,7 @@ ${requirement_description}
11049
11094
  serviceName: stringType().describe("\u670D\u52A1\u540D"),
11050
11095
  methodName: stringType().describe("\u65B9\u6CD5\u540D")
11051
11096
  });
11052
- const ServiceInterfaceSchema = objectType({
11097
+ objectType({
11053
11098
  id: stringType().describe("\u5E8F\u53F7"),
11054
11099
  serviceType: stringType().describe("\u670D\u52A1\u7C7B\u578B"),
11055
11100
  serviceEnglishName: stringType().describe("\u670D\u52A1\u82F1\u6587\u540D\u79F0"),
@@ -11057,38 +11102,207 @@ ${requirement_description}
11057
11102
  serviceDescription: stringType().describe("\u670D\u52A1\u63CF\u8FF0"),
11058
11103
  interfaceDetailList: arrayType(InterfaceDetailSchema).default([]).describe("\u63A5\u53E3\u8BE6\u60C5\u5217\u8868")
11059
11104
  });
11105
+ const TrafficEstimationSchema = objectType({
11106
+ description: stringType().describe("\u63CF\u8FF0"),
11107
+ qps: stringType().describe("\u9884\u4F30QPS"),
11108
+ peakQps: stringType().describe("\u5CF0\u503CQPS"),
11109
+ dailyVolume: stringType().describe("\u65E5\u8BF7\u6C42\u91CF")
11110
+ });
11111
+ const MessageQueueDesignSchema = objectType({
11112
+ topicName: stringType().describe("Topic\u540D\u79F0"),
11113
+ description: stringType().describe("\u63CF\u8FF0"),
11114
+ producer: stringType().describe("\u751F\u4EA7\u8005"),
11115
+ consumer: stringType().describe("\u6D88\u8D39\u8005"),
11116
+ messageType: stringType().describe("\u6D88\u606F\u7C7B\u578B")
11117
+ });
11118
+ const DatabaseSplitDesignSchema = objectType({
11119
+ tableName: stringType().describe("\u8868\u540D"),
11120
+ splitStrategy: stringType().describe("\u62C6\u5206\u7B56\u7565"),
11121
+ splitKey: stringType().describe("\u62C6\u5206\u952E"),
11122
+ description: stringType().describe("\u63CF\u8FF0")
11123
+ });
11124
+ const DistributedTransactionDesignSchema = objectType({
11125
+ sceneName: stringType().describe("\u573A\u666F\u540D\u79F0"),
11126
+ transactionType: stringType().describe("\u4E8B\u52A1\u7C7B\u578B(TCC/SAGA/2PC\u7B49)"),
11127
+ participants: stringType().describe("\u53C2\u4E0E\u65B9"),
11128
+ description: stringType().describe("\u63CF\u8FF0")
11129
+ });
11130
+ const DistributedLockDesignSchema = objectType({
11131
+ lockName: stringType().describe("\u9501\u540D\u79F0"),
11132
+ lockType: stringType().describe("\u9501\u7C7B\u578B"),
11133
+ timeout: stringType().describe("\u8D85\u65F6\u65F6\u95F4"),
11134
+ description: stringType().describe("\u63CF\u8FF0")
11135
+ });
11136
+ const ScheduledTaskDesignSchema = objectType({
11137
+ taskName: stringType().describe("\u4EFB\u52A1\u540D\u79F0"),
11138
+ cronExpression: stringType().describe("Cron\u8868\u8FBE\u5F0F"),
11139
+ description: stringType().describe("\u63CF\u8FF0"),
11140
+ executorClass: stringType().describe("\u6267\u884C\u7C7B")
11141
+ });
11142
+ const DelayTaskDesignSchema = objectType({
11143
+ taskName: stringType().describe("\u4EFB\u52A1\u540D\u79F0"),
11144
+ delayTime: stringType().describe("\u5EF6\u65F6\u65F6\u95F4"),
11145
+ description: stringType().describe("\u63CF\u8FF0"),
11146
+ triggerCondition: stringType().describe("\u89E6\u53D1\u6761\u4EF6")
11147
+ });
11148
+ const CacheScenarioSchema = objectType({
11149
+ id: stringType().describe("\u5E8F\u53F7"),
11150
+ sceneName: stringType().describe("\u573A\u666F\u540D\u79F0"),
11151
+ cacheKey: stringType().describe("\u7F13\u5B58Key"),
11152
+ expireTime: stringType().describe("\u8FC7\u671F\u65F6\u95F4"),
11153
+ description: stringType().describe("\u63CF\u8FF0")
11154
+ });
11155
+ const CacheDesignSchema = objectType({
11156
+ constraint: stringType().describe("\u7EA6\u675F"),
11157
+ cacheScenarioList: arrayType(CacheScenarioSchema).default([]).describe("\u4F7F\u7528\u573A\u666F\u5217\u8868"),
11158
+ designDescription: stringType().describe("\u65B9\u6848\u8BBE\u8BA1\u63CF\u8FF0")
11159
+ });
11160
+ objectType({
11161
+ trafficEstimation: TrafficEstimationSchema.nullable().optional().describe("6.1 \u6D41\u91CF\u4F30\u7B97\u5206\u6790"),
11162
+ messageQueueList: arrayType(MessageQueueDesignSchema).default([]).describe("6.2 \u6D88\u606F\u961F\u5217"),
11163
+ databaseSplitList: arrayType(DatabaseSplitDesignSchema).default([]).describe("6.3 \u6570\u636E\u5E93\u62C6\u5206\u8BBE\u8BA1"),
11164
+ distributedTransactionList: arrayType(DistributedTransactionDesignSchema).default([]).describe("6.4 \u5206\u5E03\u5F0F\u4E8B\u52A1"),
11165
+ distributedLockList: arrayType(DistributedLockDesignSchema).default([]).describe("6.5 \u5206\u5E03\u5F0F\u9501"),
11166
+ scheduledTaskList: arrayType(ScheduledTaskDesignSchema).default([]).describe("6.6 \u5B9A\u65F6\u4EFB\u52A1"),
11167
+ delayTaskList: arrayType(DelayTaskDesignSchema).default([]).describe("6.7 \u5EF6\u65F6\u4EFB\u52A1"),
11168
+ cacheDesign: CacheDesignSchema.nullable().optional().describe("6.8 \u7F13\u5B58\u65B9\u6848")
11169
+ });
11170
+ objectType({
11171
+ id: stringType().describe("\u5E8F\u53F7"),
11172
+ sceneName: stringType().describe("\u5F02\u5E38\u573A\u666F"),
11173
+ exceptionType: stringType().describe("\u5F02\u5E38\u7C7B\u578B"),
11174
+ handleStrategy: stringType().describe("\u5904\u7406\u7B56\u7565"),
11175
+ description: stringType().describe("\u63CF\u8FF0")
11176
+ });
11177
+ const ExceptionCodeSchema = objectType({
11178
+ id: stringType().describe("\u5E8F\u53F7"),
11179
+ exceptionCode: stringType().describe("\u5F02\u5E38\u7F16\u7801"),
11180
+ exceptionDescription: stringType().describe("\u5F02\u5E38\u63CF\u8FF0")
11181
+ });
11182
+ const CodeValueSchema = objectType({
11183
+ id: stringType().describe("\u5E8F\u53F7"),
11184
+ propertyName: stringType().describe("\u5C5E\u6027"),
11185
+ codeValue: stringType().describe("\u7801\u503C")
11186
+ });
11187
+ objectType({
11188
+ exceptionCodeList: arrayType(ExceptionCodeSchema).default([]).describe("8.1 \u5F02\u5E38\u7801\u8868"),
11189
+ codeValueList: arrayType(CodeValueSchema).default([]).describe("8.2 \u7801\u503C")
11190
+ });
11191
+ function normalizeInputData(input) {
11192
+ const result = {
11193
+ ...input
11194
+ };
11195
+ if (Array.isArray(input.tableInfoList)) result.tableInfoList = input.tableInfoList.map((table, tableIndex)=>{
11196
+ const normalizedTable = {
11197
+ id: table.id || String(tableIndex + 1),
11198
+ tableName: table.tableName || '',
11199
+ entityName: table.entityName || table.tableName || '',
11200
+ tableDescription: table.tableDescription || table.tableComment || table.comment || '',
11201
+ tableDetailList: []
11202
+ };
11203
+ const fieldList = table.tableDetailList || table.fieldList || [];
11204
+ normalizedTable.tableDetailList = fieldList.map((field, fieldIndex)=>({
11205
+ id: field.id || String(fieldIndex + 1),
11206
+ fieldName: field.fieldName || '',
11207
+ fieldType: field.fieldType || '',
11208
+ fieldDescription: field.fieldDescription || field.fieldComment || field.comment || '',
11209
+ fieldLength: field.fieldLength || '-'
11210
+ }));
11211
+ return normalizedTable;
11212
+ });
11213
+ if (Array.isArray(input.serviceInterfaceList)) result.serviceInterfaceList = input.serviceInterfaceList.map((service, serviceIndex)=>{
11214
+ if (void 0 !== service.serviceEnglishName) return service;
11215
+ const normalizedService = {
11216
+ id: service.id || String(serviceIndex + 1),
11217
+ serviceType: service.serviceType || 'REST',
11218
+ serviceEnglishName: service.interfaceName || service.serviceEnglishName || '',
11219
+ serviceChineseName: service.serviceChineseName || service.interfaceComment || service.interfaceName || '',
11220
+ serviceDescription: service.serviceDescription || service.interfaceComment || '',
11221
+ interfaceDetailList: []
11222
+ };
11223
+ const methodList = service.interfaceDetailList || service.methodList || [];
11224
+ normalizedService.interfaceDetailList = methodList.map((method, methodIndex)=>({
11225
+ id: method.id || String(methodIndex + 1),
11226
+ functionDescription: method.functionDescription || method.methodComment || method.comment || '',
11227
+ serviceName: method.serviceName || service.interfaceName || service.serviceEnglishName || '',
11228
+ methodName: method.methodName || ''
11229
+ }));
11230
+ return normalizedService;
11231
+ });
11232
+ if (Array.isArray(input.designDetailList)) result.designDetailList = input.designDetailList.map((design)=>{
11233
+ if (void 0 !== design.serviceName && void 0 !== design.interfaceDesignDetailList) return design;
11234
+ return {
11235
+ serviceName: design.designName || design.serviceName || '',
11236
+ serviceDesc: design.designDesc || design.serviceDesc || '',
11237
+ interfaceDesignDetailList: design.interfaceDesignDetailList || []
11238
+ };
11239
+ });
11240
+ if (Array.isArray(input.businessExceptionList)) result.businessExceptionList = input.businessExceptionList.map((exception, index)=>{
11241
+ if (void 0 !== exception.sceneName) return exception;
11242
+ return {
11243
+ id: exception.id || String(index + 1),
11244
+ sceneName: exception.exceptionCode || exception.sceneName || '',
11245
+ exceptionType: exception.exceptionType || 'BusinessException',
11246
+ handleStrategy: exception.exceptionSolution || exception.handleStrategy || '',
11247
+ description: exception.exceptionDesc || exception.description || ''
11248
+ };
11249
+ });
11250
+ if ('string' == typeof input.techSolution) result.techSolution = {
11251
+ trafficEstimation: null,
11252
+ messageQueueList: [],
11253
+ databaseSplitList: [],
11254
+ distributedTransactionList: [],
11255
+ distributedLockList: [],
11256
+ scheduledTaskList: [],
11257
+ delayTaskList: [],
11258
+ cacheDesign: {
11259
+ constraint: input.techSolution,
11260
+ cacheScenarioList: [],
11261
+ designDescription: input.techSolution
11262
+ }
11263
+ };
11264
+ return result;
11265
+ }
11060
11266
  const techSpecGeneratorTool = {
11061
- name: 'tech-spec-generator',
11062
- description: `\u{6280}\u{672F}\u{89C4}\u{683C}\u{8BF4}\u{660E}\u{4E66}\u{751F}\u{6210}\u{5DE5}\u{5177} - \u{6839}\u{636E}\u{6536}\u{96C6}\u{7684}\u{4EE3}\u{7801}\u{4FE1}\u{606F}\u{751F}\u{6210}\u{6280}\u{672F}\u{89C4}\u{683C}\u{8BF4}\u{660E}\u{4E66}\u{3002}
11063
-
11064
- \u{4F7F}\u{7528}\u{6D41}\u{7A0B}\u{FF1A}
11065
- 1. MCP\u{5BA2}\u{6237}\u{7AEF}\u{5148}\u{8BFB}\u{53D6}\u{76EE}\u{6807}\u{4EE3}\u{7801}\u{76EE}\u{5F55}\u{FF0C}\u{5206}\u{6790}\u{5E76}\u{6536}\u{96C6}\u{4EE5}\u{4E0B}\u{4FE1}\u{606F}\u{FF1A}
11066
- - \u{6570}\u{636E}\u{8868}\u{8BBE}\u{8BA1}\u{FF08}\u{8868}\u{540D}\u{3001}\u{5B57}\u{6BB5}\u{4FE1}\u{606F}\u{7B49}\u{FF09}
11067
- - \u{670D}\u{52A1}\u{63A5}\u{53E3}\u{8BBE}\u{8BA1}\u{FF08}\u{670D}\u{52A1}\u{540D}\u{3001}\u{63A5}\u{53E3}\u{65B9}\u{6CD5}\u{3001}\u{53C2}\u{6570}\u{3001}\u{8FD4}\u{56DE}\u{503C}\u{7B49}\u{FF09}
11068
- - \u{529F}\u{80FD}\u{8BBE}\u{8BA1}\u{8BE6}\u{60C5}\u{FF08}\u{529F}\u{80FD}\u{540D}\u{79F0}\u{3001}\u{63CF}\u{8FF0}\u{3001}\u{5B9E}\u{73B0}\u{903B}\u{8F91}\u{7B49}\u{FF09}
11069
- 2. \u{5C06}\u{6536}\u{96C6}\u{7684}\u{6570}\u{636E}\u{901A}\u{8FC7} techSpecData \u{53C2}\u{6570}\u{4F20}\u{9012}\u{7ED9}\u{8BE5}\u{5DE5}\u{5177}
11070
- 3. \u{5DE5}\u{5177}\u{4F7F}\u{7528} .aico/create-tect-docs/\u{6280}\u{672F}\u{89C4}\u{683C}\u{8BF4}\u{660E}\u{4E66}\u{6A21}\u{677F}.docx \u{6A21}\u{677F}\u{6E32}\u{67D3}\u{751F}\u{6210}\u{6587}\u{6863}
11071
- 4. \u{6587}\u{6863}\u{8F93}\u{51FA}\u{5230} projectPath/.aico/tect/ \u{76EE}\u{5F55}`,
11267
+ name: "generate_tech_spec",
11268
+ description: `\u{6839}\u{636E}\u{4EE3}\u{7801}\u{5206}\u{6790}\u{7ED3}\u{679C}\u{751F}\u{6210}\u{6280}\u{672F}\u{89C4}\u{683C}\u{8BF4}\u{660E}\u{4E66}(Word\u{6587}\u{6863})\u{3002}
11269
+
11270
+ \u{89E6}\u{53D1}\u{8BCD}: \u{751F}\u{6210}\u{6280}\u{672F}\u{89C4}\u{683C}\u{3001}\u{6280}\u{672F}\u{89C4}\u{683C}\u{8BF4}\u{660E}\u{4E66}\u{3001}\u{751F}\u{6210}\u{6280}\u{672F}\u{6587}\u{6863}\u{3001}\u{6280}\u{672F}spec\u{3001}\u{4EE3}\u{7801}\u{6587}\u{6863}\u{5316}\u{3001}\u{751F}\u{6210}\u{89C4}\u{683C}\u{4E66}\u{3001}\u{6280}\u{672F}\u{8BF4}\u{660E}\u{4E66}
11271
+
11272
+ \u{9002}\u{7528}\u{573A}\u{666F}:
11273
+ - \u{9700}\u{8981}\u{4E3A}\u{9879}\u{76EE}/\u{6A21}\u{5757}\u{751F}\u{6210}\u{6B63}\u{5F0F}\u{7684}\u{6280}\u{672F}\u{89C4}\u{683C}\u{8BF4}\u{660E}\u{4E66}
11274
+ - \u{9700}\u{8981}\u{5C06}\u{4EE3}\u{7801}\u{7ED3}\u{6784}\u{6587}\u{6863}\u{5316}\u{4E3A}Word\u{683C}\u{5F0F}
11275
+ - \u{9879}\u{76EE}\u{4EA4}\u{4ED8}\u{9700}\u{8981}\u{6280}\u{672F}\u{6587}\u{6863}
11276
+
11277
+ \u{8F93}\u{5165}\u{8981}\u{6C42}: \u{9700}\u{8981}\u{5148}\u{5206}\u{6790}\u{4EE3}\u{7801}\u{76EE}\u{5F55}\u{FF0C}\u{6536}\u{96C6}\u{6570}\u{636E}\u{8868}\u{8BBE}\u{8BA1}\u{3001}\u{670D}\u{52A1}\u{63A5}\u{53E3}\u{3001}\u{529F}\u{80FD}\u{8BBE}\u{8BA1}\u{7B49}\u{4FE1}\u{606F}
11278
+ \u{8F93}\u{51FA}: Word\u{683C}\u{5F0F}\u{7684}\u{6280}\u{672F}\u{89C4}\u{683C}\u{8BF4}\u{660E}\u{4E66}(.docx)\u{FF0C}\u{4FDD}\u{5B58}\u{5230} .aico/tech/ \u{76EE}\u{5F55}`,
11072
11279
  inputSchema: {
11073
- projectPath: stringType().min(1).describe("\u5F53\u524D\u9879\u76EE\u8DEF\u5F84\uFF0C\u751F\u6210\u7684\u6280\u672F\u89C4\u683C\u8BF4\u660E\u4E66\u4FDD\u5B58\u5230\u8BE5\u8DEF\u5F84\u4E0B\u7684.aico/tect\u76EE\u5F55"),
11074
- techSpecData: objectType({
11075
- projectName: stringType().describe("\u9879\u76EE\u540D\u79F0"),
11076
- moduleName: stringType().describe("\u6A21\u5757\u540D\u79F0"),
11077
- year: stringType().optional().describe("\u5E74\u4EFD\uFF0C\u9ED8\u8BA4\u5F53\u524D\u5E74\u4EFD"),
11078
- month: stringType().optional().describe("\u6708\u4EFD\uFF0C\u9ED8\u8BA4\u5F53\u524D\u6708\u4EFD"),
11079
- referDoc: stringType().optional().describe("\u53C2\u8003\u6587\u6863"),
11080
- serviceInterfaceList: arrayType(ServiceInterfaceSchema).default([]).describe("\u670D\u52A1\u63A5\u53E3\u6E05\u5355"),
11081
- designDetailList: arrayType(DesignDetailSchema).default([]).describe("\u670D\u52A1\u63A5\u53E3\u8BBE\u8BA1\u8BE6\u60C5"),
11082
- tableInfoList: arrayType(TableInfoSchema).default([]).describe("\u6570\u636E\u5E93\u8868\u4FE1\u606F\u5217\u8868")
11083
- }).describe("\u6280\u672F\u89C4\u683C\u6570\u636E\uFF0C\u7531MCP\u5BA2\u6237\u7AEF\u901A\u8FC7\u5206\u6790\u4EE3\u7801\u76EE\u5F55\u6536\u96C6")
11280
+ projectPath: stringType().min(1).describe("\u5F53\u524D\u9879\u76EE\u8DEF\u5F84\uFF0C\u751F\u6210\u7684\u6280\u672F\u89C4\u683C\u8BF4\u660E\u4E66\u4FDD\u5B58\u5230\u8BE5\u8DEF\u5F84\u4E0B\u7684.aico/tech\u76EE\u5F55"),
11281
+ techSpecData: unionType([
11282
+ stringType(),
11283
+ objectType({
11284
+ projectName: stringType().describe("\u9879\u76EE\u540D\u79F0"),
11285
+ moduleName: stringType().describe("\u6A21\u5757\u540D\u79F0"),
11286
+ year: stringType().optional().describe("\u5E74\u4EFD\uFF0C\u9ED8\u8BA4\u5F53\u524D\u5E74\u4EFD"),
11287
+ month: stringType().optional().describe("\u6708\u4EFD\uFF0C\u9ED8\u8BA4\u5F53\u524D\u6708\u4EFD"),
11288
+ referDoc: stringType().optional().describe("\u53C2\u8003\u6587\u6863"),
11289
+ serviceInterfaceList: arrayType(anyType()).default([]).describe("\u670D\u52A1\u63A5\u53E3\u6E05\u5355"),
11290
+ designDetailList: arrayType(anyType()).default([]).describe("\u670D\u52A1\u63A5\u53E3\u8BBE\u8BA1\u8BE6\u60C5"),
11291
+ tableInfoList: arrayType(anyType()).default([]).describe("\u6570\u636E\u5E93\u8868\u4FE1\u606F\u5217\u8868"),
11292
+ techSolution: anyType().optional().describe("\u7B2C6\u7AE0-\u6280\u672F\u65B9\u6848"),
11293
+ businessExceptionList: arrayType(anyType()).default([]).describe("\u7B2C7\u7AE0-\u4E1A\u52A1\u5F02\u5E38\u5904\u7406\u5217\u8868"),
11294
+ appendix: anyType().optional().describe("\u7B2C8\u7AE0-\u9644\u5F55")
11295
+ }).passthrough()
11296
+ ]).describe("\u6280\u672F\u89C4\u683C\u6570\u636E(JSON\u5BF9\u8C61\u6216JSON\u5B57\u7B26\u4E32)\uFF0C\u5305\u542B: projectName(\u9879\u76EE\u540D), moduleName(\u6A21\u5757\u540D), tableInfoList(\u6570\u636E\u8868), serviceInterfaceList(\u670D\u52A1\u63A5\u53E3), designDetailList(\u8BBE\u8BA1\u8BE6\u60C5)")
11084
11297
  },
11085
11298
  handler: async (args)=>{
11086
11299
  try {
11087
- const { projectPath, techSpecData } = args;
11300
+ const { projectPath } = args;
11301
+ let { techSpecData } = args;
11088
11302
  if (!projectPath) return {
11089
11303
  content: [
11090
11304
  {
11091
- type: 'text',
11305
+ type: "text",
11092
11306
  text: JSON.stringify({
11093
11307
  success: false,
11094
11308
  message: "\u7F3A\u5C11\u5FC5\u586B\u53C2\u6570\uFF1AprojectPath",
@@ -11101,7 +11315,7 @@ ${requirement_description}
11101
11315
  if (!techSpecData) return {
11102
11316
  content: [
11103
11317
  {
11104
- type: 'text',
11318
+ type: "text",
11105
11319
  text: JSON.stringify({
11106
11320
  success: false,
11107
11321
  message: "\u7F3A\u5C11\u5FC5\u586B\u53C2\u6570\uFF1AtechSpecData",
@@ -11111,31 +11325,62 @@ ${requirement_description}
11111
11325
  ],
11112
11326
  isError: true
11113
11327
  };
11328
+ logger.info("\u63A5\u6536\u5230\u7684 techSpecData \u7C7B\u578B", {
11329
+ type: typeof techSpecData
11330
+ });
11331
+ logger.info("\u63A5\u6536\u5230\u7684 techSpecData \u5185\u5BB9", {
11332
+ data: JSON.stringify(techSpecData).substring(0, 500)
11333
+ });
11334
+ if ("string" == typeof techSpecData) try {
11335
+ techSpecData = JSON.parse(techSpecData);
11336
+ logger.info("techSpecData \u4ECE\u5B57\u7B26\u4E32\u89E3\u6790\u4E3A\u5BF9\u8C61");
11337
+ } catch (parseError) {
11338
+ return {
11339
+ content: [
11340
+ {
11341
+ type: "text",
11342
+ text: JSON.stringify({
11343
+ success: false,
11344
+ message: "techSpecData \u53C2\u6570\u683C\u5F0F\u9519\u8BEF\uFF0C\u5E94\u4E3A JSON \u5BF9\u8C61",
11345
+ data: null
11346
+ })
11347
+ }
11348
+ ],
11349
+ isError: true
11350
+ };
11351
+ }
11114
11352
  const now = new Date();
11353
+ const normalizedData = normalizeInputData(techSpecData);
11115
11354
  const data = {
11116
- projectName: techSpecData.projectName || "\u672A\u547D\u540D\u9879\u76EE",
11117
- moduleName: techSpecData.moduleName || "\u672A\u547D\u540D\u6A21\u5757",
11118
- year: techSpecData.year || String(now.getFullYear()),
11119
- month: techSpecData.month || String(now.getMonth() + 1).padStart(2, '0'),
11120
- referDoc: techSpecData.referDoc || "\u65E0",
11121
- serviceInterfaceList: techSpecData.serviceInterfaceList || [],
11122
- designDetailList: techSpecData.designDetailList || [],
11123
- tableInfoList: techSpecData.tableInfoList || []
11355
+ projectName: normalizedData.projectName || "\u672A\u547D\u540D\u9879\u76EE",
11356
+ moduleName: normalizedData.moduleName || "\u672A\u547D\u540D\u6A21\u5757",
11357
+ year: normalizedData.year || String(now.getFullYear()),
11358
+ month: normalizedData.month || String(now.getMonth() + 1).padStart(2, "0"),
11359
+ referDoc: normalizedData.referDoc || "\u65E0",
11360
+ serviceInterfaceList: normalizedData.serviceInterfaceList || [],
11361
+ designDetailList: normalizedData.designDetailList || [],
11362
+ tableInfoList: normalizedData.tableInfoList || [],
11363
+ techSolution: normalizedData.techSolution || void 0,
11364
+ businessExceptionList: normalizedData.businessExceptionList || [],
11365
+ appendix: normalizedData.appendix || void 0
11124
11366
  };
11125
- const outputDir = external_path_namespaceObject.join(projectPath, '.aico', 'tect');
11367
+ const outputDir = external_path_namespaceObject.join(projectPath, ".aico", "tech");
11126
11368
  logger.info("\u5F00\u59CB\u751F\u6210\u6280\u672F\u89C4\u683C\u8BF4\u660E\u4E66", {
11127
11369
  projectPath,
11128
11370
  outputDir,
11129
11371
  projectName: data.projectName,
11130
11372
  moduleName: data.moduleName,
11131
11373
  tableCount: data.tableInfoList.length,
11132
- serviceCount: data.serviceInterfaceList.length
11374
+ serviceCount: data.serviceInterfaceList.length,
11375
+ hasTechSolution: !!data.techSolution,
11376
+ businessExceptionCount: data.businessExceptionList?.length || 0,
11377
+ hasAppendix: !!data.appendix
11133
11378
  });
11134
11379
  const result = await renderTechSpecDoc(data, outputDir);
11135
11380
  if (result.success) return {
11136
11381
  content: [
11137
11382
  {
11138
- type: 'text',
11383
+ type: "text",
11139
11384
  text: JSON.stringify({
11140
11385
  success: true,
11141
11386
  message: "\u6280\u672F\u89C4\u683C\u8BF4\u660E\u4E66\u751F\u6210\u6210\u529F",
@@ -11146,7 +11391,11 @@ ${requirement_description}
11146
11391
  statistics: {
11147
11392
  tableCount: data.tableInfoList.length,
11148
11393
  serviceCount: data.serviceInterfaceList.length,
11149
- designCount: data.designDetailList.length
11394
+ designCount: data.designDetailList.length,
11395
+ hasTechSolution: !!data.techSolution,
11396
+ businessExceptionCount: data.businessExceptionList?.length || 0,
11397
+ exceptionCodeCount: data.appendix?.exceptionCodeList?.length || 0,
11398
+ codeValueCount: data.appendix?.codeValueList?.length || 0
11150
11399
  }
11151
11400
  }
11152
11401
  })
@@ -11156,7 +11405,7 @@ ${requirement_description}
11156
11405
  return {
11157
11406
  content: [
11158
11407
  {
11159
- type: 'text',
11408
+ type: "text",
11160
11409
  text: JSON.stringify({
11161
11410
  success: false,
11162
11411
  message: result.error || "\u6587\u6863\u751F\u6210\u5931\u8D25",
@@ -11173,7 +11422,7 @@ ${requirement_description}
11173
11422
  return {
11174
11423
  content: [
11175
11424
  {
11176
- type: 'text',
11425
+ type: "text",
11177
11426
  text: JSON.stringify({
11178
11427
  success: false,
11179
11428
  message: error.message || "\u751F\u6210\u8FC7\u7A0B\u4E2D\u53D1\u751F\u9519\u8BEF",
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/requirement-analyzer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA0KxB;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;oBA+BZ,GAAG;;;;;;;;;;;;;CAwU1B,CAAC;AAGF,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACpE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/requirement-analyzer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA0KxB;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;oBAyCZ,GAAG;;;;;;;;;;;;;CAwU1B,CAAC;AAGF,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACpE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"doc-renderer.d.ts","sourceRoot":"","sources":["../../../src/services/tech-spec-generator/doc-renderer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAmB5D;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,YAAY,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,mBAAmB,CAAC,CA8E9B"}
1
+ {"version":3,"file":"doc-renderer.d.ts","sourceRoot":"","sources":["../../../src/services/tech-spec-generator/doc-renderer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAiD,MAAM,SAAS,CAAC;AA0E3G;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,YAAY,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,mBAAmB,CAAC,CAiF9B"}
@@ -7,7 +7,7 @@
7
7
  * 2. 将收集的数据传递给该工具
8
8
  * 3. 工具使用模板渲染生成技术规格说明书
9
9
  */
10
- import { z } from 'zod';
10
+ import { z } from "zod";
11
11
  /**
12
12
  * 技术规格说明书生成工具
13
13
  */
@@ -16,351 +16,43 @@ export declare const techSpecGeneratorTool: {
16
16
  description: string;
17
17
  inputSchema: {
18
18
  projectPath: z.ZodString;
19
- techSpecData: z.ZodObject<{
19
+ techSpecData: z.ZodUnion<[z.ZodString, z.ZodObject<{
20
20
  projectName: z.ZodString;
21
21
  moduleName: z.ZodString;
22
22
  year: z.ZodOptional<z.ZodString>;
23
23
  month: z.ZodOptional<z.ZodString>;
24
24
  referDoc: z.ZodOptional<z.ZodString>;
25
- serviceInterfaceList: z.ZodDefault<z.ZodArray<z.ZodObject<{
26
- id: z.ZodString;
27
- serviceType: z.ZodString;
28
- serviceEnglishName: z.ZodString;
29
- serviceChineseName: z.ZodString;
30
- serviceDescription: z.ZodString;
31
- interfaceDetailList: z.ZodDefault<z.ZodArray<z.ZodObject<{
32
- id: z.ZodString;
33
- functionDescription: z.ZodString;
34
- serviceName: z.ZodString;
35
- methodName: z.ZodString;
36
- }, "strip", z.ZodTypeAny, {
37
- id: string;
38
- methodName: string;
39
- serviceName: string;
40
- functionDescription: string;
41
- }, {
42
- id: string;
43
- methodName: string;
44
- serviceName: string;
45
- functionDescription: string;
46
- }>, "many">>;
47
- }, "strip", z.ZodTypeAny, {
48
- id: string;
49
- serviceType: string;
50
- serviceEnglishName: string;
51
- serviceChineseName: string;
52
- serviceDescription: string;
53
- interfaceDetailList: {
54
- id: string;
55
- methodName: string;
56
- serviceName: string;
57
- functionDescription: string;
58
- }[];
59
- }, {
60
- id: string;
61
- serviceType: string;
62
- serviceEnglishName: string;
63
- serviceChineseName: string;
64
- serviceDescription: string;
65
- interfaceDetailList?: {
66
- id: string;
67
- methodName: string;
68
- serviceName: string;
69
- functionDescription: string;
70
- }[] | undefined;
71
- }>, "many">>;
72
- designDetailList: z.ZodDefault<z.ZodArray<z.ZodObject<{
73
- serviceName: z.ZodString;
74
- serviceDesc: z.ZodString;
75
- interfaceDesignDetailList: z.ZodDefault<z.ZodArray<z.ZodObject<{
76
- functionName: z.ZodString;
77
- interfaceDesc: z.ZodString;
78
- className: z.ZodString;
79
- methodName: z.ZodString;
80
- parameterList: z.ZodDefault<z.ZodArray<z.ZodObject<{
81
- id: z.ZodString;
82
- propertyType: z.ZodString;
83
- propertyName: z.ZodString;
84
- required: z.ZodString;
85
- propertyDesc: z.ZodString;
86
- }, "strip", z.ZodTypeAny, {
87
- id: string;
88
- propertyType: string;
89
- propertyName: string;
90
- required: string;
91
- propertyDesc: string;
92
- }, {
93
- id: string;
94
- propertyType: string;
95
- propertyName: string;
96
- required: string;
97
- propertyDesc: string;
98
- }>, "many">>;
99
- returnResultList: z.ZodDefault<z.ZodArray<z.ZodObject<{
100
- id: z.ZodString;
101
- propertyType: z.ZodString;
102
- propertyName: z.ZodString;
103
- propertyDesc: z.ZodString;
104
- }, "strip", z.ZodTypeAny, {
105
- id: string;
106
- propertyType: string;
107
- propertyName: string;
108
- propertyDesc: string;
109
- }, {
110
- id: string;
111
- propertyType: string;
112
- propertyName: string;
113
- propertyDesc: string;
114
- }>, "many">>;
115
- implementLogic: z.ZodString;
116
- }, "strip", z.ZodTypeAny, {
117
- functionName: string;
118
- interfaceDesc: string;
119
- className: string;
120
- methodName: string;
121
- parameterList: {
122
- id: string;
123
- propertyType: string;
124
- propertyName: string;
125
- required: string;
126
- propertyDesc: string;
127
- }[];
128
- returnResultList: {
129
- id: string;
130
- propertyType: string;
131
- propertyName: string;
132
- propertyDesc: string;
133
- }[];
134
- implementLogic: string;
135
- }, {
136
- functionName: string;
137
- interfaceDesc: string;
138
- className: string;
139
- methodName: string;
140
- implementLogic: string;
141
- parameterList?: {
142
- id: string;
143
- propertyType: string;
144
- propertyName: string;
145
- required: string;
146
- propertyDesc: string;
147
- }[] | undefined;
148
- returnResultList?: {
149
- id: string;
150
- propertyType: string;
151
- propertyName: string;
152
- propertyDesc: string;
153
- }[] | undefined;
154
- }>, "many">>;
155
- }, "strip", z.ZodTypeAny, {
156
- serviceName: string;
157
- serviceDesc: string;
158
- interfaceDesignDetailList: {
159
- functionName: string;
160
- interfaceDesc: string;
161
- className: string;
162
- methodName: string;
163
- parameterList: {
164
- id: string;
165
- propertyType: string;
166
- propertyName: string;
167
- required: string;
168
- propertyDesc: string;
169
- }[];
170
- returnResultList: {
171
- id: string;
172
- propertyType: string;
173
- propertyName: string;
174
- propertyDesc: string;
175
- }[];
176
- implementLogic: string;
177
- }[];
178
- }, {
179
- serviceName: string;
180
- serviceDesc: string;
181
- interfaceDesignDetailList?: {
182
- functionName: string;
183
- interfaceDesc: string;
184
- className: string;
185
- methodName: string;
186
- implementLogic: string;
187
- parameterList?: {
188
- id: string;
189
- propertyType: string;
190
- propertyName: string;
191
- required: string;
192
- propertyDesc: string;
193
- }[] | undefined;
194
- returnResultList?: {
195
- id: string;
196
- propertyType: string;
197
- propertyName: string;
198
- propertyDesc: string;
199
- }[] | undefined;
200
- }[] | undefined;
201
- }>, "many">>;
202
- tableInfoList: z.ZodDefault<z.ZodArray<z.ZodObject<{
203
- id: z.ZodString;
204
- tableName: z.ZodString;
205
- entityName: z.ZodString;
206
- tableDescription: z.ZodString;
207
- tableDetailList: z.ZodDefault<z.ZodArray<z.ZodObject<{
208
- id: z.ZodString;
209
- fieldName: z.ZodString;
210
- fieldType: z.ZodString;
211
- fieldDescription: z.ZodString;
212
- fieldLength: z.ZodString;
213
- }, "strip", z.ZodTypeAny, {
214
- id: string;
215
- fieldName: string;
216
- fieldType: string;
217
- fieldDescription: string;
218
- fieldLength: string;
219
- }, {
220
- id: string;
221
- fieldName: string;
222
- fieldType: string;
223
- fieldDescription: string;
224
- fieldLength: string;
225
- }>, "many">>;
226
- }, "strip", z.ZodTypeAny, {
227
- id: string;
228
- tableName: string;
229
- entityName: string;
230
- tableDescription: string;
231
- tableDetailList: {
232
- id: string;
233
- fieldName: string;
234
- fieldType: string;
235
- fieldDescription: string;
236
- fieldLength: string;
237
- }[];
238
- }, {
239
- id: string;
240
- tableName: string;
241
- entityName: string;
242
- tableDescription: string;
243
- tableDetailList?: {
244
- id: string;
245
- fieldName: string;
246
- fieldType: string;
247
- fieldDescription: string;
248
- fieldLength: string;
249
- }[] | undefined;
250
- }>, "many">>;
251
- }, "strip", z.ZodTypeAny, {
252
- projectName: string;
253
- moduleName: string;
254
- serviceInterfaceList: {
255
- id: string;
256
- serviceType: string;
257
- serviceEnglishName: string;
258
- serviceChineseName: string;
259
- serviceDescription: string;
260
- interfaceDetailList: {
261
- id: string;
262
- methodName: string;
263
- serviceName: string;
264
- functionDescription: string;
265
- }[];
266
- }[];
267
- designDetailList: {
268
- serviceName: string;
269
- serviceDesc: string;
270
- interfaceDesignDetailList: {
271
- functionName: string;
272
- interfaceDesc: string;
273
- className: string;
274
- methodName: string;
275
- parameterList: {
276
- id: string;
277
- propertyType: string;
278
- propertyName: string;
279
- required: string;
280
- propertyDesc: string;
281
- }[];
282
- returnResultList: {
283
- id: string;
284
- propertyType: string;
285
- propertyName: string;
286
- propertyDesc: string;
287
- }[];
288
- implementLogic: string;
289
- }[];
290
- }[];
291
- tableInfoList: {
292
- id: string;
293
- tableName: string;
294
- entityName: string;
295
- tableDescription: string;
296
- tableDetailList: {
297
- id: string;
298
- fieldName: string;
299
- fieldType: string;
300
- fieldDescription: string;
301
- fieldLength: string;
302
- }[];
303
- }[];
304
- year?: string | undefined;
305
- month?: string | undefined;
306
- referDoc?: string | undefined;
307
- }, {
308
- projectName: string;
309
- moduleName: string;
310
- year?: string | undefined;
311
- month?: string | undefined;
312
- referDoc?: string | undefined;
313
- serviceInterfaceList?: {
314
- id: string;
315
- serviceType: string;
316
- serviceEnglishName: string;
317
- serviceChineseName: string;
318
- serviceDescription: string;
319
- interfaceDetailList?: {
320
- id: string;
321
- methodName: string;
322
- serviceName: string;
323
- functionDescription: string;
324
- }[] | undefined;
325
- }[] | undefined;
326
- designDetailList?: {
327
- serviceName: string;
328
- serviceDesc: string;
329
- interfaceDesignDetailList?: {
330
- functionName: string;
331
- interfaceDesc: string;
332
- className: string;
333
- methodName: string;
334
- implementLogic: string;
335
- parameterList?: {
336
- id: string;
337
- propertyType: string;
338
- propertyName: string;
339
- required: string;
340
- propertyDesc: string;
341
- }[] | undefined;
342
- returnResultList?: {
343
- id: string;
344
- propertyType: string;
345
- propertyName: string;
346
- propertyDesc: string;
347
- }[] | undefined;
348
- }[] | undefined;
349
- }[] | undefined;
350
- tableInfoList?: {
351
- id: string;
352
- tableName: string;
353
- entityName: string;
354
- tableDescription: string;
355
- tableDetailList?: {
356
- id: string;
357
- fieldName: string;
358
- fieldType: string;
359
- fieldDescription: string;
360
- fieldLength: string;
361
- }[] | undefined;
362
- }[] | undefined;
363
- }>;
25
+ serviceInterfaceList: z.ZodDefault<z.ZodArray<z.ZodAny, "many">>;
26
+ designDetailList: z.ZodDefault<z.ZodArray<z.ZodAny, "many">>;
27
+ tableInfoList: z.ZodDefault<z.ZodArray<z.ZodAny, "many">>;
28
+ techSolution: z.ZodOptional<z.ZodAny>;
29
+ businessExceptionList: z.ZodDefault<z.ZodArray<z.ZodAny, "many">>;
30
+ appendix: z.ZodOptional<z.ZodAny>;
31
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
32
+ projectName: z.ZodString;
33
+ moduleName: z.ZodString;
34
+ year: z.ZodOptional<z.ZodString>;
35
+ month: z.ZodOptional<z.ZodString>;
36
+ referDoc: z.ZodOptional<z.ZodString>;
37
+ serviceInterfaceList: z.ZodDefault<z.ZodArray<z.ZodAny, "many">>;
38
+ designDetailList: z.ZodDefault<z.ZodArray<z.ZodAny, "many">>;
39
+ tableInfoList: z.ZodDefault<z.ZodArray<z.ZodAny, "many">>;
40
+ techSolution: z.ZodOptional<z.ZodAny>;
41
+ businessExceptionList: z.ZodDefault<z.ZodArray<z.ZodAny, "many">>;
42
+ appendix: z.ZodOptional<z.ZodAny>;
43
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
44
+ projectName: z.ZodString;
45
+ moduleName: z.ZodString;
46
+ year: z.ZodOptional<z.ZodString>;
47
+ month: z.ZodOptional<z.ZodString>;
48
+ referDoc: z.ZodOptional<z.ZodString>;
49
+ serviceInterfaceList: z.ZodDefault<z.ZodArray<z.ZodAny, "many">>;
50
+ designDetailList: z.ZodDefault<z.ZodArray<z.ZodAny, "many">>;
51
+ tableInfoList: z.ZodDefault<z.ZodArray<z.ZodAny, "many">>;
52
+ techSolution: z.ZodOptional<z.ZodAny>;
53
+ businessExceptionList: z.ZodDefault<z.ZodArray<z.ZodAny, "many">>;
54
+ appendix: z.ZodOptional<z.ZodAny>;
55
+ }, z.ZodTypeAny, "passthrough">>]>;
364
56
  };
365
57
  handler: (args: any) => Promise<{
366
58
  content: {
@@ -376,5 +68,5 @@ export declare const techSpecGeneratorTool: {
376
68
  isError?: undefined;
377
69
  }>;
378
70
  };
379
- export * from './types';
71
+ export * from "./types";
380
72
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/tech-spec-generator/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA6FxB;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA4BV,GAAG;;;;;;;;;;;;;CA6G1B,CAAC;AAGF,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/tech-spec-generator/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgZxB;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA0CV,GAAG;;;;;;;;;;;;;CAsK1B,CAAC;AAGF,cAAc,SAAS,CAAC"}
@@ -81,6 +81,134 @@ export interface ServiceInterface {
81
81
  serviceDescription: string;
82
82
  interfaceDetailList: InterfaceDetail[];
83
83
  }
84
+ /**
85
+ * 流量估算分析
86
+ */
87
+ export interface TrafficEstimation {
88
+ description: string;
89
+ qps: string;
90
+ peakQps: string;
91
+ dailyVolume: string;
92
+ }
93
+ /**
94
+ * 消息队列设计
95
+ */
96
+ export interface MessageQueueDesign {
97
+ topicName: string;
98
+ description: string;
99
+ producer: string;
100
+ consumer: string;
101
+ messageType: string;
102
+ }
103
+ /**
104
+ * 数据库拆分设计
105
+ */
106
+ export interface DatabaseSplitDesign {
107
+ tableName: string;
108
+ splitStrategy: string;
109
+ splitKey: string;
110
+ description: string;
111
+ }
112
+ /**
113
+ * 分布式事务设计
114
+ */
115
+ export interface DistributedTransactionDesign {
116
+ sceneName: string;
117
+ transactionType: string;
118
+ participants: string;
119
+ description: string;
120
+ }
121
+ /**
122
+ * 分布式锁设计
123
+ */
124
+ export interface DistributedLockDesign {
125
+ lockName: string;
126
+ lockType: string;
127
+ timeout: string;
128
+ description: string;
129
+ }
130
+ /**
131
+ * 定时任务设计
132
+ */
133
+ export interface ScheduledTaskDesign {
134
+ taskName: string;
135
+ cronExpression: string;
136
+ description: string;
137
+ executorClass: string;
138
+ }
139
+ /**
140
+ * 延时任务设计
141
+ */
142
+ export interface DelayTaskDesign {
143
+ taskName: string;
144
+ delayTime: string;
145
+ description: string;
146
+ triggerCondition: string;
147
+ }
148
+ /**
149
+ * 缓存使用场景
150
+ */
151
+ export interface CacheScenario {
152
+ id: string;
153
+ sceneName: string;
154
+ cacheKey: string;
155
+ expireTime: string;
156
+ description: string;
157
+ }
158
+ /**
159
+ * 缓存方案设计
160
+ */
161
+ export interface CacheDesign {
162
+ constraint: string;
163
+ cacheScenarioList: CacheScenario[];
164
+ designDescription: string;
165
+ }
166
+ /**
167
+ * 技术方案 - 第6章
168
+ */
169
+ export interface TechSolution {
170
+ trafficEstimation: TrafficEstimation | null;
171
+ messageQueueList: MessageQueueDesign[];
172
+ databaseSplitList: DatabaseSplitDesign[];
173
+ distributedTransactionList: DistributedTransactionDesign[];
174
+ distributedLockList: DistributedLockDesign[];
175
+ scheduledTaskList: ScheduledTaskDesign[];
176
+ delayTaskList: DelayTaskDesign[];
177
+ cacheDesign: CacheDesign | null;
178
+ }
179
+ /**
180
+ * 业务异常处理项
181
+ */
182
+ export interface BusinessExceptionItem {
183
+ id: string;
184
+ sceneName: string;
185
+ exceptionType: string;
186
+ handleStrategy: string;
187
+ description: string;
188
+ }
189
+ /**
190
+ * 异常码信息 - 用于 exceptionCodeList 循环
191
+ */
192
+ export interface ExceptionCode {
193
+ id: string;
194
+ exceptionCode: string;
195
+ exceptionDescription: string;
196
+ }
197
+ /**
198
+ * 码值信息 - 用于 codeValueList 循环
199
+ */
200
+ export interface CodeValue {
201
+ id: string;
202
+ propertyName: string;
203
+ codeValue: string;
204
+ }
205
+ /**
206
+ * 附录 - 第8章
207
+ */
208
+ export interface Appendix {
209
+ exceptionCodeList: ExceptionCode[];
210
+ codeValueList: CodeValue[];
211
+ }
84
212
  /**
85
213
  * 技术规格说明书完整数据结构
86
214
  * 模板占位符对应关系:
@@ -92,6 +220,9 @@ export interface ServiceInterface {
92
220
  * - {#serviceInterfaceList}...{/serviceInterfaceList} - 服务接口列表循环
93
221
  * - {#designDetailList}...{/designDetailList} - 设计详情列表循环
94
222
  * - {#tableInfoList}...{/tableInfoList} - 数据表信息列表循环
223
+ * - {#techSolution}...{/techSolution} - 技术方案相关
224
+ * - {#businessExceptionList}...{/businessExceptionList} - 业务异常处理列表
225
+ * - {#appendix}...{/appendix} - 附录相关
95
226
  */
96
227
  export interface TechSpecData {
97
228
  projectName: string;
@@ -102,6 +233,9 @@ export interface TechSpecData {
102
233
  serviceInterfaceList: ServiceInterface[];
103
234
  designDetailList: DesignDetail[];
104
235
  tableInfoList: TableInfo[];
236
+ techSolution?: TechSolution;
237
+ businessExceptionList?: BusinessExceptionItem[];
238
+ appendix?: Appendix;
105
239
  }
106
240
  /**
107
241
  * 代码分析结果
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/tech-spec-generator/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,gBAAgB,EAAE,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,aAAa,EAAE,CAAC;IAC/B,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;IACrC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,yBAAyB,EAAE,qBAAqB,EAAE,CAAC;CACpD;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,eAAe,EAAE,CAAC;CACxC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,YAAY;IAE3B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IAGjB,oBAAoB,EAAE,gBAAgB,EAAE,CAAC;IAGzC,gBAAgB,EAAE,YAAY,EAAE,CAAC;IAGjC,aAAa,EAAE,SAAS,EAAE,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/tech-spec-generator/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,gBAAgB,EAAE,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,aAAa,EAAE,CAAC;IAC/B,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;IACrC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,yBAAyB,EAAE,qBAAqB,EAAE,CAAC;CACpD;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,eAAe,EAAE,CAAC;CACxC;AAID;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,aAAa,EAAE,CAAC;IACnC,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,iBAAiB,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC5C,gBAAgB,EAAE,kBAAkB,EAAE,CAAC;IACvC,iBAAiB,EAAE,mBAAmB,EAAE,CAAC;IACzC,0BAA0B,EAAE,4BAA4B,EAAE,CAAC;IAC3D,mBAAmB,EAAE,qBAAqB,EAAE,CAAC;IAC7C,iBAAiB,EAAE,mBAAmB,EAAE,CAAC;IACzC,aAAa,EAAE,eAAe,EAAE,CAAC;IACjC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;CACjC;AAID;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AAID;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,iBAAiB,EAAE,aAAa,EAAE,CAAC;IACnC,aAAa,EAAE,SAAS,EAAE,CAAC;CAC5B;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,YAAY;IAE3B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IAGjB,oBAAoB,EAAE,gBAAgB,EAAE,CAAC;IAGzC,gBAAgB,EAAE,YAAY,EAAE,CAAC;IAGjC,aAAa,EAAE,SAAS,EAAE,CAAC;IAG3B,YAAY,CAAC,EAAE,YAAY,CAAC;IAG5B,qBAAqB,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAGhD,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "intention-coding",
3
- "version": "0.6.1",
3
+ "version": "0.6.2",
4
4
  "description": "软件工程化的需求分析,功能设计,代码编写,测试运行和发布部署",
5
5
  "type": "module",
6
6
  "packageManager": "pnpm@10.11.0",