@astermind/cybernetic-chatbot-client 2.2.44 → 2.2.48

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.
@@ -62,16 +62,17 @@ export declare class ApiClient {
62
62
  */
63
63
  chatStream(message: string, options: ChatRequest & StreamCallbacks): Promise<void>;
64
64
  /**
65
- * Get general documents for caching
65
+ * Get general documents for caching.
66
+ * Normalizes field names from both canonical (title) and legacy (name) formats.
66
67
  */
67
68
  getGeneralDocs(since?: string | null): Promise<Array<{
68
69
  id: string;
69
70
  title: string;
70
- content: string;
71
71
  updatedAt: string;
72
72
  }>>;
73
73
  /**
74
- * Get API status, quota, and system settings
74
+ * Get API status, quota, and system settings.
75
+ * Normalizes response from both canonical and legacy backend formats.
75
76
  */
76
77
  getStatus(): Promise<StatusResponse>;
77
78
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ApiClient.d.ts","sourceRoot":"","sources":["../src/ApiClient.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEzD,UAAU,WAAW;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE;QACN,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACL;AAED,UAAU,YAAY;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE;QACH,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE;YACZ,MAAM,EAAE,MAAM,CAAC;YACf,GAAG,EAAE,MAAM,CAAC;SACf,CAAC;KACL,CAAC;CACL;AAED,UAAU,eAAe;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACxC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,KAAK,IAAI,CAAC;IAC1F,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACpC;AAED,UAAU,cAAc;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACzC,KAAK,EAAE;QACH,SAAS,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAAC;QAChD,MAAM,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAAC;KAChD,CAAC;IACF,cAAc,CAAC,EAAE,cAAc,CAAC;CACnC;AAkCD;;GAEG;AACH,qBAAa,SAAS;IAClB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;gBAEX,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAK3C;;OAEG;IACG,IAAI,CACN,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,WAAW,GACtB,OAAO,CAAC,YAAY,CAAC;IA2BxB;;OAEG;IACG,UAAU,CACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,WAAW,GAAG,eAAe,GACvC,OAAO,CAAC,IAAI,CAAC;IAuEhB;;OAEG;IACG,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC;QACvD,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IAqBH;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,cAAc,CAAC;IAc1C;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CASjE"}
1
+ {"version":3,"file":"ApiClient.d.ts","sourceRoot":"","sources":["../src/ApiClient.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEzD,UAAU,WAAW;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE;QACN,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACL;AAED,UAAU,YAAY;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE;QACH,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE;YACZ,MAAM,EAAE,MAAM,CAAC;YACf,GAAG,EAAE,MAAM,CAAC;SACf,CAAC;KACL,CAAC;CACL;AAED,UAAU,eAAe;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACxC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,KAAK,IAAI,CAAC;IAC1F,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACpC;AAED,UAAU,cAAc;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACzC,KAAK,EAAE;QACH,SAAS,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAAC;QAChD,MAAM,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAAC;KAChD,CAAC;IACF,cAAc,CAAC,EAAE,cAAc,CAAC;CACnC;AAqCD;;GAEG;AACH,qBAAa,SAAS;IAClB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;gBAEX,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAK3C;;OAEG;IACG,IAAI,CACN,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,WAAW,GACtB,OAAO,CAAC,YAAY,CAAC;IA4BxB;;OAEG;IACG,UAAU,CACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,WAAW,GAAG,eAAe,GACvC,OAAO,CAAC,IAAI,CAAC;IAuEhB;;;OAGG;IACG,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC;QACvD,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IA0BH;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC,cAAc,CAAC;IAiD1C;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CASjE"}
@@ -1 +1 @@
1
- {"version":3,"file":"WebSocketTransport.d.ts","sourceRoot":"","sources":["../src/WebSocketTransport.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAIR,eAAe,EACf,cAAc,EACd,gBAAgB,EACnB,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,UAAU,aAAa;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAaD;;;;;;;;;;;;GAYG;AACH,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAkC;IAC/C,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,iBAAiB,CAA8B;IAGvD,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,cAAc,CAAM;IAC5B,OAAO,CAAC,eAAe,CAAqB;IAG5C,OAAO,CAAC,mBAAmB,CAA6B;gBAE5C,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB;IAQrE;;OAEG;IACH,QAAQ,IAAI,cAAc;IAI1B;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;;;OAIG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAmFxB;;;;;OAKG;IACG,UAAU,CACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,aAAa,GAAG,eAAe,GACzC,OAAO,CAAC,IAAI,CAAC;IA6ChB,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,aAAa,CAAyC;IAE9D;;OAEG;IACH,UAAU,IAAI,IAAI;IAelB;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IA0BhC;;;;;;;;OAQG;IACH,OAAO,CAAC,aAAa;IA6DrB;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAalB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAO1B;;OAEG;IACH,OAAO,CAAC,eAAe;IAOvB;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAM5B"}
1
+ {"version":3,"file":"WebSocketTransport.d.ts","sourceRoot":"","sources":["../src/WebSocketTransport.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAIR,eAAe,EACf,cAAc,EACd,gBAAgB,EACnB,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,UAAU,aAAa;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAiBD;;;;;;;;;;;;GAYG;AACH,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAkC;IAC/C,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,iBAAiB,CAA8B;IAGvD,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,cAAc,CAAM;IAC5B,OAAO,CAAC,eAAe,CAAqB;IAG5C,OAAO,CAAC,mBAAmB,CAA6B;gBAE5C,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB;IAQrE;;OAEG;IACH,QAAQ,IAAI,cAAc;IAI1B;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;;;OAIG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAmFxB;;;;;OAKG;IACG,UAAU,CACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,aAAa,GAAG,eAAe,GACzC,OAAO,CAAC,IAAI,CAAC;IA6ChB,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,aAAa,CAAyC;IAE9D;;OAEG;IACH,UAAU,IAAI,IAAI;IAelB;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IA0BhC;;;;;;;;OAQG;IACH,OAAO,CAAC,aAAa;IA6DrB;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAclB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAO1B;;OAEG;IACH,OAAO,CAAC,eAAe;IAOvB;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAM5B"}
@@ -4,13 +4,14 @@ import 'path';
4
4
  // src/ApiClient.ts
5
5
  // HTTP client for AsterMind backend API
6
6
  /**
7
- * Map backend source format to client Source interface
7
+ * Map backend source format to client Source interface.
8
+ * Handles both canonical (title/score) and legacy (heading/no-score) field names.
8
9
  */
9
10
  function mapSource(raw) {
10
11
  return {
11
- title: raw.title,
12
- snippet: raw.content,
13
- relevance: raw.score,
12
+ title: raw.title || raw.heading || 'Document',
13
+ snippet: raw.content || '',
14
+ relevance: raw.score ?? 0,
14
15
  documentId: raw.documentId,
15
16
  fullContent: raw.fullContent,
16
17
  downloadUrl: raw.downloadUrl,
@@ -48,9 +49,10 @@ class ApiClient {
48
49
  throw new Error(error.message || `HTTP ${response.status}: ${response.statusText}`);
49
50
  }
50
51
  const data = await response.json();
51
- // Map backend source format to client Source interface
52
+ // Normalize response: accept both 'reply' (canonical) and 'answer' (legacy)
52
53
  return {
53
54
  ...data,
55
+ reply: data.reply || data.answer || '',
54
56
  sources: (data.sources || []).map(mapSource)
55
57
  };
56
58
  }
@@ -126,7 +128,8 @@ class ApiClient {
126
128
  }
127
129
  }
128
130
  /**
129
- * Get general documents for caching
131
+ * Get general documents for caching.
132
+ * Normalizes field names from both canonical (title) and legacy (name) formats.
130
133
  */
131
134
  async getGeneralDocs(since) {
132
135
  const params = new URLSearchParams();
@@ -143,10 +146,16 @@ class ApiClient {
143
146
  throw new Error(`HTTP ${response.status}`);
144
147
  }
145
148
  const data = await response.json();
146
- return data.documents;
149
+ // Normalize: accept both 'title' (canonical) and 'name' (legacy on-prem)
150
+ return (data.documents || []).map((doc) => ({
151
+ id: doc.id,
152
+ title: doc.title || doc.name || 'Untitled',
153
+ updatedAt: doc.updatedAt || doc.updated_at || new Date().toISOString(),
154
+ }));
147
155
  }
148
156
  /**
149
- * Get API status, quota, and system settings
157
+ * Get API status, quota, and system settings.
158
+ * Normalizes response from both canonical and legacy backend formats.
150
159
  */
151
160
  async getStatus() {
152
161
  const response = await fetch(`${this.baseUrl}/api/external/status`, {
@@ -157,7 +166,38 @@ class ApiClient {
157
166
  if (!response.ok) {
158
167
  throw new Error(`HTTP ${response.status}`);
159
168
  }
160
- return response.json();
169
+ const data = await response.json();
170
+ // Normalize: accept both canonical (apiKey) and legacy (key) structures
171
+ const apiKeyData = data.apiKey || data.key || {};
172
+ const scopes = apiKeyData.scopes || apiKeyData.permissions || ['chat'];
173
+ // Normalize quota: accept both canonical (perMinute/perDay) and legacy structures
174
+ const quota = data.quota || {};
175
+ const perMinute = quota.perMinute || {
176
+ limit: apiKeyData.rateLimit?.limit || quota.rateLimitPerMinute || 30,
177
+ remaining: apiKeyData.rateLimit?.remaining ?? quota.rateLimitPerMinute ?? 30,
178
+ };
179
+ const perDay = quota.perDay || {
180
+ limit: quota.rateLimitPerDay || perMinute.limit * 60 * 24,
181
+ remaining: quota.rateLimitPerDay || perMinute.limit * 60 * 24,
182
+ };
183
+ // Normalize systemSettings: accept both canonical and legacy (system) structures
184
+ const settings = data.systemSettings || data.system || {};
185
+ const cacheRetentionHours = settings.cacheRetentionHours ??
186
+ (settings.cacheRetentionDays ? settings.cacheRetentionDays * 24 : undefined);
187
+ return {
188
+ status: data.status || 'active',
189
+ apiKey: {
190
+ id: apiKeyData.id || '',
191
+ scopes,
192
+ },
193
+ quota: { perMinute, perDay },
194
+ systemSettings: {
195
+ cacheRetentionHours: cacheRetentionHours ?? 720,
196
+ maintenanceMode: settings.maintenanceMode ?? false,
197
+ maintenanceMessage: settings.maintenanceMessage,
198
+ forceOfflineClients: settings.forceOfflineClients ?? false,
199
+ },
200
+ };
161
201
  }
162
202
  /**
163
203
  * Health check (no auth required)
@@ -1295,12 +1335,13 @@ class WebSocketTransport {
1295
1335
  if (!Array.isArray(wsSources))
1296
1336
  return [];
1297
1337
  return wsSources.map((s) => ({
1298
- title: s.heading || s.documentName || 'Document',
1338
+ title: s.title || s.heading || s.documentName || 'Document',
1299
1339
  snippet: s.content || '',
1300
1340
  relevance: s.score ?? 0,
1301
1341
  documentId: s.documentId,
1302
1342
  documentName: s.documentName,
1303
- sourceType: 'document',
1343
+ sourceType: s.sourceType || 'document',
1344
+ chunkId: s.chunkId,
1304
1345
  }));
1305
1346
  }
1306
1347
  /**