@memori.ai/memori-react 8.38.8 → 8.40.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 (45) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/components/MemoriWidget/MemoriWidget.js +401 -87
  3. package/dist/components/MemoriWidget/MemoriWidget.js.map +1 -1
  4. package/dist/helpers/credits.d.ts +5 -2
  5. package/dist/helpers/credits.js +5 -1
  6. package/dist/helpers/credits.js.map +1 -1
  7. package/dist/helpers/nats/getNatsConfig.d.ts +5 -0
  8. package/dist/helpers/nats/getNatsConfig.js +29 -0
  9. package/dist/helpers/nats/getNatsConfig.js.map +1 -0
  10. package/dist/helpers/nats/useNats.d.ts +12 -0
  11. package/dist/helpers/nats/useNats.js +72 -0
  12. package/dist/helpers/nats/useNats.js.map +1 -0
  13. package/dist/helpers/nats/useNatsSession.d.ts +27 -0
  14. package/dist/helpers/nats/useNatsSession.js +108 -0
  15. package/dist/helpers/nats/useNatsSession.js.map +1 -0
  16. package/dist/version.d.ts +1 -1
  17. package/dist/version.js +1 -1
  18. package/esm/components/MemoriWidget/MemoriWidget.js +401 -87
  19. package/esm/components/MemoriWidget/MemoriWidget.js.map +1 -1
  20. package/esm/helpers/credits.d.ts +5 -2
  21. package/esm/helpers/credits.js +5 -1
  22. package/esm/helpers/credits.js.map +1 -1
  23. package/esm/helpers/nats/getNatsConfig.d.ts +5 -0
  24. package/esm/helpers/nats/getNatsConfig.js +25 -0
  25. package/esm/helpers/nats/getNatsConfig.js.map +1 -0
  26. package/esm/helpers/nats/useNats.d.ts +12 -0
  27. package/esm/helpers/nats/useNats.js +68 -0
  28. package/esm/helpers/nats/useNats.js.map +1 -0
  29. package/esm/helpers/nats/useNatsSession.d.ts +27 -0
  30. package/esm/helpers/nats/useNatsSession.js +103 -0
  31. package/esm/helpers/nats/useNatsSession.js.map +1 -0
  32. package/esm/version.d.ts +1 -1
  33. package/esm/version.js +1 -1
  34. package/package.json +3 -2
  35. package/src/components/MemoriWidget/MemoriWidget.tsx +546 -140
  36. package/src/components/StartPanel/StartPanel.stories.tsx +21 -0
  37. package/src/components/StartPanel/StartPanel.test.tsx +66 -1
  38. package/src/components/StartPanel/__snapshots__/StartPanel.test.tsx.snap +156 -0
  39. package/src/components/layouts/layouts.stories.tsx +28 -34
  40. package/src/helpers/credits.ts +16 -1
  41. package/src/helpers/nats/getNatsConfig.ts +69 -0
  42. package/src/helpers/nats/useNats.ts +122 -0
  43. package/src/helpers/nats/useNatsSession.ts +210 -0
  44. package/src/index.stories.tsx +19 -3
  45. package/src/version.ts +1 -1
@@ -0,0 +1,103 @@
1
+ import { useEffect, useRef } from 'react';
2
+ import { wsconnect } from '@nats-io/nats-core';
3
+ function readString(raw, camelKey, snakeKey) {
4
+ var _a;
5
+ const value = (_a = raw[camelKey]) !== null && _a !== void 0 ? _a : raw[snakeKey];
6
+ return typeof value === 'string' ? value : undefined;
7
+ }
8
+ function readNumber(raw, camelKey, snakeKey) {
9
+ var _a;
10
+ const value = (_a = raw[camelKey]) !== null && _a !== void 0 ? _a : raw[snakeKey];
11
+ return typeof value === 'number' ? value : undefined;
12
+ }
13
+ export function normalizeNatsEvent(raw) {
14
+ var _a, _b, _c;
15
+ const eventType = ((_a = readString(raw, 'eventType', 'event_type')) !== null && _a !== void 0 ? _a : 'unknown');
16
+ const correlationID = (_b = readString(raw, 'correlationID', 'correlation_id')) !== null && _b !== void 0 ? _b : readString(raw, 'correlationId', 'correlation_id');
17
+ if (eventType === 'progress') {
18
+ return {
19
+ eventType: 'progress',
20
+ jobId: readString(raw, 'jobId', 'job_id'),
21
+ currentStep: readNumber(raw, 'currentStep', 'current_step'),
22
+ finalStep: readNumber(raw, 'finalStep', 'final_step'),
23
+ message: typeof raw.message === 'string' ? raw.message : undefined,
24
+ startingTime: readString(raw, 'startingTime', 'starting_time'),
25
+ correlationID,
26
+ };
27
+ }
28
+ if (eventType === 'dialog_text_entered_response') {
29
+ return {
30
+ eventType: 'dialog_text_entered_response',
31
+ requestID: typeof raw.requestID === 'string' ? raw.requestID : undefined,
32
+ resultCode: typeof raw.resultCode === 'number' ? raw.resultCode : undefined,
33
+ resultMessage: typeof raw.resultMessage === 'string' ? raw.resultMessage : undefined,
34
+ currentState: raw.currentState,
35
+ correlationID,
36
+ };
37
+ }
38
+ if (eventType === 'error') {
39
+ return {
40
+ eventType: 'error',
41
+ errorCode: ((_c = raw.errorCode) !== null && _c !== void 0 ? _c : raw.error_code),
42
+ errorMessage: readString(raw, 'errorMessage', 'error_message'),
43
+ backtrace: typeof raw.backtrace === 'string' ? raw.backtrace : undefined,
44
+ correlationID,
45
+ };
46
+ }
47
+ return {
48
+ eventType,
49
+ correlationID,
50
+ };
51
+ }
52
+ export function useNatsSession(sessionId, natsWsUrl, natsToken, onMessage) {
53
+ const connRef = useRef(null);
54
+ const onMessageRef = useRef(onMessage);
55
+ useEffect(() => {
56
+ onMessageRef.current = onMessage;
57
+ }, [onMessage]);
58
+ useEffect(() => {
59
+ if (!sessionId || !natsWsUrl || !natsToken) {
60
+ console.debug('[NATS] subscription skipped (missing sessionId/url/token)', { sessionId, hasUrl: !!natsWsUrl, hasToken: !!natsToken });
61
+ return;
62
+ }
63
+ let closed = false;
64
+ const subject = sessionId;
65
+ (async () => {
66
+ console.info('[NATS] connecting to', natsWsUrl, 'for session', sessionId);
67
+ const nc = await wsconnect({
68
+ servers: [natsWsUrl],
69
+ token: natsToken,
70
+ });
71
+ if (closed) {
72
+ console.debug('[NATS] connection established after cleanup, closing immediately');
73
+ await nc.close();
74
+ return;
75
+ }
76
+ connRef.current = nc;
77
+ console.info('[NATS] connected to', nc.getServer());
78
+ const sub = nc.subscribe(subject);
79
+ console.info('[NATS] subscribed to subject', subject);
80
+ let received = 0;
81
+ for await (const msg of sub) {
82
+ received += 1;
83
+ try {
84
+ const payload = normalizeNatsEvent(msg.json());
85
+ console.debug(`[NATS] message #${received} on ${subject} (eventType=${payload.eventType})`, payload);
86
+ onMessageRef.current(payload);
87
+ }
88
+ catch (err) {
89
+ console.error('[NATS] message decode error', err);
90
+ }
91
+ }
92
+ console.info(`[NATS] subscription on ${subject} closed (received ${received} messages)`);
93
+ })().catch(err => console.error('[NATS] connection error', err));
94
+ return () => {
95
+ var _a;
96
+ console.info('[NATS] cleanup: closing connection for subject', subject);
97
+ closed = true;
98
+ (_a = connRef.current) === null || _a === void 0 ? void 0 : _a.close();
99
+ connRef.current = null;
100
+ };
101
+ }, [sessionId, natsWsUrl, natsToken]);
102
+ }
103
+ //# sourceMappingURL=useNatsSession.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useNatsSession.js","sourceRoot":"","sources":["../../../src/helpers/nats/useNatsSession.ts"],"names":[],"mappings":"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"}
package/esm/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const version = "8.38.8";
1
+ export declare const version = "8.40.0";
package/esm/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const version = '8.38.8';
1
+ export const version = '8.40.0';
2
2
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "8.38.8",
2
+ "version": "8.40.0",
3
3
  "name": "@memori.ai/memori-react",
4
4
  "author": "Memori Srl",
5
5
  "main": "dist/index.js",
@@ -293,7 +293,8 @@
293
293
  },
294
294
  "dependencies": {
295
295
  "@headlessui/react": "1.7.4",
296
- "@memori.ai/memori-api-client": "6.22.0",
296
+ "@memori.ai/memori-api-client": "6.24.1",
297
+ "@nats-io/nats-core": "^3.4.0",
297
298
  "@react-three/drei": "8.20.2",
298
299
  "@react-three/fiber": "7.0.25",
299
300
  "classnames": "2.5.1",