intention-coding 0.6.7 → 0.6.8

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.
@@ -1 +1 @@
1
- {"version":3,"file":"tech-spec-storage.d.ts","sourceRoot":"","sources":["../../src/db/tech-spec-storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tech-spec-storage.d.ts","sourceRoot":"","sources":["../../src/db/tech-spec-storage.ts"],"names":[],"mappings":"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"}
package/dist/index.cjs CHANGED
@@ -19,24 +19,29 @@ var __webpack_modules__ = {
19
19
  modulesFile;
20
20
  filesFile;
21
21
  constructor(){
22
+ this.dataDir = "";
23
+ this.projectsFile = "";
24
+ this.chaptersFile = "";
25
+ this.modulesFile = "";
26
+ this.filesFile = "";
27
+ }
28
+ ensureInitialized() {
29
+ if (this.dataDir) return;
22
30
  try {
23
31
  const storageDir = (0, _utils_config__WEBPACK_IMPORTED_MODULE_3__.WR)();
32
+ if (!storageDir || "/.aico" === storageDir || storageDir.startsWith("/.")) throw new Error(`\u{65E0}\u{6548}\u{7684}\u{5B58}\u{50A8}\u{76EE}\u{5F55}: ${storageDir}`);
24
33
  this.dataDir = path__WEBPACK_IMPORTED_MODULE_1__.join(storageDir, "tech-spec");
25
- this.projectsFile = path__WEBPACK_IMPORTED_MODULE_1__.join(this.dataDir, "projects.json");
26
- this.chaptersFile = path__WEBPACK_IMPORTED_MODULE_1__.join(this.dataDir, "chapters.json");
27
- this.modulesFile = path__WEBPACK_IMPORTED_MODULE_1__.join(this.dataDir, "modules.json");
28
- this.filesFile = path__WEBPACK_IMPORTED_MODULE_1__.join(this.dataDir, "files.json");
29
- this.ensureDataDir();
30
34
  } catch (error) {
31
35
  console.warn("TechSpecStorage\u521D\u59CB\u5316\u5931\u8D25\uFF0C\u4F7F\u7528\u9ED8\u8BA4\u8DEF\u5F84:", error);
32
- const defaultDir = path__WEBPACK_IMPORTED_MODULE_1__.join(process.cwd(), ".aico");
36
+ const cwd = process.cwd();
37
+ const defaultDir = cwd && "/" !== cwd && cwd.length > 1 ? path__WEBPACK_IMPORTED_MODULE_1__.join(cwd, ".aico") : path__WEBPACK_IMPORTED_MODULE_1__.join(process.env.HOME || "/tmp", ".aico");
33
38
  this.dataDir = path__WEBPACK_IMPORTED_MODULE_1__.join(defaultDir, "tech-spec");
34
- this.projectsFile = path__WEBPACK_IMPORTED_MODULE_1__.join(this.dataDir, "projects.json");
35
- this.chaptersFile = path__WEBPACK_IMPORTED_MODULE_1__.join(this.dataDir, "chapters.json");
36
- this.modulesFile = path__WEBPACK_IMPORTED_MODULE_1__.join(this.dataDir, "modules.json");
37
- this.filesFile = path__WEBPACK_IMPORTED_MODULE_1__.join(this.dataDir, "files.json");
38
- this.ensureDataDir();
39
39
  }
40
+ this.projectsFile = path__WEBPACK_IMPORTED_MODULE_1__.join(this.dataDir, "projects.json");
41
+ this.chaptersFile = path__WEBPACK_IMPORTED_MODULE_1__.join(this.dataDir, "chapters.json");
42
+ this.modulesFile = path__WEBPACK_IMPORTED_MODULE_1__.join(this.dataDir, "modules.json");
43
+ this.filesFile = path__WEBPACK_IMPORTED_MODULE_1__.join(this.dataDir, "files.json");
44
+ this.ensureDataDir();
40
45
  }
41
46
  ensureDataDir() {
42
47
  if (!fs__WEBPACK_IMPORTED_MODULE_0__.existsSync(this.dataDir)) fs__WEBPACK_IMPORTED_MODULE_0__.mkdirSync(this.dataDir, {
@@ -51,6 +56,7 @@ var __webpack_modules__ = {
51
56
  return items.length > 0 ? Math.max(...items.map((i)=>i.id)) + 1 : 1;
52
57
  }
53
58
  readProjects() {
59
+ this.ensureInitialized();
54
60
  try {
55
61
  const data = fs__WEBPACK_IMPORTED_MODULE_0__.readFileSync(this.projectsFile, "utf8");
56
62
  return JSON.parse(data).map((p)=>({
@@ -107,6 +113,7 @@ var __webpack_modules__ = {
107
113
  }
108
114
  }
109
115
  readChapters() {
116
+ this.ensureInitialized();
110
117
  try {
111
118
  const data = fs__WEBPACK_IMPORTED_MODULE_0__.readFileSync(this.chaptersFile, "utf8");
112
119
  return JSON.parse(data).map((c)=>({
@@ -163,6 +170,7 @@ var __webpack_modules__ = {
163
170
  }
164
171
  }
165
172
  readModules() {
173
+ this.ensureInitialized();
166
174
  try {
167
175
  const data = fs__WEBPACK_IMPORTED_MODULE_0__.readFileSync(this.modulesFile, "utf8");
168
176
  return JSON.parse(data).map((m)=>({
@@ -215,6 +223,7 @@ var __webpack_modules__ = {
215
223
  }
216
224
  }
217
225
  readFiles() {
226
+ this.ensureInitialized();
218
227
  try {
219
228
  const data = fs__WEBPACK_IMPORTED_MODULE_0__.readFileSync(this.filesFile, "utf8");
220
229
  return JSON.parse(data).map((f)=>({
@@ -896,14 +905,14 @@ var __webpack_modules__ = {
896
905
  }
897
906
  let currentDir = process.cwd();
898
907
  const markers = [
899
- 'package.json',
900
- '.git',
901
- 'Cargo.toml',
902
- 'pyproject.toml',
903
- 'go.mod'
908
+ "package.json",
909
+ ".git",
910
+ "Cargo.toml",
911
+ "pyproject.toml",
912
+ "go.mod"
904
913
  ];
905
914
  if (enableLogging) logger.k.info(`\u{5F00}\u{59CB}\u{4ECE}\u{5F53}\u{524D}\u{76EE}\u{5F55}\u{68C0}\u{6D4B}\u{9879}\u{76EE}\u{6839}\u{76EE}\u{5F55}: ${currentDir}`);
906
- while('/' !== currentDir){
915
+ while("/" !== currentDir){
907
916
  for (const marker of markers){
908
917
  const markerPath = (0, external_path_.resolve)(currentDir, marker);
909
918
  if (external_fs_.existsSync(markerPath)) {
@@ -942,17 +951,19 @@ var __webpack_modules__ = {
942
951
  const getStorageDir = ()=>{
943
952
  try {
944
953
  const cachedRoot = contextManager.getCachedData("project_root");
945
- if (cachedRoot && 'string' == typeof cachedRoot) return cachedRoot + "/.aico";
954
+ if (cachedRoot && "string" == typeof cachedRoot && cachedRoot.length > 1 && "/" !== cachedRoot) return cachedRoot + "/.aico";
946
955
  const detectedRoot = getProjectRoot();
947
- if (detectedRoot && 'string' == typeof detectedRoot) {
956
+ if (detectedRoot && "string" == typeof detectedRoot && detectedRoot.length > 1 && "/" !== detectedRoot) {
948
957
  contextManager.setCachedData("project_root", detectedRoot);
949
958
  return detectedRoot + "/.aico";
950
959
  }
951
960
  } catch (error) {
952
961
  console.warn("\u9879\u76EE\u6839\u76EE\u5F55\u68C0\u6D4B\u5931\u8D25\uFF0C\u4F7F\u7528\u5F53\u524D\u5DE5\u4F5C\u76EE\u5F55:", error);
953
962
  }
954
- const fallbackDir = process.cwd() + "/.aico";
955
- return fallbackDir;
963
+ const cwd = process.cwd();
964
+ if (cwd && cwd.length > 1 && "/" !== cwd) return cwd + "/.aico";
965
+ const homeDir = process.env.HOME || process.env.USERPROFILE || "/tmp";
966
+ return homeDir + "/.aico";
956
967
  };
957
968
  const SERVICE_CONFIG = {
958
969
  name: "\u667A\u80FD\u8F6F\u4EF6\u661F\u5DE5\u5382",
@@ -11953,16 +11964,27 @@ ${requirement_description}
11953
11964
  }
11954
11965
  }
11955
11966
  };
11967
+ function parseJsonSafe(input, defaultValue = []) {
11968
+ if (null == input) return defaultValue;
11969
+ if ("string" == typeof input) try {
11970
+ return JSON.parse(input);
11971
+ } catch {
11972
+ return defaultValue;
11973
+ }
11974
+ return input;
11975
+ }
11956
11976
  const saveServiceInterfacesTool = {
11957
11977
  name: "save_service_interfaces",
11958
- description: "\u4FDD\u5B58\u670D\u52A1\u63A5\u53E3\u6E05\u5355\u5230\u6570\u636E\u5E93\u3002\u6BCF\u6B21\u8C03\u7528\u4FDD\u5B58\u4E00\u4E2A\u670D\u52A1\uFF0C\u53EF\u591A\u6B21\u8C03\u7528\u3002",
11978
+ description: `\u{4FDD}\u{5B58}\u{4E00}\u{4E2A}\u{670D}\u{52A1}\u{7684}\u{63A5}\u{53E3}\u{6E05}\u{5355}\u{3002}\u{6BCF}\u{4E2A}\u{670D}\u{52A1}\u{8C03}\u{7528}\u{4E00}\u{6B21}\u{3002}
11979
+
11980
+ \u{3010}\u{91CD}\u{8981}\u{3011}functionDescription \u{5FC5}\u{987B}\u{8BE6}\u{7EC6}\u{63CF}\u{8FF0}\u{63A5}\u{53E3}\u{7684}\u{4E1A}\u{52A1}\u{529F}\u{80FD}\u{FF0C}\u{4E0D}\u{8981}\u{7528}\u{65B9}\u{6CD5}\u{540D}\u{4EE3}\u{66FF}\u{3002}`,
11959
11981
  inputSchema: {
11960
11982
  projectUuid: stringType().min(1).describe("\u9879\u76EEUUID"),
11961
- serviceType: stringType().describe("\u670D\u52A1\u7C7B\u578B\uFF0C\u5982 REST\u3001RPC"),
11962
- serviceEnglishName: stringType().describe("\u670D\u52A1\u82F1\u6587\u540D\u79F0/\u7C7B\u540D"),
11963
- serviceChineseName: stringType().describe("\u670D\u52A1\u4E2D\u6587\u540D\u79F0"),
11983
+ serviceType: stringType().describe("\u670D\u52A1\u7C7B\u578B\uFF1AREST\u3001RPC\u3001Dubbo"),
11984
+ serviceEnglishName: stringType().describe("\u670D\u52A1\u82F1\u6587\u540D\u79F0\uFF0C\u5982 UserController"),
11985
+ serviceChineseName: stringType().describe("\u670D\u52A1\u4E2D\u6587\u540D\u79F0\uFF0C\u5982 \u7528\u6237\u7BA1\u7406\u670D\u52A1"),
11964
11986
  serviceDescription: stringType().describe("\u670D\u52A1\u63CF\u8FF0"),
11965
- interfaces: stringType().describe("接口列表JSON字符串,格式: [{functionDescription, serviceName, methodName}]")
11987
+ interfaces: stringType().describe("接口JSON: [{functionDescription, methodName}]")
11966
11988
  },
11967
11989
  handler: async (args)=>{
11968
11990
  try {
@@ -11979,18 +12001,13 @@ ${requirement_description}
11979
12001
  ],
11980
12002
  isError: true
11981
12003
  };
11982
- let interfaceList = [];
11983
- try {
11984
- interfaceList = "string" == typeof interfaces ? JSON.parse(interfaces) : interfaces;
11985
- } catch {
11986
- interfaceList = [];
11987
- }
12004
+ const interfaceList = parseJsonSafe(interfaces, []);
11988
12005
  const serviceData = {
11989
12006
  serviceType: serviceType || "REST",
11990
12007
  serviceEnglishName,
11991
12008
  serviceChineseName: serviceChineseName || serviceEnglishName,
11992
12009
  serviceDescription: serviceDescription || "",
11993
- interfaceDetailList: (interfaceList || []).map((item, idx)=>({
12010
+ interfaceDetailList: interfaceList.map((item, idx)=>({
11994
12011
  id: String(idx + 1),
11995
12012
  functionDescription: item.functionDescription || item.desc || "",
11996
12013
  serviceName: item.serviceName || serviceEnglishName,
@@ -12015,7 +12032,7 @@ ${requirement_description}
12015
12032
  type: "text",
12016
12033
  text: JSON.stringify({
12017
12034
  success: true,
12018
- message: `\u{670D}\u{52A1}\u{63A5}\u{53E3} ${serviceEnglishName} \u{4FDD}\u{5B58}\u{6210}\u{529F}`,
12035
+ message: `\u{670D}\u{52A1} ${serviceEnglishName} \u{4FDD}\u{5B58}\u{6210}\u{529F}`,
12019
12036
  data: {
12020
12037
  interfaceCount: interfaceList.length
12021
12038
  }
@@ -12041,17 +12058,27 @@ ${requirement_description}
12041
12058
  };
12042
12059
  const saveInterfaceDesignTool = {
12043
12060
  name: "save_interface_design",
12044
- description: "\u4FDD\u5B58\u5355\u4E2A\u670D\u52A1\u7684\u63A5\u53E3\u8BBE\u8BA1\u8BE6\u60C5\u3002\u6BCF\u6B21\u8C03\u7528\u4FDD\u5B58\u4E00\u4E2A\u670D\u52A1\u7684\u8BBE\u8BA1\uFF0C\u53EF\u591A\u6B21\u8C03\u7528\u3002",
12061
+ description: `\u{4FDD}\u{5B58}\u{5355}\u{4E2A}\u{63A5}\u{53E3}\u{7684}\u{8BBE}\u{8BA1}\u{8BE6}\u{60C5}\u{3002}\u{6BCF}\u{4E2A}\u{63A5}\u{53E3}\u{8C03}\u{7528}\u{4E00}\u{6B21}\u{3002}
12062
+
12063
+ \u{3010}\u{91CD}\u{8981}\u{3011}\u{6839}\u{636E}\u{5B9E}\u{9645}\u{4EE3}\u{7801}\u{5206}\u{6790}\u{586B}\u{5199}\u{FF1A}
12064
+ - interfaceDesc: \u{5982} "GET /api/user/{id} - \u{83B7}\u{53D6}\u{7528}\u{6237}\u{4FE1}\u{606F}"
12065
+ - implementLogic: \u{8BE6}\u{7EC6}\u{6B65}\u{9AA4}\u{FF0C}\u{5982} "1. \u{6821}\u{9A8C}\u{53C2}\u{6570}\\n2. \u{67E5}\u{8BE2}\u{6570}\u{636E}\u{5E93}\\n3. \u{8FD4}\u{56DE}\u{7ED3}\u{679C}"`,
12045
12066
  inputSchema: {
12046
12067
  projectUuid: stringType().min(1).describe("\u9879\u76EEUUID"),
12047
12068
  serviceName: stringType().describe("\u670D\u52A1\u540D\u79F0"),
12048
12069
  serviceDesc: stringType().describe("\u670D\u52A1\u63CF\u8FF0"),
12049
- designs: stringType().describe("\u63A5\u53E3\u8BBE\u8BA1JSON\u5B57\u7B26\u4E32\uFF0C\u683C\u5F0F: [{functionName, interfaceDesc, className, methodName, parameterList, returnResultList, implementLogic}]")
12070
+ functionName: stringType().describe("\u529F\u80FD\u540D\u79F0"),
12071
+ interfaceDesc: stringType().describe("\u63A5\u53E3\u63CF\u8FF0\uFF0C\u542BHTTP\u65B9\u6CD5\u548C\u8DEF\u5F84"),
12072
+ className: stringType().describe("\u7C7B\u540D"),
12073
+ methodName: stringType().describe("\u65B9\u6CD5\u540D"),
12074
+ implementLogic: stringType().describe("\u5B9E\u73B0\u903B\u8F91\u6B65\u9AA4"),
12075
+ parameters: stringType().optional().describe("\u53C2\u6570JSON: [{type, name, required, desc}]"),
12076
+ returns: stringType().optional().describe("\u8FD4\u56DE\u503CJSON: [{type, name, desc}]")
12050
12077
  },
12051
12078
  handler: async (args)=>{
12052
12079
  try {
12053
- const { projectUuid, serviceName, serviceDesc, designs } = args;
12054
- if (!projectUuid || !serviceName) return {
12080
+ const { projectUuid, serviceName, serviceDesc, functionName, interfaceDesc, className, methodName, implementLogic, parameters, returns } = args;
12081
+ if (!projectUuid || !serviceName || !methodName) return {
12055
12082
  content: [
12056
12083
  {
12057
12084
  type: "text",
@@ -12063,44 +12090,58 @@ ${requirement_description}
12063
12090
  ],
12064
12091
  isError: true
12065
12092
  };
12066
- let designList = [];
12067
- try {
12068
- designList = "string" == typeof designs ? JSON.parse(designs) : designs;
12069
- } catch {
12070
- designList = [];
12071
- }
12072
- const designData = {
12073
- serviceName,
12074
- serviceDesc: serviceDesc || "",
12075
- interfaceDesignDetailList: (designList || []).map((item)=>({
12076
- functionName: item.functionName || "",
12077
- interfaceDesc: item.interfaceDesc || "",
12078
- className: item.className || "",
12079
- methodName: item.methodName || "",
12080
- parameterList: (item.parameterList || []).map((p, idx)=>({
12081
- id: String(idx + 1),
12082
- propertyType: p.propertyType || p.type || "",
12083
- propertyName: p.propertyName || p.name || "",
12084
- required: p.required || "\u5426",
12085
- propertyDesc: p.propertyDesc || p.desc || ""
12086
- })),
12087
- returnResultList: (item.returnResultList || []).map((r, idx)=>({
12088
- id: String(idx + 1),
12089
- propertyType: r.propertyType || r.type || "",
12090
- propertyName: r.propertyName || r.name || "",
12091
- propertyDesc: r.propertyDesc || r.desc || ""
12092
- })),
12093
- implementLogic: item.implementLogic || ""
12094
- }))
12095
- };
12096
- await tech_spec_storage.F.createTechSpecChapter({
12093
+ const paramList = parseJsonSafe(parameters, []);
12094
+ const returnList = parseJsonSafe(returns, []);
12095
+ const designDetail = {
12096
+ functionName: functionName || methodName,
12097
+ interfaceDesc: interfaceDesc || "",
12098
+ className: className || serviceName,
12099
+ methodName,
12100
+ parameterList: paramList.map((p, idx)=>({
12101
+ id: String(idx + 1),
12102
+ propertyType: p.type || p.propertyType || "",
12103
+ propertyName: p.name || p.propertyName || "",
12104
+ required: p.required || "\u5426",
12105
+ propertyDesc: p.desc || p.propertyDesc || ""
12106
+ })),
12107
+ returnResultList: returnList.map((r, idx)=>({
12108
+ id: String(idx + 1),
12109
+ propertyType: r.type || r.propertyType || "",
12110
+ propertyName: r.name || r.propertyName || "",
12111
+ propertyDesc: r.desc || r.propertyDesc || ""
12112
+ })),
12113
+ implementLogic: implementLogic || ""
12114
+ };
12115
+ const existingChapters = await tech_spec_storage.F.getTechSpecChaptersByType(projectUuid, "interface_design");
12116
+ const serviceChapter = existingChapters.find((c)=>c.moduleSource === serviceName);
12117
+ if (serviceChapter) {
12118
+ const content = parseJsonSafe(serviceChapter.content, []);
12119
+ const serviceData = content[0] || {
12120
+ serviceName,
12121
+ serviceDesc,
12122
+ interfaceDesignDetailList: []
12123
+ };
12124
+ serviceData.interfaceDesignDetailList = serviceData.interfaceDesignDetailList || [];
12125
+ serviceData.interfaceDesignDetailList.push(designDetail);
12126
+ await tech_spec_storage.F.updateTechSpecChapter(serviceChapter.uuid, {
12127
+ content: JSON.stringify([
12128
+ serviceData
12129
+ ])
12130
+ });
12131
+ } else await tech_spec_storage.F.createTechSpecChapter({
12097
12132
  uuid: (0, external_crypto_namespaceObject.randomUUID)(),
12098
12133
  projectUuid,
12099
12134
  chapterType: "interface_design",
12100
12135
  chapterTitle: serviceName,
12101
12136
  chapterOrder: 3,
12102
12137
  content: JSON.stringify([
12103
- designData
12138
+ {
12139
+ serviceName,
12140
+ serviceDesc: serviceDesc || "",
12141
+ interfaceDesignDetailList: [
12142
+ designDetail
12143
+ ]
12144
+ }
12104
12145
  ]),
12105
12146
  moduleSource: serviceName,
12106
12147
  fileCount: 1
@@ -12111,10 +12152,7 @@ ${requirement_description}
12111
12152
  type: "text",
12112
12153
  text: JSON.stringify({
12113
12154
  success: true,
12114
- message: `\u{63A5}\u{53E3}\u{8BBE}\u{8BA1} ${serviceName} \u{4FDD}\u{5B58}\u{6210}\u{529F}`,
12115
- data: {
12116
- designCount: designList.length
12117
- }
12155
+ message: `\u{63A5}\u{53E3} ${serviceName}.${methodName} \u{4FDD}\u{5B58}\u{6210}\u{529F}`
12118
12156
  })
12119
12157
  }
12120
12158
  ]
@@ -12137,13 +12175,13 @@ ${requirement_description}
12137
12175
  };
12138
12176
  const saveDatabaseTableTool = {
12139
12177
  name: "save_database_table",
12140
- description: "\u4FDD\u5B58\u5355\u4E2A\u6570\u636E\u5E93\u8868\u7ED3\u6784\u3002\u6BCF\u6B21\u8C03\u7528\u4FDD\u5B58\u4E00\u4E2A\u8868\uFF0C\u53EF\u591A\u6B21\u8C03\u7528\u3002",
12178
+ description: "\u4FDD\u5B58\u5355\u4E2A\u6570\u636E\u5E93\u8868\u7ED3\u6784\u3002\u6BCF\u4E2A\u8868\u8C03\u7528\u4E00\u6B21\u3002",
12141
12179
  inputSchema: {
12142
12180
  projectUuid: stringType().min(1).describe("\u9879\u76EEUUID"),
12143
12181
  tableName: stringType().describe("\u8868\u540D\u79F0"),
12144
- entityName: stringType().describe("\u5BF9\u5E94\u5B9E\u4F53\u540D\u79F0"),
12182
+ entityName: stringType().describe("\u5B9E\u4F53\u540D\u79F0"),
12145
12183
  tableDescription: stringType().describe("\u8868\u63CF\u8FF0"),
12146
- fields: stringType().describe("字段列表JSON字符串,格式: [{fieldName, fieldType, fieldDescription, fieldLength}]")
12184
+ fields: stringType().describe("\u5B57\u6BB5JSON: [{name, type, desc, length}]")
12147
12185
  },
12148
12186
  handler: async (args)=>{
12149
12187
  try {
@@ -12160,24 +12198,7 @@ ${requirement_description}
12160
12198
  ],
12161
12199
  isError: true
12162
12200
  };
12163
- let fieldList = [];
12164
- try {
12165
- fieldList = "string" == typeof fields ? JSON.parse(fields) : fields;
12166
- } catch {
12167
- fieldList = [];
12168
- }
12169
- const tableData = {
12170
- tableName,
12171
- entityName: entityName || tableName,
12172
- tableDescription: tableDescription || "",
12173
- tableDetailList: (fieldList || []).map((f, idx)=>({
12174
- id: String(idx + 1),
12175
- fieldName: f.fieldName || f.name || "",
12176
- fieldType: f.fieldType || f.type || "",
12177
- fieldDescription: f.fieldDescription || f.desc || "",
12178
- fieldLength: f.fieldLength || "-"
12179
- }))
12180
- };
12201
+ const fieldList = parseJsonSafe(fields, []);
12181
12202
  await tech_spec_storage.F.createTechSpecChapter({
12182
12203
  uuid: (0, external_crypto_namespaceObject.randomUUID)(),
12183
12204
  projectUuid,
@@ -12185,7 +12206,18 @@ ${requirement_description}
12185
12206
  chapterTitle: tableName,
12186
12207
  chapterOrder: 4,
12187
12208
  content: JSON.stringify([
12188
- tableData
12209
+ {
12210
+ tableName,
12211
+ entityName: entityName || tableName,
12212
+ tableDescription: tableDescription || "",
12213
+ tableDetailList: fieldList.map((f, idx)=>({
12214
+ id: String(idx + 1),
12215
+ fieldName: f.name || f.fieldName || "",
12216
+ fieldType: f.type || f.fieldType || "",
12217
+ fieldDescription: f.desc || f.fieldDescription || "",
12218
+ fieldLength: f.length || f.fieldLength || "-"
12219
+ }))
12220
+ }
12189
12221
  ]),
12190
12222
  moduleSource: tableName,
12191
12223
  fileCount: 1
@@ -12196,7 +12228,7 @@ ${requirement_description}
12196
12228
  type: "text",
12197
12229
  text: JSON.stringify({
12198
12230
  success: true,
12199
- message: `\u{6570}\u{636E}\u{5E93}\u{8868} ${tableName} \u{4FDD}\u{5B58}\u{6210}\u{529F}`,
12231
+ message: `\u{8868} ${tableName} \u{4FDD}\u{5B58}\u{6210}\u{529F}`,
12200
12232
  data: {
12201
12233
  fieldCount: fieldList.length
12202
12234
  }
@@ -12236,7 +12268,7 @@ ${requirement_description}
12236
12268
  type: "text",
12237
12269
  text: JSON.stringify({
12238
12270
  success: false,
12239
- message: "\u7F3A\u5C11\u5FC5\u586B\u53C2\u6570\uFF1AprojectUuid"
12271
+ message: "\u7F3A\u5C11projectUuid"
12240
12272
  })
12241
12273
  }
12242
12274
  ],
@@ -12296,7 +12328,7 @@ ${requirement_description}
12296
12328
  type: "text",
12297
12329
  text: JSON.stringify({
12298
12330
  success: false,
12299
- message: "\u7F3A\u5C11\u5FC5\u586B\u53C2\u6570\uFF1AprojectUuid"
12331
+ message: "\u7F3A\u5C11projectUuid"
12300
12332
  })
12301
12333
  }
12302
12334
  ],
@@ -12342,11 +12374,11 @@ ${requirement_description}
12342
12374
  };
12343
12375
  const saveAppendixTool = {
12344
12376
  name: "save_appendix",
12345
- description: "\u4FDD\u5B58\u9644\u5F55\u5185\u5BB9\uFF08\u5F02\u5E38\u7801\u8868\u3001\u7801\u503C\u8868\uFF09\u3002",
12377
+ description: "\u4FDD\u5B58\u9644\u5F55\uFF08\u5F02\u5E38\u7801\u8868\u3001\u7801\u503C\u8868\uFF09\u3002",
12346
12378
  inputSchema: {
12347
12379
  projectUuid: stringType().min(1).describe("\u9879\u76EEUUID"),
12348
- exceptionCodes: stringType().optional().describe("异常码列表JSON字符串,格式: [{exceptionCode, exceptionDescription}]"),
12349
- codeValues: stringType().optional().describe("\u7801\u503C\u5217\u8868JSON\u5B57\u7B26\u4E32\uFF0C\u683C\u5F0F: [{propertyName, codeValue}]")
12380
+ exceptionCodes: stringType().optional().describe("\u5F02\u5E38\u7801JSON: [{code, desc}]"),
12381
+ codeValues: stringType().optional().describe("\u7801\u503CJSON: [{name, value}]")
12350
12382
  },
12351
12383
  handler: async (args)=>{
12352
12384
  try {
@@ -12357,18 +12389,14 @@ ${requirement_description}
12357
12389
  type: "text",
12358
12390
  text: JSON.stringify({
12359
12391
  success: false,
12360
- message: "\u7F3A\u5C11\u5FC5\u586B\u53C2\u6570\uFF1AprojectUuid"
12392
+ message: "\u7F3A\u5C11projectUuid"
12361
12393
  })
12362
12394
  }
12363
12395
  ],
12364
12396
  isError: true
12365
12397
  };
12366
- let exceptionCodeList = [];
12367
- let codeValueList = [];
12368
- try {
12369
- if (exceptionCodes) exceptionCodeList = "string" == typeof exceptionCodes ? JSON.parse(exceptionCodes) : exceptionCodes;
12370
- if (codeValues) codeValueList = "string" == typeof codeValues ? JSON.parse(codeValues) : codeValues;
12371
- } catch {}
12398
+ const exceptionCodeList = parseJsonSafe(exceptionCodes, []);
12399
+ const codeValueList = parseJsonSafe(codeValues, []);
12372
12400
  await tech_spec_storage.F.createTechSpecChapter({
12373
12401
  uuid: (0, external_crypto_namespaceObject.randomUUID)(),
12374
12402
  projectUuid,
@@ -12378,13 +12406,13 @@ ${requirement_description}
12378
12406
  content: JSON.stringify({
12379
12407
  exceptionCodeList: exceptionCodeList.map((e, idx)=>({
12380
12408
  id: String(idx + 1),
12381
- exceptionCode: e.exceptionCode || e.code || "",
12382
- exceptionDescription: e.exceptionDescription || e.desc || ""
12409
+ exceptionCode: e.code || e.exceptionCode || "",
12410
+ exceptionDescription: e.desc || e.exceptionDescription || ""
12383
12411
  })),
12384
12412
  codeValueList: codeValueList.map((c, idx)=>({
12385
12413
  id: String(idx + 1),
12386
- propertyName: c.propertyName || c.name || "",
12387
- codeValue: c.codeValue || c.value || ""
12414
+ propertyName: c.name || c.propertyName || "",
12415
+ codeValue: c.value || c.codeValue || ""
12388
12416
  }))
12389
12417
  }),
12390
12418
  fileCount: 0
@@ -12395,11 +12423,7 @@ ${requirement_description}
12395
12423
  type: "text",
12396
12424
  text: JSON.stringify({
12397
12425
  success: true,
12398
- message: "\u9644\u5F55\u4FDD\u5B58\u6210\u529F",
12399
- data: {
12400
- exceptionCodeCount: exceptionCodeList.length,
12401
- codeValueCount: codeValueList.length
12402
- }
12426
+ message: "\u9644\u5F55\u4FDD\u5B58\u6210\u529F"
12403
12427
  })
12404
12428
  }
12405
12429
  ]
@@ -28,7 +28,7 @@ export declare const saveServiceInterfacesTool: {
28
28
  }>;
29
29
  };
30
30
  /**
31
- * 保存接口设计详情
31
+ * 保存接口设计详情(每次一个接口)
32
32
  */
33
33
  export declare const saveInterfaceDesignTool: {
34
34
  name: string;
@@ -37,7 +37,13 @@ export declare const saveInterfaceDesignTool: {
37
37
  projectUuid: z.ZodString;
38
38
  serviceName: z.ZodString;
39
39
  serviceDesc: z.ZodString;
40
- designs: z.ZodString;
40
+ functionName: z.ZodString;
41
+ interfaceDesc: z.ZodString;
42
+ className: z.ZodString;
43
+ methodName: z.ZodString;
44
+ implementLogic: z.ZodString;
45
+ parameters: z.ZodOptional<z.ZodString>;
46
+ returns: z.ZodOptional<z.ZodString>;
41
47
  };
42
48
  handler: (args: any) => Promise<{
43
49
  content: {
@@ -1 +1 @@
1
- {"version":3,"file":"chapter-save-tools.d.ts","sourceRoot":"","sources":["../../../../src/services/tech-spec-generator/tools/chapter-save-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;oBAed,GAAG;;;;;;;;;;;;;CAuF1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;oBAcZ,GAAG;;;;;;;;;;;;;CA8F1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;oBAcV,GAAG;;;;;;;;;;;;;CA8E1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;oBAOT,GAAG;;;;;;;;;;;;;CAuD1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;;oBAOd,GAAG;;;;;;;;;;;;;CAuD1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;oBAgBL,GAAG;;;;;;;;;;;;;CA0F1B,CAAC"}
1
+ {"version":3,"file":"chapter-save-tools.d.ts","sourceRoot":"","sources":["../../../../src/services/tech-spec-generator/tools/chapter-save-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAmBxB;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;oBAed,GAAG;;;;;;;;;;;;;CAyE1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;oBAsBZ,GAAG;;;;;;;;;;;;;CAoH1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;oBAUV,GAAG;;;;;;;;;;;;;CAmE1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;oBAOT,GAAG;;;;;;;;;;;;;CAmD1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;;oBAOd,GAAG;;;;;;;;;;;;;CAmD1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;oBAWL,GAAG;;;;;;;;;;;;;CA8D1B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAyDA,eAAO,MAAM,cAAc,QAAO,MAKjC,CAAC;AAGF,eAAO,MAAM,YAAY,QAOrB,CAAC;AAEL;;;GAGG;AACH,eAAO,MAAM,qBAAqB,QAAO,IAexC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,QAAO,MAqBhC,CAAC;AAEF,eAAO,MAAM,aAAa,QAAO,MAOhC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc;;;;CAI1B,CAAA"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAiEA,eAAO,MAAM,cAAc,QAAO,MAKjC,CAAC;AAGF,eAAO,MAAM,YAAY,QAOrB,CAAC;AAEL;;;GAGG;AACH,eAAO,MAAM,qBAAqB,QAAO,IAexC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,QAAO,MAqChC,CAAC;AAEF,eAAO,MAAM,aAAa,QAAO,MAOhC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc;;;;CAI1B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "intention-coding",
3
- "version": "0.6.7",
3
+ "version": "0.6.8",
4
4
  "description": "软件工程化的需求分析,功能设计,代码编写,测试运行和发布部署",
5
5
  "type": "module",
6
6
  "packageManager": "pnpm@10.11.0",