glirastes 0.1.4 → 0.2.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 +33 -452
- package/LICENSE +201 -0
- package/NOTICE +11 -0
- package/README.md +26 -3
- package/dist/react/bridges/rest-session-bridge.d.ts +1 -1
- package/dist/react/components/message-bubble.js +16 -3
- package/dist/react/components/message-bubble.js.map +1 -1
- package/package.json +28 -12
package/CHANGELOG.md
CHANGED
|
@@ -2,467 +2,48 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
- simplify auto-scroll — remove racy isProgrammaticScrollRef (chat-react)
|
|
8
|
+
## [Unreleased]
|
|
9
9
|
|
|
10
|
-
## [0.
|
|
11
|
-
|
|
12
|
-
### Fixed
|
|
13
|
-
- fix auto-scroll race condition in MessageList (chat-react)
|
|
14
|
-
|
|
15
|
-
## [0.18.23] - 2026-04-05
|
|
16
|
-
|
|
17
|
-
### Added
|
|
18
|
-
- add client-side timestamp to telemetry events (telemetry)
|
|
19
|
-
|
|
20
|
-
### Fixed
|
|
21
|
-
- skip approval resolve for tools that never required approval (adapter)
|
|
22
|
-
|
|
23
|
-
## [0.18.20] - 2026-04-05
|
|
24
|
-
|
|
25
|
-
### Fixed
|
|
26
|
-
- sync reads glirastes config and scans NestJS controllers (cli)
|
|
27
|
-
|
|
28
|
-
## [0.18.19] - 2026-04-04
|
|
29
|
-
|
|
30
|
-
### Fixed
|
|
31
|
-
- generate into frontend app instead of ai-shared package (cli)
|
|
32
|
-
|
|
33
|
-
## [0.18.18] - 2026-04-04
|
|
34
|
-
|
|
35
|
-
### Fixed
|
|
36
|
-
- use relative imports for monorepo UI tool scanning (codegen)
|
|
37
|
-
|
|
38
|
-
## [0.18.17] - 2026-04-04
|
|
39
|
-
|
|
40
|
-
### Fixed
|
|
41
|
-
- add default inputSchema and z import to generated NestJS tools (codegen)
|
|
42
|
-
|
|
43
|
-
## [0.18.16] - 2026-04-04
|
|
44
|
-
|
|
45
|
-
### Added
|
|
46
|
-
- extract needsApproval and allowedRoles from @AiTool (codegen)
|
|
47
|
-
|
|
48
|
-
## [0.18.15] - 2026-04-04
|
|
49
|
-
|
|
50
|
-
### Fixed
|
|
51
|
-
- scan monorepo dirs for useAiClientAction handlers (codegen)
|
|
52
|
-
|
|
53
|
-
## [0.18.14] - 2026-04-04
|
|
54
|
-
|
|
55
|
-
### Added
|
|
56
|
-
- add applyAiExtensions for OpenAPI x-ai metadata (adapter-nestjs)
|
|
57
|
-
|
|
58
|
-
## [0.18.13] - 2026-04-04
|
|
59
|
-
|
|
60
|
-
### Fixed
|
|
61
|
-
- include NestJS tool count in coverage totals (codegen)
|
|
62
|
-
|
|
63
|
-
## [0.18.12] - 2026-04-04
|
|
64
|
-
|
|
65
|
-
### Fixed
|
|
66
|
-
- share glirastes config (nestjsDirs) across all commands (cli)
|
|
67
|
-
|
|
68
|
-
## [0.18.11] - 2026-04-04
|
|
69
|
-
|
|
70
|
-
### Fixed
|
|
71
|
-
- support backtick template literals in @AiTool description parsing (codegen)
|
|
72
|
-
|
|
73
|
-
## [0.18.10] - 2026-04-04
|
|
74
|
-
|
|
75
|
-
### Fixed
|
|
76
|
-
- distinguish file-level vs method-level @ai-ignore in NestJS scanner (codegen)
|
|
77
|
-
|
|
78
|
-
## [0.18.9] - 2026-04-04
|
|
79
|
-
|
|
80
|
-
### Added
|
|
81
|
-
- detect NestJS controllers without @AiTool decorators (codegen)
|
|
82
|
-
|
|
83
|
-
## [0.18.8] - 2026-04-04
|
|
84
|
-
|
|
85
|
-
### Added
|
|
86
|
-
- add NestJS @AiTool decorator scanner and monorepo codegen support (codegen)
|
|
87
|
-
|
|
88
|
-
## [0.18.7] - 2026-04-04
|
|
89
|
-
|
|
90
|
-
### Fixed
|
|
91
|
-
- auto-confirm framework in monorepo mode (cli)
|
|
92
|
-
- auto-overwrite managed skills without prompting (cli)
|
|
93
|
-
- deduplicate next steps in init summary (cli)
|
|
94
|
-
- use package-manager-agnostic wording in codegen next steps (cli)
|
|
95
|
-
|
|
96
|
-
## [0.18.6] - 2026-04-04
|
|
97
|
-
|
|
98
|
-
### Fixed
|
|
99
|
-
- remove API key prefix validation from glirastes step (cli)
|
|
100
|
-
|
|
101
|
-
## [0.18.5] - 2026-04-04
|
|
102
|
-
|
|
103
|
-
### Added
|
|
104
|
-
- rewrite runInit with monorepo shared/per-app flow (cli)
|
|
105
|
-
- extend summary for multi-app monorepo output (cli)
|
|
106
|
-
- add scope field to all init steps (cli)
|
|
107
|
-
- add per-app dependency installation helper (cli)
|
|
108
|
-
- add monorepo detection with workspace + fallback scanning (cli)
|
|
109
|
-
- add monorepo types to init system (cli)
|
|
110
|
-
|
|
111
|
-
## [0.18.4] - 2026-04-03
|
|
112
|
-
|
|
113
|
-
### Fixed
|
|
114
|
-
- remove runtime peer dep check (false positives in browser) (chat-react)
|
|
115
|
-
|
|
116
|
-
## [0.18.3] - 2026-04-03
|
|
117
|
-
|
|
118
|
-
### Fixed
|
|
119
|
-
- replace Tailwind classes with inline styles in AiTriggerButton (chat-react)
|
|
120
|
-
|
|
121
|
-
## [0.18.2] - 2026-04-03
|
|
122
|
-
|
|
123
|
-
### Fixed
|
|
124
|
-
- lazy-load wavesurfer.js to prevent silent import failures (chat-react)
|
|
125
|
-
|
|
126
|
-
## [0.18.1] - 2026-04-03
|
|
127
|
-
|
|
128
|
-
### Fixed
|
|
129
|
-
- resolve approvals across request boundaries (lancer,adapter-nextjs)
|
|
130
|
-
|
|
131
|
-
## [0.18.0] - 2026-04-03
|
|
132
|
-
|
|
133
|
-
### Added
|
|
134
|
-
- multilingual intent classifier with Snowball stemming (server-core)
|
|
135
|
-
|
|
136
|
-
## [0.17.2] - 2026-04-02
|
|
137
|
-
|
|
138
|
-
### Added
|
|
139
|
-
- use local intent classifier instead of lancer.primus.classify (server-pro)
|
|
140
|
-
- add local intent classifier with Jaccard heuristic + LLM support (server-core)
|
|
141
|
-
|
|
142
|
-
### Fixed
|
|
143
|
-
- improve intent classifier robustness (server-core)
|
|
144
|
-
|
|
145
|
-
## [0.17.0] - 2026-04-01
|
|
146
|
-
|
|
147
|
-
### Added
|
|
148
|
-
- **Transport abstraction** — `ChatTransport` interface decouples `AiChatProvider` from the Vercel AI SDK, enabling custom transports (SSE, WebSocket, LangGraph, LangChain, or any streaming backend). Built-in `useVercelAiChatTransport` remains the default. CLI `init` now offers transport selection. (chat-react, cli)
|
|
149
|
-
|
|
150
|
-
## [0.16.1] - 2026-04-01
|
|
151
|
-
|
|
152
|
-
### Fixed
|
|
153
|
-
- emit modelId on session.ended events for accurate cost analytics (telemetry)
|
|
154
|
-
- use topological build order to prevent race conditions (build)
|
|
155
|
-
|
|
156
|
-
## [0.16.0] - 2026-04-01
|
|
157
|
-
|
|
158
|
-
### Added
|
|
159
|
-
- **Lancer platform client** — thin HTTP client with gate, primus, warden, aegis, config, telemetry namespaces and graceful fallback (lancer)
|
|
160
|
-
- **server-core / server-pro split** — open-core architecture: MIT server-core + proprietary server-pro with Lancer-delegated pipeline (server-core, server-pro)
|
|
161
|
-
- **PII Shield** — createPiiShield factory with session mapping, seeded pseudonyms, fake data, leakage detection, and Aegis Pro detector (pii-shield)
|
|
162
|
-
- **CodeGen pipeline** — MCP server generator, auto-recommendation, skill generator with CSO-optimized frontmatter, meta-skill template (codegen)
|
|
163
|
-
- **CLI enhancements** — `--remote` flag for Glirastes-managed file generation, `--sync` flag, generate-mcp-server, auto-recommend commands, .env auto-load (cli)
|
|
164
|
-
- **Lancer approvals** — approval namespace with traceId, fail-closed fallback, adapter-nextjs integration (lancer, adapter-nextjs)
|
|
165
|
-
- **Telemetry** — traceId propagation across pipeline events, telemetry buffer with auto-flush (lancer, adapter-nextjs)
|
|
166
|
-
- **AnalyzeOptions** — pseudonymize default and sessionId support for Aegis analyze (lancer)
|
|
167
|
-
- agent identification headers for SDK telemetry auto-population (lancer)
|
|
168
|
-
- flat models map as alternative to modelSelector config (server-core)
|
|
169
|
-
- PiiDetector interface and simplified PiiShieldConfig (contracts)
|
|
170
|
-
- traceId field to TelemetrySink emit event type (contracts)
|
|
171
|
-
|
|
172
|
-
### Fixed
|
|
173
|
-
- checkLeakage added to AegisNamespace, mappingToken nullability (lancer)
|
|
174
|
-
- dot-notation tool ID for approval checks (server-core, adapter-nextjs)
|
|
175
|
-
- respect local needsApproval: false in Lancer wrapper (adapter-nextjs)
|
|
176
|
-
- error-safe telemetry flush (lancer)
|
|
177
|
-
- pii-shield exports compiled dist instead of TypeScript source (pii-shield)
|
|
178
|
-
|
|
179
|
-
### Changed (Breaking)
|
|
180
|
-
- `server-node` renamed to `server-core` (`glirastes/server`)
|
|
181
|
-
- `ai-router` renamed to `server-pro` (`glirastes/server`)
|
|
182
|
-
- server-pro no longer re-exports server-core — import core features from `glirastes/server` directly
|
|
183
|
-
|
|
184
|
-
## [0.15.16] - 2026-03-23
|
|
185
|
-
|
|
186
|
-
### Fixed
|
|
187
|
-
- allow dragging from anywhere on the trigger button (chat-react)
|
|
188
|
-
|
|
189
|
-
## [0.15.15] - 2026-03-23
|
|
190
|
-
|
|
191
|
-
### Added
|
|
192
|
-
- make AI trigger button draggable (chat-react)
|
|
193
|
-
- add SDK-wide audit event bus and PCI DSS compliance hardening (core)
|
|
194
|
-
- add agent skill generator for Claude Code and Codex (codegen)
|
|
195
|
-
|
|
196
|
-
## [0.1.0-beta.18] - 2026-03-30
|
|
197
|
-
|
|
198
|
-
### Fixed
|
|
199
|
-
- add checkLeakage to AegisNamespace and fix mappingToken nullability (lancer)
|
|
200
|
-
|
|
201
|
-
## [0.1.0-beta.17] - 2026-03-26
|
|
202
|
-
|
|
203
|
-
### Fixed
|
|
204
|
-
- use dot-notation tool ID for approval checks (server-core,adapter-nextjs)
|
|
205
|
-
|
|
206
|
-
## [0.1.0-beta.16] - 2026-03-26
|
|
207
|
-
|
|
208
|
-
### Fixed
|
|
209
|
-
- respect local needsApproval: false in Lancer wrapper (adapter-nextjs)
|
|
210
|
-
|
|
211
|
-
## [0.1.0-beta.15] - 2026-03-26
|
|
212
|
-
|
|
213
|
-
### Added
|
|
214
|
-
- pass traceId to Lancer approval checks (adapter-nextjs)
|
|
215
|
-
|
|
216
|
-
## [0.1.0-beta.9] - 2026-03-25
|
|
217
|
-
|
|
218
|
-
### Added
|
|
219
|
-
- implement createPiiShield factory with full PiiShield interface (pii-shield)
|
|
220
|
-
- add in-memory session mapping with seeded pseudonyms (pii-shield)
|
|
221
|
-
- add seeded fake data generator with DE/EN pools (pii-shield)
|
|
222
|
-
- add basic string-match leakage detection (pii-shield)
|
|
223
|
-
- add deep-walk utility for recursive object traversal (pii-shield)
|
|
224
|
-
- scaffold package with contracts peer dep (pii-shield)
|
|
225
|
-
- add PiiDetector interface, simplify PiiShieldConfig (contracts)
|
|
226
|
-
|
|
227
|
-
### Fixed
|
|
228
|
-
- add getPseudonym, remove unused config fields, handle pseudonym collisions (pii-shield)
|
|
229
|
-
- use beta dist-tag for prerelease versions (ci)
|
|
230
|
-
|
|
231
|
-
## [0.1.0-beta.8] - 2026-03-25
|
|
232
|
-
|
|
233
|
-
### Added
|
|
234
|
-
- implement createPiiShield factory with full PiiShield interface (pii-shield)
|
|
235
|
-
- add in-memory session mapping with seeded pseudonyms (pii-shield)
|
|
236
|
-
- add seeded fake data generator with DE/EN pools (pii-shield)
|
|
237
|
-
- add basic string-match leakage detection (pii-shield)
|
|
238
|
-
- add deep-walk utility for recursive object traversal (pii-shield)
|
|
239
|
-
- scaffold package with contracts peer dep (pii-shield)
|
|
240
|
-
- add PiiDetector interface, simplify PiiShieldConfig (contracts)
|
|
241
|
-
|
|
242
|
-
### Fixed
|
|
243
|
-
- add getPseudonym, remove unused config fields, handle pseudonym collisions (pii-shield)
|
|
244
|
-
- use beta dist-tag for prerelease versions (ci)
|
|
245
|
-
|
|
246
|
-
## [0.1.0-beta.1] - 2026-03-21
|
|
247
|
-
|
|
248
|
-
### Added
|
|
249
|
-
- add configurable degradation behavior per Glirastes service (lancer,server-pro)
|
|
250
|
-
|
|
251
|
-
## [0.1.0-beta.0] - 2026-03-21
|
|
252
|
-
|
|
253
|
-
### Added
|
|
254
|
-
- harden with Lancer guard, audit fix, and Pro pipeline factory (server-pro)
|
|
255
|
-
- close 5 glirastes parity gaps — router tiers, variant generator, leakage detection, classifier buckets (core)
|
|
256
|
-
- Migration Parity Hardening — lock contracts, async PII rehydration, parity harness (core)
|
|
257
|
-
- move platform client to SDK, add primus/warden/aegis namespaces (lancer)
|
|
258
|
-
- add Lancer delegation to ai-router and pii-shield (core)
|
|
259
|
-
- split server-node into server-core (MIT) and server-pro (proprietary) (core)
|
|
260
|
-
- include allowedRoles in registry sync (cli)
|
|
261
|
-
- add Lancer platform integration to SDK (core)
|
|
262
|
-
- add SDK-wide audit event bus and PCI DSS compliance hardening (core)
|
|
263
|
-
- add agent skill generator for Claude Code and Codex (codegen)
|
|
264
|
-
|
|
265
|
-
### Fixed
|
|
266
|
-
- rehydrate tool args asynchronously in adapter path (pii-shield)
|
|
267
|
-
- align runtime payload contracts with glirastes api (lancer)
|
|
268
|
-
- remove dead fast-path storage, add rehydrate shape validation (core)
|
|
269
|
-
|
|
270
|
-
### Changed (Breaking)
|
|
271
|
-
- glirastes/server, (core)
|
|
272
|
-
|
|
273
|
-
## [0.16.0] — 2026-03-18
|
|
274
|
-
|
|
275
|
-
### BREAKING CHANGES
|
|
276
|
-
|
|
277
|
-
#### Removed packages
|
|
278
|
-
- **`glirastes/server`** — Intent classification, guardrails, model selection now handled via Lancer (Glirastes Pro). Local routing logic moved to `server-core`.
|
|
279
|
-
- **`glirastes/server`** — PII protection now handled via Lancer Aegis (Glirastes Pro). Types moved to `contracts`.
|
|
280
|
-
- **`glirastes/server`** — Use `server-core` and `server-pro` directly.
|
|
281
|
-
|
|
282
|
-
### Added
|
|
283
|
-
- **`contracts`**: Routing, classification, followup, PII, guardrail, and pipeline types (from ai-router/pii-shield)
|
|
284
|
-
- **`server-core`**: `createFollowupTool()`, `createAiRouter()`, `defineModule()`, `createModelSelector()`
|
|
285
|
-
- **`server-pro`**: `createAiPipeline()` — Pro pipeline factory with Lancer integration and graceful degradation
|
|
286
|
-
- **`server-pro`**: `proToolsToAiTools()` now gracefully degrades when Lancer is undefined (falls back to local RBAC)
|
|
10
|
+
## [0.2.1] - 2026-04-27
|
|
287
11
|
|
|
288
12
|
### Changed
|
|
289
|
-
- **`adapter-nextjs`**: `glirastes/server` and `glirastes/server` removed from peer dependencies. Pipeline comes from `server-pro`.
|
|
290
|
-
- **`testing`**: Replaced ai-router dependency with contracts + server-core
|
|
291
|
-
- **Skill templates**: Pro features clearly marked, Free vs Pro examples added
|
|
292
|
-
|
|
293
|
-
### Migration
|
|
294
|
-
```typescript
|
|
295
|
-
// OLD
|
|
296
|
-
import { createAiPipeline, defineModule } from 'glirastes/server';
|
|
297
|
-
import { createPiiShield } from 'glirastes/server';
|
|
298
|
-
|
|
299
|
-
// NEW
|
|
300
|
-
import { createAiPipeline } from 'glirastes/server';
|
|
301
|
-
import { defineModule } from 'glirastes/server';
|
|
302
|
-
import type { PiiShield } from 'glirastes';
|
|
303
|
-
```
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
## [0.15.14] - 2026-03-11
|
|
307
|
-
|
|
308
|
-
### Added
|
|
309
|
-
- strip extra fields from tool results and reduce token waste (server-node,adapter-nextjs)
|
|
310
|
-
|
|
311
|
-
### Fixed
|
|
312
|
-
- add triggers, tags, and improved descriptions to skill templates (cli)
|
|
313
|
-
|
|
314
|
-
## [0.15.12] - 2026-03-10
|
|
315
|
-
|
|
316
|
-
### Fixed
|
|
317
|
-
- use SVG for stop icon in recording bar and trigger button (chat-react)
|
|
318
|
-
|
|
319
|
-
## [0.15.11] - 2026-03-10
|
|
320
|
-
|
|
321
|
-
### Fixed
|
|
322
|
-
- simplify recording bar stop button and unify X icon style (chat-react)
|
|
323
|
-
|
|
324
|
-
## [0.15.10] - 2026-03-10
|
|
325
|
-
|
|
326
|
-
### Fixed
|
|
327
|
-
- polish recording UI with inline styles and stop button color (chat-react)
|
|
328
|
-
|
|
329
|
-
## [0.15.9] - 2026-03-10
|
|
330
|
-
|
|
331
|
-
### Added
|
|
332
|
-
- improve recording bar with SVG icons and loading dots (chat-react)
|
|
333
|
-
- export AiTriggerButton from package index (chat-react)
|
|
334
|
-
- add AiTriggerButton component (chat-react)
|
|
335
|
-
- add AiTriggerButtonProps type (chat-react)
|
|
336
|
-
|
|
337
|
-
### Fixed
|
|
338
|
-
- use named ReactElement import instead of React namespace (chat-react)
|
|
339
|
-
|
|
340
|
-
## [0.15.7] - 2026-03-10
|
|
341
|
-
|
|
342
|
-
### Added
|
|
343
|
-
- render markdown in default message bubble (chat-react)
|
|
344
|
-
|
|
345
|
-
## [0.15.4] - 2026-03-09
|
|
346
|
-
|
|
347
|
-
### Added
|
|
348
|
-
- add upgrade command to update glirastes package (cli)
|
|
349
|
-
|
|
350
|
-
### Fixed
|
|
351
|
-
- handle null options in AiChatService and fix factory type (adapter-nestjs)
|
|
352
|
-
|
|
353
|
-
## [0.15.3] - 2026-03-09
|
|
354
|
-
|
|
355
|
-
### Added
|
|
356
|
-
- add upgrade command to update glirastes package (cli)
|
|
357
|
-
|
|
358
|
-
## [0.15.1] - 2026-03-09
|
|
359
|
-
|
|
360
|
-
### Added
|
|
361
|
-
- auto-extract @Param() path parameters into tool inputSchema (adapter-nestjs)
|
|
362
|
-
|
|
363
|
-
### Fixed
|
|
364
|
-
- pass getToken and baseUrl to VoiceInputAddon in MentionInput (chat-react)
|
|
365
|
-
- anchor opposite edge during panel drag-resize (chat-react)
|
|
366
|
-
|
|
367
|
-
## [0.15.0] - 2026-03-09
|
|
368
|
-
|
|
369
|
-
### Added
|
|
370
|
-
- add token-based auth to voice input WebSocket connections (chat-react)
|
|
371
|
-
- add chat module with controller, service, and speech stream gateway (adapter-nestjs)
|
|
372
|
-
- add rolesResolver for fallback allowedRoles resolution (adapter-nestjs)
|
|
373
|
-
- add constraint validation and detailed error messages (sdk)
|
|
374
|
-
- auto-derive tool input schema from @ApiProperty metadata (adapter-nestjs)
|
|
375
|
-
- auto-extract @Param() path parameters into tool inputSchema (adapter-nestjs)
|
|
376
|
-
|
|
377
|
-
### Fixed
|
|
378
|
-
- use hasAiRelevantMeta in runtime explorer service (adapter-nestjs)
|
|
379
|
-
|
|
380
|
-
## [0.14.3] - 2026-03-09
|
|
381
13
|
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
14
|
+
- README hero image now uses a relative path (`.github/hero.gif`) so it
|
|
15
|
+
renders directly from the repository instead of a hard-coded
|
|
16
|
+
`raw.githubusercontent.com` URL.
|
|
17
|
+
- Refreshed `.github/hero.gif` with an updated, smaller animation.
|
|
385
18
|
|
|
386
|
-
## [0.
|
|
19
|
+
## [0.2.0] - 2026-04-27
|
|
387
20
|
|
|
388
21
|
### Added
|
|
389
|
-
- add loop detection and improve pipeline timeline UI (chat)
|
|
390
|
-
|
|
391
|
-
## [0.14.1] - 2026-03-06
|
|
392
|
-
|
|
393
|
-
### Fixed
|
|
394
|
-
- auto-detect and add missing framework skills on update-skills (cli)
|
|
395
|
-
|
|
396
|
-
## [0.14.0] - 2026-03-06
|
|
397
|
-
|
|
398
|
-
### Added
|
|
399
|
-
- add drag-resize panel hook and enhance ChatWindow and RichMentionInput (chat-react)
|
|
400
|
-
- add conventional commit parser (cli)
|
|
401
|
-
|
|
402
|
-
## [0.13.0] - 2026-03-06
|
|
403
|
-
|
|
404
|
-
### Added
|
|
405
|
-
- add edge resize, viewport clamping, and header render prop to ChatWindow (chat-react)
|
|
406
|
-
|
|
407
|
-
## [0.12.0] - 2026-03-06
|
|
408
|
-
|
|
409
|
-
### Added
|
|
410
|
-
- add baseUrl support for voice input and headers prop for AiChatProvider (chat-react)
|
|
411
|
-
|
|
412
|
-
## [0.11.0] - 2026-03-06
|
|
413
|
-
|
|
414
|
-
### Added
|
|
415
|
-
- add framework-specific skill templates and parent/child hierarchy (cli)
|
|
416
|
-
- add ChatWindow, RichMentionInput, VoiceInputAddon, and template layer (chat-react)
|
|
417
|
-
|
|
418
|
-
## [0.10.0] - 2026-03-05
|
|
419
|
-
|
|
420
|
-
### Added
|
|
421
|
-
- support optional tool roles and anonymize rehydration (core)
|
|
422
|
-
- add upgrade gap checks and changelog automation (cli)
|
|
423
|
-
- add compiled AudioWorklet processor (chat-react)
|
|
424
|
-
- add AudioWorklet processor for STT (chat-react)
|
|
425
|
-
- add gap detector utility (cli)
|
|
426
|
-
- add changelog diff utility (cli)
|
|
427
|
-
- add changelog parser utility (cli)
|
|
428
|
-
|
|
429
|
-
### Fixed
|
|
430
|
-
- resolve ReDoS vulnerability and improve gap detection (cli)
|
|
431
|
-
- correct changelog diff boundary behavior (cli)
|
|
432
|
-
- separate .vscode and .worktrees in gitignore (core)
|
|
433
|
-
- improve changelog parser robustness (cli)
|
|
434
|
-
|
|
435
|
-
### Changed (Breaking)
|
|
436
|
-
- removed speechTokenEndpoint option and speech-token templates. (stt)
|
|
437
|
-
|
|
438
|
-
## [0.9.0] - 2026-03-05
|
|
439
|
-
|
|
440
|
-
### Added
|
|
441
|
-
- Baseline release entry for changelog tracking (core)
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
22
|
|
|
23
|
+
- Initial public release of `glirastes`.
|
|
24
|
+
- Type-safe tool definitions via `defineEndpointTool()` and `defineUiTool()`.
|
|
25
|
+
- Role-based access control (RBAC) at the tool layer.
|
|
26
|
+
- Approval flows for sensitive tool calls.
|
|
27
|
+
- Server adapters for Next.js (App Router) and NestJS (decorators).
|
|
28
|
+
- React chat UI components, hooks, and provider.
|
|
29
|
+
- UI Action bus for declarative client-side dispatch from tool results.
|
|
30
|
+
- PII shield with anonymization, pseudonymization, and rehydration.
|
|
31
|
+
- Lancer client for the Glirastes platform with graceful degradation.
|
|
32
|
+
- CLI: `init`, `generate`, `validate`, `coverage`, `scaffold`.
|
|
33
|
+
- Codegen for endpoint registries, UI registries, action IDs, and modules.
|
|
34
|
+
- OpenAPI generator: turn an OpenAPI spec into endpoint tool definitions.
|
|
35
|
+
- Testing utilities for tool setups without LLM calls.
|
|
36
|
+
- `engines.node` field declaring Node.js `>=20` as the supported runtime.
|
|
37
|
+
- CI: `npm audit` job (production deps, level=high) on every PR and push.
|
|
38
|
+
- CI: CodeQL static analysis with `security-and-quality` query suite.
|
|
466
39
|
|
|
40
|
+
### Changed
|
|
467
41
|
|
|
42
|
+
- `react-markdown` and `wavesurfer.js` are now optional `peerDependencies`
|
|
43
|
+
rather than runtime `dependencies`. Server-only consumers no longer pull
|
|
44
|
+
these libraries on install. `react-markdown` is loaded via `React.lazy`
|
|
45
|
+
with a plain-text fallback when the peer dep is not installed.
|
|
468
46
|
|
|
47
|
+
[Unreleased]: https://github.com/chainmatics/glirastes/compare/v0.2.1...HEAD
|
|
48
|
+
[0.2.1]: https://github.com/chainmatics/glirastes/compare/v0.2.0...v0.2.1
|
|
49
|
+
[0.2.0]: https://github.com/chainmatics/glirastes/releases/tag/v0.2.0
|
package/LICENSE
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
Apache License
|
|
2
|
+
Version 2.0, January 2004
|
|
3
|
+
http://www.apache.org/licenses/
|
|
4
|
+
|
|
5
|
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
|
6
|
+
|
|
7
|
+
1. Definitions.
|
|
8
|
+
|
|
9
|
+
"License" shall mean the terms and conditions for use, reproduction,
|
|
10
|
+
and distribution as defined by Sections 1 through 9 of this document.
|
|
11
|
+
|
|
12
|
+
"Licensor" shall mean the copyright owner or entity authorized by
|
|
13
|
+
the copyright owner that is granting the License.
|
|
14
|
+
|
|
15
|
+
"Legal Entity" shall mean the union of the acting entity and all
|
|
16
|
+
other entities that control, are controlled by, or are under common
|
|
17
|
+
control with that entity. For the purposes of this definition,
|
|
18
|
+
"control" means (i) the power, direct or indirect, to cause the
|
|
19
|
+
direction or management of such entity, whether by contract or
|
|
20
|
+
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
|
21
|
+
outstanding shares, or (iii) beneficial ownership of such entity.
|
|
22
|
+
|
|
23
|
+
"You" (or "Your") shall mean an individual or Legal Entity
|
|
24
|
+
exercising permissions granted by this License.
|
|
25
|
+
|
|
26
|
+
"Source" form shall mean the preferred form for making modifications,
|
|
27
|
+
including but not limited to software source code, documentation
|
|
28
|
+
source, and configuration files.
|
|
29
|
+
|
|
30
|
+
"Object" form shall mean any form resulting from mechanical
|
|
31
|
+
transformation or translation of a Source form, including but
|
|
32
|
+
not limited to compiled object code, generated documentation,
|
|
33
|
+
and conversions to other media types.
|
|
34
|
+
|
|
35
|
+
"Work" shall mean the work of authorship, whether in Source or
|
|
36
|
+
Object form, made available under the License, as indicated by a
|
|
37
|
+
copyright notice that is included in or attached to the work
|
|
38
|
+
(an example is provided in the Appendix below).
|
|
39
|
+
|
|
40
|
+
"Derivative Works" shall mean any work, whether in Source or Object
|
|
41
|
+
form, that is based on (or derived from) the Work and for which the
|
|
42
|
+
editorial revisions, annotations, elaborations, or other modifications
|
|
43
|
+
represent, as a whole, an original work of authorship. For the purposes
|
|
44
|
+
of this License, Derivative Works shall not include works that remain
|
|
45
|
+
separable from, or merely link (or bind by name) to the interfaces of,
|
|
46
|
+
the Work and Derivative Works thereof.
|
|
47
|
+
|
|
48
|
+
"Contribution" shall mean any work of authorship, including
|
|
49
|
+
the original version of the Work and any modifications or additions
|
|
50
|
+
to that Work or Derivative Works thereof, that is intentionally
|
|
51
|
+
submitted to Licensor for inclusion in the Work by the copyright owner
|
|
52
|
+
or by an individual or Legal Entity authorized to submit on behalf of
|
|
53
|
+
the copyright owner. For the purposes of this definition, "submitted"
|
|
54
|
+
means any form of electronic, verbal, or written communication sent
|
|
55
|
+
to the Licensor or its representatives, including but not limited to
|
|
56
|
+
communication on electronic mailing lists, source code control systems,
|
|
57
|
+
and issue tracking systems that are managed by, or on behalf of, the
|
|
58
|
+
Licensor for the purpose of discussing and improving the Work, but
|
|
59
|
+
excluding communication that is conspicuously marked or otherwise
|
|
60
|
+
designated in writing by the copyright owner as "Not a Contribution."
|
|
61
|
+
|
|
62
|
+
"Contributor" shall mean Licensor and any individual or Legal Entity
|
|
63
|
+
on behalf of whom a Contribution has been received by Licensor and
|
|
64
|
+
subsequently incorporated within the Work.
|
|
65
|
+
|
|
66
|
+
2. Grant of Copyright License. Subject to the terms and conditions of
|
|
67
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
68
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
69
|
+
copyright license to reproduce, prepare Derivative Works of,
|
|
70
|
+
publicly display, publicly perform, sublicense, and distribute the
|
|
71
|
+
Work and such Derivative Works in Source or Object form.
|
|
72
|
+
|
|
73
|
+
3. Grant of Patent License. Subject to the terms and conditions of
|
|
74
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
75
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
76
|
+
(except as stated in this section) patent license to make, have made,
|
|
77
|
+
use, offer to sell, sell, import, and otherwise transfer the Work,
|
|
78
|
+
where such license applies only to those patent claims licensable
|
|
79
|
+
by such Contributor that are necessarily infringed by their
|
|
80
|
+
Contribution(s) alone or by combination of their Contribution(s)
|
|
81
|
+
with the Work to which such Contribution(s) was submitted. If You
|
|
82
|
+
institute patent litigation against any entity (including a
|
|
83
|
+
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
|
84
|
+
or a Contribution incorporated within the Work constitutes direct
|
|
85
|
+
or contributory patent infringement, then any patent licenses
|
|
86
|
+
granted to You under this License for that Work shall terminate
|
|
87
|
+
as of the date such litigation is filed.
|
|
88
|
+
|
|
89
|
+
4. Redistribution. You may reproduce and distribute copies of the
|
|
90
|
+
Work or Derivative Works thereof in any medium, with or without
|
|
91
|
+
modifications, and in Source or Object form, provided that You
|
|
92
|
+
meet the following conditions:
|
|
93
|
+
|
|
94
|
+
(a) You must give any other recipients of the Work or
|
|
95
|
+
Derivative Works a copy of this License; and
|
|
96
|
+
|
|
97
|
+
(b) You must cause any modified files to carry prominent notices
|
|
98
|
+
stating that You changed the files; and
|
|
99
|
+
|
|
100
|
+
(c) You must retain, in the Source form of any Derivative Works
|
|
101
|
+
that You distribute, all copyright, patent, trademark, and
|
|
102
|
+
attribution notices from the Source form of the Work,
|
|
103
|
+
excluding those notices that do not pertain to any part of
|
|
104
|
+
the Derivative Works; and
|
|
105
|
+
|
|
106
|
+
(d) If the Work includes a "NOTICE" text file as part of its
|
|
107
|
+
distribution, then any Derivative Works that You distribute must
|
|
108
|
+
include a readable copy of the attribution notices contained
|
|
109
|
+
within such NOTICE file, excluding those notices that do not
|
|
110
|
+
pertain to any part of the Derivative Works, in at least one
|
|
111
|
+
of the following places: within a NOTICE text file distributed
|
|
112
|
+
as part of the Derivative Works; within the Source form or
|
|
113
|
+
documentation, if provided along with the Derivative Works; or,
|
|
114
|
+
within a display generated by the Derivative Works, if and
|
|
115
|
+
wherever such third-party notices normally appear. The contents
|
|
116
|
+
of the NOTICE file are for informational purposes only and
|
|
117
|
+
do not modify the License. You may add Your own attribution
|
|
118
|
+
notices within Derivative Works that You distribute, alongside
|
|
119
|
+
or as an addendum to the NOTICE text from the Work, provided
|
|
120
|
+
that such additional attribution notices cannot be construed
|
|
121
|
+
as modifying the License.
|
|
122
|
+
|
|
123
|
+
You may add Your own copyright statement to Your modifications and
|
|
124
|
+
may provide additional or different license terms and conditions
|
|
125
|
+
for use, reproduction, or distribution of Your modifications, or
|
|
126
|
+
for any such Derivative Works as a whole, provided Your use,
|
|
127
|
+
reproduction, and distribution of the Work otherwise complies with
|
|
128
|
+
the conditions stated in this License.
|
|
129
|
+
|
|
130
|
+
5. Submission of Contributions. Unless You explicitly state otherwise,
|
|
131
|
+
any Contribution intentionally submitted for inclusion in the Work
|
|
132
|
+
by You to the Licensor shall be under the terms and conditions of
|
|
133
|
+
this License, without any additional terms or conditions.
|
|
134
|
+
Notwithstanding the above, nothing herein shall supersede or modify
|
|
135
|
+
the terms of any separate license agreement you may have executed
|
|
136
|
+
with Licensor regarding such Contributions.
|
|
137
|
+
|
|
138
|
+
6. Trademarks. This License does not grant permission to use the trade
|
|
139
|
+
names, trademarks, service marks, or product names of the Licensor,
|
|
140
|
+
except as required for describing the origin of the Work and
|
|
141
|
+
reproducing the content of the NOTICE file.
|
|
142
|
+
|
|
143
|
+
7. Disclaimer of Warranty. Unless required by applicable law or
|
|
144
|
+
agreed to in writing, Licensor provides the Work (and each
|
|
145
|
+
Contributor provides its Contributions) on an "AS IS" BASIS,
|
|
146
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
147
|
+
implied, including, without limitation, any warranties or conditions
|
|
148
|
+
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
|
149
|
+
PARTICULAR PURPOSE. You are solely responsible for determining the
|
|
150
|
+
appropriateness of using or redistributing the Work and assume any
|
|
151
|
+
risks associated with Your exercise of permissions under this License.
|
|
152
|
+
|
|
153
|
+
8. Limitation of Liability. In no event and under no legal theory,
|
|
154
|
+
whether in tort (including negligence), contract, or otherwise,
|
|
155
|
+
unless required by applicable law (such as deliberate and grossly
|
|
156
|
+
negligent acts) or agreed to in writing, shall any Contributor be
|
|
157
|
+
liable to You for damages, including any direct, indirect, special,
|
|
158
|
+
incidental, or consequential damages of any character arising as a
|
|
159
|
+
result of this License or out of the use or inability to use the
|
|
160
|
+
Work (including but not limited to damages for loss of goodwill,
|
|
161
|
+
work stoppage, computer failure or malfunction, or any and all
|
|
162
|
+
other commercial damages or losses), even if such Contributor
|
|
163
|
+
has been advised of the possibility of such damages.
|
|
164
|
+
|
|
165
|
+
9. Accepting Warranty or Support. While redistributing
|
|
166
|
+
the Work or Derivative Works thereof, You may choose to offer,
|
|
167
|
+
and charge a fee for, acceptance of support, warranty, indemnity,
|
|
168
|
+
or other liability obligations and/or rights consistent with this
|
|
169
|
+
License. However, in accepting such obligations, You may act only
|
|
170
|
+
on Your own behalf and on Your sole responsibility, not on behalf
|
|
171
|
+
of any other Contributor, and only if You agree to indemnify,
|
|
172
|
+
defend, and hold each Contributor harmless for any liability
|
|
173
|
+
incurred by, or claims asserted against, such Contributor by reason
|
|
174
|
+
of your accepting any such warranty or support.
|
|
175
|
+
|
|
176
|
+
END OF TERMS AND CONDITIONS
|
|
177
|
+
|
|
178
|
+
APPENDIX: How to apply the Apache License to your work.
|
|
179
|
+
|
|
180
|
+
To apply the Apache License to your work, attach the following
|
|
181
|
+
boilerplate notice, with the fields enclosed by brackets "[]"
|
|
182
|
+
replaced with your own identifying information. (Don't include
|
|
183
|
+
the brackets!) The text should be enclosed in the appropriate
|
|
184
|
+
comment syntax for the file format. We also recommend that a
|
|
185
|
+
file or class name and description of purpose be included on the
|
|
186
|
+
same "printed page" as the copyright notice for easier
|
|
187
|
+
identification within third-party archives.
|
|
188
|
+
|
|
189
|
+
Copyright 2026 Chainmatics
|
|
190
|
+
|
|
191
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
192
|
+
you may not use this file except in compliance with the License.
|
|
193
|
+
You may obtain a copy of the License at
|
|
194
|
+
|
|
195
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
196
|
+
|
|
197
|
+
Unless required by applicable law or agreed to in writing, software
|
|
198
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
199
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
200
|
+
See the License for the specific language governing permissions and
|
|
201
|
+
limitations under the License.
|
package/NOTICE
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
glirastes
|
|
2
|
+
Copyright 2025-2026 Chainmatics GmbH
|
|
3
|
+
|
|
4
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
you may not use this software except in compliance with the License.
|
|
6
|
+
You may obtain a copy of the License at
|
|
7
|
+
|
|
8
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
|
|
10
|
+
This product includes software developed at Chainmatics GmbH
|
|
11
|
+
(https://chainmatics.de).
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<p align="center">
|
|
2
2
|
<a href="https://github.com/chainmatics/glirastes">
|
|
3
|
-
<img alt="Glirastes SDK" src="
|
|
3
|
+
<img alt="Glirastes SDK" src=".github/hero.gif" width="100%">
|
|
4
4
|
</a>
|
|
5
5
|
</p>
|
|
6
6
|
|
|
@@ -20,7 +20,8 @@
|
|
|
20
20
|
<p align="center">
|
|
21
21
|
<a href="https://www.npmjs.com/package/glirastes"><img src="https://img.shields.io/npm/v/glirastes?style=flat-square&labelColor=0a0a0a&color=6366f1" alt="npm version"/></a>
|
|
22
22
|
<a href="#"><img src="https://img.shields.io/badge/TypeScript-strict-3178c6?style=flat-square&logo=typescript&logoColor=white&labelColor=0a0a0a" alt="TypeScript"/></a>
|
|
23
|
-
<a href="
|
|
23
|
+
<a href="https://sdk.vercel.ai/"><img src="https://img.shields.io/badge/Vercel_AI_SDK-compatible-8b5cf6?style=flat-square&labelColor=0a0a0a" alt="Vercel AI SDK"/></a>
|
|
24
|
+
<a href="https://langchain-ai.github.io/langgraph/"><img src="https://img.shields.io/badge/LangGraph-compatible-1c3c3c?style=flat-square&labelColor=0a0a0a" alt="LangGraph"/></a>
|
|
24
25
|
</p>
|
|
25
26
|
|
|
26
27
|
<br/>
|
|
@@ -31,7 +32,7 @@
|
|
|
31
32
|
|
|
32
33
|
## What is this?
|
|
33
34
|
|
|
34
|
-
**glirastes** is a TypeScript SDK for building AI-powered chat and tool systems. You describe what the AI can do with a handful of declarative tool definitions, and the SDK turns them into [AI SDK](https://sdk.vercel.ai/)-compatible tools that call your APIs, stream responses to the client, and trigger UI updates — all type-safe, all in one place.
|
|
35
|
+
**glirastes** is a TypeScript SDK for building AI-powered chat and tool systems. You describe what the AI can do with a handful of declarative tool definitions, and the SDK turns them into [Vercel AI SDK](https://sdk.vercel.ai/)-compatible tools that call your APIs, stream responses to the client, and trigger UI updates — all type-safe, all in one place. If your backend already runs [LangGraph](https://langchain-ai.github.io/langgraph/) instead, the same chat UI works against it via the LangGraph transport — no migration required.
|
|
35
36
|
|
|
36
37
|
It ships as a single npm package with subpath exports:
|
|
37
38
|
|
|
@@ -90,6 +91,20 @@ Building an AI feature means wiring together **tool definitions**, **API calls**
|
|
|
90
91
|
npm install glirastes
|
|
91
92
|
```
|
|
92
93
|
|
|
94
|
+
> **Requirements:** Node.js `>=20`, React `^19` (for the chat UI — `react-dom` is pinned to `^19`).
|
|
95
|
+
>
|
|
96
|
+
> **Peer dependencies for the React chat UI** (only install what you use):
|
|
97
|
+
> ```bash
|
|
98
|
+
> # Required for VercelAiChat / LangGraphAiChat:
|
|
99
|
+
> npm install react react-dom ai @ai-sdk/react
|
|
100
|
+
>
|
|
101
|
+
> # Optional — enables Markdown rendering in messages (falls back to plain text):
|
|
102
|
+
> npm install react-markdown
|
|
103
|
+
>
|
|
104
|
+
> # Optional — enables waveform visualization for voice input:
|
|
105
|
+
> npm install wavesurfer.js
|
|
106
|
+
> ```
|
|
107
|
+
|
|
93
108
|
### 2. Define a tool next to your API route
|
|
94
109
|
|
|
95
110
|
Co-locate the tool definition with the `route.ts` it exposes. The SDK uses the declared `method` + `path` to call your own API when the LLM picks this tool — you never write a `fetch` yourself.
|
|
@@ -618,6 +633,8 @@ import { VoiceInputButton } from 'glirastes/react';
|
|
|
618
633
|
|
|
619
634
|
The voice button streams audio to your backend, which proxies it to a speech-to-text provider (Deepgram, etc.). The API key never leaves the server.
|
|
620
635
|
|
|
636
|
+
> Install `wavesurfer.js` (`npm install wavesurfer.js`) to get the live waveform visualization during recording. Without it the button still works — it just falls back to a static recording indicator.
|
|
637
|
+
|
|
621
638
|
<br/>
|
|
622
639
|
|
|
623
640
|
## CLI
|
|
@@ -644,6 +661,12 @@ The SDK includes a `glirastes` CLI for scaffolding, code generation, and validat
|
|
|
644
661
|
|
|
645
662
|
<br/>
|
|
646
663
|
|
|
664
|
+
## License
|
|
665
|
+
|
|
666
|
+
Licensed under the [Apache License, Version 2.0](./LICENSE). You may use, modify, and distribute this SDK freely in commercial and non-commercial projects.
|
|
667
|
+
|
|
668
|
+
<br/>
|
|
669
|
+
|
|
647
670
|
---
|
|
648
671
|
|
|
649
672
|
<p align="center">
|
|
@@ -54,7 +54,7 @@ export interface RestSessionBridgeOptions {
|
|
|
54
54
|
}) => unknown;
|
|
55
55
|
/**
|
|
56
56
|
* How to delete a session. Default: `{ method: 'DELETE' }`. Override
|
|
57
|
-
* when your backend uses soft deletes — e.g.
|
|
57
|
+
* when your backend uses soft deletes — e.g. archive via
|
|
58
58
|
* `{ method: 'PATCH', body: { status: 'archived' } }`.
|
|
59
59
|
*/
|
|
60
60
|
removeRequest?: (id: string) => {
|
|
@@ -1,8 +1,21 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Suspense, lazy } from 'react';
|
|
3
3
|
import { MentionChip as DefaultMentionChip } from './mention-chip.js';
|
|
4
4
|
import { useChatContext } from '../provider/chat-context.js';
|
|
5
5
|
import { parseMentionSegments, stripContextBlocks } from '../utils/mention-markup.js';
|
|
6
|
+
const ReactMarkdown = lazy(async () => {
|
|
7
|
+
try {
|
|
8
|
+
const mod = await import('react-markdown');
|
|
9
|
+
return { default: mod.default };
|
|
10
|
+
}
|
|
11
|
+
catch {
|
|
12
|
+
if (typeof console !== 'undefined') {
|
|
13
|
+
console.warn('[MessageBubble] react-markdown is not installed — falling back to plain text. Install it with: npm install react-markdown');
|
|
14
|
+
}
|
|
15
|
+
const Fallback = (({ children }) => (_jsx(_Fragment, { children: typeof children === 'string' ? children : '' })));
|
|
16
|
+
return { default: Fallback };
|
|
17
|
+
}
|
|
18
|
+
});
|
|
6
19
|
function isRecord(value) {
|
|
7
20
|
return typeof value === 'object' && value !== null;
|
|
8
21
|
}
|
|
@@ -112,7 +125,7 @@ export function MessageBubble({ message, className }) {
|
|
|
112
125
|
})] }));
|
|
113
126
|
}
|
|
114
127
|
function DefaultMarkdown({ content, className }) {
|
|
115
|
-
return (_jsx("div", { className: className, "data-component": "markdown", children: _jsx(ReactMarkdown, { children: content }) }));
|
|
128
|
+
return (_jsx("div", { className: className, "data-component": "markdown", children: _jsx(Suspense, { fallback: _jsx(_Fragment, { children: content }), children: _jsx(ReactMarkdown, { children: content }) }) }));
|
|
116
129
|
}
|
|
117
130
|
function DefaultToolResult({ toolName, result, className, }) {
|
|
118
131
|
if (isRecord(result) && typeof result.message === 'string' && result.message.trim().length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-bubble.js","sourceRoot":"","sources":["../../../src/react/components/message-bubble.tsx"],"names":[],"mappings":";AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"message-bubble.js","sourceRoot":"","sources":["../../../src/react/components/message-bubble.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,WAAW,IAAI,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAQtF,MAAM,aAAa,GAAG,IAAI,CAA4B,KAAK,IAAI,EAAE;IAC/D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC3C,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;YACnC,OAAO,CAAC,IAAI,CACV,2HAA2H,CAC5H,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAA8B,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAC7D,4BAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAI,CACpD,CAA8B,CAAC;QAChC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IAC/B,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC;AAED,SAAS,sBAAsB,CAC7B,QAAgB,EAChB,IAAwC,EACxC,SAAmB;IAEnB,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACpC,IAAI,IAAI,KAAK,WAAW;QAAE,OAAO,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC9D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,UAAU,CAAC,IAAa;IAC/B,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;AACjF,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa,CAAC,EAAE,OAAO,EAAE,SAAS,EAAsB;IACtE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,cAAc,EAAE,CAAC;IACjE,MAAM,iBAAiB,GAAG,UAAU,CAAC,QAAQ,IAAI,eAAe,CAAC;IACjE,MAAM,mBAAmB,GAAG,UAAU,CAAC,eAAe,IAAI,iBAAiB,CAAC;IAC5E,MAAM,oBAAoB,GAAG,UAAU,CAAC,WAAW,IAAI,kBAAkB,CAAC;IAE1E,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,IAAI,SAAS,CAAC;IAC3C,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,IAAI,EAAE,CAAC;IAE9C,0EAA0E;IAC1E,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK;SACjC,MAAM,CAAC,UAAU,CAAC;SAClB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC5B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1C,MAAM,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE7E,2CAA2C;IAC3C,IAAI,eAAe,GAAG,EAAE,CAAC;IACzB,IAAI,CAAC,cAAc,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACpD,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YACjC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,SAAS;YAC9B,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAEhE,mDAAmD;YACnD,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,KAAK,KAAK,kBAAkB,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/F,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;oBAC5C,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC;YAED,2BAA2B;YAC3B,IAAI,QAAQ,KAAK,aAAa,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxD,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;oBAC5C,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC;QACH,CAAC;QACD,eAAe,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACvC,CAAC;IAED,sCAAsC;IACtC,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,cAAc,IAAI,CAAC,eAAe,EAAE,CAAC;QACxE,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YAC3C,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC/B,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACnD,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,kBAAkB,CAAC,IAAI,CAAC,KAAK,aAAa,CAAC;QAC1F,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa;YAAE,OAAO,IAAI,CAAC;IAClC,CAAC;IAED,OAAO,CACL,eACE,SAAS,EAAE,SAAS,IAAI,UAAU,CAAC,aAAa,oBACjC,gBAAgB,eACpB,OAAO,CAAC,IAAI,aAGtB,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;gBAC9B,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;gBAC5C,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;gBAE1E,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;wBAAE,OAAO,IAAI,CAAC;oBAC9B,OAAO,CACL,KAAC,iBAAiB,IAEhB,OAAO,EAAE,IAAI,IADR,QAAQ,CAAC,EAAE,CAEhB,CACH,CAAC;gBACJ,CAAC;gBAED,OAAO,CACL,gCAA8C,mBAAmB,YAC9D,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;wBAC/B,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;4BAC5B,IAAI,CAAC,OAAO,CAAC,IAAI;gCAAE,OAAO,IAAI,CAAC;4BAC/B,OAAO,CACL,iCAAmD,wBAAwB,YACxE,OAAO,CAAC,IAAI,IADJ,gBAAgB,KAAK,EAAE,CAE3B,CACR,CAAC;wBACJ,CAAC;wBAED,OAAO,CACL,KAAC,oBAAoB,IAEnB,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,MAAM,UAFD,mBAAmB,KAAK,EAAE,CAG/B,CACH,CAAC;oBACJ,CAAC,CAAC,IAlBM,gBAAgB,CAAC,EAAE,CAmBvB,CACP,CAAC;YACJ,CAAC,CAAC,EAGD,CAAC,cAAc,IAAI,eAAe,IAAI,CACrC,KAAC,iBAAiB,IAAC,OAAO,EAAE,eAAe,GAAI,CAChD,EAGA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;gBAC7B,0BAA0B;gBAC1B,IAAI,UAAU,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBACxE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,CAAC;wBAAE,OAAO,IAAI,CAAC;oBACzE,OAAO,CACL,KAAC,mBAAmB,IAElB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,MAAM,EAAE,IAAI,CAAC,MAAM,IAFd,QAAQ,CAAC,EAAE,CAGhB,CACH,CAAC;gBACJ,CAAC;gBAED,+CAA+C;gBAC/C,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBACnB,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;oBAChE,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,KAAK,KAAK,kBAAkB,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;wBACnG,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;wBAC/C,wDAAwD;wBACxD,IAAI,QAAQ,KAAK,mBAAmB;4BAAE,OAAO,IAAI,CAAC;wBAClD,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,CAAC;4BAAE,OAAO,IAAI,CAAC;wBACpE,OAAO,CACL,KAAC,mBAAmB,IAElB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,IAAI,CAAC,MAAM,IAFd,QAAQ,CAAC,EAAE,CAGhB,CACH,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAED,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,IACE,CACP,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,EAAE,OAAO,EAAE,SAAS,EAA2C;IACtF,OAAO,CACL,cAAK,SAAS,EAAE,SAAS,oBAAiB,UAAU,YAClD,KAAC,QAAQ,IAAC,QAAQ,EAAE,4BAAG,OAAO,GAAI,YAChC,KAAC,aAAa,cAAE,OAAO,GAAiB,GAC/B,GACP,CACP,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,EACzB,QAAQ,EACR,MAAM,EACN,SAAS,GAKV;IACC,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/F,OAAO,CACL,cAAK,SAAS,EAAE,SAAS,oBAAiB,aAAa,eAAY,QAAQ,YACxE,MAAM,CAAC,OAAO,GACX,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,mBAAS,SAAS,EAAE,SAAS,oBAAiB,aAAa,eAAY,QAAQ,aAC7E,4BAAU,QAAQ,GAAW,EAC7B,wBAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAO,IACpC,CACX,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "glirastes",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Official Chainmatics SDK for building AI-powered chat, tools, and agent systems. Part of the Glirastes platform.",
|
|
5
|
-
"license": "
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Chainmatics",
|
|
8
8
|
"email": "info@chainmatics.net",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
},
|
|
11
11
|
"homepage": "https://chainmatics.de",
|
|
12
12
|
"bugs": {
|
|
13
|
-
"url": "https://chainmatics
|
|
13
|
+
"url": "https://github.com/chainmatics/glirastes/issues",
|
|
14
14
|
"email": "info@chainmatics.net"
|
|
15
15
|
},
|
|
16
16
|
"keywords": [
|
|
@@ -22,17 +22,24 @@
|
|
|
22
22
|
"agent",
|
|
23
23
|
"llm",
|
|
24
24
|
"tools",
|
|
25
|
+
"tool-calling",
|
|
26
|
+
"vercel-ai-sdk",
|
|
27
|
+
"streaming",
|
|
28
|
+
"rbac",
|
|
25
29
|
"nextjs",
|
|
26
30
|
"nestjs",
|
|
27
31
|
"react"
|
|
28
32
|
],
|
|
33
|
+
"engines": {
|
|
34
|
+
"node": ">=20"
|
|
35
|
+
},
|
|
29
36
|
"publishConfig": {
|
|
30
37
|
"registry": "https://registry.npmjs.org",
|
|
31
38
|
"access": "public"
|
|
32
39
|
},
|
|
33
40
|
"repository": {
|
|
34
41
|
"type": "git",
|
|
35
|
-
"url": "https://github.com/chainmatics/glirastes.git"
|
|
42
|
+
"url": "git+https://github.com/chainmatics/glirastes.git"
|
|
36
43
|
},
|
|
37
44
|
"type": "module",
|
|
38
45
|
"main": "dist/index.js",
|
|
@@ -89,7 +96,10 @@
|
|
|
89
96
|
},
|
|
90
97
|
"files": [
|
|
91
98
|
"dist",
|
|
92
|
-
"CHANGELOG.md"
|
|
99
|
+
"CHANGELOG.md",
|
|
100
|
+
"LICENSE",
|
|
101
|
+
"NOTICE",
|
|
102
|
+
"README.md"
|
|
93
103
|
],
|
|
94
104
|
"scripts": {
|
|
95
105
|
"build": "tsc -p tsconfig.json && cp src/react/styles.css dist/react/styles.css",
|
|
@@ -99,14 +109,14 @@
|
|
|
99
109
|
"dependencies": {
|
|
100
110
|
"zod": "^3.24.1",
|
|
101
111
|
"snowball-stemmers": "^0.6.0",
|
|
102
|
-
"wavesurfer.js": "^7.12.1",
|
|
103
|
-
"react-markdown": "^10.1.0",
|
|
104
112
|
"ai": "^6.0.0",
|
|
105
113
|
"@ai-sdk/react": "^3.0.0"
|
|
106
114
|
},
|
|
107
115
|
"peerDependencies": {
|
|
108
116
|
"react": "^18 || ^19",
|
|
109
117
|
"react-dom": "^19",
|
|
118
|
+
"react-markdown": ">=9 <11",
|
|
119
|
+
"wavesurfer.js": "^7",
|
|
110
120
|
"@nestjs/common": "^11",
|
|
111
121
|
"@nestjs/core": "^11",
|
|
112
122
|
"@nestjs/config": "^4",
|
|
@@ -126,6 +136,12 @@
|
|
|
126
136
|
"react-dom": {
|
|
127
137
|
"optional": true
|
|
128
138
|
},
|
|
139
|
+
"react-markdown": {
|
|
140
|
+
"optional": true
|
|
141
|
+
},
|
|
142
|
+
"wavesurfer.js": {
|
|
143
|
+
"optional": true
|
|
144
|
+
},
|
|
129
145
|
"@nestjs/common": {
|
|
130
146
|
"optional": true
|
|
131
147
|
},
|
|
@@ -163,24 +179,24 @@
|
|
|
163
179
|
"devDependencies": {
|
|
164
180
|
"typescript": "^5.7.3",
|
|
165
181
|
"vitest": "^4.0.18",
|
|
166
|
-
"@types/node": "^
|
|
182
|
+
"@types/node": "^25.6.0",
|
|
167
183
|
"@types/react": "^19.0.0",
|
|
168
184
|
"@types/react-dom": "^19.0.0",
|
|
169
185
|
"@types/express": "^5.0.0",
|
|
170
186
|
"@types/ws": "^8.5.0",
|
|
171
187
|
"@types/snowball-stemmers": "^0.6.0",
|
|
172
|
-
"ai": "^6.0.105",
|
|
173
188
|
"react": "^19.0.0",
|
|
174
189
|
"react-dom": "^19.0.0",
|
|
175
|
-
"
|
|
190
|
+
"react-markdown": "^10.1.0",
|
|
191
|
+
"wavesurfer.js": "^7.12.1",
|
|
176
192
|
"@nestjs/common": "^11.0.0",
|
|
177
193
|
"@nestjs/core": "^11.0.0",
|
|
178
194
|
"@nestjs/config": "^4.0.0",
|
|
179
|
-
"@nestjs/swagger": "^
|
|
195
|
+
"@nestjs/swagger": "^11.4.1",
|
|
180
196
|
"next": "^15.0.0",
|
|
181
197
|
"express": "^5.0.0",
|
|
182
198
|
"ws": "^8.0.0",
|
|
183
|
-
"class-validator": "^0.
|
|
199
|
+
"class-validator": "^0.15.1",
|
|
184
200
|
"class-transformer": "^0.5.0",
|
|
185
201
|
"reflect-metadata": "^0.2.0"
|
|
186
202
|
}
|