intention-coding 0.5.8 → 0.5.9

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
@@ -5858,11 +5858,61 @@ graph TD
5858
5858
  ## 3. \u{6570}\u{636E}\u{5EFA}\u{6A21}
5859
5859
  ## 3.1 ER\u{903B}\u{8F91}\u{56FE}\u{8BBE}\u{8BA1}
5860
5860
 
5861
- [\u{63CF}\u{8FF0}\u{6570}\u{636E}\u{5E93}\u{8868}\u{FF08}\u{8981}\u{5305}\u{542B}\u{6570}\u{636E}\u{5E93}\u{4E2D}\u{6587}\u{548C}\u{82F1}\u{6587}\u{540D}\u{79F0}\u{FF0C}\u{6570}\u{636E}\u{5E93}\u{8868}\u{5B57}\u{6BB5}\u{FF09}\u{4E4B}\u{95F4}\u{7684}\u{5173}\u{7CFB}\u{548C}ER\u{56FE}\u{8BBE}\u{8BA1}]
5861
+ \u{57FA}\u{4E8E}\u{9700}\u{6C42}\u{5206}\u{6790}\u{FF0C}\u{8BBE}\u{8BA1}\u{4EE5}\u{4E0B}\u{6570}\u{636E}\u{5E93}\u{8868}\u{5173}\u{7CFB}\u{FF1A}
5862
+ - \u{7528}\u{6237}\u{8868} (users): \u{5B58}\u{50A8}\u{7528}\u{6237}\u{57FA}\u{672C}\u{4FE1}\u{606F}\u{FF0C}\u{5982}\u{7528}\u{6237}\u{540D}\u{3001}\u{90AE}\u{7BB1}\u{3001}\u{5BC6}\u{7801}\u{7B49}
5863
+ - \u{8BA2}\u{5355}\u{8868} (orders): \u{5B58}\u{50A8}\u{8BA2}\u{5355}\u{4FE1}\u{606F}\u{FF0C}\u{4E0E}\u{7528}\u{6237}\u{8868}\u{4E00}\u{5BF9}\u{591A}\u{5173}\u{7CFB}
5864
+ - \u{4EA7}\u{54C1}\u{8868} (products): \u{5B58}\u{50A8}\u{4EA7}\u{54C1}\u{4FE1}\u{606F}\u{FF0C}\u{4E0E}\u{8BA2}\u{5355}\u{8868}\u{591A}\u{5BF9}\u{591A}\u{5173}\u{7CFB}\u{FF08}\u{901A}\u{8FC7}\u{8BA2}\u{5355}\u{9879}\u{8868}\u{5173}\u{8054}\u{FF09}
5865
+
5866
+ \u{8BF7}\u{6839}\u{636E}\u{5177}\u{4F53}\u{9700}\u{6C42}\u{8BBE}\u{8BA1}\u{6570}\u{636E}\u{5E93}\u{8868}\u{7ED3}\u{6784}\u{FF0C}\u{5305}\u{62EC}\u{FF1A}
5867
+ 1. \u{8868}\u{7684}\u{4E2D}\u{82F1}\u{6587}\u{540D}\u{79F0}
5868
+ 2. \u{8868}\u{5B57}\u{6BB5}\u{5B9A}\u{4E49}\u{FF08}\u{5B57}\u{6BB5}\u{540D}\u{3001}\u{7C7B}\u{578B}\u{3001}\u{7EA6}\u{675F}\u{6761}\u{4EF6}\u{FF09}
5869
+ 3. \u{8868}\u{4E4B}\u{95F4}\u{7684}\u{5173}\u{7CFB}\u{FF08}\u{4E00}\u{5BF9}\u{4E00}\u{3001}\u{4E00}\u{5BF9}\u{591A}\u{3001}\u{591A}\u{5BF9}\u{591A}\u{FF09}
5870
+ 4. \u{4E3B}\u{952E}\u{548C}\u{5916}\u{952E}\u{7EA6}\u{675F}
5871
+
5862
5872
  \`\`\`mermaid
5873
+ erDiagram
5874
+ users ||--o{ orders : "\u{62E5}\u{6709}"
5875
+ orders ||--o{ order_items : "\u{5305}\u{542B}"
5876
+ products ||--o{ order_items : "\u{88AB}\u{8D2D}\u{4E70}"
5877
+ users {
5878
+ int id PK
5879
+ string username
5880
+ string email
5881
+ string password_hash
5882
+ datetime created_at
5883
+ datetime updated_at
5884
+ }
5885
+ orders {
5886
+ int id PK
5887
+ int user_id FK
5888
+ decimal total_amount
5889
+ string status
5890
+ datetime order_date
5891
+ datetime created_at
5892
+ }
5893
+ products {
5894
+ int id PK
5895
+ string name
5896
+ string description
5897
+ decimal price
5898
+ int stock_quantity
5899
+ datetime created_at
5900
+ }
5901
+ order_items {
5902
+ int id PK
5903
+ int order_id FK
5904
+ int product_id FK
5905
+ int quantity
5906
+ decimal unit_price
5907
+ decimal subtotal
5908
+ }
5863
5909
  \`\`\`
5864
5910
 
5865
- [\u{63CF}\u{8FF0}\u{5BF9}\u{8C61}\u{4E4B}\u{95F4}\u{7684}\u{5173}\u{7CFB}]
5911
+ **\u{6570}\u{636E}\u{5E93}\u{8868}\u{5173}\u{7CFB}\u{8BF4}\u{660E}\u{FF1A}**
5912
+ - **\u{7528}\u{6237}-\u{8BA2}\u{5355}\u{5173}\u{7CFB}**: \u{4E00}\u{5BF9}\u{591A}\u{5173}\u{7CFB}\u{FF0C}\u{4E00}\u{4E2A}\u{7528}\u{6237}\u{53EF}\u{4EE5}\u{62E5}\u{6709}\u{591A}\u{4E2A}\u{8BA2}\u{5355}
5913
+ - **\u{8BA2}\u{5355}-\u{8BA2}\u{5355}\u{9879}\u{5173}\u{7CFB}**: \u{4E00}\u{5BF9}\u{591A}\u{5173}\u{7CFB}\u{FF0C}\u{4E00}\u{4E2A}\u{8BA2}\u{5355}\u{53EF}\u{4EE5}\u{5305}\u{542B}\u{591A}\u{4E2A}\u{8BA2}\u{5355}\u{9879}
5914
+ - **\u{4EA7}\u{54C1}-\u{8BA2}\u{5355}\u{9879}\u{5173}\u{7CFB}**: \u{4E00}\u{5BF9}\u{591A}\u{5173}\u{7CFB}\u{FF0C}\u{4E00}\u{4E2A}\u{4EA7}\u{54C1}\u{53EF}\u{4EE5}\u{88AB}\u{591A}\u{4E2A}\u{8BA2}\u{5355}\u{9879}\u{8D2D}\u{4E70}
5915
+ - **\u{8BA2}\u{5355}\u{9879}\u{8868}**: \u{4F5C}\u{4E3A}\u{4E2D}\u{95F4}\u{8868}\u{FF0C}\u{5B9E}\u{73B0}\u{8BA2}\u{5355}\u{548C}\u{4EA7}\u{54C1}\u{7684}\u{591A}\u{5BF9}\u{591A}\u{5173}\u{7CFB}
5866
5916
 
5867
5917
  ## 4. \u{6570}\u{636E}\u{8868}\u{5B9E}\u{4F53}\u{8BBE}\u{8BA1}
5868
5918
 
@@ -6650,6 +6700,7 @@ ${existingContent}
6650
6700
  currentTime: new Date().toISOString(),
6651
6701
  businessDomain,
6652
6702
  generateSequenceDiagram: "true",
6703
+ generateERDiagram: "true",
6653
6704
  customPrompt
6654
6705
  };
6655
6706
  let prompt = template;
@@ -6673,6 +6724,7 @@ ${customPrompt}`;
6673
6724
  currentTime: new Date().toISOString(),
6674
6725
  businessDomain,
6675
6726
  generateSequenceDiagram: "true",
6727
+ generateERDiagram: "true",
6676
6728
  customPrompt,
6677
6729
  existingContent
6678
6730
  };
@@ -6715,7 +6767,7 @@ ${customPrompt}` : ""}
6715
6767
  }
6716
6768
  buildDocumentPrompt(template, content, title, projectInfo, customPrompt, requirementType) {
6717
6769
  const businessDomain = this.mapRequirementTypeToBusinessDomain(requirementType);
6718
- let prompt = template.replace(/\{featureName\}/g, title).replace(/\{inputContent\}/g, content).replace(/\{currentTime\}/g, new Date().toISOString()).replace(/\{businessDomain\}/g, businessDomain).replace(/\{generateSequenceDiagram\}/g, "true");
6770
+ let prompt = template.replace(/\{featureName\}/g, title).replace(/\{inputContent\}/g, content).replace(/\{currentTime\}/g, new Date().toISOString()).replace(/\{businessDomain\}/g, businessDomain).replace(/\{generateSequenceDiagram\}/g, "true").replace(/\{generateERDiagram\}/g, "true");
6719
6771
  if (customPrompt) prompt += `
6720
6772
 
6721
6773
  ## \u{81EA}\u{5B9A}\u{4E49}\u{8981}\u{6C42}
@@ -6809,6 +6861,9 @@ ${customPrompt}` : ""}
6809
6861
  if (!document.includes(title)) logger.warn("\u751F\u6210\u7684\u6587\u6863\u53EF\u80FD\u4E0E\u9700\u6C42\u6807\u9898\u4E0D\u5339\u914D", {
6810
6862
  title
6811
6863
  });
6864
+ if (document.includes("## 3.1 ER\u903B\u8F91\u56FE\u8BBE\u8BA1") && !document.includes("erDiagram") && !document.includes("entity")) logger.warn("\u751F\u6210\u7684\u6587\u6863\u53EF\u80FD\u7F3A\u5C11ER\u56FE\u5185\u5BB9", {
6865
+ title
6866
+ });
6812
6867
  }
6813
6868
  buildAnalysisResult(analysis, projectInfo, outputPath, sourceInfo, isUpdate = false, generatedFiles, analysisInfos) {
6814
6869
  const featuresToProcess = analysis.featureDependencies?.mergedFeatures || analysis.requirements;
@@ -1 +1 @@
1
- {"version":3,"file":"document-generator.d.ts","sourceRoot":"","sources":["../../../../src/services/requirement-analyzer/core/document-generator.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,cAAc,EAGf,MAAM,SAAS,CAAC;AAGjB;;;GAGG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,gBAAgB,CAA0B;IAGlD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAGzB;IACJ,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAuB;IAE7D;;OAEG;IACH,OAAO,CAAC,gBAAgB;IASxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAiBzB;;OAEG;IACH,OAAO,CAAC,WAAW;IAQnB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAgB3B;;OAEG;IACG,uBAAuB,CAC3B,QAAQ,EAAE,mBAAmB,EAC7B,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,MAAM,EACrB,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,cAAc,CAAC;IA4H1B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA8B7B;;OAEG;YACW,iBAAiB;IAiC/B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA6C3B;;OAEG;YACW,gBAAgB;IAoF9B;;OAEG;YACW,sBAAsB;IAwYpC;;OAEG;YACW,iBAAiB;IAc/B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAwB/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAe1B;;OAEG;YACW,0BAA0B;IAgDxC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA4C7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAqEzB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA0B3B;;OAEG;IACH,OAAO,CAAC,kCAAkC;IAkB1C;;OAEG;YACW,eAAe;IAS7B;;OAEG;YACW,sBAAsB;IA+EpC;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAcjC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAqG3B;;OAEG;IACH,OAAO,CAAC,eAAe;CAkFxB"}
1
+ {"version":3,"file":"document-generator.d.ts","sourceRoot":"","sources":["../../../../src/services/requirement-analyzer/core/document-generator.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,cAAc,EAGf,MAAM,SAAS,CAAC;AAGjB;;;GAGG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,gBAAgB,CAA0B;IAGlD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAGzB;IACJ,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAuB;IAE7D;;OAEG;IACH,OAAO,CAAC,gBAAgB;IASxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAiBzB;;OAEG;IACH,OAAO,CAAC,WAAW;IAQnB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAgB3B;;OAEG;IACG,uBAAuB,CAC3B,QAAQ,EAAE,mBAAmB,EAC7B,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,MAAM,EACrB,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,cAAc,CAAC;IA4H1B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA8B7B;;OAEG;YACW,iBAAiB;IAiC/B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA6C3B;;OAEG;YACW,gBAAgB;IAoF9B;;OAEG;YACW,sBAAsB;IAwYpC;;OAEG;YACW,iBAAiB;IAc/B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAwB/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAe1B;;OAEG;YACW,0BAA0B;IAgDxC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA6C7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAsEzB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA2B3B;;OAEG;IACH,OAAO,CAAC,kCAAkC;IAkB1C;;OAEG;YACW,eAAe;IAS7B;;OAEG;YACW,sBAAsB;IA+EpC;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAqBjC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAqG3B;;OAEG;IACH,OAAO,CAAC,eAAe;CAkFxB"}
@@ -1,2 +1,2 @@
1
- export declare const apiTemplatePrompt = "\u4F60\u662F\u540E\u7AEF\u6280\u672F\u6587\u6863\u4E13\u5BB6\u3002\u57FA\u4E8E\u8F93\u5165\u5185\u5BB9\u751F\u6210\u5B8C\u6574\u7684API\u63A5\u53E3\u6280\u672F\u9700\u6C42\u6587\u6863\uFF08Markdown\u683C\u5F0F\uFF0C3000\u5B57\u4EE5\u4E0A\uFF09\u3002\n\n**\u8F93\u5165**: \u529F\u80FD\u540D\u79F0={featureName}, \u4E1A\u52A1\u9886\u57DF={businessDomain}, \u751F\u6210\u65F6\u5E8F\u56FE={generateSequenceDiagram}\n\n**\u539F\u59CB\u9700\u6C42**:\n```\n{inputContent}\n```\n\n## \u6587\u6863\u7ED3\u6784\u8981\u6C42\n\u8BF7\u4E25\u683C\u6309\u7167\u4EE5\u4E0B\u7ED3\u6784\u8F93\u51FA\u5B8C\u6574\u7684\u9700\u6C42\u6587\u6863\uFF0C\u6BCF\u4E2A\u7AE0\u8282\u90FD\u8981\u6709\u8BE6\u5B9E\u7684\u5185\u5BB9\uFF1A\n\n# {featureName} - API\u63A5\u53E3\u6280\u672F\u9700\u6C42\u6587\u6863\n\n> **\u751F\u6210\u65F6\u95F4**: {currentTime}\n> **\u4E1A\u52A1\u9886\u57DF**: {businessDomain}\n> **\u63A5\u53E3\u7C7B\u578B**: RESTful API\n\n---\n\n## 1. \u9700\u6C42\u80CC\u666F\n\n**\u80CC\u666F**: [\u8BE6\u7EC6\u63CF\u8FF0API\u63A5\u53E3\u7684\u80CC\u666F\u3001\u4E1A\u52A1\u9700\u6C42\u548C\u76EE\u6807]\n\n**\u5173\u952E\u529F\u80FD**: [\u5217\u51FAAPI\u63A5\u53E3\u7684\u4E3B\u8981\u529F\u80FD\u70B9]\n\n**\u6D89\u53CA\u89D2\u8272**: [\u5217\u51FA\u6240\u6709\u76F8\u5173\u7CFB\u7EDF\u89D2\u8272]\n\n## 2. {featureName}\u529F\u80FD\u8BBE\u8BA1\u8BF4\u660E\n\n| | | | | |\n|---|---|---|---|---|\n|**\u6D41\u7A0B\u7F16\u53F7**|F001|**\u6D41\u7A0B\u540D\u79F0**|{featureName}|\n|**\u4E1A\u52A1\u529F\u80FD\u7F16\u53F7**|BF001|**\u4E1A\u52A1\u529F\u80FD\u540D\u79F0**|{featureName}|\n|**\u529F\u80FD\u8BBE\u8BA1\u7F16\u53F7**|FD001|**\u7CFB\u7EDF\u529F\u80FD\u540D\u79F0**|{featureName}|\n|**\u524D\u7F6E\u6761\u4EF6**|[\u8BE6\u7EC6\u63CF\u8FF0API\u8C03\u7528\u7684\u524D\u7F6E\u6761\u4EF6]|\n|**\u89D2\u8272\uFF08\u5C97\u4F4D\uFF09**|[\u8BE6\u7EC6\u63CF\u8FF0\u8C03\u7528\u65B9\u89D2\u8272\u53CA\u5176\u6743\u9650]|\n|**\u5165\u53E3\u6E20\u9053**|[\u63CF\u8FF0API\u8C03\u7528\u5165\u53E3]|\n|**\u529F\u80FD\u63CF\u8FF0**|[\u8BE6\u7EC6\u7684\u529F\u80FD\u63CF\u8FF0]|\n|**\u8C03\u7528\u80FD\u529B\u57DF/\u4E2D\u5FC3**|[\u5982\u9002\u7528\u7684\u5176\u4ED6\u7CFB\u7EDF\u63A5\u53E3]|\n\n## 3. \u6570\u636E\u5EFA\u6A21\n## 3.1 ER\u903B\u8F91\u56FE\u8BBE\u8BA1\n\n[\u63CF\u8FF0\u6570\u636E\u5E93\u8868\uFF08\u8981\u5305\u542B\u6570\u636E\u5E93\u4E2D\u6587\u548C\u82F1\u6587\u540D\u79F0\uFF0C\u6570\u636E\u5E93\u8868\u5B57\u6BB5\uFF09\u4E4B\u95F4\u7684\u5173\u7CFB\u548CER\u56FE\u8BBE\u8BA1]\n```mermaid\n```\n\n[\u63CF\u8FF0\u5BF9\u8C61\u4E4B\u95F4\u7684\u5173\u7CFB]\n\n## 4. \u6570\u636E\u8868\u5B9E\u4F53\u8BBE\u8BA1\n\n[\u8BE6\u7EC6\u63CF\u8FF0\u6D89\u53CA\u7684\u6570\u636E\u8868\u5B9E\u4F53\u7ED3\u6784\uFF0C\u5305\u62EC\u5B57\u6BB5\u540D\u3001\u7C7B\u578B\u3001\u7EA6\u675F\u6761\u4EF6\u3001\u7D22\u5F15\u89C4\u5219\u7B49]\n\n## 5. API\u63A5\u53E3\u8BBE\u8BA1\n\n### 5.1 \u63A5\u53E3\u5217\u8868\n[\u5217\u51FA\u6240\u6709\u76F8\u5173\u7684API\u63A5\u53E3]\n\n### 5.2 \u63A5\u53E3\u8BE6\u7EC6\u8BF4\u660E\n\n#### 5.2.1 \u63A5\u53E31 - [\u63A5\u53E3\u540D\u79F0]\n#### 5.2.2 \u57FA\u672C\u4FE1\u606F\n- **\u63A5\u53E3\u5730\u5740**: [URL\u8DEF\u5F84]\n- **\u8BF7\u6C42\u65B9\u6CD5**: [\u53EA\u5141\u8BB8\u4F7F\u7528POST\u8BF7\u6C42]\n- **\u534F\u8BAE**: [\u53EA\u5141\u8BB8\u4F7F\u7528HTTPS]\n- **\u5185\u5BB9\u7C7B\u578B**: [application/json\u7B49]\n\n#### 5.2.3 \u8BF7\u6C42\u53C2\u6570\n[\u8BE6\u7EC6\u8BF4\u660E\u8BF7\u6C42\u53C2\u6570]\n\n|\u53C2\u6570\u540D|\u7C7B\u578B|\u662F\u5426\u5FC5\u586B|\u4F4D\u7F6E|\u8BF4\u660E|\n|------|----|--------|----|----|\n|[\u53C2\u65701]|[string/int\u7B49]|[\u662F/\u5426]|[query/body/path]|[\u8BE6\u7EC6\u8BF4\u660E]|\n|[\u53C2\u65702]|[string/int\u7B49]|[\u662F/\u5426]|[query/body/path]|[\u8BE6\u7EC6\u8BF4\u660E]|\n\n#### 5.2.4 \u54CD\u5E94\u53C2\u6570\n[\u8BE6\u7EC6\u8BF4\u660E\u54CD\u5E94\u53C2\u6570]\n\n|\u53C2\u6570\u540D|\u7C7B\u578B|\u8BF4\u660E|\n|------|----|----|\n|[\u53C2\u65701]|[string/object\u7B49]|[\u8BE6\u7EC6\u8BF4\u660E]|\n|[\u53C2\u65702]|[string/object\u7B49]|[\u8BE6\u7EC6\u8BF4\u660E]|\n\n#### 5.2.5 \u9519\u8BEF\u7801\u8BF4\u660E\n[\u8BE6\u7EC6\u8BF4\u660E\u8BE5\u63A5\u53E3\u7684\u9519\u8BEF\u7801]\n\n|\u9519\u8BEF\u7801|\u8BF4\u660E|\n|------|----|\n|[\u9519\u8BEF\u78011]|[\u8BE6\u7EC6\u8BF4\u660E]|\n|[\u9519\u8BEF\u78012]|[\u8BE6\u7EC6\u8BF4\u660E]|\n\n#### 5.2.6 \u8BE6\u7EC6\u5B9E\u73B0\u903B\u8F91\n[\u5206\u6B65\u9AA4\u8BE6\u7EC6\u63CF\u8FF0\u8BE5\u63A5\u53E3\u7684\u8BE6\u7EC6\u903B\u8F91\uFF0C\u5982\u679C\u5B58\u5728sql\u8BED\u53E5\uFF0C\u9700\u8981\u6DFB\u52A0sql\u8BED\u53E5\u5E76\u5728sql\u8BED\u53E5\u4E2D\u6DFB\u52A0\u6CE8\u91CA\u8BF4\u660E]\n\n## 6. \u4E1A\u52A1\u5BF9\u8C61\u65F6\u5E8F\u56FE\n\n#### 6.2.1 \u6B63\u5411\u6D41\u7A0B\n```mermaid\nsequenceDiagram\n```\n\n### 6.3 \u5F02\u5E38\u6D41\u7A0B\uFF08\u903B\u8F91\u4E2D\u51FA\u73B0\u5F02\u5E38\u60C5\u51B5\u7684\u4E0B\u7684\u5904\u7406\uFF09\n\n#### 6.3.1 xx\u5F02\u5E38\u5904\u7406\u6D41\u7A0B\n```mermaid\nsequenceDiagram\n```\n\n#### 6.3.2 xx\u5F02\u5E38\u5904\u7406\u6D41\u7A0B\n```mermaid\nsequenceDiagram\n```\n\n## 7. \u4E1A\u52A1\u72B6\u6001\u63CF\u8FF0\n\n| | | |\n|---|---|---|\n|**\u72B6\u6001\u7F16\u53F7**|**\u72B6\u6001\u540D\u79F0**|**\u63CF\u8FF0**|\n|01|\u6536\u5230\u5BA1\u6838\u7533\u8BF7|\u5F53\u63A5\u6536\u5230\u5BA1\u6838\u7533\u8BF7\u65F6\uFF0C\u7CFB\u7EDF\u4F1A\u8BB0\u5F55\u7533\u8BF7\u4FE1\u606F\u5E76\u8FD4\u56DE\u5BA1\u6838\u4E2D\u72B6\u6001|\n|02|\u5BA1\u6279\u5BA1\u6838\u72B6\u6001|\u5F53\u5BA1\u6279\u4EBA\u5BF9\u7533\u8BF7\u8FDB\u884C\u5BA1\u6279\u540E\uFF0C\u7CFB\u7EDF\u4F1A\u66F4\u65B0\u5BA1\u6838\u72B6\u6001\u5E76\u8FD4\u56DE\u5BA1\u6279\u7ED3\u679C|\n|[\u6DFB\u52A0\u66F4\u591A\u72B6\u6001...]||\n\n## 8. \u4F2A\u4EE3\u7801\u793A\u4F8B\n\n```gherkin\nScenario Outline: \u7528\u6237\u901A\u8FC7API\u67E5\u8BE2\u8BA2\u5355\u4FE1\u606F\n Given \u7528\u6237\u5DF2\u901A\u8FC7\u8BA4\u8BC1\u5E76\u62E5\u6709\u67E5\u8BE2\u6743\u9650\n When \u7528\u6237\u5411/orders/<order_id>\u63A5\u53E3\u53D1\u9001POST\u8BF7\u6C42\n Then \u7CFB\u7EDF\u5E94\u8FD4\u56DE\u8BA2\u5355\u4FE1\u606F\u6216 <error_message>\n\n Examples:\n | order_id | error_message |\n | 12345 | null (\u6210\u529F\u8FD4\u56DE\u8BA2\u5355\u4FE1\u606F) |\n | 99999 | \"\u8BA2\u5355\u4E0D\u5B58\u5728\" |\n```\n\n---\n\n**\u8981\u6C42**: \u8F93\u51FA\u5B8C\u6574\u6587\u6863\uFF0C\u6BCF\u7AE0\u8282\u6709\u5B9E\u8D28\u5185\u5BB9\uFF0C\u8868\u683C\u586B\u5199\u5177\u4F53\u4FE1\u606F\uFF0C\u91CD\u70B9\u5173\u6CE8API\u63A5\u53E3\u8BBE\u8BA1\u3001\u6570\u636E\u7ED3\u6784\u3001\u4EA4\u4E92\u903B\u8F91\uFF0C\u4F2A\u4EE3\u7801\u4F7F\u7528gherkin\u8BED\u6CD5\u3002";
1
+ export declare const apiTemplatePrompt = "\u4F60\u662F\u540E\u7AEF\u6280\u672F\u6587\u6863\u4E13\u5BB6\u3002\u57FA\u4E8E\u8F93\u5165\u5185\u5BB9\u751F\u6210\u5B8C\u6574\u7684API\u63A5\u53E3\u6280\u672F\u9700\u6C42\u6587\u6863\uFF08Markdown\u683C\u5F0F\uFF0C3000\u5B57\u4EE5\u4E0A\uFF09\u3002\n\n**\u8F93\u5165**: \u529F\u80FD\u540D\u79F0={featureName}, \u4E1A\u52A1\u9886\u57DF={businessDomain}, \u751F\u6210\u65F6\u5E8F\u56FE={generateSequenceDiagram}\n\n**\u539F\u59CB\u9700\u6C42**:\n```\n{inputContent}\n```\n\n## \u6587\u6863\u7ED3\u6784\u8981\u6C42\n\u8BF7\u4E25\u683C\u6309\u7167\u4EE5\u4E0B\u7ED3\u6784\u8F93\u51FA\u5B8C\u6574\u7684\u9700\u6C42\u6587\u6863\uFF0C\u6BCF\u4E2A\u7AE0\u8282\u90FD\u8981\u6709\u8BE6\u5B9E\u7684\u5185\u5BB9\uFF1A\n\n# {featureName} - API\u63A5\u53E3\u6280\u672F\u9700\u6C42\u6587\u6863\n\n> **\u751F\u6210\u65F6\u95F4**: {currentTime}\n> **\u4E1A\u52A1\u9886\u57DF**: {businessDomain}\n> **\u63A5\u53E3\u7C7B\u578B**: RESTful API\n\n---\n\n## 1. \u9700\u6C42\u80CC\u666F\n\n**\u80CC\u666F**: [\u8BE6\u7EC6\u63CF\u8FF0API\u63A5\u53E3\u7684\u80CC\u666F\u3001\u4E1A\u52A1\u9700\u6C42\u548C\u76EE\u6807]\n\n**\u5173\u952E\u529F\u80FD**: [\u5217\u51FAAPI\u63A5\u53E3\u7684\u4E3B\u8981\u529F\u80FD\u70B9]\n\n**\u6D89\u53CA\u89D2\u8272**: [\u5217\u51FA\u6240\u6709\u76F8\u5173\u7CFB\u7EDF\u89D2\u8272]\n\n## 2. {featureName}\u529F\u80FD\u8BBE\u8BA1\u8BF4\u660E\n\n| | | | | |\n|---|---|---|---|---|\n|**\u6D41\u7A0B\u7F16\u53F7**|F001|**\u6D41\u7A0B\u540D\u79F0**|{featureName}|\n|**\u4E1A\u52A1\u529F\u80FD\u7F16\u53F7**|BF001|**\u4E1A\u52A1\u529F\u80FD\u540D\u79F0**|{featureName}|\n|**\u529F\u80FD\u8BBE\u8BA1\u7F16\u53F7**|FD001|**\u7CFB\u7EDF\u529F\u80FD\u540D\u79F0**|{featureName}|\n|**\u524D\u7F6E\u6761\u4EF6**|[\u8BE6\u7EC6\u63CF\u8FF0API\u8C03\u7528\u7684\u524D\u7F6E\u6761\u4EF6]|\n|**\u89D2\u8272\uFF08\u5C97\u4F4D\uFF09**|[\u8BE6\u7EC6\u63CF\u8FF0\u8C03\u7528\u65B9\u89D2\u8272\u53CA\u5176\u6743\u9650]|\n|**\u5165\u53E3\u6E20\u9053**|[\u63CF\u8FF0API\u8C03\u7528\u5165\u53E3]|\n|**\u529F\u80FD\u63CF\u8FF0**|[\u8BE6\u7EC6\u7684\u529F\u80FD\u63CF\u8FF0]|\n|**\u8C03\u7528\u80FD\u529B\u57DF/\u4E2D\u5FC3**|[\u5982\u9002\u7528\u7684\u5176\u4ED6\u7CFB\u7EDF\u63A5\u53E3]|\n\n## 3. \u6570\u636E\u5EFA\u6A21\n## 3.1 ER\u903B\u8F91\u56FE\u8BBE\u8BA1\n\n\u57FA\u4E8E\u9700\u6C42\u5206\u6790\uFF0C\u8BBE\u8BA1\u4EE5\u4E0B\u6570\u636E\u5E93\u8868\u5173\u7CFB\uFF1A\n- \u7528\u6237\u8868 (users): \u5B58\u50A8\u7528\u6237\u57FA\u672C\u4FE1\u606F\uFF0C\u5982\u7528\u6237\u540D\u3001\u90AE\u7BB1\u3001\u5BC6\u7801\u7B49\n- \u8BA2\u5355\u8868 (orders): \u5B58\u50A8\u8BA2\u5355\u4FE1\u606F\uFF0C\u4E0E\u7528\u6237\u8868\u4E00\u5BF9\u591A\u5173\u7CFB\n- \u4EA7\u54C1\u8868 (products): \u5B58\u50A8\u4EA7\u54C1\u4FE1\u606F\uFF0C\u4E0E\u8BA2\u5355\u8868\u591A\u5BF9\u591A\u5173\u7CFB\uFF08\u901A\u8FC7\u8BA2\u5355\u9879\u8868\u5173\u8054\uFF09\n\n\u8BF7\u6839\u636E\u5177\u4F53\u9700\u6C42\u8BBE\u8BA1\u6570\u636E\u5E93\u8868\u7ED3\u6784\uFF0C\u5305\u62EC\uFF1A\n1. \u8868\u7684\u4E2D\u82F1\u6587\u540D\u79F0\n2. \u8868\u5B57\u6BB5\u5B9A\u4E49\uFF08\u5B57\u6BB5\u540D\u3001\u7C7B\u578B\u3001\u7EA6\u675F\u6761\u4EF6\uFF09\n3. \u8868\u4E4B\u95F4\u7684\u5173\u7CFB\uFF08\u4E00\u5BF9\u4E00\u3001\u4E00\u5BF9\u591A\u3001\u591A\u5BF9\u591A\uFF09\n4. \u4E3B\u952E\u548C\u5916\u952E\u7EA6\u675F\n\n```mermaid\nerDiagram\n users ||--o{ orders : \"\u62E5\u6709\"\n orders ||--o{ order_items : \"\u5305\u542B\"\n products ||--o{ order_items : \"\u88AB\u8D2D\u4E70\"\n users {\n int id PK\n string username\n string email\n string password_hash\n datetime created_at\n datetime updated_at\n }\n orders {\n int id PK\n int user_id FK\n decimal total_amount\n string status\n datetime order_date\n datetime created_at\n }\n products {\n int id PK\n string name\n string description\n decimal price\n int stock_quantity\n datetime created_at\n }\n order_items {\n int id PK\n int order_id FK\n int product_id FK\n int quantity\n decimal unit_price\n decimal subtotal\n }\n```\n\n**\u6570\u636E\u5E93\u8868\u5173\u7CFB\u8BF4\u660E\uFF1A**\n- **\u7528\u6237-\u8BA2\u5355\u5173\u7CFB**: \u4E00\u5BF9\u591A\u5173\u7CFB\uFF0C\u4E00\u4E2A\u7528\u6237\u53EF\u4EE5\u62E5\u6709\u591A\u4E2A\u8BA2\u5355\n- **\u8BA2\u5355-\u8BA2\u5355\u9879\u5173\u7CFB**: \u4E00\u5BF9\u591A\u5173\u7CFB\uFF0C\u4E00\u4E2A\u8BA2\u5355\u53EF\u4EE5\u5305\u542B\u591A\u4E2A\u8BA2\u5355\u9879\n- **\u4EA7\u54C1-\u8BA2\u5355\u9879\u5173\u7CFB**: \u4E00\u5BF9\u591A\u5173\u7CFB\uFF0C\u4E00\u4E2A\u4EA7\u54C1\u53EF\u4EE5\u88AB\u591A\u4E2A\u8BA2\u5355\u9879\u8D2D\u4E70\n- **\u8BA2\u5355\u9879\u8868**: \u4F5C\u4E3A\u4E2D\u95F4\u8868\uFF0C\u5B9E\u73B0\u8BA2\u5355\u548C\u4EA7\u54C1\u7684\u591A\u5BF9\u591A\u5173\u7CFB\n\n## 4. \u6570\u636E\u8868\u5B9E\u4F53\u8BBE\u8BA1\n\n[\u8BE6\u7EC6\u63CF\u8FF0\u6D89\u53CA\u7684\u6570\u636E\u8868\u5B9E\u4F53\u7ED3\u6784\uFF0C\u5305\u62EC\u5B57\u6BB5\u540D\u3001\u7C7B\u578B\u3001\u7EA6\u675F\u6761\u4EF6\u3001\u7D22\u5F15\u89C4\u5219\u7B49]\n\n## 5. API\u63A5\u53E3\u8BBE\u8BA1\n\n### 5.1 \u63A5\u53E3\u5217\u8868\n[\u5217\u51FA\u6240\u6709\u76F8\u5173\u7684API\u63A5\u53E3]\n\n### 5.2 \u63A5\u53E3\u8BE6\u7EC6\u8BF4\u660E\n\n#### 5.2.1 \u63A5\u53E31 - [\u63A5\u53E3\u540D\u79F0]\n#### 5.2.2 \u57FA\u672C\u4FE1\u606F\n- **\u63A5\u53E3\u5730\u5740**: [URL\u8DEF\u5F84]\n- **\u8BF7\u6C42\u65B9\u6CD5**: [\u53EA\u5141\u8BB8\u4F7F\u7528POST\u8BF7\u6C42]\n- **\u534F\u8BAE**: [\u53EA\u5141\u8BB8\u4F7F\u7528HTTPS]\n- **\u5185\u5BB9\u7C7B\u578B**: [application/json\u7B49]\n\n#### 5.2.3 \u8BF7\u6C42\u53C2\u6570\n[\u8BE6\u7EC6\u8BF4\u660E\u8BF7\u6C42\u53C2\u6570]\n\n|\u53C2\u6570\u540D|\u7C7B\u578B|\u662F\u5426\u5FC5\u586B|\u4F4D\u7F6E|\u8BF4\u660E|\n|------|----|--------|----|----|\n|[\u53C2\u65701]|[string/int\u7B49]|[\u662F/\u5426]|[query/body/path]|[\u8BE6\u7EC6\u8BF4\u660E]|\n|[\u53C2\u65702]|[string/int\u7B49]|[\u662F/\u5426]|[query/body/path]|[\u8BE6\u7EC6\u8BF4\u660E]|\n\n#### 5.2.4 \u54CD\u5E94\u53C2\u6570\n[\u8BE6\u7EC6\u8BF4\u660E\u54CD\u5E94\u53C2\u6570]\n\n|\u53C2\u6570\u540D|\u7C7B\u578B|\u8BF4\u660E|\n|------|----|----|\n|[\u53C2\u65701]|[string/object\u7B49]|[\u8BE6\u7EC6\u8BF4\u660E]|\n|[\u53C2\u65702]|[string/object\u7B49]|[\u8BE6\u7EC6\u8BF4\u660E]|\n\n#### 5.2.5 \u9519\u8BEF\u7801\u8BF4\u660E\n[\u8BE6\u7EC6\u8BF4\u660E\u8BE5\u63A5\u53E3\u7684\u9519\u8BEF\u7801]\n\n|\u9519\u8BEF\u7801|\u8BF4\u660E|\n|------|----|\n|[\u9519\u8BEF\u78011]|[\u8BE6\u7EC6\u8BF4\u660E]|\n|[\u9519\u8BEF\u78012]|[\u8BE6\u7EC6\u8BF4\u660E]|\n\n#### 5.2.6 \u8BE6\u7EC6\u5B9E\u73B0\u903B\u8F91\n[\u5206\u6B65\u9AA4\u8BE6\u7EC6\u63CF\u8FF0\u8BE5\u63A5\u53E3\u7684\u8BE6\u7EC6\u903B\u8F91\uFF0C\u5982\u679C\u5B58\u5728sql\u8BED\u53E5\uFF0C\u9700\u8981\u6DFB\u52A0sql\u8BED\u53E5\u5E76\u5728sql\u8BED\u53E5\u4E2D\u6DFB\u52A0\u6CE8\u91CA\u8BF4\u660E]\n\n## 6. \u4E1A\u52A1\u5BF9\u8C61\u65F6\u5E8F\u56FE\n\n#### 6.2.1 \u6B63\u5411\u6D41\u7A0B\n```mermaid\nsequenceDiagram\n```\n\n### 6.3 \u5F02\u5E38\u6D41\u7A0B\uFF08\u903B\u8F91\u4E2D\u51FA\u73B0\u5F02\u5E38\u60C5\u51B5\u7684\u4E0B\u7684\u5904\u7406\uFF09\n\n#### 6.3.1 xx\u5F02\u5E38\u5904\u7406\u6D41\u7A0B\n```mermaid\nsequenceDiagram\n```\n\n#### 6.3.2 xx\u5F02\u5E38\u5904\u7406\u6D41\u7A0B\n```mermaid\nsequenceDiagram\n```\n\n## 7. \u4E1A\u52A1\u72B6\u6001\u63CF\u8FF0\n\n| | | |\n|---|---|---|\n|**\u72B6\u6001\u7F16\u53F7**|**\u72B6\u6001\u540D\u79F0**|**\u63CF\u8FF0**|\n|01|\u6536\u5230\u5BA1\u6838\u7533\u8BF7|\u5F53\u63A5\u6536\u5230\u5BA1\u6838\u7533\u8BF7\u65F6\uFF0C\u7CFB\u7EDF\u4F1A\u8BB0\u5F55\u7533\u8BF7\u4FE1\u606F\u5E76\u8FD4\u56DE\u5BA1\u6838\u4E2D\u72B6\u6001|\n|02|\u5BA1\u6279\u5BA1\u6838\u72B6\u6001|\u5F53\u5BA1\u6279\u4EBA\u5BF9\u7533\u8BF7\u8FDB\u884C\u5BA1\u6279\u540E\uFF0C\u7CFB\u7EDF\u4F1A\u66F4\u65B0\u5BA1\u6838\u72B6\u6001\u5E76\u8FD4\u56DE\u5BA1\u6279\u7ED3\u679C|\n|[\u6DFB\u52A0\u66F4\u591A\u72B6\u6001...]||\n\n## 8. \u4F2A\u4EE3\u7801\u793A\u4F8B\n\n```gherkin\nScenario Outline: \u7528\u6237\u901A\u8FC7API\u67E5\u8BE2\u8BA2\u5355\u4FE1\u606F\n Given \u7528\u6237\u5DF2\u901A\u8FC7\u8BA4\u8BC1\u5E76\u62E5\u6709\u67E5\u8BE2\u6743\u9650\n When \u7528\u6237\u5411/orders/<order_id>\u63A5\u53E3\u53D1\u9001POST\u8BF7\u6C42\n Then \u7CFB\u7EDF\u5E94\u8FD4\u56DE\u8BA2\u5355\u4FE1\u606F\u6216 <error_message>\n\n Examples:\n | order_id | error_message |\n | 12345 | null (\u6210\u529F\u8FD4\u56DE\u8BA2\u5355\u4FE1\u606F) |\n | 99999 | \"\u8BA2\u5355\u4E0D\u5B58\u5728\" |\n```\n\n---\n\n**\u8981\u6C42**: \u8F93\u51FA\u5B8C\u6574\u6587\u6863\uFF0C\u6BCF\u7AE0\u8282\u6709\u5B9E\u8D28\u5185\u5BB9\uFF0C\u8868\u683C\u586B\u5199\u5177\u4F53\u4FE1\u606F\uFF0C\u91CD\u70B9\u5173\u6CE8API\u63A5\u53E3\u8BBE\u8BA1\u3001\u6570\u636E\u7ED3\u6784\u3001\u4EA4\u4E92\u903B\u8F91\uFF0C\u4F2A\u4EE3\u7801\u4F7F\u7528gherkin\u8BED\u6CD5\u3002";
2
2
  //# sourceMappingURL=api-template.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-template.d.ts","sourceRoot":"","sources":["../../../../src/services/requirement-analyzer/prompt/api-template.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,u+MA2IyC,CAAC"}
1
+ {"version":3,"file":"api-template.d.ts","sourceRoot":"","sources":["../../../../src/services/requirement-analyzer/prompt/api-template.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,ouRA6LyC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "intention-coding",
3
- "version": "0.5.8",
3
+ "version": "0.5.9",
4
4
  "description": "软件工程化的需求分析,功能设计,代码编写,测试运行和发布部署",
5
5
  "type": "module",
6
6
  "packageManager": "pnpm@10.11.0",