ninegrid2 6.641.0 → 6.643.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.
- package/dist/bundle.cjs.js +91 -0
- package/dist/bundle.esm.js +91 -0
- package/dist/ide-assi/ideAssi.js +107 -0
- package/dist/index.js +3 -0
- package/package.json +1 -1
- package/src/ide-assi/ideAssi.js +107 -0
- package/src/index.js +3 -0
package/dist/bundle.cjs.js
CHANGED
|
@@ -193072,6 +193072,97 @@ class aiContainer extends HTMLElement
|
|
|
193072
193072
|
|
|
193073
193073
|
customElements.define("nx-ai-container", aiContainer);
|
|
193074
193074
|
|
|
193075
|
+
class ideAssi extends HTMLElement
|
|
193076
|
+
{
|
|
193077
|
+
#ing = false;
|
|
193078
|
+
|
|
193079
|
+
constructor() {
|
|
193080
|
+
super();
|
|
193081
|
+
this.attachShadow({ mode: 'open' });
|
|
193082
|
+
}
|
|
193083
|
+
|
|
193084
|
+
connectedCallback() {
|
|
193085
|
+
|
|
193086
|
+
const textareaText = "나에게 무엇이든 물어봐...";
|
|
193087
|
+
|
|
193088
|
+
this.shadowRoot.innerHTML = `
|
|
193089
|
+
<style>
|
|
193090
|
+
@import "https://cdn.jsdelivr.net/npm/ninegrid@${ninegrid.version}/dist/css/ideAssi.css";
|
|
193091
|
+
${ninegrid.getCustomPath(this,"ideAssi.css")}
|
|
193092
|
+
</style>
|
|
193093
|
+
|
|
193094
|
+
<div class="wrapper">
|
|
193095
|
+
<div class="container">
|
|
193096
|
+
<div class="head">
|
|
193097
|
+
<div class="logo"></div>
|
|
193098
|
+
</div>
|
|
193099
|
+
<nx-ai-chat></nx-ai-chat>
|
|
193100
|
+
<div class="foot">
|
|
193101
|
+
<textarea name="ask" id="q" name="q" rows="4" placeholder="${textareaText}"></textarea>
|
|
193102
|
+
</div>
|
|
193103
|
+
</div>
|
|
193104
|
+
<div class="menu">
|
|
193105
|
+
<div class="collapse-icon"></div>
|
|
193106
|
+
<div class="menu-icon menu-filter active"></div>
|
|
193107
|
+
<div class="menu-icon menu-general"></div>
|
|
193108
|
+
<div class="menu-icon menu-setting"></div>
|
|
193109
|
+
</div>
|
|
193110
|
+
</div>
|
|
193111
|
+
|
|
193112
|
+
<div class="expand-icon"></div>
|
|
193113
|
+
`;
|
|
193114
|
+
|
|
193115
|
+
requestAnimationFrame(() => {
|
|
193116
|
+
this.#init();
|
|
193117
|
+
});
|
|
193118
|
+
};
|
|
193119
|
+
|
|
193120
|
+
|
|
193121
|
+
#init = (info) => {
|
|
193122
|
+
|
|
193123
|
+
this.shadowRoot.querySelector("textarea").addEventListener("keydown", this.#keydownHandler);
|
|
193124
|
+
|
|
193125
|
+
this.shadowRoot.querySelector(".expand-icon").addEventListener("click", this.#toggleCollapseHandler);
|
|
193126
|
+
this.shadowRoot.querySelector(".collapse-icon").addEventListener("click", this.#toggleCollapseHandler);
|
|
193127
|
+
|
|
193128
|
+
//this.shadowRoot.querySelectorAll(".menu-icon").forEach(el => el.addEventListener("click", this.#menuClickHandler));
|
|
193129
|
+
};
|
|
193130
|
+
|
|
193131
|
+
#keydownHandler = async (e) => {
|
|
193132
|
+
if (e.key !== "Enter") return;
|
|
193133
|
+
|
|
193134
|
+
e.preventDefault();
|
|
193135
|
+
|
|
193136
|
+
const question = e.target.value.trim();
|
|
193137
|
+
if (!question) return;
|
|
193138
|
+
|
|
193139
|
+
if (this.#ing) return;
|
|
193140
|
+
this.#ing = true;
|
|
193141
|
+
|
|
193142
|
+
/**
|
|
193143
|
+
* setTimeout 없으면, 맥에서 한글 잔상이 남음
|
|
193144
|
+
* setTimeout 내에서 e.target이 nx-ai-container가 된다.
|
|
193145
|
+
*/
|
|
193146
|
+
setTimeout(() => {
|
|
193147
|
+
this.shadowRoot.querySelector("textarea").value = "";
|
|
193148
|
+
});
|
|
193149
|
+
|
|
193150
|
+
const elAiChat = this.shadowRoot.querySelector("nx-ai-chat");
|
|
193151
|
+
|
|
193152
|
+
elAiChat.add("me", question);
|
|
193153
|
+
elAiChat.add("ing", question);
|
|
193154
|
+
|
|
193155
|
+
|
|
193156
|
+
this.#ing = false;
|
|
193157
|
+
}
|
|
193158
|
+
|
|
193159
|
+
#toggleCollapseHandler = () => {
|
|
193160
|
+
this.classList.toggle("collapse");
|
|
193161
|
+
};
|
|
193162
|
+
}
|
|
193163
|
+
|
|
193164
|
+
customElements.define("nx-ide-assi", ideAssi);
|
|
193165
|
+
|
|
193075
193166
|
//import $ from "https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js";
|
|
193076
193167
|
|
|
193077
193168
|
|
package/dist/bundle.esm.js
CHANGED
|
@@ -193068,6 +193068,97 @@ class aiContainer extends HTMLElement
|
|
|
193068
193068
|
|
|
193069
193069
|
customElements.define("nx-ai-container", aiContainer);
|
|
193070
193070
|
|
|
193071
|
+
class ideAssi extends HTMLElement
|
|
193072
|
+
{
|
|
193073
|
+
#ing = false;
|
|
193074
|
+
|
|
193075
|
+
constructor() {
|
|
193076
|
+
super();
|
|
193077
|
+
this.attachShadow({ mode: 'open' });
|
|
193078
|
+
}
|
|
193079
|
+
|
|
193080
|
+
connectedCallback() {
|
|
193081
|
+
|
|
193082
|
+
const textareaText = "나에게 무엇이든 물어봐...";
|
|
193083
|
+
|
|
193084
|
+
this.shadowRoot.innerHTML = `
|
|
193085
|
+
<style>
|
|
193086
|
+
@import "https://cdn.jsdelivr.net/npm/ninegrid@${ninegrid.version}/dist/css/ideAssi.css";
|
|
193087
|
+
${ninegrid.getCustomPath(this,"ideAssi.css")}
|
|
193088
|
+
</style>
|
|
193089
|
+
|
|
193090
|
+
<div class="wrapper">
|
|
193091
|
+
<div class="container">
|
|
193092
|
+
<div class="head">
|
|
193093
|
+
<div class="logo"></div>
|
|
193094
|
+
</div>
|
|
193095
|
+
<nx-ai-chat></nx-ai-chat>
|
|
193096
|
+
<div class="foot">
|
|
193097
|
+
<textarea name="ask" id="q" name="q" rows="4" placeholder="${textareaText}"></textarea>
|
|
193098
|
+
</div>
|
|
193099
|
+
</div>
|
|
193100
|
+
<div class="menu">
|
|
193101
|
+
<div class="collapse-icon"></div>
|
|
193102
|
+
<div class="menu-icon menu-filter active"></div>
|
|
193103
|
+
<div class="menu-icon menu-general"></div>
|
|
193104
|
+
<div class="menu-icon menu-setting"></div>
|
|
193105
|
+
</div>
|
|
193106
|
+
</div>
|
|
193107
|
+
|
|
193108
|
+
<div class="expand-icon"></div>
|
|
193109
|
+
`;
|
|
193110
|
+
|
|
193111
|
+
requestAnimationFrame(() => {
|
|
193112
|
+
this.#init();
|
|
193113
|
+
});
|
|
193114
|
+
};
|
|
193115
|
+
|
|
193116
|
+
|
|
193117
|
+
#init = (info) => {
|
|
193118
|
+
|
|
193119
|
+
this.shadowRoot.querySelector("textarea").addEventListener("keydown", this.#keydownHandler);
|
|
193120
|
+
|
|
193121
|
+
this.shadowRoot.querySelector(".expand-icon").addEventListener("click", this.#toggleCollapseHandler);
|
|
193122
|
+
this.shadowRoot.querySelector(".collapse-icon").addEventListener("click", this.#toggleCollapseHandler);
|
|
193123
|
+
|
|
193124
|
+
//this.shadowRoot.querySelectorAll(".menu-icon").forEach(el => el.addEventListener("click", this.#menuClickHandler));
|
|
193125
|
+
};
|
|
193126
|
+
|
|
193127
|
+
#keydownHandler = async (e) => {
|
|
193128
|
+
if (e.key !== "Enter") return;
|
|
193129
|
+
|
|
193130
|
+
e.preventDefault();
|
|
193131
|
+
|
|
193132
|
+
const question = e.target.value.trim();
|
|
193133
|
+
if (!question) return;
|
|
193134
|
+
|
|
193135
|
+
if (this.#ing) return;
|
|
193136
|
+
this.#ing = true;
|
|
193137
|
+
|
|
193138
|
+
/**
|
|
193139
|
+
* setTimeout 없으면, 맥에서 한글 잔상이 남음
|
|
193140
|
+
* setTimeout 내에서 e.target이 nx-ai-container가 된다.
|
|
193141
|
+
*/
|
|
193142
|
+
setTimeout(() => {
|
|
193143
|
+
this.shadowRoot.querySelector("textarea").value = "";
|
|
193144
|
+
});
|
|
193145
|
+
|
|
193146
|
+
const elAiChat = this.shadowRoot.querySelector("nx-ai-chat");
|
|
193147
|
+
|
|
193148
|
+
elAiChat.add("me", question);
|
|
193149
|
+
elAiChat.add("ing", question);
|
|
193150
|
+
|
|
193151
|
+
|
|
193152
|
+
this.#ing = false;
|
|
193153
|
+
}
|
|
193154
|
+
|
|
193155
|
+
#toggleCollapseHandler = () => {
|
|
193156
|
+
this.classList.toggle("collapse");
|
|
193157
|
+
};
|
|
193158
|
+
}
|
|
193159
|
+
|
|
193160
|
+
customElements.define("nx-ide-assi", ideAssi);
|
|
193161
|
+
|
|
193071
193162
|
//import $ from "https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js";
|
|
193072
193163
|
|
|
193073
193164
|
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import ninegrid from "../index.js";
|
|
2
|
+
import { ChatGoogleGenerativeAI } from "@langchain/google-genai";
|
|
3
|
+
import { Ollama } from "@langchain/ollama";
|
|
4
|
+
import { ChatOpenAI } from '@langchain/openai';
|
|
5
|
+
import { HumanMessage, SystemMessage } from '@langchain/core/messages';
|
|
6
|
+
import { OllamaEmbeddings } from "@langchain/ollama";
|
|
7
|
+
import { QdrantClient } from "@qdrant/js-client-rest";
|
|
8
|
+
import { StringOutputParser } from "@langchain/core/output_parsers"
|
|
9
|
+
import { PromptTemplate} from "@langchain/core/prompts"
|
|
10
|
+
|
|
11
|
+
class ideAssi extends HTMLElement
|
|
12
|
+
{
|
|
13
|
+
#ing = false;
|
|
14
|
+
|
|
15
|
+
constructor() {
|
|
16
|
+
super();
|
|
17
|
+
this.attachShadow({ mode: 'open' });
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
connectedCallback() {
|
|
21
|
+
|
|
22
|
+
const textareaText = "나에게 무엇이든 물어봐...";
|
|
23
|
+
|
|
24
|
+
this.shadowRoot.innerHTML = `
|
|
25
|
+
<style>
|
|
26
|
+
@import "https://cdn.jsdelivr.net/npm/ninegrid@${ninegrid.version}/dist/css/ideAssi.css";
|
|
27
|
+
${ninegrid.getCustomPath(this,"ideAssi.css")}
|
|
28
|
+
</style>
|
|
29
|
+
|
|
30
|
+
<div class="wrapper">
|
|
31
|
+
<div class="container">
|
|
32
|
+
<div class="head">
|
|
33
|
+
<div class="logo"></div>
|
|
34
|
+
</div>
|
|
35
|
+
<nx-ai-chat></nx-ai-chat>
|
|
36
|
+
<div class="foot">
|
|
37
|
+
<textarea name="ask" id="q" name="q" rows="4" placeholder="${textareaText}"></textarea>
|
|
38
|
+
</div>
|
|
39
|
+
</div>
|
|
40
|
+
<div class="menu">
|
|
41
|
+
<div class="collapse-icon"></div>
|
|
42
|
+
<div class="menu-icon menu-filter active"></div>
|
|
43
|
+
<div class="menu-icon menu-general"></div>
|
|
44
|
+
<div class="menu-icon menu-setting"></div>
|
|
45
|
+
</div>
|
|
46
|
+
</div>
|
|
47
|
+
|
|
48
|
+
<div class="expand-icon"></div>
|
|
49
|
+
`;
|
|
50
|
+
|
|
51
|
+
requestAnimationFrame(() => {
|
|
52
|
+
this.#init();
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
#init = (info) => {
|
|
58
|
+
|
|
59
|
+
this.shadowRoot.querySelector("textarea").addEventListener("keydown", this.#keydownHandler);
|
|
60
|
+
|
|
61
|
+
this.shadowRoot.querySelector(".expand-icon").addEventListener("click", this.#toggleCollapseHandler);
|
|
62
|
+
this.shadowRoot.querySelector(".collapse-icon").addEventListener("click", this.#toggleCollapseHandler);
|
|
63
|
+
|
|
64
|
+
//this.shadowRoot.querySelectorAll(".menu-icon").forEach(el => el.addEventListener("click", this.#menuClickHandler));
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
#keydownHandler = async (e) => {
|
|
68
|
+
if (e.key !== "Enter") return;
|
|
69
|
+
|
|
70
|
+
e.preventDefault();
|
|
71
|
+
|
|
72
|
+
const question = e.target.value.trim();
|
|
73
|
+
if (!question) return;
|
|
74
|
+
|
|
75
|
+
if (this.#ing) return;
|
|
76
|
+
this.#ing = true;
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* setTimeout 없으면, 맥에서 한글 잔상이 남음
|
|
80
|
+
* setTimeout 내에서 e.target이 nx-ai-container가 된다.
|
|
81
|
+
*/
|
|
82
|
+
setTimeout(() => {
|
|
83
|
+
this.shadowRoot.querySelector("textarea").value = "";
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
const elAiChat = this.shadowRoot.querySelector("nx-ai-chat");
|
|
87
|
+
|
|
88
|
+
elAiChat.add("me", question);
|
|
89
|
+
elAiChat.add("ing", question);
|
|
90
|
+
|
|
91
|
+
try {
|
|
92
|
+
//
|
|
93
|
+
} catch (error) {
|
|
94
|
+
console.error(error);
|
|
95
|
+
//elAiChat.add("ai", error);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
this.#ing = false;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
#toggleCollapseHandler = () => {
|
|
103
|
+
this.classList.toggle("collapse");
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
customElements.define("nx-ide-assi", ideAssi);
|
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import ninegrid from "../index.js";
|
|
2
|
+
import { ChatGoogleGenerativeAI } from "@langchain/google-genai";
|
|
3
|
+
import { Ollama } from "@langchain/ollama";
|
|
4
|
+
import { ChatOpenAI } from '@langchain/openai';
|
|
5
|
+
import { HumanMessage, SystemMessage } from '@langchain/core/messages';
|
|
6
|
+
import { OllamaEmbeddings } from "@langchain/ollama";
|
|
7
|
+
import { QdrantClient } from "@qdrant/js-client-rest";
|
|
8
|
+
import { StringOutputParser } from "@langchain/core/output_parsers"
|
|
9
|
+
import { PromptTemplate} from "@langchain/core/prompts"
|
|
10
|
+
|
|
11
|
+
class ideAssi extends HTMLElement
|
|
12
|
+
{
|
|
13
|
+
#ing = false;
|
|
14
|
+
|
|
15
|
+
constructor() {
|
|
16
|
+
super();
|
|
17
|
+
this.attachShadow({ mode: 'open' });
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
connectedCallback() {
|
|
21
|
+
|
|
22
|
+
const textareaText = "나에게 무엇이든 물어봐...";
|
|
23
|
+
|
|
24
|
+
this.shadowRoot.innerHTML = `
|
|
25
|
+
<style>
|
|
26
|
+
@import "https://cdn.jsdelivr.net/npm/ninegrid@${ninegrid.version}/dist/css/ideAssi.css";
|
|
27
|
+
${ninegrid.getCustomPath(this,"ideAssi.css")}
|
|
28
|
+
</style>
|
|
29
|
+
|
|
30
|
+
<div class="wrapper">
|
|
31
|
+
<div class="container">
|
|
32
|
+
<div class="head">
|
|
33
|
+
<div class="logo"></div>
|
|
34
|
+
</div>
|
|
35
|
+
<nx-ai-chat></nx-ai-chat>
|
|
36
|
+
<div class="foot">
|
|
37
|
+
<textarea name="ask" id="q" name="q" rows="4" placeholder="${textareaText}"></textarea>
|
|
38
|
+
</div>
|
|
39
|
+
</div>
|
|
40
|
+
<div class="menu">
|
|
41
|
+
<div class="collapse-icon"></div>
|
|
42
|
+
<div class="menu-icon menu-filter active"></div>
|
|
43
|
+
<div class="menu-icon menu-general"></div>
|
|
44
|
+
<div class="menu-icon menu-setting"></div>
|
|
45
|
+
</div>
|
|
46
|
+
</div>
|
|
47
|
+
|
|
48
|
+
<div class="expand-icon"></div>
|
|
49
|
+
`;
|
|
50
|
+
|
|
51
|
+
requestAnimationFrame(() => {
|
|
52
|
+
this.#init();
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
#init = (info) => {
|
|
58
|
+
|
|
59
|
+
this.shadowRoot.querySelector("textarea").addEventListener("keydown", this.#keydownHandler);
|
|
60
|
+
|
|
61
|
+
this.shadowRoot.querySelector(".expand-icon").addEventListener("click", this.#toggleCollapseHandler);
|
|
62
|
+
this.shadowRoot.querySelector(".collapse-icon").addEventListener("click", this.#toggleCollapseHandler);
|
|
63
|
+
|
|
64
|
+
//this.shadowRoot.querySelectorAll(".menu-icon").forEach(el => el.addEventListener("click", this.#menuClickHandler));
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
#keydownHandler = async (e) => {
|
|
68
|
+
if (e.key !== "Enter") return;
|
|
69
|
+
|
|
70
|
+
e.preventDefault();
|
|
71
|
+
|
|
72
|
+
const question = e.target.value.trim();
|
|
73
|
+
if (!question) return;
|
|
74
|
+
|
|
75
|
+
if (this.#ing) return;
|
|
76
|
+
this.#ing = true;
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* setTimeout 없으면, 맥에서 한글 잔상이 남음
|
|
80
|
+
* setTimeout 내에서 e.target이 nx-ai-container가 된다.
|
|
81
|
+
*/
|
|
82
|
+
setTimeout(() => {
|
|
83
|
+
this.shadowRoot.querySelector("textarea").value = "";
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
const elAiChat = this.shadowRoot.querySelector("nx-ai-chat");
|
|
87
|
+
|
|
88
|
+
elAiChat.add("me", question);
|
|
89
|
+
elAiChat.add("ing", question);
|
|
90
|
+
|
|
91
|
+
try {
|
|
92
|
+
//
|
|
93
|
+
} catch (error) {
|
|
94
|
+
console.error(error);
|
|
95
|
+
//elAiChat.add("ai", error);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
this.#ing = false;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
#toggleCollapseHandler = () => {
|
|
103
|
+
this.classList.toggle("collapse");
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
customElements.define("nx-ide-assi", ideAssi);
|
package/src/index.js
CHANGED