@gui-chat-plugin/text-response 0.1.2 → 0.2.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/core.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index.cjs");exports.SYSTEM_PROMPT=e.SYSTEM_PROMPT;exports.TOOL_DEFINITION=e.TOOL_DEFINITION;exports.TOOL_NAME=e.TOOL_NAME;exports.executeTextResponse=e.executeTextResponse;exports.pluginCore=e.pluginCore;exports.samples=e.samples;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./samples-BO4P7dT9.cjs`);exports.SYSTEM_PROMPT=e.i,exports.TOOL_DEFINITION=e.a,exports.TOOL_NAME=e.o,exports.executeTextResponse=e.n,exports.pluginCore=e.r,exports.samples=e.t;
package/dist/core.js CHANGED
@@ -1,9 +1,2 @@
1
- import { SYSTEM_PROMPT as T, TOOL_DEFINITION as o, TOOL_NAME as p, executeTextResponse as s, pluginCore as r, samples as t } from "./index.js";
2
- export {
3
- T as SYSTEM_PROMPT,
4
- o as TOOL_DEFINITION,
5
- p as TOOL_NAME,
6
- s as executeTextResponse,
7
- r as pluginCore,
8
- t as samples
9
- };
1
+ import { a as e, i as t, n, o as r, r as i, t as a } from "./samples-DA_sw4wk.js";
2
+ export { t as SYSTEM_PROMPT, e as TOOL_DEFINITION, r as TOOL_NAME, n as executeTextResponse, i as pluginCore, a as samples };
package/dist/index.cjs CHANGED
@@ -1,32 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t="text-response",s={type:"function",name:t,description:"Render plain text content from the assistant.",parameters:{type:"object",properties:{text:{type:"string",description:"Plain text content to display to the user."},role:{type:"string",enum:["assistant","system","user"],description:"Speaker role of the message."},transportKind:{type:"string",description:"Identifier for the transport or provider that produced the message."}},required:["text"]}},n="",a=async(i,e)=>({data:{text:e.text,role:e.role,transportKind:e.transportKind},message:e.text}),o={toolDefinition:s,execute:a,generatingMessage:"Processing...",isEnabled:()=>!1,systemPrompt:n},r=[{name:"Simple Text",args:{text:"Hello, this is a simple text response from the assistant.",role:"assistant"}},{name:"System Message",args:{text:"System: Configuration has been updated successfully.",role:"system"}},{name:"User Message",args:{text:"User: What is the weather like today?",role:"user"}},{name:"Markdown Content",args:{text:`# Markdown Example
2
-
3
- This demonstrates **bold** and *italic* text.
4
-
5
- ## Features
6
- - List item 1
7
- - List item 2
8
- - List item 3
9
-
10
- ### Code Example
11
- \`\`\`javascript
12
- function hello() {
13
- console.log("Hello, World!");
14
- }
15
- \`\`\`
16
-
17
- > This is a blockquote with important information.
18
-
19
- | Column A | Column B |
20
- |----------|----------|
21
- | Data 1 | Data 2 |
22
- | Data 3 | Data 4 |
23
- `,role:"assistant"}},{name:"JSON Data",args:{text:JSON.stringify({name:"Example",version:"1.0.0",features:["markdown","json","roles"]},null,2),role:"assistant"}},{name:"Think Block",args:{text:`Let me analyze this problem.
24
-
25
- <think>
26
- First, I need to consider the requirements:
27
- 1. The solution should be efficient
28
- 2. It must handle edge cases
29
- 3. Code should be readable
30
- </think>
31
-
32
- Based on my analysis, here's my recommendation...`,role:"assistant"}},{name:"With Transport",args:{text:"This response came from a specific transport provider.",role:"assistant",transportKind:"openai-realtime"}}];exports.SYSTEM_PROMPT=n;exports.TOOL_DEFINITION=s;exports.TOOL_NAME=t;exports.executeTextResponse=a;exports.pluginCore=o;exports.samples=r;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./samples-BO4P7dT9.cjs`);exports.SYSTEM_PROMPT=e.i,exports.TOOL_DEFINITION=e.a,exports.TOOL_NAME=e.o,exports.executeTextResponse=e.n,exports.pluginCore=e.r,exports.samples=e.t;
package/dist/index.js CHANGED
@@ -1,136 +1,2 @@
1
- const t = "text-response", s = {
2
- type: "function",
3
- name: t,
4
- description: "Render plain text content from the assistant.",
5
- parameters: {
6
- type: "object",
7
- properties: {
8
- text: {
9
- type: "string",
10
- description: "Plain text content to display to the user."
11
- },
12
- role: {
13
- type: "string",
14
- enum: ["assistant", "system", "user"],
15
- description: "Speaker role of the message."
16
- },
17
- transportKind: {
18
- type: "string",
19
- description: "Identifier for the transport or provider that produced the message."
20
- }
21
- },
22
- required: ["text"]
23
- }
24
- }, a = "", n = async (o, e) => ({
25
- data: {
26
- text: e.text,
27
- role: e.role,
28
- transportKind: e.transportKind
29
- },
30
- message: e.text
31
- }), r = {
32
- toolDefinition: s,
33
- execute: n,
34
- generatingMessage: "Processing...",
35
- // Never advertise this pseudo tool to the LLM; only the client uses it.
36
- isEnabled: () => !1,
37
- systemPrompt: a
38
- }, i = [
39
- {
40
- name: "Simple Text",
41
- args: {
42
- text: "Hello, this is a simple text response from the assistant.",
43
- role: "assistant"
44
- }
45
- },
46
- {
47
- name: "System Message",
48
- args: {
49
- text: "System: Configuration has been updated successfully.",
50
- role: "system"
51
- }
52
- },
53
- {
54
- name: "User Message",
55
- args: {
56
- text: "User: What is the weather like today?",
57
- role: "user"
58
- }
59
- },
60
- {
61
- name: "Markdown Content",
62
- args: {
63
- text: `# Markdown Example
64
-
65
- This demonstrates **bold** and *italic* text.
66
-
67
- ## Features
68
- - List item 1
69
- - List item 2
70
- - List item 3
71
-
72
- ### Code Example
73
- \`\`\`javascript
74
- function hello() {
75
- console.log("Hello, World!");
76
- }
77
- \`\`\`
78
-
79
- > This is a blockquote with important information.
80
-
81
- | Column A | Column B |
82
- |----------|----------|
83
- | Data 1 | Data 2 |
84
- | Data 3 | Data 4 |
85
- `,
86
- role: "assistant"
87
- }
88
- },
89
- {
90
- name: "JSON Data",
91
- args: {
92
- text: JSON.stringify(
93
- {
94
- name: "Example",
95
- version: "1.0.0",
96
- features: ["markdown", "json", "roles"]
97
- },
98
- null,
99
- 2
100
- ),
101
- role: "assistant"
102
- }
103
- },
104
- {
105
- name: "Think Block",
106
- args: {
107
- text: `Let me analyze this problem.
108
-
109
- <think>
110
- First, I need to consider the requirements:
111
- 1. The solution should be efficient
112
- 2. It must handle edge cases
113
- 3. Code should be readable
114
- </think>
115
-
116
- Based on my analysis, here's my recommendation...`,
117
- role: "assistant"
118
- }
119
- },
120
- {
121
- name: "With Transport",
122
- args: {
123
- text: "This response came from a specific transport provider.",
124
- role: "assistant",
125
- transportKind: "openai-realtime"
126
- }
127
- }
128
- ];
129
- export {
130
- a as SYSTEM_PROMPT,
131
- s as TOOL_DEFINITION,
132
- t as TOOL_NAME,
133
- n as executeTextResponse,
134
- r as pluginCore,
135
- i as samples
136
- };
1
+ import { a as e, i as t, n, o as r, r as i, t as a } from "./samples-DA_sw4wk.js";
2
+ export { t as SYSTEM_PROMPT, e as TOOL_DEFINITION, r as TOOL_NAME, n as executeTextResponse, i as pluginCore, a as samples };
@@ -0,0 +1,32 @@
1
+ var e=`text-response`,t={type:`function`,name:e,description:`Render plain text content from the assistant.`,parameters:{type:`object`,properties:{text:{type:`string`,description:`Plain text content to display to the user.`},role:{type:`string`,enum:[`assistant`,`system`,`user`],description:`Speaker role of the message.`},transportKind:{type:`string`,description:`Identifier for the transport or provider that produced the message.`}},required:[`text`]}},n=``,r=async(e,t)=>({data:{text:t.text,role:t.role,transportKind:t.transportKind},message:t.text}),i={toolDefinition:t,execute:r,generatingMessage:`Processing...`,isEnabled:()=>!1,systemPrompt:``},a=[{name:`Simple Text`,args:{text:`Hello, this is a simple text response from the assistant.`,role:`assistant`}},{name:`System Message`,args:{text:`System: Configuration has been updated successfully.`,role:`system`}},{name:`User Message`,args:{text:`User: What is the weather like today?`,role:`user`}},{name:`Markdown Content`,args:{text:`# Markdown Example
2
+
3
+ This demonstrates **bold** and *italic* text.
4
+
5
+ ## Features
6
+ - List item 1
7
+ - List item 2
8
+ - List item 3
9
+
10
+ ### Code Example
11
+ \`\`\`javascript
12
+ function hello() {
13
+ console.log("Hello, World!");
14
+ }
15
+ \`\`\`
16
+
17
+ > This is a blockquote with important information.
18
+
19
+ | Column A | Column B |
20
+ |----------|----------|
21
+ | Data 1 | Data 2 |
22
+ | Data 3 | Data 4 |
23
+ `,role:`assistant`}},{name:`JSON Data`,args:{text:JSON.stringify({name:`Example`,version:`1.0.0`,features:[`markdown`,`json`,`roles`]},null,2),role:`assistant`}},{name:`Think Block`,args:{text:`Let me analyze this problem.
24
+
25
+ <think>
26
+ First, I need to consider the requirements:
27
+ 1. The solution should be efficient
28
+ 2. It must handle edge cases
29
+ 3. Code should be readable
30
+ </think>
31
+
32
+ Based on my analysis, here's my recommendation...`,role:`assistant`}},{name:`With Transport`,args:{text:`This response came from a specific transport provider.`,role:`assistant`,transportKind:`openai-realtime`}}];Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return t}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return e}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return a}});
@@ -0,0 +1,103 @@
1
+ //#region src/core/definition.ts
2
+ var e = "text-response", t = {
3
+ type: "function",
4
+ name: e,
5
+ description: "Render plain text content from the assistant.",
6
+ parameters: {
7
+ type: "object",
8
+ properties: {
9
+ text: {
10
+ type: "string",
11
+ description: "Plain text content to display to the user."
12
+ },
13
+ role: {
14
+ type: "string",
15
+ enum: [
16
+ "assistant",
17
+ "system",
18
+ "user"
19
+ ],
20
+ description: "Speaker role of the message."
21
+ },
22
+ transportKind: {
23
+ type: "string",
24
+ description: "Identifier for the transport or provider that produced the message."
25
+ }
26
+ },
27
+ required: ["text"]
28
+ }
29
+ }, n = "", r = async (e, t) => ({
30
+ data: {
31
+ text: t.text,
32
+ role: t.role,
33
+ transportKind: t.transportKind
34
+ },
35
+ message: t.text
36
+ }), i = {
37
+ toolDefinition: t,
38
+ execute: r,
39
+ generatingMessage: "Processing...",
40
+ isEnabled: () => !1,
41
+ systemPrompt: ""
42
+ }, a = [
43
+ {
44
+ name: "Simple Text",
45
+ args: {
46
+ text: "Hello, this is a simple text response from the assistant.",
47
+ role: "assistant"
48
+ }
49
+ },
50
+ {
51
+ name: "System Message",
52
+ args: {
53
+ text: "System: Configuration has been updated successfully.",
54
+ role: "system"
55
+ }
56
+ },
57
+ {
58
+ name: "User Message",
59
+ args: {
60
+ text: "User: What is the weather like today?",
61
+ role: "user"
62
+ }
63
+ },
64
+ {
65
+ name: "Markdown Content",
66
+ args: {
67
+ text: "# Markdown Example\n\nThis demonstrates **bold** and *italic* text.\n\n## Features\n- List item 1\n- List item 2\n- List item 3\n\n### Code Example\n```javascript\nfunction hello() {\n console.log(\"Hello, World!\");\n}\n```\n\n> This is a blockquote with important information.\n\n| Column A | Column B |\n|----------|----------|\n| Data 1 | Data 2 |\n| Data 3 | Data 4 |\n",
68
+ role: "assistant"
69
+ }
70
+ },
71
+ {
72
+ name: "JSON Data",
73
+ args: {
74
+ text: JSON.stringify({
75
+ name: "Example",
76
+ version: "1.0.0",
77
+ features: [
78
+ "markdown",
79
+ "json",
80
+ "roles"
81
+ ]
82
+ }, null, 2),
83
+ role: "assistant"
84
+ }
85
+ },
86
+ {
87
+ name: "Think Block",
88
+ args: {
89
+ text: "Let me analyze this problem.\n\n<think>\nFirst, I need to consider the requirements:\n1. The solution should be efficient\n2. It must handle edge cases\n3. Code should be readable\n</think>\n\nBased on my analysis, here's my recommendation...",
90
+ role: "assistant"
91
+ }
92
+ },
93
+ {
94
+ name: "With Transport",
95
+ args: {
96
+ text: "This response came from a specific transport provider.",
97
+ role: "assistant",
98
+ transportKind: "openai-realtime"
99
+ }
100
+ }
101
+ ];
102
+ //#endregion
103
+ export { t as a, n as i, r as n, e as o, i as r, a as t };
package/dist/style.css CHANGED
@@ -1 +1,3 @@
1
- @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-green-50:oklch(98.2% .018 155.826);--color-green-200:oklch(92.5% .084 155.995);--color-green-700:oklch(52.7% .154 150.069);--color-blue-50:oklch(97% .014 254.604);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-700:oklch(48.8% .243 264.376);--color-indigo-100:oklch(93% .034 272.788);--color-indigo-200:oklch(87% .065 274.039);--color-indigo-700:oklch(45.7% .24 277.023);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-200:oklch(90.2% .063 306.703);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-white:#fff;--spacing:.25rem;--container-3xl:48rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--font-weight-medium:500;--font-weight-bold:700;--leading-snug:1.375;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.mx-auto{margin-inline:auto}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-5{margin-bottom:calc(var(--spacing)*5)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.block{display:block}.contents{display:contents}.flex{display:flex}.h-96{height:calc(var(--spacing)*96)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-\[200px\]{max-width:200px}.max-w-none{max-width:none}.flex-shrink{flex-shrink:1}.border-collapse{border-collapse:collapse}.cursor-pointer{cursor:pointer}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.gap-2{gap:calc(var(--spacing)*2)}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}.rounded{border-radius:.25rem}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-blue-200{border-color:var(--color-blue-200)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-green-200{border-color:var(--color-green-200)}.border-indigo-200{border-color:var(--color-indigo-200)}.border-purple-200{border-color:var(--color-purple-200)}.bg-blue-50{background-color:var(--color-blue-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-green-50{background-color:var(--color-green-50)}.bg-indigo-100{background-color:var(--color-indigo-100)}.bg-purple-50{background-color:var(--color-purple-50)}.bg-white{background-color:var(--color-white)}.p-5{padding:calc(var(--spacing)*5)}.p-6{padding:calc(var(--spacing)*6)}.p-8{padding:calc(var(--spacing)*8)}.px-4{padding-inline:calc(var(--spacing)*4)}.py-2{padding-block:calc(var(--spacing)*2)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.text-blue-700{color:var(--color-blue-700)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-green-700{color:var(--color-green-700)}.text-indigo-700{color:var(--color-indigo-700)}.italic{font-style:italic}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media(hover:hover){.hover\:bg-indigo-200:hover{background-color:var(--color-indigo-200)}}}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}.markdown-content[data-v-298aef9f] h1{font-size:2rem;font-weight:700;margin-top:1em;margin-bottom:.5em}.markdown-content[data-v-298aef9f] h2{font-size:1.75rem;font-weight:700;margin-top:1em;margin-bottom:.5em}.markdown-content[data-v-298aef9f] h3{font-size:1.5rem;font-weight:700;margin-top:1em;margin-bottom:.5em}.markdown-content[data-v-298aef9f] h4{font-size:1.25rem;font-weight:700;margin-top:1em;margin-bottom:.5em}.markdown-content[data-v-298aef9f] h5{font-size:1.125rem;font-weight:700;margin-top:1em;margin-bottom:.5em}.markdown-content[data-v-298aef9f] h6{font-size:1rem;font-weight:700;margin-top:1em;margin-bottom:.5em}.markdown-content[data-v-298aef9f] p{margin-bottom:1em}.markdown-content[data-v-298aef9f] ul,.markdown-content[data-v-298aef9f] ol{margin-left:1.5em;margin-bottom:1em}.markdown-content[data-v-298aef9f] li{margin-bottom:.5em}.markdown-content[data-v-298aef9f] code{background-color:#f5f5f5;padding:.2em .4em;border-radius:3px;font-family:monospace;font-size:.9em}.markdown-content[data-v-298aef9f] pre{background-color:#f5f5f5;padding:1em;border-radius:4px;overflow-x:auto;margin-bottom:1em}.markdown-content[data-v-298aef9f] pre code{background-color:transparent;padding:0}.markdown-content[data-v-298aef9f] blockquote{border-left:4px solid #ddd;padding-left:1em;color:#666;margin:1em 0}.markdown-content[data-v-298aef9f] a{color:#2563eb;text-decoration:underline}.markdown-content[data-v-298aef9f] a:hover{color:#1d4ed8}.markdown-content[data-v-298aef9f] table{border-collapse:collapse;width:100%;margin-bottom:1em}.markdown-content[data-v-298aef9f] th,.markdown-content[data-v-298aef9f] td{border:1px solid #ddd;padding:.5em;text-align:left}.markdown-content[data-v-298aef9f] th{background-color:#f5f5f5;font-weight:700}.markdown-content[data-v-298aef9f] hr{border:none;border-top:1px solid #ddd;margin:1.5em 0}.markdown-content[data-v-298aef9f] .think-block{color:#6b7280;background-color:#f9fafb;border-left:3px solid #d1d5db;padding:.75em 1em;margin:1em 0;border-radius:4px;font-style:italic}.markdown-content[data-v-298aef9f] .think-block p{color:#6b7280}.markdown-content[data-v-298aef9f] .think-block code{background-color:#e5e7eb;color:#4b5563}.text-response-container[data-v-298aef9f]{display:flex;flex-direction:column;height:100%;overflow:hidden}.text-response-content-wrapper[data-v-298aef9f]{flex:1;overflow-y:auto}.text-response-source[data-v-298aef9f]{padding:.5rem;background:#f5f5f5;border-top:1px solid #e0e0e0;font-family:monospace;font-size:.85rem;flex-shrink:0}.text-response-source summary[data-v-298aef9f]{cursor:pointer;-webkit-user-select:none;user-select:none;padding:.5rem;background:#e8e8e8;border-radius:4px;font-weight:500;color:#333}.text-response-source[open] summary[data-v-298aef9f]{margin-bottom:.5rem}.text-response-source summary[data-v-298aef9f]:hover{background:#d8d8d8}.text-response-editor[data-v-298aef9f]{width:100%;height:40vh;padding:1rem;background:#fff;border:1px solid #ccc;border-radius:4px;color:#333;font-family:Courier New,monospace;font-size:.9rem;resize:vertical;margin-bottom:.5rem;line-height:1.5}.text-response-editor[data-v-298aef9f]:focus{outline:none;border-color:#4caf50;box-shadow:0 0 0 2px #4caf501a}.apply-btn[data-v-298aef9f]{padding:.5rem 1rem;background:#4caf50;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;transition:background .2s;font-weight:500}.apply-btn[data-v-298aef9f]:hover{background:#45a049}.apply-btn[data-v-298aef9f]:active{background:#3d8b40}.apply-btn[data-v-298aef9f]:disabled{background:#ccc;color:#666;cursor:not-allowed;opacity:.6}.apply-btn[data-v-298aef9f]:disabled:hover{background:#ccc}.preview-markdown[data-v-8c4c9e48]{overflow:hidden;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical}.preview-markdown[data-v-8c4c9e48] p{margin:0;display:inline}.preview-markdown[data-v-8c4c9e48] h1,.preview-markdown[data-v-8c4c9e48] h2,.preview-markdown[data-v-8c4c9e48] h3,.preview-markdown[data-v-8c4c9e48] h4,.preview-markdown[data-v-8c4c9e48] h5,.preview-markdown[data-v-8c4c9e48] h6{font-size:inherit;font-weight:700;display:inline}.preview-markdown[data-v-8c4c9e48] ul,.preview-markdown[data-v-8c4c9e48] ol{display:inline;margin:0;padding:0;list-style:none}.preview-markdown[data-v-8c4c9e48] li{display:inline}.preview-markdown[data-v-8c4c9e48] li:before{content:"• "}.preview-markdown[data-v-8c4c9e48] strong{font-weight:700}.preview-markdown[data-v-8c4c9e48] em{font-style:italic}.preview-markdown[data-v-8c4c9e48] code{font-family:monospace;font-size:.9em}.preview-markdown[data-v-8c4c9e48] pre{display:inline;white-space:pre-wrap}
1
+ /*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-green-50:oklch(98.2% .018 155.826);--color-green-200:oklch(92.5% .084 155.995);--color-green-700:oklch(52.7% .154 150.069);--color-blue-50:oklch(97% .014 254.604);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-700:oklch(48.8% .243 264.376);--color-indigo-100:oklch(93% .034 272.788);--color-indigo-200:oklch(87% .065 274.039);--color-indigo-700:oklch(45.7% .24 277.023);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-200:oklch(90.2% .063 306.703);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-white:#fff;--spacing:.25rem;--container-3xl:48rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-medium:500;--font-weight-bold:700;--leading-snug:1.375;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.mx-auto{margin-inline:auto}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.block{display:block}.contents{display:contents}.flex{display:flex}.h-96{height:calc(var(--spacing) * 96)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-\[200px\]{max-width:200px}.max-w-none{max-width:none}.flex-shrink{flex-shrink:1}.border-collapse{border-collapse:collapse}.cursor-pointer{cursor:pointer}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.gap-2{gap:calc(var(--spacing) * 2)}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}.rounded{border-radius:.25rem}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-blue-200{border-color:var(--color-blue-200)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-green-200{border-color:var(--color-green-200)}.border-indigo-200{border-color:var(--color-indigo-200)}.border-purple-200{border-color:var(--color-purple-200)}.bg-blue-50{background-color:var(--color-blue-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-green-50{background-color:var(--color-green-50)}.bg-indigo-100{background-color:var(--color-indigo-100)}.bg-purple-50{background-color:var(--color-purple-50)}.bg-white{background-color:var(--color-white)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-2{padding-block:calc(var(--spacing) * 2)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.text-blue-700{color:var(--color-blue-700)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-green-700{color:var(--color-green-700)}.text-indigo-700{color:var(--color-indigo-700)}.italic{font-style:italic}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (hover:hover){.hover\:bg-indigo-200:hover{background-color:var(--color-indigo-200)}}}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}.markdown-content[data-v-298aef9f] h1{margin-top:1em;margin-bottom:.5em;font-size:2rem;font-weight:700}.markdown-content[data-v-298aef9f] h2{margin-top:1em;margin-bottom:.5em;font-size:1.75rem;font-weight:700}.markdown-content[data-v-298aef9f] h3{margin-top:1em;margin-bottom:.5em;font-size:1.5rem;font-weight:700}.markdown-content[data-v-298aef9f] h4{margin-top:1em;margin-bottom:.5em;font-size:1.25rem;font-weight:700}.markdown-content[data-v-298aef9f] h5{margin-top:1em;margin-bottom:.5em;font-size:1.125rem;font-weight:700}.markdown-content[data-v-298aef9f] h6{margin-top:1em;margin-bottom:.5em;font-size:1rem;font-weight:700}.markdown-content[data-v-298aef9f] p{margin-bottom:1em}.markdown-content[data-v-298aef9f] ul,.markdown-content[data-v-298aef9f] ol{margin-bottom:1em;margin-left:1.5em}.markdown-content[data-v-298aef9f] li{margin-bottom:.5em}.markdown-content[data-v-298aef9f] code{background-color:#f5f5f5;border-radius:3px;padding:.2em .4em;font-family:monospace;font-size:.9em}.markdown-content[data-v-298aef9f] pre{background-color:#f5f5f5;border-radius:4px;margin-bottom:1em;padding:1em;overflow-x:auto}.markdown-content[data-v-298aef9f] pre code{background-color:#0000;padding:0}.markdown-content[data-v-298aef9f] blockquote{color:#666;border-left:4px solid #ddd;margin:1em 0;padding-left:1em}.markdown-content[data-v-298aef9f] a{color:#2563eb;text-decoration:underline}.markdown-content[data-v-298aef9f] a:hover{color:#1d4ed8}.markdown-content[data-v-298aef9f] table{border-collapse:collapse;width:100%;margin-bottom:1em}.markdown-content[data-v-298aef9f] th,.markdown-content[data-v-298aef9f] td{text-align:left;border:1px solid #ddd;padding:.5em}.markdown-content[data-v-298aef9f] th{background-color:#f5f5f5;font-weight:700}.markdown-content[data-v-298aef9f] hr{border:none;border-top:1px solid #ddd;margin:1.5em 0}.markdown-content[data-v-298aef9f] .think-block{color:#6b7280;background-color:#f9fafb;border-left:3px solid #d1d5db;border-radius:4px;margin:1em 0;padding:.75em 1em;font-style:italic}.markdown-content[data-v-298aef9f] .think-block p{color:#6b7280}.markdown-content[data-v-298aef9f] .think-block code{color:#4b5563;background-color:#e5e7eb}.text-response-container[data-v-298aef9f]{flex-direction:column;height:100%;display:flex;overflow:hidden}.text-response-content-wrapper[data-v-298aef9f]{flex:1;overflow-y:auto}.text-response-source[data-v-298aef9f]{background:#f5f5f5;border-top:1px solid #e0e0e0;flex-shrink:0;padding:.5rem;font-family:monospace;font-size:.85rem}.text-response-source summary[data-v-298aef9f]{cursor:pointer;-webkit-user-select:none;user-select:none;color:#333;background:#e8e8e8;border-radius:4px;padding:.5rem;font-weight:500}.text-response-source[open] summary[data-v-298aef9f]{margin-bottom:.5rem}.text-response-source summary[data-v-298aef9f]:hover{background:#d8d8d8}.text-response-editor[data-v-298aef9f]{color:#333;resize:vertical;background:#fff;border:1px solid #ccc;border-radius:4px;width:100%;height:40vh;margin-bottom:.5rem;padding:1rem;font-family:Courier New,monospace;font-size:.9rem;line-height:1.5}.text-response-editor[data-v-298aef9f]:focus{border-color:#4caf50;outline:none;box-shadow:0 0 0 2px #4caf501a}.apply-btn[data-v-298aef9f]{color:#fff;cursor:pointer;background:#4caf50;border:none;border-radius:4px;padding:.5rem 1rem;font-size:.9rem;font-weight:500;transition:background .2s}.apply-btn[data-v-298aef9f]:hover{background:#45a049}.apply-btn[data-v-298aef9f]:active{background:#3d8b40}.apply-btn[data-v-298aef9f]:disabled{color:#666;cursor:not-allowed;opacity:.6;background:#ccc}.apply-btn[data-v-298aef9f]:disabled:hover{background:#ccc}.preview-markdown[data-v-8c4c9e48]{-webkit-line-clamp:5;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.preview-markdown[data-v-8c4c9e48] p{margin:0;display:inline}.preview-markdown[data-v-8c4c9e48] h1,.preview-markdown[data-v-8c4c9e48] h2,.preview-markdown[data-v-8c4c9e48] h3,.preview-markdown[data-v-8c4c9e48] h4,.preview-markdown[data-v-8c4c9e48] h5,.preview-markdown[data-v-8c4c9e48] h6{font-size:inherit;font-weight:700;display:inline}.preview-markdown[data-v-8c4c9e48] ul,.preview-markdown[data-v-8c4c9e48] ol{margin:0;padding:0;list-style:none;display:inline}.preview-markdown[data-v-8c4c9e48] li{display:inline}.preview-markdown[data-v-8c4c9e48] li:before{content:"• "}.preview-markdown[data-v-8c4c9e48] strong{font-weight:700}.preview-markdown[data-v-8c4c9e48] em{font-style:italic}.preview-markdown[data-v-8c4c9e48] code{font-family:monospace;font-size:.9em}.preview-markdown[data-v-8c4c9e48] pre{white-space:pre-wrap;display:inline}
3
+ /*$vite$:1*/
package/dist/vue.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("./index.cjs"),e=require("vue"),m=require("marked"),y={class:"text-response-container"},N={class:"text-response-content-wrapper"},C={class:"p-6"},V={class:"max-w-3xl mx-auto space-y-4"},O={class:"flex justify-between items-start mb-2 text-sm text-gray-500"},R={class:"font-medium text-gray-700"},M={key:0,class:"italic"},S=["innerHTML"],I={class:"text-response-source"},L=["disabled"],P=e.defineComponent({__name:"View",props:{selectedResult:{}},emits:["updateResult"],setup(l,{emit:c}){const t=l,d=c,r=e.computed(()=>t.selectedResult.data?.text??""),o=e.ref(r.value);e.watch(()=>t.selectedResult.data?.text,s=>{s!==void 0&&(o.value=s)});const u=e.computed(()=>t.selectedResult.data?.role??"assistant"),i=e.computed(()=>t.selectedResult.data?.transportKind??""),f=e.computed(()=>{if(!r.value)return"";let s=r.value;const n=s.trim();if(n.startsWith("{")&&n.endsWith("}")||n.startsWith("[")&&n.endsWith("]"))try{JSON.parse(n),s="```json\n"+n+"\n```"}catch{}s=s.replace(/<think>([\s\S]*?)<\/think>/g,(A,E)=>`<div class="think-block">${m.marked(E.trim())}</div>`);const p={breaks:!0,gfm:!0};return m.marked(s,p)}),k=e.computed(()=>{switch(u.value){case"system":return"System";case"user":return"You";default:return"Assistant"}}),T=e.computed(()=>{switch(u.value){case"system":return"bg-blue-50 border-blue-200";case"user":return"bg-green-50 border-green-200";default:return"bg-purple-50 border-purple-200"}}),v=e.computed(()=>o.value!==r.value);function b(){}function w(){if(!v.value)return;const s={...t.selectedResult,data:{...t.selectedResult.data,text:o.value}};d("updateResult",s)}return(s,n)=>(e.openBlock(),e.createElementBlock("div",y,[e.createElementVNode("div",N,[e.createElementVNode("div",C,[e.createElementVNode("div",V,[e.createElementVNode("div",{class:e.normalizeClass(["rounded-lg border border-gray-300 bg-white shadow-sm p-5",T.value])},[e.createElementVNode("div",O,[e.createElementVNode("span",R,e.toDisplayString(k.value),1),i.value?(e.openBlock(),e.createElementBlock("span",M,e.toDisplayString(i.value),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:"markdown-content prose prose-slate max-w-none leading-relaxed text-gray-900",innerHTML:f.value},null,8,S)],2)])])]),e.createElementVNode("details",I,[n[1]||(n[1]=e.createElementVNode("summary",null,"Edit Text Content",-1)),e.withDirectives(e.createElementVNode("textarea",{"onUpdate:modelValue":n[0]||(n[0]=p=>o.value=p),onInput:b,class:"text-response-editor",spellcheck:"false"},null,544),[[e.vModelText,o.value]]),e.createElementVNode("button",{onClick:w,class:"apply-btn",disabled:!v.value}," Apply Changes ",8,L)])]))}}),_=(l,c)=>{const t=l.__vccOpts||l;for(const[d,r]of c)t[d]=r;return t},x=_(P,[["__scopeId","data-v-298aef9f"]]),B=["innerHTML"],D=e.defineComponent({__name:"Preview",props:{result:{}},setup(l){const c=l,t=e.computed(()=>c.result.data?.text??""),d=e.computed(()=>c.result.data?.role??"assistant"),r=e.computed(()=>{switch(d.value){case"system":return"text-blue-700";case"user":return"text-green-700 font-medium";default:return"text-gray-700"}}),o=e.computed(()=>m.marked(t.value,{breaks:!0,gfm:!0}));return(u,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["text-sm leading-snug",r.value])},[e.createElementVNode("div",{class:"preview-markdown",innerHTML:o.value},null,8,B)],2))}}),g=_(D,[["__scopeId","data-v-8c4c9e48"]]),h={...a.pluginCore,viewComponent:x,previewComponent:g,samples:a.samples},H={plugin:h};exports.SYSTEM_PROMPT=a.SYSTEM_PROMPT;exports.TOOL_DEFINITION=a.TOOL_DEFINITION;exports.TOOL_NAME=a.TOOL_NAME;exports.executeTextResponse=a.executeTextResponse;exports.pluginCore=a.pluginCore;exports.samples=a.samples;exports.Preview=g;exports.View=x;exports.default=H;exports.plugin=h;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require(`./samples-BO4P7dT9.cjs`);let t=require(`vue`),n=require(`marked`);var r={class:`text-response-container`},i={class:`text-response-content-wrapper`},a={class:`p-6`},o={class:`max-w-3xl mx-auto space-y-4`},s={class:`flex justify-between items-start mb-2 text-sm text-gray-500`},c={class:`font-medium text-gray-700`},l={key:0,class:`italic`},u=[`innerHTML`],d={class:`text-response-source`},f=[`disabled`],p=(0,t.defineComponent)({__name:`View`,props:{selectedResult:{}},emits:[`updateResult`],setup(e,{emit:p}){let m=e,h=p,g=(0,t.computed)(()=>m.selectedResult.data?.text??``),_=(0,t.ref)(g.value);(0,t.watch)(()=>m.selectedResult.data?.text,e=>{e!==void 0&&(_.value=e)});let v=(0,t.computed)(()=>m.selectedResult.data?.role??`assistant`),y=(0,t.computed)(()=>m.selectedResult.data?.transportKind??``),b=(0,t.computed)(()=>{if(!g.value)return``;let e=g.value,t=e.trim();if(t.startsWith(`{`)&&t.endsWith(`}`)||t.startsWith(`[`)&&t.endsWith(`]`))try{JSON.parse(t),e="```json\n"+t+"\n```"}catch{}return e=e.replace(/<think>([\s\S]*?)<\/think>/g,(e,t)=>`<div class="think-block">${(0,n.marked)(t.trim())}</div>`),(0,n.marked)(e,{breaks:!0,gfm:!0})}),x=(0,t.computed)(()=>{switch(v.value){case`system`:return`System`;case`user`:return`You`;default:return`Assistant`}}),S=(0,t.computed)(()=>{switch(v.value){case`system`:return`bg-blue-50 border-blue-200`;case`user`:return`bg-green-50 border-green-200`;default:return`bg-purple-50 border-purple-200`}}),C=(0,t.computed)(()=>_.value!==g.value);function w(){}function T(){C.value&&h(`updateResult`,{...m.selectedResult,data:{...m.selectedResult.data,text:_.value}})}return(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,r,[(0,t.createElementVNode)(`div`,i,[(0,t.createElementVNode)(`div`,a,[(0,t.createElementVNode)(`div`,o,[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`rounded-lg border border-gray-300 bg-white shadow-sm p-5`,S.value])},[(0,t.createElementVNode)(`div`,s,[(0,t.createElementVNode)(`span`,c,(0,t.toDisplayString)(x.value),1),y.value?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,l,(0,t.toDisplayString)(y.value),1)):(0,t.createCommentVNode)(``,!0)]),(0,t.createElementVNode)(`div`,{class:`markdown-content prose prose-slate max-w-none leading-relaxed text-gray-900`,innerHTML:b.value},null,8,u)],2)])])]),(0,t.createElementVNode)(`details`,d,[n[1]||=(0,t.createElementVNode)(`summary`,null,`Edit Text Content`,-1),(0,t.withDirectives)((0,t.createElementVNode)(`textarea`,{"onUpdate:modelValue":n[0]||=e=>_.value=e,onInput:w,class:`text-response-editor`,spellcheck:`false`},null,544),[[t.vModelText,_.value]]),(0,t.createElementVNode)(`button`,{onClick:T,class:`apply-btn`,disabled:!C.value},` Apply Changes `,8,f)])]))}}),m=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},h=m(p,[[`__scopeId`,`data-v-298aef9f`]]),g=[`innerHTML`],_=m((0,t.defineComponent)({__name:`Preview`,props:{result:{}},setup(e){let r=e,i=(0,t.computed)(()=>r.result.data?.text??``),a=(0,t.computed)(()=>r.result.data?.role??`assistant`),o=(0,t.computed)(()=>{switch(a.value){case`system`:return`text-blue-700`;case`user`:return`text-green-700 font-medium`;default:return`text-gray-700`}}),s=(0,t.computed)(()=>(0,n.marked)(i.value,{breaks:!0,gfm:!0}));return(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`text-sm leading-snug`,o.value])},[(0,t.createElementVNode)(`div`,{class:`preview-markdown`,innerHTML:s.value},null,8,g)],2))}}),[[`__scopeId`,`data-v-8c4c9e48`]]),v={...e.r,viewComponent:h,previewComponent:_,samples:e.t},y={plugin:v};exports.Preview=_,exports.SYSTEM_PROMPT=e.i,exports.TOOL_DEFINITION=e.a,exports.TOOL_NAME=e.o,exports.View=h,exports.default=y,exports.executeTextResponse=e.n,exports.plugin=v,exports.pluginCore=e.r,exports.samples=e.t;
package/dist/vue.js CHANGED
@@ -1,162 +1,98 @@
1
- import { samples as O, pluginCore as M } from "./index.js";
2
- import { SYSTEM_PROMPT as re, TOOL_DEFINITION as ae, TOOL_NAME as oe, executeTextResponse as le } from "./index.js";
3
- import { defineComponent as f, computed as r, ref as E, watch as L, openBlock as p, createElementBlock as m, createElementVNode as e, normalizeClass as g, toDisplayString as h, createCommentVNode as I, withDirectives as N, vModelText as S } from "vue";
1
+ import { a as e, i as t, n, o as r, r as i, t as a } from "./samples-DA_sw4wk.js";
2
+ import { computed as o, createCommentVNode as s, createElementBlock as c, createElementVNode as l, defineComponent as u, normalizeClass as d, openBlock as f, ref as p, toDisplayString as m, vModelText as h, watch as g, withDirectives as _ } from "vue";
4
3
  import { marked as v } from "marked";
5
- const H = { class: "text-response-container" }, V = { class: "text-response-content-wrapper" }, P = { class: "p-6" }, W = { class: "max-w-3xl mx-auto space-y-4" }, A = { class: "flex justify-between items-start mb-2 text-sm text-gray-500" }, D = { class: "font-medium text-gray-700" }, $ = {
6
- key: 0,
7
- class: "italic"
8
- }, j = ["innerHTML"], B = { class: "text-response-source" }, K = ["disabled"], Y = /* @__PURE__ */ f({
9
- __name: "View",
10
- props: {
11
- selectedResult: {}
12
- },
13
- emits: ["updateResult"],
14
- setup(l, { emit: c }) {
15
- const t = l, i = c, a = r(() => t.selectedResult.data?.text ?? ""), o = E(a.value);
16
- L(
17
- () => t.selectedResult.data?.text,
18
- (s) => {
19
- s !== void 0 && (o.value = s);
20
- }
21
- );
22
- const d = r(
23
- () => t.selectedResult.data?.role ?? "assistant"
24
- ), u = r(
25
- () => t.selectedResult.data?.transportKind ?? ""
26
- ), k = r(() => {
27
- if (!a.value) return "";
28
- let s = a.value;
29
- const n = s.trim();
30
- if (n.startsWith("{") && n.endsWith("}") || n.startsWith("[") && n.endsWith("]"))
31
- try {
32
- JSON.parse(n), s = "```json\n" + n + "\n```";
33
- } catch {
34
- }
35
- return s = s.replace(
36
- /<think>([\s\S]*?)<\/think>/g,
37
- (G, R) => `<div class="think-block">${v(R.trim())}</div>`
38
- ), v(s, {
39
- breaks: !0,
40
- // Convert \n to <br>
41
- gfm: !0
42
- // GitHub Flavored Markdown
43
- });
44
- }), w = r(() => {
45
- switch (d.value) {
46
- case "system":
47
- return "System";
48
- case "user":
49
- return "You";
50
- default:
51
- return "Assistant";
52
- }
53
- }), y = r(() => {
54
- switch (d.value) {
55
- case "system":
56
- return "bg-blue-50 border-blue-200";
57
- case "user":
58
- return "bg-green-50 border-green-200";
59
- default:
60
- return "bg-purple-50 border-purple-200";
61
- }
62
- }), _ = r(() => o.value !== a.value);
63
- function T() {
64
- }
65
- function C() {
66
- if (!_.value) return;
67
- const s = {
68
- ...t.selectedResult,
69
- data: {
70
- ...t.selectedResult.data,
71
- text: o.value
72
- }
73
- };
74
- i("updateResult", s);
75
- }
76
- return (s, n) => (p(), m("div", H, [
77
- e("div", V, [
78
- e("div", P, [
79
- e("div", W, [
80
- e("div", {
81
- class: g(["rounded-lg border border-gray-300 bg-white shadow-sm p-5", y.value])
82
- }, [
83
- e("div", A, [
84
- e("span", D, h(w.value), 1),
85
- u.value ? (p(), m("span", $, h(u.value), 1)) : I("", !0)
86
- ]),
87
- e("div", {
88
- class: "markdown-content prose prose-slate max-w-none leading-relaxed text-gray-900",
89
- innerHTML: k.value
90
- }, null, 8, j)
91
- ], 2)
92
- ])
93
- ])
94
- ]),
95
- e("details", B, [
96
- n[1] || (n[1] = e("summary", null, "Edit Text Content", -1)),
97
- N(e("textarea", {
98
- "onUpdate:modelValue": n[0] || (n[0] = (x) => o.value = x),
99
- onInput: T,
100
- class: "text-response-editor",
101
- spellcheck: "false"
102
- }, null, 544), [
103
- [S, o.value]
104
- ]),
105
- e("button", {
106
- onClick: C,
107
- class: "apply-btn",
108
- disabled: !_.value
109
- }, " Apply Changes ", 8, K)
110
- ])
111
- ]));
112
- }
113
- }), b = (l, c) => {
114
- const t = l.__vccOpts || l;
115
- for (const [i, a] of c)
116
- t[i] = a;
117
- return t;
118
- }, z = /* @__PURE__ */ b(Y, [["__scopeId", "data-v-298aef9f"]]), F = ["innerHTML"], J = /* @__PURE__ */ f({
119
- __name: "Preview",
120
- props: {
121
- result: {}
122
- },
123
- setup(l) {
124
- const c = l, t = r(() => c.result.data?.text ?? ""), i = r(() => c.result.data?.role ?? "assistant"), a = r(() => {
125
- switch (i.value) {
126
- case "system":
127
- return "text-blue-700";
128
- case "user":
129
- return "text-green-700 font-medium";
130
- default:
131
- return "text-gray-700";
132
- }
133
- }), o = r(
134
- () => v(t.value, { breaks: !0, gfm: !0 })
135
- );
136
- return (d, u) => (p(), m("div", {
137
- class: g(["text-sm leading-snug", a.value])
138
- }, [
139
- e("div", {
140
- class: "preview-markdown",
141
- innerHTML: o.value
142
- }, null, 8, F)
143
- ], 2));
144
- }
145
- }), U = /* @__PURE__ */ b(J, [["__scopeId", "data-v-8c4c9e48"]]), q = {
146
- ...M,
147
- viewComponent: z,
148
- previewComponent: U,
149
- samples: O
150
- }, te = { plugin: q };
151
- export {
152
- U as Preview,
153
- re as SYSTEM_PROMPT,
154
- ae as TOOL_DEFINITION,
155
- oe as TOOL_NAME,
156
- z as View,
157
- te as default,
158
- le as executeTextResponse,
159
- q as plugin,
160
- M as pluginCore,
161
- O as samples
162
- };
4
+ //#region src/vue/View.vue?vue&type=script&setup=true&lang.ts
5
+ var y = { class: "text-response-container" }, b = { class: "text-response-content-wrapper" }, x = { class: "p-6" }, S = { class: "max-w-3xl mx-auto space-y-4" }, C = { class: "flex justify-between items-start mb-2 text-sm text-gray-500" }, w = { class: "font-medium text-gray-700" }, T = {
6
+ key: 0,
7
+ class: "italic"
8
+ }, E = ["innerHTML"], D = { class: "text-response-source" }, O = ["disabled"], k = /* @__PURE__ */ u({
9
+ __name: "View",
10
+ props: { selectedResult: {} },
11
+ emits: ["updateResult"],
12
+ setup(e, { emit: t }) {
13
+ let n = e, r = t, i = o(() => n.selectedResult.data?.text ?? ""), a = p(i.value);
14
+ g(() => n.selectedResult.data?.text, (e) => {
15
+ e !== void 0 && (a.value = e);
16
+ });
17
+ let u = o(() => n.selectedResult.data?.role ?? "assistant"), k = o(() => n.selectedResult.data?.transportKind ?? ""), A = o(() => {
18
+ if (!i.value) return "";
19
+ let e = i.value, t = e.trim();
20
+ if (t.startsWith("{") && t.endsWith("}") || t.startsWith("[") && t.endsWith("]")) try {
21
+ JSON.parse(t), e = "```json\n" + t + "\n```";
22
+ } catch {}
23
+ return e = e.replace(/<think>([\s\S]*?)<\/think>/g, (e, t) => `<div class="think-block">${v(t.trim())}</div>`), v(e, {
24
+ breaks: !0,
25
+ gfm: !0
26
+ });
27
+ }), j = o(() => {
28
+ switch (u.value) {
29
+ case "system": return "System";
30
+ case "user": return "You";
31
+ default: return "Assistant";
32
+ }
33
+ }), M = o(() => {
34
+ switch (u.value) {
35
+ case "system": return "bg-blue-50 border-blue-200";
36
+ case "user": return "bg-green-50 border-green-200";
37
+ default: return "bg-purple-50 border-purple-200";
38
+ }
39
+ }), N = o(() => a.value !== i.value);
40
+ function P() {}
41
+ function F() {
42
+ N.value && r("updateResult", {
43
+ ...n.selectedResult,
44
+ data: {
45
+ ...n.selectedResult.data,
46
+ text: a.value
47
+ }
48
+ });
49
+ }
50
+ return (e, t) => (f(), c("div", y, [l("div", b, [l("div", x, [l("div", S, [l("div", { class: d(["rounded-lg border border-gray-300 bg-white shadow-sm p-5", M.value]) }, [l("div", C, [l("span", w, m(j.value), 1), k.value ? (f(), c("span", T, m(k.value), 1)) : s("", !0)]), l("div", {
51
+ class: "markdown-content prose prose-slate max-w-none leading-relaxed text-gray-900",
52
+ innerHTML: A.value
53
+ }, null, 8, E)], 2)])])]), l("details", D, [
54
+ t[1] ||= l("summary", null, "Edit Text Content", -1),
55
+ _(l("textarea", {
56
+ "onUpdate:modelValue": t[0] ||= (e) => a.value = e,
57
+ onInput: P,
58
+ class: "text-response-editor",
59
+ spellcheck: "false"
60
+ }, null, 544), [[h, a.value]]),
61
+ l("button", {
62
+ onClick: F,
63
+ class: "apply-btn",
64
+ disabled: !N.value
65
+ }, " Apply Changes ", 8, O)
66
+ ])]));
67
+ }
68
+ }), A = (e, t) => {
69
+ let n = e.__vccOpts || e;
70
+ for (let [e, r] of t) n[e] = r;
71
+ return n;
72
+ }, j = /* @__PURE__ */ A(k, [["__scopeId", "data-v-298aef9f"]]), M = ["innerHTML"], N = /* @__PURE__ */ A(/* @__PURE__ */ u({
73
+ __name: "Preview",
74
+ props: { result: {} },
75
+ setup(e) {
76
+ let t = e, n = o(() => t.result.data?.text ?? ""), r = o(() => t.result.data?.role ?? "assistant"), i = o(() => {
77
+ switch (r.value) {
78
+ case "system": return "text-blue-700";
79
+ case "user": return "text-green-700 font-medium";
80
+ default: return "text-gray-700";
81
+ }
82
+ }), a = o(() => v(n.value, {
83
+ breaks: !0,
84
+ gfm: !0
85
+ }));
86
+ return (e, t) => (f(), c("div", { class: d(["text-sm leading-snug", i.value]) }, [l("div", {
87
+ class: "preview-markdown",
88
+ innerHTML: a.value
89
+ }, null, 8, M)], 2));
90
+ }
91
+ }), [["__scopeId", "data-v-8c4c9e48"]]), P = {
92
+ ...i,
93
+ viewComponent: j,
94
+ previewComponent: N,
95
+ samples: a
96
+ }, F = { plugin: P };
97
+ //#endregion
98
+ export { N as Preview, t as SYSTEM_PROMPT, e as TOOL_DEFINITION, r as TOOL_NAME, j as View, F as default, n as executeTextResponse, P as plugin, i as pluginCore, a as samples };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gui-chat-plugin/text-response",
3
- "version": "0.1.2",
3
+ "version": "0.2.0",
4
4
  "description": "Text Response plugin for GUI Chat - Markdown rendering with role-based styling",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -37,23 +37,24 @@
37
37
  "vue": "^3.5.0"
38
38
  },
39
39
  "dependencies": {
40
- "gui-chat-protocol": "^0.0.3",
40
+ "gui-chat-protocol": "^0.1.0",
41
41
  "marked": "^17.0.1"
42
42
  },
43
43
  "devDependencies": {
44
- "@tailwindcss/vite": "^4.1.18",
45
- "@typescript-eslint/eslint-plugin": "^8.53.0",
46
- "@typescript-eslint/parser": "^8.53.0",
47
- "@vitejs/plugin-vue": "^6.0.3",
48
- "eslint": "^9.39.2",
49
- "eslint-plugin-vue": "^10.6.2",
50
- "globals": "^17.0.0",
51
- "tailwindcss": "^4.1.18",
44
+ "@eslint/js": "^10.0.1",
45
+ "@tailwindcss/vite": "^4.2.2",
46
+ "@typescript-eslint/eslint-plugin": "^8.58.0",
47
+ "@typescript-eslint/parser": "^8.58.0",
48
+ "@vitejs/plugin-vue": "^6.0.5",
49
+ "eslint": "^10.1.0",
50
+ "eslint-plugin-vue": "^10.8.0",
51
+ "globals": "^17.4.0",
52
+ "tailwindcss": "^4.2.2",
52
53
  "typescript": "~6.0.2",
53
- "vite": "^7.3.1",
54
- "vue": "^3.5.27",
55
- "vue-eslint-parser": "^10.2.0",
56
- "vue-tsc": "^3.2.2"
54
+ "vite": "^8.0.3",
55
+ "vue": "^3.5.31",
56
+ "vue-eslint-parser": "^10.4.0",
57
+ "vue-tsc": "^3.2.6"
57
58
  },
58
59
  "keywords": [
59
60
  "guichat",