glirastes 0.1.3 → 0.2.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.
package/CHANGELOG.md CHANGED
@@ -2,467 +2,38 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
- ## [0.18.26] - 2026-04-05
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
- ### Fixed
8
- - simplify auto-scroll — remove racy isProgrammaticScrollRef (chat-react)
8
+ ## [Unreleased]
9
9
 
10
- ## [0.18.25] - 2026-04-05
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
10
+ ## [0.2.0] - 2026-04-27
252
11
 
253
12
  ### 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
13
 
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)
14
+ - Initial public release of `glirastes`.
15
+ - Type-safe tool definitions via `defineEndpointTool()` and `defineUiTool()`.
16
+ - Role-based access control (RBAC) at the tool layer.
17
+ - Approval flows for sensitive tool calls.
18
+ - Server adapters for Next.js (App Router) and NestJS (decorators).
19
+ - React chat UI components, hooks, and provider.
20
+ - UI Action bus for declarative client-side dispatch from tool results.
21
+ - PII shield with anonymization, pseudonymization, and rehydration.
22
+ - Lancer client for the Glirastes platform with graceful degradation.
23
+ - CLI: `init`, `generate`, `validate`, `coverage`, `scaffold`.
24
+ - Codegen for endpoint registries, UI registries, action IDs, and modules.
25
+ - OpenAPI generator: turn an OpenAPI spec into endpoint tool definitions.
26
+ - Testing utilities for tool setups without LLM calls.
27
+ - `engines.node` field declaring Node.js `>=20` as the supported runtime.
28
+ - CI: `npm audit` job (production deps, level=high) on every PR and push.
29
+ - CI: CodeQL static analysis with `security-and-quality` query suite.
287
30
 
288
31
  ### 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
-
382
- ### Fixed
383
- - hide suggestion bar when typing indicator is shown (chat)
384
- - preserve pending approval tool calls in deduplication (adapter-nextjs)
385
-
386
- ## [0.14.2] - 2026-03-09
387
-
388
- ### 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
-
466
-
467
32
 
33
+ - `react-markdown` and `wavesurfer.js` are now optional `peerDependencies`
34
+ rather than runtime `dependencies`. Server-only consumers no longer pull
35
+ these libraries on install. `react-markdown` is loaded via `React.lazy`
36
+ with a plain-text fallback when the peer dep is not installed.
468
37
 
38
+ [Unreleased]: https://github.com/chainmatics/glirastes/compare/v0.2.0...HEAD
39
+ [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="https://raw.githubusercontent.com/chainmatics/glirastes/main/.github/banner.svg" width="100%">
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="#"><img src="https://img.shields.io/badge/AI_SDK-compatible-8b5cf6?style=flat-square&labelColor=0a0a0a" alt="AI SDK"/></a>
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">
@@ -0,0 +1 @@
1
+ export * from './types.js';
package/dist/index.js ADDED
@@ -0,0 +1,8 @@
1
+ // glirastes — main entry point
2
+ //
3
+ // Re-exports all shared types, interfaces, and helpers that live in `types.ts`
4
+ // so consumers can do `import { ModuleMeta, defineUiTool } from 'glirastes'`.
5
+ // Subpath exports (`glirastes/server`, `glirastes/react`, etc.) remain the
6
+ // primary API surface for runtime functionality.
7
+ export * from './types.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,EAAE;AACF,+EAA+E;AAC/E,8EAA8E;AAC9E,2EAA2E;AAC3E,iDAAiD;AACjD,cAAc,YAAY,CAAC"}
@@ -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. chaingrow archives via
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 ReactMarkdown from 'react-markdown';
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":"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"}
1
+ {"version":3,"file":"message-bubble.js","sourceRoot":"","sources":["../../../src/react/components/message-bubble.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "glirastes",
3
- "version": "0.1.3",
3
+ "version": "0.2.0",
4
4
  "description": "Official Chainmatics SDK for building AI-powered chat, tools, and agent systems. Part of the Glirastes platform.",
5
- "license": "UNLICENSED",
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.de",
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": "^22.10.5",
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
- "@ai-sdk/react": "^3.0.0",
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": "^8.0.0",
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.14.0",
199
+ "class-validator": "^0.15.1",
184
200
  "class-transformer": "^0.5.0",
185
201
  "reflect-metadata": "^0.2.0"
186
202
  }