ide-assi 0.448.0 → 0.450.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -202120,7 +202120,7 @@ class IdeAi
202120
202120
  if (!el) throw new Error("관련 메뉴를 찾을 수 없습니다.");
202121
202121
 
202122
202122
  const href = el.getAttribute("href");
202123
- const title = el.getAttribute("title");
202123
+ el.getAttribute("title");
202124
202124
 
202125
202125
  const srcPath = this.#getSourcePath(href);
202126
202126
  console.log(srcPath);
@@ -202139,7 +202139,7 @@ class IdeAi
202139
202139
  * "javascriptPullPath": "ide-assi-fe-vite-react-js/src/views/tmpla/doc-manager.jsx"
202140
202140
  * }
202141
202141
  */
202142
- const src = await api.post("/api/source/read", srcPath);
202142
+ await api.post("/api/source/read", srcPath);
202143
202143
  //console.log(src);
202144
202144
 
202145
202145
  /**
@@ -202155,83 +202155,52 @@ class IdeAi
202155
202155
  title: elem.getAttribute("title"),
202156
202156
  })*/
202157
202157
 
202158
- const where = await this.#where(`${title}에서 ${userPrompt}`, [{url: href, title: title}], await this.#getTableList());
202159
- this.#parent.addMessage("대상 메뉴와 테이블을 찾았습니다.");
202160
-
202161
- console.log(where);
202162
-
202163
- //const srcPath = this.#getSourcePath(where.menu.url);
202164
-
202165
- console.log(srcPath);
202166
-
202167
- const columnInfo = await this.#getColumnInfo(where.table);
202168
-
202169
- let mybatisXmlSource;
202158
+ const initialProgressData = [
202159
+ { id: '1', message: '메뉴와 테이블을 검색중입니다', completedMessage: '관련 메뉴와 테이블을 찾았습니다.' }
202160
+ ];
202170
202161
  if (apply.mybatis) {
202171
- mybatisXmlSource = await this.#generateTmplFile("/prompts/meta/U.BuildMyBatisMapper.txt", "mybatis.xml", {
202172
- userPrompt: userPrompt,
202173
- originSrc: src.mybatis,
202174
- resultType: srcPath.resultType,
202175
- namespace: srcPath.namespace,
202176
- tableDefinitions: columnInfo,
202177
- });
202178
- this.#parent.addMessage("MyBatis 소스파일을 생성했습니다.");
202162
+ initialProgressData.push({ id: '2', message: 'MyBatis 소스파일을 생성중입니다', completedMessage: 'MyBatis 소스파일을 생성했습니다.' });
202179
202163
  }
202180
- else {
202181
- mybatisXmlSource = src.mybatis;
202182
- }
202183
-
202184
- let serviceSrc;
202185
202164
  if (apply.service) {
202186
- serviceSrc = await this.#generateTmplFile("/prompts/meta/U.BuildService.txt", "service.java", {
202187
- userPrompt: userPrompt,
202188
- originSrc: src.service,
202189
- baseClass: srcPath.baseClass,
202190
- myBatisPath: srcPath.mybatis,
202191
- namespace: srcPath.namespace,
202192
- package: srcPath.package + ".service",
202193
- mybatisXmlSource: mybatisXmlSource,
202194
- });
202195
- this.#parent.addMessage("Java(Service) 소스파일을 생성했습니다.");
202196
- }
202197
- else {
202198
- serviceSrc = src.service;
202165
+ initialProgressData.push({ id: '3', message: 'Java(Service) 소스파일을 생성중입니다', completedMessage: 'Java(Service) 소스파일을 생성했습니다.' });
202199
202166
  }
202200
202167
 
202201
- let controllerSrc;
202202
202168
  if (apply.controller) {
202203
- controllerSrc = await this.#generateTmplFile("/prompts/meta/U.BuildController.txt", "controller.java", {
202204
- userPrompt: userPrompt,
202205
- originSrc: src.controller,
202206
- baseClass: srcPath.baseClass,
202207
- menuUrl: where.menu.url,
202208
- package: srcPath.package + ".controller",
202209
- serviceSource: serviceSrc,
202210
- });
202211
- this.#parent.addMessage("Java(Controller) 소스파일을 생성했습니다.");
202212
- }
202213
- else {
202214
- controllerSrc = src.controller;
202169
+ initialProgressData.push({ id: '4', message: 'Java(Controller) 소스파일을 생성중입니다', completedMessage: 'Java(Controller) 소스파일을 생성했습니다.' });
202215
202170
  }
202171
+
202216
202172
  if (apply.javascript) {
202217
- await this.#generateTmplFile("/prompts/meta/U.BuildReactJsx.txt", "react.jsx", {
202218
- userPrompt: userPrompt,
202219
- mybatis: srcPath.mybatis,
202220
- originSrc: src.javascript,
202221
- menuUrl: where.menu.url,
202222
- menuName: where.menu.name,
202223
- baseClass: srcPath.baseClass,
202224
- controllerSource: controllerSrc,
202225
- tableDefinitions: columnInfo,
202226
- });
202227
- this.#parent.addMessage("Jsx(React) 소스파일을 생성했습니다.");
202228
- }
202229
- else {
202230
- src.javascript;
202173
+ initialProgressData.push({ id: '5', message: 'Jsx(React) 소스파일을 생성중입니다', completedMessage: 'Jsx(React) 소스파일을 생성했습니다.' });
202231
202174
  }
202232
- //console.log(src.javascript);
202233
202175
 
202234
- await this.#generateRealFile(srcPath, apply);
202176
+ const elAiChat = this.#parent.shadowRoot.querySelector("nx-ai-chat");
202177
+ const progressMessageInstance = elAiChat.addProgress(initialProgressData);
202178
+
202179
+
202180
+ // 2. 시간이 지난 후, 특정 단계의 완료를 알림
202181
+ // 예를 들어, 3초 후에 분석 완료
202182
+ setTimeout(() => {
202183
+ if (progressMessageInstance) {
202184
+ progressMessageInstance.updateProgress('1', 'completed');
202185
+ console.log("분석 완료 메시지 업데이트");
202186
+ }
202187
+ }, 3000);
202188
+
202189
+ // 예를 들어, 6초 후에 설계 완료
202190
+ setTimeout(() => {
202191
+ if (progressMessageInstance) {
202192
+ progressMessageInstance.updateProgress('2', 'completed');
202193
+ console.log("설계 완료 메시지 업데이트");
202194
+ }
202195
+ }, 6000);
202196
+
202197
+ // 모든 단계가 완료된 후, 일반 AI 메시지 추가 (선택 사항)
202198
+ setTimeout(() => {
202199
+ elAiChat.add("ai", "모든 작업이 성공적으로 완료되었습니다!", [], []);
202200
+ }, 9000);
202201
+
202202
+
202203
+ return;
202235
202204
  };
202236
202205
 
202237
202206
  generateSourceClient = async (userPrompt, apply) => {
@@ -202488,6 +202457,7 @@ class IdeAssi extends HTMLElement
202488
202457
  const elAiChat = this.shadowRoot.querySelector("nx-ai-chat");
202489
202458
 
202490
202459
 
202460
+ /**
202491
202461
  // 1. 초기 진행 상태 메시지 추가
202492
202462
  const initialProgressData = [
202493
202463
  { id: 'analysis', message: '분석중입니다.', completedMessage: '분석이 완료되었습니다.' },
@@ -202523,6 +202493,22 @@ class IdeAssi extends HTMLElement
202523
202493
  this.#ing = false;
202524
202494
 
202525
202495
  return;
202496
+ */
202497
+
202498
+
202499
+ elAiChat.add("me", userPrompt);
202500
+ elAiChat.add("ing", "...");
202501
+
202502
+
202503
+ try {
202504
+ const r = await this.#ai.generateSourceClient(userPrompt, apply);
202505
+ elAiChat.add("ai", r);
202506
+ } catch (error) {
202507
+ console.error(error);
202508
+ elAiChat.add("ai", String(error).replace("Error:", ""));
202509
+ }
202510
+
202511
+ this.#ing = false;
202526
202512
  }
202527
202513
 
202528
202514
  #toggleCollapseHandler = () => {
@@ -202116,7 +202116,7 @@ class IdeAi
202116
202116
  if (!el) throw new Error("관련 메뉴를 찾을 수 없습니다.");
202117
202117
 
202118
202118
  const href = el.getAttribute("href");
202119
- const title = el.getAttribute("title");
202119
+ el.getAttribute("title");
202120
202120
 
202121
202121
  const srcPath = this.#getSourcePath(href);
202122
202122
  console.log(srcPath);
@@ -202135,7 +202135,7 @@ class IdeAi
202135
202135
  * "javascriptPullPath": "ide-assi-fe-vite-react-js/src/views/tmpla/doc-manager.jsx"
202136
202136
  * }
202137
202137
  */
202138
- const src = await api.post("/api/source/read", srcPath);
202138
+ await api.post("/api/source/read", srcPath);
202139
202139
  //console.log(src);
202140
202140
 
202141
202141
  /**
@@ -202151,83 +202151,52 @@ class IdeAi
202151
202151
  title: elem.getAttribute("title"),
202152
202152
  })*/
202153
202153
 
202154
- const where = await this.#where(`${title}에서 ${userPrompt}`, [{url: href, title: title}], await this.#getTableList());
202155
- this.#parent.addMessage("대상 메뉴와 테이블을 찾았습니다.");
202156
-
202157
- console.log(where);
202158
-
202159
- //const srcPath = this.#getSourcePath(where.menu.url);
202160
-
202161
- console.log(srcPath);
202162
-
202163
- const columnInfo = await this.#getColumnInfo(where.table);
202164
-
202165
- let mybatisXmlSource;
202154
+ const initialProgressData = [
202155
+ { id: '1', message: '메뉴와 테이블을 검색중입니다', completedMessage: '관련 메뉴와 테이블을 찾았습니다.' }
202156
+ ];
202166
202157
  if (apply.mybatis) {
202167
- mybatisXmlSource = await this.#generateTmplFile("/prompts/meta/U.BuildMyBatisMapper.txt", "mybatis.xml", {
202168
- userPrompt: userPrompt,
202169
- originSrc: src.mybatis,
202170
- resultType: srcPath.resultType,
202171
- namespace: srcPath.namespace,
202172
- tableDefinitions: columnInfo,
202173
- });
202174
- this.#parent.addMessage("MyBatis 소스파일을 생성했습니다.");
202158
+ initialProgressData.push({ id: '2', message: 'MyBatis 소스파일을 생성중입니다', completedMessage: 'MyBatis 소스파일을 생성했습니다.' });
202175
202159
  }
202176
- else {
202177
- mybatisXmlSource = src.mybatis;
202178
- }
202179
-
202180
- let serviceSrc;
202181
202160
  if (apply.service) {
202182
- serviceSrc = await this.#generateTmplFile("/prompts/meta/U.BuildService.txt", "service.java", {
202183
- userPrompt: userPrompt,
202184
- originSrc: src.service,
202185
- baseClass: srcPath.baseClass,
202186
- myBatisPath: srcPath.mybatis,
202187
- namespace: srcPath.namespace,
202188
- package: srcPath.package + ".service",
202189
- mybatisXmlSource: mybatisXmlSource,
202190
- });
202191
- this.#parent.addMessage("Java(Service) 소스파일을 생성했습니다.");
202192
- }
202193
- else {
202194
- serviceSrc = src.service;
202161
+ initialProgressData.push({ id: '3', message: 'Java(Service) 소스파일을 생성중입니다', completedMessage: 'Java(Service) 소스파일을 생성했습니다.' });
202195
202162
  }
202196
202163
 
202197
- let controllerSrc;
202198
202164
  if (apply.controller) {
202199
- controllerSrc = await this.#generateTmplFile("/prompts/meta/U.BuildController.txt", "controller.java", {
202200
- userPrompt: userPrompt,
202201
- originSrc: src.controller,
202202
- baseClass: srcPath.baseClass,
202203
- menuUrl: where.menu.url,
202204
- package: srcPath.package + ".controller",
202205
- serviceSource: serviceSrc,
202206
- });
202207
- this.#parent.addMessage("Java(Controller) 소스파일을 생성했습니다.");
202208
- }
202209
- else {
202210
- controllerSrc = src.controller;
202165
+ initialProgressData.push({ id: '4', message: 'Java(Controller) 소스파일을 생성중입니다', completedMessage: 'Java(Controller) 소스파일을 생성했습니다.' });
202211
202166
  }
202167
+
202212
202168
  if (apply.javascript) {
202213
- await this.#generateTmplFile("/prompts/meta/U.BuildReactJsx.txt", "react.jsx", {
202214
- userPrompt: userPrompt,
202215
- mybatis: srcPath.mybatis,
202216
- originSrc: src.javascript,
202217
- menuUrl: where.menu.url,
202218
- menuName: where.menu.name,
202219
- baseClass: srcPath.baseClass,
202220
- controllerSource: controllerSrc,
202221
- tableDefinitions: columnInfo,
202222
- });
202223
- this.#parent.addMessage("Jsx(React) 소스파일을 생성했습니다.");
202224
- }
202225
- else {
202226
- src.javascript;
202169
+ initialProgressData.push({ id: '5', message: 'Jsx(React) 소스파일을 생성중입니다', completedMessage: 'Jsx(React) 소스파일을 생성했습니다.' });
202227
202170
  }
202228
- //console.log(src.javascript);
202229
202171
 
202230
- await this.#generateRealFile(srcPath, apply);
202172
+ const elAiChat = this.#parent.shadowRoot.querySelector("nx-ai-chat");
202173
+ const progressMessageInstance = elAiChat.addProgress(initialProgressData);
202174
+
202175
+
202176
+ // 2. 시간이 지난 후, 특정 단계의 완료를 알림
202177
+ // 예를 들어, 3초 후에 분석 완료
202178
+ setTimeout(() => {
202179
+ if (progressMessageInstance) {
202180
+ progressMessageInstance.updateProgress('1', 'completed');
202181
+ console.log("분석 완료 메시지 업데이트");
202182
+ }
202183
+ }, 3000);
202184
+
202185
+ // 예를 들어, 6초 후에 설계 완료
202186
+ setTimeout(() => {
202187
+ if (progressMessageInstance) {
202188
+ progressMessageInstance.updateProgress('2', 'completed');
202189
+ console.log("설계 완료 메시지 업데이트");
202190
+ }
202191
+ }, 6000);
202192
+
202193
+ // 모든 단계가 완료된 후, 일반 AI 메시지 추가 (선택 사항)
202194
+ setTimeout(() => {
202195
+ elAiChat.add("ai", "모든 작업이 성공적으로 완료되었습니다!", [], []);
202196
+ }, 9000);
202197
+
202198
+
202199
+ return;
202231
202200
  };
202232
202201
 
202233
202202
  generateSourceClient = async (userPrompt, apply) => {
@@ -202484,6 +202453,7 @@ class IdeAssi extends HTMLElement
202484
202453
  const elAiChat = this.shadowRoot.querySelector("nx-ai-chat");
202485
202454
 
202486
202455
 
202456
+ /**
202487
202457
  // 1. 초기 진행 상태 메시지 추가
202488
202458
  const initialProgressData = [
202489
202459
  { id: 'analysis', message: '분석중입니다.', completedMessage: '분석이 완료되었습니다.' },
@@ -202519,6 +202489,22 @@ class IdeAssi extends HTMLElement
202519
202489
  this.#ing = false;
202520
202490
 
202521
202491
  return;
202492
+ */
202493
+
202494
+
202495
+ elAiChat.add("me", userPrompt);
202496
+ elAiChat.add("ing", "...");
202497
+
202498
+
202499
+ try {
202500
+ const r = await this.#ai.generateSourceClient(userPrompt, apply);
202501
+ elAiChat.add("ai", r);
202502
+ } catch (error) {
202503
+ console.error(error);
202504
+ elAiChat.add("ai", String(error).replace("Error:", ""));
202505
+ }
202506
+
202507
+ this.#ing = false;
202522
202508
  }
202523
202509
 
202524
202510
  #toggleCollapseHandler = () => {
@@ -431,6 +431,56 @@ export class IdeAi
431
431
  title: elem.getAttribute("title"),
432
432
  })*/
433
433
 
434
+ const initialProgressData = [
435
+ { id: '1', message: '메뉴와 테이블을 검색중입니다', completedMessage: '관련 메뉴와 테이블을 찾았습니다.' }
436
+ ];
437
+ if (apply.mybatis) {
438
+ initialProgressData.push({ id: '2', message: 'MyBatis 소스파일을 생성중입니다', completedMessage: 'MyBatis 소스파일을 생성했습니다.' });
439
+ }
440
+ if (apply.service) {
441
+ initialProgressData.push({ id: '3', message: 'Java(Service) 소스파일을 생성중입니다', completedMessage: 'Java(Service) 소스파일을 생성했습니다.' });
442
+ }
443
+
444
+ if (apply.controller) {
445
+ initialProgressData.push({ id: '4', message: 'Java(Controller) 소스파일을 생성중입니다', completedMessage: 'Java(Controller) 소스파일을 생성했습니다.' });
446
+ }
447
+
448
+ if (apply.javascript) {
449
+ initialProgressData.push({ id: '5', message: 'Jsx(React) 소스파일을 생성중입니다', completedMessage: 'Jsx(React) 소스파일을 생성했습니다.' });
450
+ }
451
+
452
+ const elAiChat = this.#parent.shadowRoot.querySelector("nx-ai-chat");
453
+ const progressMessageInstance = elAiChat.addProgress(initialProgressData);
454
+
455
+
456
+ // 2. 시간이 지난 후, 특정 단계의 완료를 알림
457
+ // 예를 들어, 3초 후에 분석 완료
458
+ setTimeout(() => {
459
+ if (progressMessageInstance) {
460
+ progressMessageInstance.updateProgress('1', 'completed');
461
+ console.log("분석 완료 메시지 업데이트");
462
+ }
463
+ }, 3000);
464
+
465
+ // 예를 들어, 6초 후에 설계 완료
466
+ setTimeout(() => {
467
+ if (progressMessageInstance) {
468
+ progressMessageInstance.updateProgress('2', 'completed');
469
+ console.log("설계 완료 메시지 업데이트");
470
+ }
471
+ }, 6000);
472
+
473
+ // 모든 단계가 완료된 후, 일반 AI 메시지 추가 (선택 사항)
474
+ setTimeout(() => {
475
+ elAiChat.add("ai", "모든 작업이 성공적으로 완료되었습니다!", [], []);
476
+ }, 9000);
477
+
478
+
479
+ return;
480
+
481
+
482
+
483
+
434
484
  const where = await this.#where(`${title}에서 ${userPrompt}`, [{url: href, title: title}], await this.#getTableList());
435
485
  this.#parent.addMessage("대상 메뉴와 테이블을 찾았습니다.")
436
486
 
@@ -533,6 +533,7 @@ export default DocManager;
533
533
  const elAiChat = this.shadowRoot.querySelector("nx-ai-chat");
534
534
 
535
535
 
536
+ /**
536
537
  // 1. 초기 진행 상태 메시지 추가
537
538
  const initialProgressData = [
538
539
  { id: 'analysis', message: '분석중입니다.', completedMessage: '분석이 완료되었습니다.' },
@@ -568,6 +569,7 @@ export default DocManager;
568
569
  this.#ing = false;
569
570
 
570
571
  return;
572
+ */
571
573
 
572
574
 
573
575
  elAiChat.add("me", userPrompt);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ide-assi",
3
3
  "type": "module",
4
- "version": "0.448.0",
4
+ "version": "0.450.0",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "exports": {
@@ -431,6 +431,56 @@ export class IdeAi
431
431
  title: elem.getAttribute("title"),
432
432
  })*/
433
433
 
434
+ const initialProgressData = [
435
+ { id: '1', message: '메뉴와 테이블을 검색중입니다', completedMessage: '관련 메뉴와 테이블을 찾았습니다.' }
436
+ ];
437
+ if (apply.mybatis) {
438
+ initialProgressData.push({ id: '2', message: 'MyBatis 소스파일을 생성중입니다', completedMessage: 'MyBatis 소스파일을 생성했습니다.' });
439
+ }
440
+ if (apply.service) {
441
+ initialProgressData.push({ id: '3', message: 'Java(Service) 소스파일을 생성중입니다', completedMessage: 'Java(Service) 소스파일을 생성했습니다.' });
442
+ }
443
+
444
+ if (apply.controller) {
445
+ initialProgressData.push({ id: '4', message: 'Java(Controller) 소스파일을 생성중입니다', completedMessage: 'Java(Controller) 소스파일을 생성했습니다.' });
446
+ }
447
+
448
+ if (apply.javascript) {
449
+ initialProgressData.push({ id: '5', message: 'Jsx(React) 소스파일을 생성중입니다', completedMessage: 'Jsx(React) 소스파일을 생성했습니다.' });
450
+ }
451
+
452
+ const elAiChat = this.#parent.shadowRoot.querySelector("nx-ai-chat");
453
+ const progressMessageInstance = elAiChat.addProgress(initialProgressData);
454
+
455
+
456
+ // 2. 시간이 지난 후, 특정 단계의 완료를 알림
457
+ // 예를 들어, 3초 후에 분석 완료
458
+ setTimeout(() => {
459
+ if (progressMessageInstance) {
460
+ progressMessageInstance.updateProgress('1', 'completed');
461
+ console.log("분석 완료 메시지 업데이트");
462
+ }
463
+ }, 3000);
464
+
465
+ // 예를 들어, 6초 후에 설계 완료
466
+ setTimeout(() => {
467
+ if (progressMessageInstance) {
468
+ progressMessageInstance.updateProgress('2', 'completed');
469
+ console.log("설계 완료 메시지 업데이트");
470
+ }
471
+ }, 6000);
472
+
473
+ // 모든 단계가 완료된 후, 일반 AI 메시지 추가 (선택 사항)
474
+ setTimeout(() => {
475
+ elAiChat.add("ai", "모든 작업이 성공적으로 완료되었습니다!", [], []);
476
+ }, 9000);
477
+
478
+
479
+ return;
480
+
481
+
482
+
483
+
434
484
  const where = await this.#where(`${title}에서 ${userPrompt}`, [{url: href, title: title}], await this.#getTableList());
435
485
  this.#parent.addMessage("대상 메뉴와 테이블을 찾았습니다.")
436
486
 
@@ -533,6 +533,7 @@ export default DocManager;
533
533
  const elAiChat = this.shadowRoot.querySelector("nx-ai-chat");
534
534
 
535
535
 
536
+ /**
536
537
  // 1. 초기 진행 상태 메시지 추가
537
538
  const initialProgressData = [
538
539
  { id: 'analysis', message: '분석중입니다.', completedMessage: '분석이 완료되었습니다.' },
@@ -568,6 +569,7 @@ export default DocManager;
568
569
  this.#ing = false;
569
570
 
570
571
  return;
572
+ */
571
573
 
572
574
 
573
575
  elAiChat.add("me", userPrompt);