@feedmepos/mf-remy-panel 0.0.4 → 0.0.6
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/HomeView-d3782044.js +122 -0
- package/dist/app-f120082e.js +8481 -0
- package/dist/app.d.ts +5 -0
- package/dist/app.js +6 -5
- package/dist/assets/icons/index.d.ts +3 -0
- package/dist/components/{ChatInput.vue.d.ts → RemyButton.vue.d.ts} +2 -2
- package/dist/components/{ChatFollowUps.vue.d.ts → chatPanel/ChatFollowUps.vue.d.ts} +3 -2
- package/dist/components/chatPanel/ChatInput.vue.d.ts +6 -0
- package/dist/components/chatPanel/MessageHeader.vue.d.ts +16 -0
- package/dist/stores/remyChat.d.ts +172 -24
- package/dist/stores/remyStore.d.ts +25 -0
- package/dist/style.css +1 -1
- package/dist/tsconfig.app.tsbuildinfo +1 -1
- package/package.json +6 -4
- package/dist/HomeView-40a46f7c.js +0 -17
- package/dist/app-f34db2cf.js +0 -4355
- /package/dist/components/{ChatMessageAssistant.vue.d.ts → chatPanel/ChatMessageAssistant.vue.d.ts} +0 -0
- /package/dist/components/{ChatMessageUser.vue.d.ts → chatPanel/ChatMessageUser.vue.d.ts} +0 -0
- /package/dist/components/{ChatMessages.vue.d.ts → chatPanel/ChatMessages.vue.d.ts} +0 -0
- /package/dist/components/{HistoryView.vue.d.ts → chatPanel/HistoryView.vue.d.ts} +0 -0
- /package/dist/components/{MessageActions.vue.d.ts → chatPanel/MessageActions.vue.d.ts} +0 -0
- /package/dist/components/{MessageContent.vue.d.ts → chatPanel/MessageContent.vue.d.ts} +0 -0
- /package/dist/components/{Navigator.vue.d.ts → chatPanel/Navigator.vue.d.ts} +0 -0
- /package/dist/components/{RemyChatPanel.vue.d.ts → chatPanel/RemyChatPanel.vue.d.ts} +0 -0
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { openBlock as r, createElementBlock as s, createElementVNode as e, defineComponent as h, computed as v, normalizeClass as f, createBlock as u, unref as y, createCommentVNode as _, ref as C, createVNode as k, createTextVNode as w, toDisplayString as x, Fragment as R, renderList as S, createStaticVNode as N } from "vue";
|
|
2
|
+
import { u as b, a as V, _ as A } from "./app-f120082e.js";
|
|
3
|
+
import "@feedmepos/mf-common";
|
|
4
|
+
import "pinia";
|
|
5
|
+
import "vue-router";
|
|
6
|
+
const M = {
|
|
7
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
8
|
+
width: "24",
|
|
9
|
+
height: "24",
|
|
10
|
+
fill: "none"
|
|
11
|
+
};
|
|
12
|
+
function B(i, t) {
|
|
13
|
+
return r(), s("svg", M, [...t[0] || (t[0] = [
|
|
14
|
+
e("path", {
|
|
15
|
+
fill: "#1C1C1E",
|
|
16
|
+
d: "M7.6 7.6c.57-.658.9-2.1.9-2.1s.314 1.374.857 2c.572.66 2.143 1 2.143 1s-1.57.198-2.143.857C8.814 9.984 8.5 11.5 8.5 11.5s-.18-1.311-.75-1.91C7.149 8.962 5.5 8.5 5.5 8.5s1.5-.207 2.1-.9M12.2 12.2C13.342 10.885 14 8 14 8s.627 2.747 1.714 4C16.86 13.32 20 14 20 14s-3.141.395-4.286 1.714C14.627 16.967 14 20 14 20s-.358-2.622-1.5-3.818C11.298 14.922 8 14 8 14s2.998-.415 4.2-1.8"
|
|
17
|
+
}, null, -1),
|
|
18
|
+
e("path", {
|
|
19
|
+
stroke: "#1C1C1E",
|
|
20
|
+
"stroke-linecap": "round",
|
|
21
|
+
"stroke-linejoin": "round",
|
|
22
|
+
"stroke-width": "1.5",
|
|
23
|
+
d: "M7.6 7.6c.57-.658.9-2.1.9-2.1s.314 1.374.857 2c.572.66 2.143 1 2.143 1s-1.57.198-2.143.857C8.814 9.984 8.5 11.5 8.5 11.5s-.18-1.311-.75-1.91C7.149 8.962 5.5 8.5 5.5 8.5s1.5-.207 2.1-.9M12.2 12.2C13.342 10.885 14 8 14 8s.627 2.747 1.714 4C16.86 13.32 20 14 20 14s-3.141.395-4.286 1.714C14.627 16.967 14 20 14 20s-.358-2.622-1.5-3.818C11.298 14.922 8 14 8 14s2.998-.415 4.2-1.8"
|
|
24
|
+
}, null, -1)
|
|
25
|
+
])]);
|
|
26
|
+
}
|
|
27
|
+
const E = { render: B }, $ = {
|
|
28
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
29
|
+
width: "24",
|
|
30
|
+
height: "24",
|
|
31
|
+
fill: "none"
|
|
32
|
+
};
|
|
33
|
+
function I(i, t) {
|
|
34
|
+
return r(), s("svg", $, [...t[0] || (t[0] = [
|
|
35
|
+
e("g", {
|
|
36
|
+
stroke: "#1C1C1E",
|
|
37
|
+
"stroke-linecap": "round",
|
|
38
|
+
"stroke-linejoin": "round",
|
|
39
|
+
"stroke-width": "1.5"
|
|
40
|
+
}, [
|
|
41
|
+
e("path", { d: "M7.6 7.6c.57-.658.9-2.1.9-2.1s.314 1.374.857 2c.572.66 2.143 1 2.143 1s-1.57.198-2.143.857C8.814 9.984 8.5 11.5 8.5 11.5s-.18-1.311-.75-1.91C7.149 8.962 5.5 8.5 5.5 8.5s1.5-.207 2.1-.9M12.2 12.2C13.342 10.885 14 8 14 8s.627 2.747 1.714 4C16.86 13.32 20 14 20 14s-3.141.395-4.286 1.714C14.627 16.967 14 20 14 20s-.358-2.622-1.5-3.818C11.298 14.922 8 14 8 14s2.998-.415 4.2-1.8" })
|
|
42
|
+
], -1)
|
|
43
|
+
])]);
|
|
44
|
+
}
|
|
45
|
+
const j = { render: I }, D = /* @__PURE__ */ h({
|
|
46
|
+
__name: "RemyButton",
|
|
47
|
+
emits: ["click"],
|
|
48
|
+
setup(i, { emit: t }) {
|
|
49
|
+
const d = t, n = b(), l = v(() => n.showRemy), m = v(() => n.dialogShowing);
|
|
50
|
+
function p() {
|
|
51
|
+
d("click");
|
|
52
|
+
}
|
|
53
|
+
return (g, a) => l.value ? (r(), s("button", {
|
|
54
|
+
key: 0,
|
|
55
|
+
class: f(["bg-fm-color-neutral-gray-100 rounded-lg p-[6px]"]),
|
|
56
|
+
type: "button",
|
|
57
|
+
onClick: p
|
|
58
|
+
}, [
|
|
59
|
+
m.value ? (r(), u(y(j), { key: 0 })) : (r(), u(y(E), { key: 1 }))
|
|
60
|
+
])) : _("", !0);
|
|
61
|
+
}
|
|
62
|
+
}), H = { class: "flex flex-col gap-12 p-8 max-w-[1200px] mx-auto md:gap-8 md:p-4" }, T = { class: "flex flex-col gap-6" }, z = {
|
|
63
|
+
key: 0,
|
|
64
|
+
class: "grid grid-cols-[repeat(auto-fit,minmax(280px,1fr))] gap-6 mt-4 md:grid-cols-1"
|
|
65
|
+
}, F = ["onClick"], L = { class: "text-lg font-semibold mb-2 text-[var(--color-text)]" }, O = { class: "bg-[var(--color-background)] px-1.5 py-0.5 rounded font-mono text-[0.875em] text-[var(--color-primary)]" }, G = { class: "text-[15px] text-[var(--color-text-secondary)] leading-6 m-0" }, U = {
|
|
66
|
+
key: 1,
|
|
67
|
+
class: "px-6 py-4 bg-[var(--color-background-soft)] rounded-lg border border-[var(--color-border)] text-[var(--color-text-secondary)]"
|
|
68
|
+
}, W = /* @__PURE__ */ h({
|
|
69
|
+
__name: "HomeView",
|
|
70
|
+
setup(i) {
|
|
71
|
+
const t = b(), d = V(), n = C(""), l = v(() => {
|
|
72
|
+
const a = d.participants.get("remy");
|
|
73
|
+
return (a == null ? void 0 : a.commands) || [];
|
|
74
|
+
});
|
|
75
|
+
function m(a) {
|
|
76
|
+
n.value = a;
|
|
77
|
+
}
|
|
78
|
+
function p() {
|
|
79
|
+
t.activate({
|
|
80
|
+
command: "suggestDescription",
|
|
81
|
+
context: { itemName: "ABC Soup" },
|
|
82
|
+
onResult: m
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
function g(a) {
|
|
86
|
+
t.activate({
|
|
87
|
+
command: a,
|
|
88
|
+
context: { itemName: "Nasi Lemak" }
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
return (a, o) => (r(), s("div", H, [
|
|
92
|
+
o[3] || (o[3] = e("div", { class: "text-center px-8 py-12 bg-gradient-to-br from-[var(--color-background-soft)] to-[var(--color-background-mute)] rounded-xl md:px-4 md:py-8" }, [
|
|
93
|
+
e("h1", { class: "text-[2.5rem] font-bold mb-4 text-[var(--color-text)] md:text-[2rem]" }, "Welcome to Remy Panel"),
|
|
94
|
+
e("p", { class: "text-xl text-[var(--color-text-secondary)] m-0 md:text-lg" }, "Your AI-powered assistant for development")
|
|
95
|
+
], -1)),
|
|
96
|
+
k(D, { onClick: p }),
|
|
97
|
+
w(" " + x(n.value) + " ", 1),
|
|
98
|
+
e("div", T, [
|
|
99
|
+
o[1] || (o[1] = e("h2", { class: "text-[1.75rem] font-semibold m-0 text-[var(--color-text)]" }, "Remy Commands", -1)),
|
|
100
|
+
o[2] || (o[2] = e("p", { class: "text-[var(--color-text-secondary)] leading-6 m-0" }, " Available slash commands from the Remy agent: ", -1)),
|
|
101
|
+
l.value.length > 0 ? (r(), s("div", z, [
|
|
102
|
+
(r(!0), s(R, null, S(l.value, (c) => (r(), s("div", {
|
|
103
|
+
key: c.name,
|
|
104
|
+
onClick: (Y) => g(c.name),
|
|
105
|
+
class: "px-6 py-6 bg-[var(--color-background-soft)] rounded-lg border border-[var(--color-border)] transition-all duration-200 hover:-translate-y-0.5 hover:shadow-[0_4px_12px_rgba(0,0,0,0.1)] hover:border-[var(--color-primary)] cursor-pointer"
|
|
106
|
+
}, [
|
|
107
|
+
o[0] || (o[0] = e("div", { class: "text-[2rem] mb-3" }, "⚡", -1)),
|
|
108
|
+
e("h3", L, [
|
|
109
|
+
e("code", O, "/" + x(c.name), 1)
|
|
110
|
+
]),
|
|
111
|
+
e("p", G, x(c.description), 1)
|
|
112
|
+
], 8, F))), 128))
|
|
113
|
+
])) : (r(), s("div", U, " No commands available. The Remy agent may not be initialized yet. "))
|
|
114
|
+
]),
|
|
115
|
+
o[4] || (o[4] = N('<div class="flex flex-col gap-4 px-8 py-8 bg-[var(--color-background-soft)] rounded-lg border-l-4 border-[var(--color-primary)]" data-v-7c0414ea><h2 class="text-[1.75rem] font-semibold m-0 text-[var(--color-text)]" data-v-7c0414ea>Getting Started</h2><ol class="m-0 pl-6 flex flex-col gap-3" data-v-7c0414ea><li class="text-[var(--color-text)] leading-6" data-v-7c0414ea>Click the <strong class="text-[var(--color-primary)] font-semibold" data-v-7c0414ea>Remy icon</strong> in the top navigation bar to open the chat panel</li><li class="text-[var(--color-text)] leading-6" data-v-7c0414ea>On desktop, the panel appears on the right side with <strong class="text-[var(--color-primary)] font-semibold" data-v-7c0414ea>adjustable width</strong></li><li class="text-[var(--color-text)] leading-6" data-v-7c0414ea>On mobile/tablet, the panel opens in <strong class="text-[var(--color-primary)] font-semibold" data-v-7c0414ea>full-screen mode</strong></li><li class="text-[var(--color-text)] leading-6" data-v-7c0414ea>Use the <strong class="text-[var(--color-primary)] font-semibold" data-v-7c0414ea>close button (✕)</strong> to hide the panel when done</li><li class="text-[var(--color-text)] leading-6" data-v-7c0414ea>Try typing <code class="bg-[var(--color-background)] px-1.5 py-0.5 rounded font-mono text-[0.875em] text-[var(--color-primary)]" data-v-7c0414ea>/</code> in the chat input to see available commands</li></ol></div>', 1))
|
|
116
|
+
]));
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
const X = /* @__PURE__ */ A(W, [["__scopeId", "data-v-7c0414ea"]]);
|
|
120
|
+
export {
|
|
121
|
+
X as default
|
|
122
|
+
};
|