@solidxai/core-ui 0.1.20-beta.1 → 0.1.21-beta.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.
Files changed (180) hide show
  1. package/dist/components/common/FileReaderExt.d.ts.map +1 -1
  2. package/dist/components/common/FileReaderExt.js +22 -11
  3. package/dist/components/common/FileReaderExt.js.map +1 -1
  4. package/dist/components/common/FileReaderExt.tsx +27 -14
  5. package/dist/components/common/SocialMediaLogin.d.ts.map +1 -1
  6. package/dist/components/common/SocialMediaLogin.js +1 -1
  7. package/dist/components/common/SocialMediaLogin.js.map +1 -1
  8. package/dist/components/common/SocialMediaLogin.tsx +50 -19
  9. package/dist/components/common/solid-export.css +75 -0
  10. package/dist/components/core/common/SolidGenericImport/SolidImport.module.css +71 -0
  11. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  12. package/dist/components/core/form/SolidFormView.js +14 -0
  13. package/dist/components/core/form/SolidFormView.js.map +1 -1
  14. package/dist/components/core/form/SolidFormView.tsx +13 -0
  15. package/dist/components/core/form/fields/SolidMediaMultipleField.js +3 -3
  16. package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
  17. package/dist/components/core/form/fields/SolidMediaMultipleField.tsx +3 -3
  18. package/dist/components/core/form/fields/SolidMediaSingleField.js +2 -2
  19. package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
  20. package/dist/components/core/form/fields/SolidMediaSingleField.tsx +2 -2
  21. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js +2 -2
  22. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js.map +1 -1
  23. package/dist/components/core/list/columns/SolidMediaMultipleColumn.tsx +4 -4
  24. package/dist/components/core/list/columns/SolidMediaSingleColumn.js +1 -1
  25. package/dist/components/core/list/columns/SolidMediaSingleColumn.js.map +1 -1
  26. package/dist/components/core/list/columns/SolidMediaSingleColumn.tsx +3 -3
  27. package/dist/components/core/solid-agent/SolidAgentChat.d.ts +3 -1
  28. package/dist/components/core/solid-agent/SolidAgentChat.d.ts.map +1 -1
  29. package/dist/components/core/solid-agent/SolidAgentChat.js +150 -22
  30. package/dist/components/core/solid-agent/SolidAgentChat.js.map +1 -1
  31. package/dist/components/core/solid-agent/SolidAgentChat.tsx +76 -15
  32. package/dist/components/core/solid-agent/SolidAgentEmbedded.d.ts +2 -0
  33. package/dist/components/core/solid-agent/SolidAgentEmbedded.d.ts.map +1 -1
  34. package/dist/components/core/solid-agent/SolidAgentEmbedded.js +4 -4
  35. package/dist/components/core/solid-agent/SolidAgentEmbedded.js.map +1 -1
  36. package/dist/components/core/solid-agent/SolidAgentEmbedded.tsx +7 -1
  37. package/dist/components/core/solid-agent/SolidAgentHost.d.ts.map +1 -1
  38. package/dist/components/core/solid-agent/SolidAgentHost.js +79 -1
  39. package/dist/components/core/solid-agent/SolidAgentHost.js.map +1 -1
  40. package/dist/components/core/solid-agent/SolidAgentHost.tsx +69 -2
  41. package/dist/components/core/solid-agent/agentEvents.d.ts.map +1 -1
  42. package/dist/components/core/solid-agent/agentEvents.js +1 -3
  43. package/dist/components/core/solid-agent/agentEvents.js.map +1 -1
  44. package/dist/components/core/solid-agent/agentEvents.ts +5 -3
  45. package/dist/components/core/solid-agent/client/agentPublicEvents.d.ts +88 -0
  46. package/dist/components/core/solid-agent/client/agentPublicEvents.d.ts.map +1 -0
  47. package/dist/components/core/solid-agent/client/agentPublicEvents.js +26 -0
  48. package/dist/components/core/solid-agent/client/agentPublicEvents.js.map +1 -0
  49. package/dist/components/core/solid-agent/client/agentPublicEvents.ts +66 -0
  50. package/dist/components/core/solid-agent/client/agentRuntime.d.ts +18 -3
  51. package/dist/components/core/solid-agent/client/agentRuntime.d.ts.map +1 -1
  52. package/dist/components/core/solid-agent/client/agentRuntime.js +173 -31
  53. package/dist/components/core/solid-agent/client/agentRuntime.js.map +1 -1
  54. package/dist/components/core/solid-agent/client/agentRuntime.ts +126 -16
  55. package/dist/components/core/solid-agent/client/agentSocket.d.ts +3 -0
  56. package/dist/components/core/solid-agent/client/agentSocket.d.ts.map +1 -1
  57. package/dist/components/core/solid-agent/client/agentSocket.js +19 -1
  58. package/dist/components/core/solid-agent/client/agentSocket.js.map +1 -1
  59. package/dist/components/core/solid-agent/client/agentSocket.ts +11 -1
  60. package/dist/components/core/solid-agent/client/beforeUserMessageSend.d.ts +9 -0
  61. package/dist/components/core/solid-agent/client/beforeUserMessageSend.d.ts.map +1 -0
  62. package/dist/components/core/solid-agent/client/beforeUserMessageSend.js +53 -0
  63. package/dist/components/core/solid-agent/client/beforeUserMessageSend.js.map +1 -0
  64. package/dist/components/core/solid-agent/client/beforeUserMessageSend.ts +26 -0
  65. package/dist/components/core/solid-agent/embed/AgentEmbeddingPanel.d.ts.map +1 -1
  66. package/dist/components/core/solid-agent/embed/AgentEmbeddingPanel.js +4 -3
  67. package/dist/components/core/solid-agent/embed/AgentEmbeddingPanel.js.map +1 -1
  68. package/dist/components/core/solid-agent/embed/AgentEmbeddingPanel.tsx +4 -2
  69. package/dist/components/core/solid-agent/embed/agentEmbedProtocol.d.ts +29 -0
  70. package/dist/components/core/solid-agent/embed/agentEmbedProtocol.d.ts.map +1 -1
  71. package/dist/components/core/solid-agent/embed/agentEmbedProtocol.js +45 -2
  72. package/dist/components/core/solid-agent/embed/agentEmbedProtocol.js.map +1 -1
  73. package/dist/components/core/solid-agent/embed/agentEmbedProtocol.ts +49 -2
  74. package/dist/components/core/solid-agent/embed/agentEmbedSamples.d.ts +1 -0
  75. package/dist/components/core/solid-agent/embed/agentEmbedSamples.d.ts.map +1 -1
  76. package/dist/components/core/solid-agent/embed/agentEmbedSamples.js +2 -1
  77. package/dist/components/core/solid-agent/embed/agentEmbedSamples.js.map +1 -1
  78. package/dist/components/core/solid-agent/embed/agentEmbedSamples.ts +15 -1
  79. package/dist/components/core/solid-agent/types.d.ts +13 -0
  80. package/dist/components/core/solid-agent/types.d.ts.map +1 -1
  81. package/dist/components/core/solid-agent/types.js.map +1 -1
  82. package/dist/components/core/solid-agent/types.ts +8 -0
  83. package/dist/components/core/solid-agent/useAgentChat.d.ts +1 -1
  84. package/dist/components/core/solid-agent/useAgentChat.d.ts.map +1 -1
  85. package/dist/components/core/solid-agent/useAgentChat.js +7 -4
  86. package/dist/components/core/solid-agent/useAgentChat.js.map +1 -1
  87. package/dist/components/core/solid-agent/useAgentChat.ts +9 -5
  88. package/dist/components/core/solid-agent/widgets/DefaultUserMessageChatWidget.d.ts.map +1 -1
  89. package/dist/components/core/solid-agent/widgets/DefaultUserMessageChatWidget.js +12 -4
  90. package/dist/components/core/solid-agent/widgets/DefaultUserMessageChatWidget.js.map +1 -1
  91. package/dist/components/core/solid-agent/widgets/DefaultUserMessageChatWidget.tsx +18 -0
  92. package/dist/components/core/solid-agent/widgets/SolidNavigationIntentChatWidget.d.ts +4 -0
  93. package/dist/components/core/solid-agent/widgets/SolidNavigationIntentChatWidget.d.ts.map +1 -0
  94. package/dist/components/core/solid-agent/widgets/SolidNavigationIntentChatWidget.js +30 -0
  95. package/dist/components/core/solid-agent/widgets/SolidNavigationIntentChatWidget.js.map +1 -0
  96. package/dist/components/core/solid-agent/widgets/SolidNavigationIntentChatWidget.tsx +41 -0
  97. package/dist/components/core/solid-agent/widgets/solidChatWidgets.module.css +39 -0
  98. package/dist/components/shad-cn-ui/SolidCodeEditor.d.ts +2 -1
  99. package/dist/components/shad-cn-ui/SolidCodeEditor.d.ts.map +1 -1
  100. package/dist/components/shad-cn-ui/SolidCodeEditor.js +3 -2
  101. package/dist/components/shad-cn-ui/SolidCodeEditor.js.map +1 -1
  102. package/dist/components/shad-cn-ui/SolidCodeEditor.tsx +3 -0
  103. package/dist/helpers/adminViewRefresh.d.ts +13 -0
  104. package/dist/helpers/adminViewRefresh.d.ts.map +1 -0
  105. package/dist/helpers/adminViewRefresh.js +14 -0
  106. package/dist/helpers/adminViewRefresh.js.map +1 -0
  107. package/dist/helpers/adminViewRefresh.ts +26 -0
  108. package/dist/helpers/eventBus.d.ts +1 -0
  109. package/dist/helpers/eventBus.d.ts.map +1 -1
  110. package/dist/helpers/eventBus.js +1 -0
  111. package/dist/helpers/eventBus.js.map +1 -1
  112. package/dist/helpers/eventBus.ts +1 -0
  113. package/dist/helpers/fileTypeIcon.d.ts.map +1 -1
  114. package/dist/helpers/fileTypeIcon.js +4 -1
  115. package/dist/helpers/fileTypeIcon.js.map +1 -1
  116. package/dist/helpers/fileTypeIcon.tsx +15 -0
  117. package/dist/helpers/registry.d.ts.map +1 -1
  118. package/dist/helpers/registry.js +2 -0
  119. package/dist/helpers/registry.js.map +1 -1
  120. package/dist/helpers/registry.ts +2 -0
  121. package/dist/helpers/routePaths.d.ts +13 -0
  122. package/dist/helpers/routePaths.d.ts.map +1 -1
  123. package/dist/helpers/routePaths.js +39 -0
  124. package/dist/helpers/routePaths.js.map +1 -1
  125. package/dist/helpers/routePaths.ts +48 -0
  126. package/dist/redux/features/agentSlice.d.ts +2 -1
  127. package/dist/redux/features/agentSlice.d.ts.map +1 -1
  128. package/dist/redux/features/agentSlice.js +2 -2
  129. package/dist/redux/features/agentSlice.js.map +1 -1
  130. package/dist/redux/features/agentSlice.ts +8 -3
  131. package/dist/resources/solid-custom.css +42 -0
  132. package/dist/resources/solid-tailwind-generated.css +1 -1
  133. package/dist/routes/pages/admin/core/AgentHubModuleField.css +15 -0
  134. package/dist/routes/pages/admin/core/AgentHubModuleField.d.ts +22 -0
  135. package/dist/routes/pages/admin/core/AgentHubModuleField.d.ts.map +1 -0
  136. package/dist/routes/pages/admin/core/AgentHubModuleField.js +42 -0
  137. package/dist/routes/pages/admin/core/AgentHubModuleField.js.map +1 -0
  138. package/dist/routes/pages/admin/core/AgentHubModuleField.tsx +54 -0
  139. package/dist/routes/pages/admin/core/AgentHubTagsField.d.ts +3 -1
  140. package/dist/routes/pages/admin/core/AgentHubTagsField.d.ts.map +1 -1
  141. package/dist/routes/pages/admin/core/AgentHubTagsField.js +3 -3
  142. package/dist/routes/pages/admin/core/AgentHubTagsField.js.map +1 -1
  143. package/dist/routes/pages/admin/core/AgentHubTagsField.tsx +7 -3
  144. package/dist/routes/pages/admin/core/AgentRegistryEditorPage.d.ts.map +1 -1
  145. package/dist/routes/pages/admin/core/AgentRegistryEditorPage.js +37 -29
  146. package/dist/routes/pages/admin/core/AgentRegistryEditorPage.js.map +1 -1
  147. package/dist/routes/pages/admin/core/AgentRegistryEditorPage.tsx +12 -6
  148. package/dist/routes/pages/admin/core/AgentSkillRegistryEditorPage.d.ts.map +1 -1
  149. package/dist/routes/pages/admin/core/AgentSkillRegistryEditorPage.js +22 -15
  150. package/dist/routes/pages/admin/core/AgentSkillRegistryEditorPage.js.map +1 -1
  151. package/dist/routes/pages/admin/core/AgentSkillRegistryEditorPage.tsx +17 -7
  152. package/dist/routes/pages/admin/core/AgentToolRegistryEditorPage.d.ts.map +1 -1
  153. package/dist/routes/pages/admin/core/AgentToolRegistryEditorPage.js +21 -15
  154. package/dist/routes/pages/admin/core/AgentToolRegistryEditorPage.js.map +1 -1
  155. package/dist/routes/pages/admin/core/AgentToolRegistryEditorPage.tsx +16 -9
  156. package/dist/routes/pages/admin/core/ArchivedChatterMessagesPage.d.ts.map +1 -1
  157. package/dist/routes/pages/admin/core/ArchivedChatterMessagesPage.js +149 -37
  158. package/dist/routes/pages/admin/core/ArchivedChatterMessagesPage.js.map +1 -1
  159. package/dist/routes/pages/admin/core/ArchivedChatterMessagesPage.tsx +283 -73
  160. package/dist/routes/pages/admin/core/CardPage.d.ts.map +1 -1
  161. package/dist/routes/pages/admin/core/CardPage.js +9 -1
  162. package/dist/routes/pages/admin/core/CardPage.js.map +1 -1
  163. package/dist/routes/pages/admin/core/CardPage.tsx +9 -1
  164. package/dist/routes/pages/admin/core/KanbanPage.d.ts.map +1 -1
  165. package/dist/routes/pages/admin/core/KanbanPage.js +9 -1
  166. package/dist/routes/pages/admin/core/KanbanPage.js.map +1 -1
  167. package/dist/routes/pages/admin/core/KanbanPage.tsx +9 -1
  168. package/dist/routes/pages/admin/core/ListPage.d.ts.map +1 -1
  169. package/dist/routes/pages/admin/core/ListPage.js +10 -1
  170. package/dist/routes/pages/admin/core/ListPage.js.map +1 -1
  171. package/dist/routes/pages/admin/core/ListPage.tsx +10 -1
  172. package/dist/routes/pages/admin/core/TreePage.d.ts.map +1 -1
  173. package/dist/routes/pages/admin/core/TreePage.js +9 -1
  174. package/dist/routes/pages/admin/core/TreePage.js.map +1 -1
  175. package/dist/routes/pages/admin/core/TreePage.tsx +9 -1
  176. package/dist/routes/pages/embed/AgentEmbedPage.d.ts.map +1 -1
  177. package/dist/routes/pages/embed/AgentEmbedPage.js +67 -4
  178. package/dist/routes/pages/embed/AgentEmbedPage.js.map +1 -1
  179. package/dist/routes/pages/embed/AgentEmbedPage.tsx +61 -4
  180. package/package.json +1 -1
@@ -36,6 +36,54 @@ export const buildAdminRecordFormPath = ({
36
36
  return viewMode ? `${basePath}?viewMode=${viewMode}` : basePath;
37
37
  };
38
38
 
39
+ /** Build an internal standard SolidX admin model-view path from structured route fields. */
40
+ export const buildAdminModelViewPath = ({
41
+ moduleName,
42
+ modelName,
43
+ viewName,
44
+ }: {
45
+ moduleName?: string | null;
46
+ modelName?: string | null;
47
+ viewName?: string | null;
48
+ }) => {
49
+ if (!moduleName || !modelName || !viewName) return "";
50
+ const safeSegment = /^[A-Za-z0-9_-]+$/;
51
+ if (!safeSegment.test(moduleName.trim()) || !safeSegment.test(modelName.trim())) return "";
52
+ if (!["list", "tree", "kanban", "card"].includes(viewName)) return "";
53
+
54
+ const normalizedModelName = modelName.trim()
55
+ .replace(/([a-z0-9])([A-Z])/g, "$1-$2")
56
+ .replace(/[_\s]+/g, "-")
57
+ .toLowerCase();
58
+ return `/admin/core/${encodeURIComponent(moduleName.trim())}/${encodeURIComponent(normalizedModelName)}/${viewName}`;
59
+ };
60
+
61
+ /** Build the standard SolidX dashboard route from metadata identifiers. */
62
+ export const buildAdminDashboardPath = ({
63
+ moduleName,
64
+ dashboardName,
65
+ }: {
66
+ moduleName?: string | null;
67
+ dashboardName?: string | null;
68
+ }) => {
69
+ const safeSegment = /^[A-Za-z0-9_-]+$/;
70
+ if (!moduleName || !dashboardName || !safeSegment.test(moduleName.trim()) || !safeSegment.test(dashboardName.trim())) return "";
71
+ return `/admin/core/${encodeURIComponent(moduleName.trim())}/dashboard/${encodeURIComponent(dashboardName.trim())}`;
72
+ };
73
+
74
+ /** Accept only concrete same-origin SolidX admin routes read from custom action metadata. */
75
+ export const buildAdminCustomPath = (customRoute?: string | null) => {
76
+ if (!customRoute || !customRoute.startsWith("/admin/") || customRoute.startsWith("//") || customRoute.includes("\\")
77
+ || /[\u0000-\u001f\u007f]/.test(customRoute)) return "";
78
+ try {
79
+ const resolved = new URL(customRoute, "https://solidx.local");
80
+ if (resolved.origin !== "https://solidx.local" || !resolved.pathname.startsWith("/admin/")) return "";
81
+ return `${resolved.pathname}${resolved.search}${resolved.hash}`;
82
+ } catch {
83
+ return "";
84
+ }
85
+ };
86
+
39
87
  export const normalizeSolidFormActionPath = (currentPath: string, actionUrl: string) => {
40
88
  if (!actionUrl) return "";
41
89
  if (actionUrl.startsWith("http") || actionUrl.startsWith("/")) {
@@ -1,5 +1,5 @@
1
1
  import { type AgentThreadState } from "../../components/core/solid-agent/agentEvents";
2
- import { type AgentAttachmentMeta, type AgentChatEvent, type AgentChatItem, type AgentConnection, type AgentContext, type AgentMode, type SolidAgentOpenOptions } from "../../components/core/solid-agent/types";
2
+ import { type AgentAttachmentMeta, type AgentChatEvent, type AgentChatItem, type AgentConnection, type AgentContext, type AgentMessageContext, type AgentMode, type SolidAgentOpenOptions } from "../../components/core/solid-agent/types";
3
3
  /**
4
4
  * State of the SolidX Agent chat: window mode, connection, and the single global thread.
5
5
  * The socket lives outside Redux (AgentRuntime); every normalised event is dispatched as
@@ -24,6 +24,7 @@ export type AgentState = AgentThreadState & {
24
24
  export declare const agentOpenRequested: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<SolidAgentOpenOptions | undefined, "solidAgent/agentOpenRequested">, agentClosed: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"solidAgent/agentClosed">, agentModeChanged: import("@reduxjs/toolkit").ActionCreatorWithPayload<AgentMode, "solidAgent/agentModeChanged">, agentPrefillConsumed: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"solidAgent/agentPrefillConsumed">, agentConnectionChanged: import("@reduxjs/toolkit").ActionCreatorWithPayload<AgentConnection, "solidAgent/agentConnectionChanged">, agentUserMessageAdded: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
25
25
  text: string;
26
26
  attachments?: AgentAttachmentMeta[] | undefined;
27
+ messageContext?: AgentMessageContext | undefined;
27
28
  }, "solidAgent/agentUserMessageAdded">, agentThreadReset: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"solidAgent/agentThreadReset">, agentHistoryLoaded: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
28
29
  items: AgentChatItem[];
29
30
  hasMore: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"agentSlice.d.ts","sourceRoot":"","sources":["../../../src/redux/features/agentSlice.ts"],"names":[],"mappings":"AACA,OAAO,EAAkD,KAAK,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACtI,OAAO,EAEH,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,qBAAqB,EAC7B,MAAM,yCAAyC,CAAC;AAEjD;;;;GAIG;AAEH,MAAM,MAAM,YAAY,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzG,MAAM,MAAM,UAAU,GAAG,gBAAgB,GAAG;IACxC,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,eAAe,CAAC;IAC5B,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,sFAAsF;IACtF,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;CAChC,CAAC;AA4EF,eAAO,MACH,kBAAkB,mIAClB,WAAW,oFACX,gBAAgB,iGAChB,oBAAoB,6FACpB,sBAAsB,6GACtB,qBAAqB;UArC0C,MAAM;;wCAsCrE,gBAAgB,yFAChB,kBAAkB;WArB2C,aAAa,EAAE;aAAW,OAAO;UAAQ,MAAM;qCAsB5G,kBAAkB,sGACA,CAAC;;AAEvB,wBAAkC"}
1
+ {"version":3,"file":"agentSlice.d.ts","sourceRoot":"","sources":["../../../src/redux/features/agentSlice.ts"],"names":[],"mappings":"AACA,OAAO,EAAkD,KAAK,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACtI,OAAO,EAEH,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,SAAS,EACd,KAAK,qBAAqB,EAC7B,MAAM,yCAAyC,CAAC;AAEjD;;;;GAIG;AAEH,MAAM,MAAM,YAAY,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzG,MAAM,MAAM,UAAU,GAAG,gBAAgB,GAAG;IACxC,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,eAAe,CAAC;IAC5B,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,sFAAsF;IACtF,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;CAChC,CAAC;AAgFF,eAAO,MACH,kBAAkB,mIAClB,WAAW,oFACX,gBAAgB,iGAChB,oBAAoB,6FACpB,sBAAsB,6GACtB,qBAAqB;UAzC0C,MAAM;;;wCA0CrE,gBAAgB,yFAChB,kBAAkB;WArB2C,aAAa,EAAE;aAAW,OAAO;UAAQ,MAAM;qCAsB5G,kBAAkB,sGACA,CAAC;;AAEvB,wBAAkC"}
@@ -58,12 +58,12 @@ var agentSlice = createSlice({
58
58
  }
59
59
  },
60
60
  agentUserMessageAdded: function (state, action) {
61
- var _a = action.payload, text = _a.text, attachments = _a.attachments;
61
+ var _a = action.payload, text = _a.text, attachments = _a.attachments, messageContext = _a.messageContext;
62
62
  state.items.push({
63
63
  id: nextItemId("u"),
64
64
  at: Date.now(),
65
65
  eventType: AgentEventTypes.userMessage,
66
- eventData: (attachments === null || attachments === void 0 ? void 0 : attachments.length) ? { content: text, attachments: attachments } : { content: text },
66
+ eventData: __assign(__assign({ content: text }, ((attachments === null || attachments === void 0 ? void 0 : attachments.length) ? { attachments: attachments } : {})), (messageContext ? { message_context: messageContext } : {})),
67
67
  });
68
68
  state.working = true;
69
69
  state.thinking = true;
@@ -1 +1 @@
1
- {"version":3,"file":"agentSlice.js","sourceRoot":"","sources":["../../../src/redux/features/agentSlice.ts"],"names":[],"mappings":"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","sourcesContent":["import { createSlice, type PayloadAction } from \"@reduxjs/toolkit\";\nimport { applyAgentEvent, createThreadState, nextItemId, type AgentThreadState } from \"../../components/core/solid-agent/agentEvents\";\nimport {\n AgentEventTypes,\n type AgentAttachmentMeta,\n type AgentChatEvent,\n type AgentChatItem,\n type AgentConnection,\n type AgentContext,\n type AgentMode,\n type SolidAgentOpenOptions,\n} from \"../../components/core/solid-agent/types\";\n\n/**\n * State of the SolidX Agent chat: window mode, connection, and the single global thread.\n * The socket lives outside Redux (AgentRuntime); every normalised event is dispatched as\n * `agentEventReceived` and applied by the shared reducer in solid-agent/agentEvents.ts.\n */\n\nexport type AgentPrefill = { prompt: string; context?: AgentContext; autoSend?: boolean; nonce: number };\n\nexport type AgentState = AgentThreadState & {\n open: boolean;\n mode: AgentMode;\n connection: AgentConnection;\n prefill: AgentPrefill | null;\n hasMoreHistory: boolean;\n historyPage: number;\n /** Context of the last prompt sent from outside the chat (e.g. a Test Hub button). */\n context: AgentContext | null;\n};\n\nconst initialState: AgentState = {\n ...createThreadState(),\n open: false,\n mode: \"bubble\",\n connection: \"idle\",\n prefill: null,\n hasMoreHistory: false,\n historyPage: 1,\n context: null,\n};\n\nconst agentSlice = createSlice({\n name: \"solidAgent\",\n initialState,\n reducers: {\n agentOpenRequested(state, action: PayloadAction<SolidAgentOpenOptions | undefined>) {\n const options = action.payload ?? {};\n state.open = true;\n state.mode = options.mode ?? (state.mode === \"bubble\" ? \"compact\" : state.mode);\n if (options.prompt) {\n state.prefill = { prompt: options.prompt, context: options.context, autoSend: options.autoSend, nonce: Date.now() };\n }\n if (options.context) state.context = options.context;\n },\n agentClosed(state) {\n state.open = false;\n state.mode = \"bubble\";\n },\n agentModeChanged(state, action: PayloadAction<AgentMode>) {\n state.mode = action.payload;\n state.open = action.payload !== \"bubble\";\n },\n agentPrefillConsumed(state) {\n state.prefill = null;\n },\n agentConnectionChanged(state, action: PayloadAction<AgentConnection>) {\n state.connection = action.payload;\n if (action.payload !== \"open\" && state.working) {\n // A turn cannot finish on a dropped socket; unblock the composer.\n state.working = false;\n state.thinking = false;\n }\n },\n agentUserMessageAdded(state, action: PayloadAction<{ text: string; attachments?: AgentAttachmentMeta[] }>) {\n const { text, attachments } = action.payload;\n state.items.push({\n id: nextItemId(\"u\"),\n at: Date.now(),\n eventType: AgentEventTypes.userMessage,\n eventData: attachments?.length ? { content: text, attachments } : { content: text },\n });\n state.working = true;\n state.thinking = true;\n state.turnStreamed = false;\n state.streamingId = null;\n state.liveToolId = null;\n state.authError = null;\n },\n agentThreadReset(state) {\n Object.assign(state, createThreadState(), { commands: state.commands, hasMoreHistory: false, historyPage: 1 });\n },\n agentHistoryLoaded(state, action: PayloadAction<{ items: AgentChatItem[]; hasMore: boolean; page: number }>) {\n const { items, hasMore, page } = action.payload;\n // History is always older than anything already in the thread.\n state.items = [...items, ...state.items];\n state.hasMoreHistory = hasMore;\n state.historyPage = page;\n },\n agentEventReceived(state, action: PayloadAction<AgentChatEvent>) {\n applyAgentEvent(state, action.payload);\n },\n },\n});\n\nexport const {\n agentOpenRequested,\n agentClosed,\n agentModeChanged,\n agentPrefillConsumed,\n agentConnectionChanged,\n agentUserMessageAdded,\n agentThreadReset,\n agentHistoryLoaded,\n agentEventReceived,\n} = agentSlice.actions;\n\nexport default agentSlice.reducer;\n"]}
1
+ {"version":3,"file":"agentSlice.js","sourceRoot":"","sources":["../../../src/redux/features/agentSlice.ts"],"names":[],"mappings":"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","sourcesContent":["import { createSlice, type PayloadAction } from \"@reduxjs/toolkit\";\nimport { applyAgentEvent, createThreadState, nextItemId, type AgentThreadState } from \"../../components/core/solid-agent/agentEvents\";\nimport {\n AgentEventTypes,\n type AgentAttachmentMeta,\n type AgentChatEvent,\n type AgentChatItem,\n type AgentConnection,\n type AgentContext,\n type AgentMessageContext,\n type AgentMode,\n type SolidAgentOpenOptions,\n} from \"../../components/core/solid-agent/types\";\n\n/**\n * State of the SolidX Agent chat: window mode, connection, and the single global thread.\n * The socket lives outside Redux (AgentRuntime); every normalised event is dispatched as\n * `agentEventReceived` and applied by the shared reducer in solid-agent/agentEvents.ts.\n */\n\nexport type AgentPrefill = { prompt: string; context?: AgentContext; autoSend?: boolean; nonce: number };\n\nexport type AgentState = AgentThreadState & {\n open: boolean;\n mode: AgentMode;\n connection: AgentConnection;\n prefill: AgentPrefill | null;\n hasMoreHistory: boolean;\n historyPage: number;\n /** Context of the last prompt sent from outside the chat (e.g. a Test Hub button). */\n context: AgentContext | null;\n};\n\nconst initialState: AgentState = {\n ...createThreadState(),\n open: false,\n mode: \"bubble\",\n connection: \"idle\",\n prefill: null,\n hasMoreHistory: false,\n historyPage: 1,\n context: null,\n};\n\nconst agentSlice = createSlice({\n name: \"solidAgent\",\n initialState,\n reducers: {\n agentOpenRequested(state, action: PayloadAction<SolidAgentOpenOptions | undefined>) {\n const options = action.payload ?? {};\n state.open = true;\n state.mode = options.mode ?? (state.mode === \"bubble\" ? \"compact\" : state.mode);\n if (options.prompt) {\n state.prefill = { prompt: options.prompt, context: options.context, autoSend: options.autoSend, nonce: Date.now() };\n }\n if (options.context) state.context = options.context;\n },\n agentClosed(state) {\n state.open = false;\n state.mode = \"bubble\";\n },\n agentModeChanged(state, action: PayloadAction<AgentMode>) {\n state.mode = action.payload;\n state.open = action.payload !== \"bubble\";\n },\n agentPrefillConsumed(state) {\n state.prefill = null;\n },\n agentConnectionChanged(state, action: PayloadAction<AgentConnection>) {\n state.connection = action.payload;\n if (action.payload !== \"open\" && state.working) {\n // A turn cannot finish on a dropped socket; unblock the composer.\n state.working = false;\n state.thinking = false;\n }\n },\n agentUserMessageAdded(state, action: PayloadAction<{ text: string; attachments?: AgentAttachmentMeta[]; messageContext?: AgentMessageContext }>) {\n const { text, attachments, messageContext } = action.payload;\n state.items.push({\n id: nextItemId(\"u\"),\n at: Date.now(),\n eventType: AgentEventTypes.userMessage,\n eventData: {\n content: text,\n ...(attachments?.length ? { attachments } : {}),\n ...(messageContext ? { message_context: messageContext } : {}),\n },\n });\n state.working = true;\n state.thinking = true;\n state.turnStreamed = false;\n state.streamingId = null;\n state.liveToolId = null;\n state.authError = null;\n },\n agentThreadReset(state) {\n Object.assign(state, createThreadState(), { commands: state.commands, hasMoreHistory: false, historyPage: 1 });\n },\n agentHistoryLoaded(state, action: PayloadAction<{ items: AgentChatItem[]; hasMore: boolean; page: number }>) {\n const { items, hasMore, page } = action.payload;\n // History is always older than anything already in the thread.\n state.items = [...items, ...state.items];\n state.hasMoreHistory = hasMore;\n state.historyPage = page;\n },\n agentEventReceived(state, action: PayloadAction<AgentChatEvent>) {\n applyAgentEvent(state, action.payload);\n },\n },\n});\n\nexport const {\n agentOpenRequested,\n agentClosed,\n agentModeChanged,\n agentPrefillConsumed,\n agentConnectionChanged,\n agentUserMessageAdded,\n agentThreadReset,\n agentHistoryLoaded,\n agentEventReceived,\n} = agentSlice.actions;\n\nexport default agentSlice.reducer;\n"]}
@@ -7,6 +7,7 @@ import {
7
7
  type AgentChatItem,
8
8
  type AgentConnection,
9
9
  type AgentContext,
10
+ type AgentMessageContext,
10
11
  type AgentMode,
11
12
  type SolidAgentOpenOptions,
12
13
  } from "../../components/core/solid-agent/types";
@@ -73,13 +74,17 @@ const agentSlice = createSlice({
73
74
  state.thinking = false;
74
75
  }
75
76
  },
76
- agentUserMessageAdded(state, action: PayloadAction<{ text: string; attachments?: AgentAttachmentMeta[] }>) {
77
- const { text, attachments } = action.payload;
77
+ agentUserMessageAdded(state, action: PayloadAction<{ text: string; attachments?: AgentAttachmentMeta[]; messageContext?: AgentMessageContext }>) {
78
+ const { text, attachments, messageContext } = action.payload;
78
79
  state.items.push({
79
80
  id: nextItemId("u"),
80
81
  at: Date.now(),
81
82
  eventType: AgentEventTypes.userMessage,
82
- eventData: attachments?.length ? { content: text, attachments } : { content: text },
83
+ eventData: {
84
+ content: text,
85
+ ...(attachments?.length ? { attachments } : {}),
86
+ ...(messageContext ? { message_context: messageContext } : {}),
87
+ },
83
88
  });
84
89
  state.working = true;
85
90
  state.thinking = true;
@@ -7615,3 +7615,45 @@ html.dark .solid-paginator-btn:hover:not(:disabled),
7615
7615
  display: block;
7616
7616
  }
7617
7617
  }
7618
+
7619
+ @media (max-width: 480px) {
7620
+ .solid-auth-theme-wrapper.center {
7621
+ box-sizing: border-box;
7622
+ justify-items: center;
7623
+ overflow-x: hidden;
7624
+ padding: 14px !important;
7625
+ width: 100%;
7626
+ }
7627
+
7628
+ .solid-auth-theme-wrapper.center .solid-center-layout {
7629
+ width: 100% !important;
7630
+ max-width: 388px !important;
7631
+ min-height: auto;
7632
+ justify-content: center;
7633
+ margin-left: auto;
7634
+ margin-right: auto;
7635
+ }
7636
+
7637
+ .solid-auth-theme-wrapper.center .solid-auth-center-stack,
7638
+ .solid-auth-theme-wrapper.center .auth-container {
7639
+ width: 100% !important;
7640
+ min-width: 0 !important;
7641
+ max-width: 100% !important;
7642
+ margin-left: auto !important;
7643
+ margin-right: auto !important;
7644
+ box-sizing: border-box;
7645
+ }
7646
+
7647
+ .solid-auth-theme-wrapper.center .auth-container {
7648
+ padding: 22px !important;
7649
+ }
7650
+
7651
+ .solid-auth-theme-wrapper.center .solid-auth-brand {
7652
+ justify-content: center;
7653
+ width: 100%;
7654
+ }
7655
+
7656
+ .solid-auth-theme-wrapper.center .solid-auth-brand-logo img {
7657
+ max-width: min(180px, 68vw);
7658
+ }
7659
+ }