@stack-spot/ai-chat-widget 1.3.3 → 1.4.1

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/CHANGELOG.md CHANGED
@@ -1,5 +1,29 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.4.0](https://github.com/stack-spot/portal-ai-chat-widget/compare/ai-chat-widget-v1.3.3...ai-chat-widget@v1.4.0) (2024-11-04)
4
+
5
+
6
+ ### Features
7
+
8
+ * agent home + many more fixes and adjustments ([49963fb](https://github.com/stack-spot/portal-ai-chat-widget/commit/49963fbdd550b8c3440d260a4540531f26452509))
9
+ * agent home + many more fixes and adjustments ([49963fb](https://github.com/stack-spot/portal-ai-chat-widget/commit/49963fbdd550b8c3440d260a4540531f26452509))
10
+ * copy all event ([8e756e8](https://github.com/stack-spot/portal-ai-chat-widget/commit/8e756e84437c65d7f3ab43387de918bcdcc4a922))
11
+ * copy all event ([8e756e8](https://github.com/stack-spot/portal-ai-chat-widget/commit/8e756e84437c65d7f3ab43387de918bcdcc4a922))
12
+ * makes it easier to recover the default chat interceptors ([9f7c14f](https://github.com/stack-spot/portal-ai-chat-widget/commit/9f7c14f59d426badb0d5aa1fa9b393c3e01076a7))
13
+ * makes it easier to recover the default chat interceptors ([9f7c14f](https://github.com/stack-spot/portal-ai-chat-widget/commit/9f7c14f59d426badb0d5aa1fa9b393c3e01076a7))
14
+
15
+
16
+ ### Bug Fixes
17
+
18
+ * app metadata ([0eadd24](https://github.com/stack-spot/portal-ai-chat-widget/commit/0eadd249b724a3cc50069d1376b4ed76f1e1082d))
19
+ * app metadata ([0eadd24](https://github.com/stack-spot/portal-ai-chat-widget/commit/0eadd249b724a3cc50069d1376b4ed76f1e1082d))
20
+ * removes postinstall from published package ([1ecb2f3](https://github.com/stack-spot/portal-ai-chat-widget/commit/1ecb2f3c5b974b3c3e0884f5138d04fc78249643))
21
+ * removes postinstall from published package ([1ecb2f3](https://github.com/stack-spot/portal-ai-chat-widget/commit/1ecb2f3c5b974b3c3e0884f5138d04fc78249643))
22
+ * removes postinstall from published package ([0a5c2ea](https://github.com/stack-spot/portal-ai-chat-widget/commit/0a5c2ea2f552a8b1593474cfaebc37fbb87f6777))
23
+ * removes postinstall from published package ([0a5c2ea](https://github.com/stack-spot/portal-ai-chat-widget/commit/0a5c2ea2f552a8b1593474cfaebc37fbb87f6777))
24
+ * replaces hardcoded version with automatic version calculation ([95f6fc4](https://github.com/stack-spot/portal-ai-chat-widget/commit/95f6fc4c613f5561507cd70c6a5ba449a52dc88a))
25
+ * replaces hardcoded version with automatic version calculation ([95f6fc4](https://github.com/stack-spot/portal-ai-chat-widget/commit/95f6fc4c613f5561507cd70c6a5ba449a52dc88a))
26
+
3
27
  ## [1.3.2](https://github.com/stack-spot/portal-ai-chat-widget/compare/ai-chat-widget@v1.3.1...ai-chat-widget@v1.3.2) (2024-11-01)
4
28
 
5
29
 
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@stack-spot/ai-chat-widget",
3
- "version": "1.3.3",
4
- "date": "Fri Nov 01 2024 12:20:05 GMT-0300 (Horário Padrão de Brasília)",
3
+ "version": "1.4.1",
4
+ "date": "Mon Nov 04 2024 16:26:03 GMT-0300 (Horário Padrão de Brasília)",
5
5
  "dependencies": [
6
6
  {
7
7
  "name": "@stack-spot/app-metadata",
8
- "version": "1.0.0"
8
+ "version": "1.0.1"
9
9
  },
10
10
  {
11
11
  "name": "@types/lodash",
package/dist/index.d.ts CHANGED
@@ -6,6 +6,7 @@ export type { AIWidgetFeatures, ChatFeatures } from './features.js';
6
6
  export { StackspotAIWidget } from './StackspotAIWidget.js';
7
7
  export { ChatEntry } from './state/ChatEntry.js';
8
8
  export { ChatState } from './state/ChatState.js';
9
+ export type { MessageInterceptor } from './state/ChatState.js';
9
10
  export { ChatTabsController } from './state/ChatTabsController.js';
10
11
  export { ObservableState } from './state/ObservableState.js';
11
12
  export type { Labeled, LabeledWithImage } from './state/types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,cAAc,iBAAiB,CAAA;AAC/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AACpD,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,cAAc,iBAAiB,CAAA;AAC/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AACpD,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2IAA2I;AAE3I,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,cAAc,iBAAiB,CAAA;AAC/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2IAA2I;AAE3I,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,cAAc,iBAAiB,CAAA;AAC/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAE7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA"}
@@ -68,6 +68,7 @@ export declare class WidgetState extends ObservableState<WidgetProperties> {
68
68
  chatFeatures: ChatFeatures;
69
69
  constructor({ chatTabs, initial, interceptors, features }?: Options);
70
70
  private getNextUntitledChatIndex;
71
+ private getNextUntitledChatLabel;
71
72
  /**
72
73
  * Utility function for adding a new chat to the chat tabs. This also selects the new tab.
73
74
  * @param properties the chat properties (initial state).
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetState.d.ts","sourceRoot":"","sources":["../../src/state/WidgetState.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAA2B,cAAc,EAAE,MAAM,aAAa,CAAA;AACrG,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,kCAAkC,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAC/F,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,OAAO,GAAG,IAAI,GAAG,QAAQ,GAAG,SAAS,GAAG,YAAY,CAAC;IACrF;;OAEG;IACH,gBAAgB,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IACrF;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED,UAAU,OAAO;IACf;;;;;OAKG;IACH,YAAY,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACpC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACrC;;;;OAIG;IACH,OAAO,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;IAC7C;;OAEG;IACH,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC/B;AAID;;;;GAIG;AACH,qBAAa,WAAY,SAAQ,eAAe,CAAC,gBAAgB,CAAC;IAChE,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAA;IACrC;;OAEG;IACH,YAAY,EAAE,kBAAkB,EAAE,CAAK;IACvC;;OAEG;IACH,YAAY,EAAE,YAAY,CAAA;gBAEd,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAiB,EAAE,QAAQ,EAAE,GAAE,OAAY;IAc5E,OAAO,CAAC,wBAAwB;IAUhC;;;;;OAKG;IACH,UAAU,CAAC,EAAE,KAAK,EAAE,GAAG,UAAU,EAAE,GAAE,OAAO,CAAC,kCAAkC,CAAM,EAAE,OAAO,GAAE,SAAS,EAAO;CAYjH"}
1
+ {"version":3,"file":"WidgetState.d.ts","sourceRoot":"","sources":["../../src/state/WidgetState.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAA2B,cAAc,EAAE,MAAM,aAAa,CAAA;AACrG,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,kCAAkC,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAC/F,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,OAAO,GAAG,IAAI,GAAG,QAAQ,GAAG,SAAS,GAAG,YAAY,CAAC;IACrF;;OAEG;IACH,gBAAgB,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IACrF;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED,UAAU,OAAO;IACf;;;;;OAKG;IACH,YAAY,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACpC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACrC;;;;OAIG;IACH,OAAO,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;IAC7C;;OAEG;IACH,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC/B;AAID;;;;GAIG;AACH,qBAAa,WAAY,SAAQ,eAAe,CAAC,gBAAgB,CAAC;IAChE,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAA;IACrC;;OAEG;IACH,YAAY,EAAE,kBAAkB,EAAE,CAAK;IACvC;;OAEG;IACH,YAAY,EAAE,YAAY,CAAA;gBAEd,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAiB,EAAE,QAAQ,EAAE,GAAE,OAAY;IAc5E,OAAO,CAAC,wBAAwB;IAWhC,OAAO,CAAC,wBAAwB;IAKhC;;;;;OAKG;IACH,UAAU,CAAC,EAAE,KAAK,EAAE,GAAG,UAAU,EAAE,GAAE,OAAO,CAAC,kCAAkC,CAAM,EAAE,OAAO,GAAE,SAAS,EAAO;CAYjH"}
@@ -7,7 +7,7 @@ import { getFeaturesWithDefaults } from '../features.js';
7
7
  import { ChatState } from './ChatState.js';
8
8
  import { ChatTabsController } from './ChatTabsController.js';
9
9
  import { ObservableState } from './ObservableState.js';
10
- const untitledChatPrefix = 'Chat ';
10
+ const untitledChatPrefix = 'Chat';
11
11
  /**
12
12
  * Holds the full state of the AI Chat Widget.
13
13
  *
@@ -39,13 +39,19 @@ export class WidgetState extends ObservableState {
39
39
  getNextUntitledChatIndex() {
40
40
  let max = 0;
41
41
  for (const chat of this.chatTabs.getAll()) {
42
- const [, match] = chat.get('label').match(`${untitledChatPrefix}(\\d+)`) ?? [];
43
- const index = parseInt(match);
42
+ if (chat.get('label') === untitledChatPrefix && max < 1)
43
+ max = 1;
44
+ const [, match] = chat.get('label').match(`^${untitledChatPrefix} (\\d+)$`) ?? [];
45
+ const index = match ? parseInt(match) : 0;
44
46
  if (index > max)
45
47
  max = index;
46
48
  }
47
49
  return max + 1;
48
50
  }
51
+ getNextUntitledChatLabel() {
52
+ const next = this.getNextUntitledChatIndex();
53
+ return next > 1 ? `${untitledChatPrefix} ${next}` : untitledChatPrefix;
54
+ }
49
55
  /**
50
56
  * Utility function for adding a new chat to the chat tabs. This also selects the new tab.
51
57
  * @param properties the chat properties (initial state).
@@ -55,7 +61,7 @@ export class WidgetState extends ObservableState {
55
61
  createChat({ label, ...properties } = {}, entries = []) {
56
62
  const chat = new ChatState({
57
63
  id: ulid(),
58
- initial: { label: label || `${untitledChatPrefix}${this.getNextUntitledChatIndex()}`, features: this.chatFeatures, ...properties },
64
+ initial: { label: label || this.getNextUntitledChatLabel(), features: this.chatFeatures, ...properties },
59
65
  entries,
60
66
  interceptors: this.interceptors,
61
67
  untitled: !label,
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetState.js","sourceRoot":"","sources":["../../src/state/WidgetState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,gCAAgC,EAAE,MAAM,8CAA8C,CAAA;AAC/F,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAA;AACnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAA;AAC1E,OAAO,EAAkC,uBAAuB,EAAkB,MAAM,aAAa,CAAA;AAErG,OAAO,EAAsC,SAAS,EAAsB,MAAM,aAAa,CAAA;AAC/F,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AA+CnD,MAAM,kBAAkB,GAAG,OAAO,CAAA;AAElC;;;;GAIG;AACH,MAAM,OAAO,WAAY,SAAQ,eAAiC;IACvD,QAAQ,CAAoB;IACrC;;OAEG;IACH,YAAY,GAAyB,EAAE,CAAA;IACvC;;OAEG;IACH,YAAY,CAAc;IAE1B,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,GAAG,EAAE,EAAE,QAAQ,KAAc,EAAE;QAC1E,MAAM,oBAAoB,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAA;QAC9D,KAAK,CAAC,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,CAAC,CAAA;QACrD,IAAI,CAAC,YAAY,GAAG,oBAAoB,CAAA;QACxC,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,IAAI,kBAAkB,EAAE,CAAA;QACpD,IAAI,CAAC,YAAY,GAAG;YAClB,GAAG,YAAY;YACf,gCAAgC;YAChC,6BAA6B,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,EAAE,EAAE,MAAM,CAAC;YAC/E,sBAAsB;SACvB,CAAA;QACD,IAAI,CAAC,UAAU,EAAE,CAAA;IACnB,CAAC;IAEO,wBAAwB;QAC9B,IAAI,GAAG,GAAG,CAAC,CAAA;QACX,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1C,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,kBAAkB,QAAQ,CAAC,IAAI,EAAE,CAAA;YAC9E,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;YAC7B,IAAI,KAAK,GAAG,GAAG;gBAAE,GAAG,GAAG,KAAK,CAAA;QAC9B,CAAC;QACD,OAAO,GAAG,GAAG,CAAC,CAAA;IAChB,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,EAAE,KAAK,EAAE,GAAG,UAAU,KAAkD,EAAE,EAAE,UAAuB,EAAE;QAC9G,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC;YACzB,EAAE,EAAE,IAAI,EAAE;YACV,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,IAAI,GAAG,kBAAkB,GAAG,IAAI,CAAC,wBAAwB,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,GAAG,UAAU,EAAE;YAClI,OAAO;YACP,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,QAAQ,EAAE,CAAC,KAAK;SACjB,CAAC,CAAA;QACF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC7B,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
1
+ {"version":3,"file":"WidgetState.js","sourceRoot":"","sources":["../../src/state/WidgetState.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stack-spot/ai-chat-widget",
3
- "version": "1.3.3",
3
+ "version": "1.4.1",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -18,7 +18,7 @@
18
18
  "styled-components": "6.1.10"
19
19
  },
20
20
  "devDependencies": {
21
- "@stack-spot/app-metadata": "1.0.0",
21
+ "@stack-spot/app-metadata": "1.0.1",
22
22
  "@types/lodash": "^4.14.202",
23
23
  "@types/react": "^18.2.37",
24
24
  "@types/react-dom": "^18.2.15",
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@stack-spot/ai-chat-widget",
3
- "version": "1.3.3",
4
- "date": "Fri Nov 01 2024 12:20:05 GMT-0300 (Horário Padrão de Brasília)",
3
+ "version": "1.4.1",
4
+ "date": "Mon Nov 04 2024 16:26:03 GMT-0300 (Horário Padrão de Brasília)",
5
5
  "dependencies": [
6
6
  {
7
7
  "name": "@stack-spot/app-metadata",
8
- "version": "1.0.0"
8
+ "version": "1.0.1"
9
9
  },
10
10
  {
11
11
  "name": "@types/lodash",
package/src/index.ts CHANGED
@@ -8,6 +8,7 @@ export type { AIWidgetFeatures, ChatFeatures } from './features'
8
8
  export { StackspotAIWidget } from './StackspotAIWidget'
9
9
  export { ChatEntry } from './state/ChatEntry'
10
10
  export { ChatState } from './state/ChatState'
11
+ export type { MessageInterceptor } from './state/ChatState'
11
12
  export { ChatTabsController } from './state/ChatTabsController'
12
13
  export { ObservableState } from './state/ObservableState'
13
14
  export type { Labeled, LabeledWithImage } from './state/types'
@@ -54,7 +54,7 @@ interface Options {
54
54
  chatTabs?: ChatTabsController,
55
55
  }
56
56
 
57
- const untitledChatPrefix = 'Chat '
57
+ const untitledChatPrefix = 'Chat'
58
58
 
59
59
  /**
60
60
  * Holds the full state of the AI Chat Widget.
@@ -89,13 +89,19 @@ export class WidgetState extends ObservableState<WidgetProperties> {
89
89
  private getNextUntitledChatIndex() {
90
90
  let max = 0
91
91
  for (const chat of this.chatTabs.getAll()) {
92
- const [, match] = chat.get('label').match(`${untitledChatPrefix}(\\d+)`) ?? []
93
- const index = parseInt(match)
92
+ if (chat.get('label') === untitledChatPrefix && max < 1) max = 1
93
+ const [, match] = chat.get('label').match(`^${untitledChatPrefix} (\\d+)$`) ?? []
94
+ const index = match ? parseInt(match) : 0
94
95
  if (index > max) max = index
95
96
  }
96
97
  return max + 1
97
98
  }
98
99
 
100
+ private getNextUntitledChatLabel() {
101
+ const next = this.getNextUntitledChatIndex()
102
+ return next > 1 ? `${untitledChatPrefix} ${next}` : untitledChatPrefix
103
+ }
104
+
99
105
  /**
100
106
  * Utility function for adding a new chat to the chat tabs. This also selects the new tab.
101
107
  * @param properties the chat properties (initial state).
@@ -105,7 +111,7 @@ export class WidgetState extends ObservableState<WidgetProperties> {
105
111
  createChat({ label, ...properties }: Partial<ChatPropertiesWithOptionalFeatures> = {}, entries: ChatEntry[] = []) {
106
112
  const chat = new ChatState({
107
113
  id: ulid(),
108
- initial: { label: label || `${untitledChatPrefix}${this.getNextUntitledChatIndex()}`, features: this.chatFeatures, ...properties },
114
+ initial: { label: label || this.getNextUntitledChatLabel(), features: this.chatFeatures, ...properties },
109
115
  entries,
110
116
  interceptors: this.interceptors,
111
117
  untitled: !label,