mcard-js 2.1.2 → 2.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/README.md +113 -1
  2. package/dist/index.d.ts +1 -0
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +1 -0
  5. package/dist/index.js.map +1 -1
  6. package/dist/ptr/FaroSidecar.d.ts +56 -0
  7. package/dist/ptr/FaroSidecar.d.ts.map +1 -0
  8. package/dist/ptr/FaroSidecar.js +102 -0
  9. package/dist/ptr/FaroSidecar.js.map +1 -0
  10. package/dist/ptr/llm/Config.d.ts.map +1 -1
  11. package/dist/ptr/llm/Config.js +16 -0
  12. package/dist/ptr/llm/Config.js.map +1 -1
  13. package/dist/ptr/llm/LLMRuntime.d.ts.map +1 -1
  14. package/dist/ptr/llm/LLMRuntime.js +8 -0
  15. package/dist/ptr/llm/LLMRuntime.js.map +1 -1
  16. package/dist/ptr/llm/providers/MLCLLMProvider.d.ts +22 -0
  17. package/dist/ptr/llm/providers/MLCLLMProvider.d.ts.map +1 -0
  18. package/dist/ptr/llm/providers/MLCLLMProvider.js +155 -0
  19. package/dist/ptr/llm/providers/MLCLLMProvider.js.map +1 -0
  20. package/dist/ptr/llm/providers/WebLLMProvider.d.ts +22 -0
  21. package/dist/ptr/llm/providers/WebLLMProvider.d.ts.map +1 -0
  22. package/dist/ptr/llm/providers/WebLLMProvider.js +151 -0
  23. package/dist/ptr/llm/providers/WebLLMProvider.js.map +1 -0
  24. package/dist/ptr/node/CLMRunner.d.ts +7 -1
  25. package/dist/ptr/node/CLMRunner.d.ts.map +1 -1
  26. package/dist/ptr/node/CLMRunner.js +61 -2
  27. package/dist/ptr/node/CLMRunner.js.map +1 -1
  28. package/dist/ptr/node/NetworkConfig.d.ts +191 -0
  29. package/dist/ptr/node/NetworkConfig.d.ts.map +1 -0
  30. package/dist/ptr/node/NetworkConfig.js +8 -0
  31. package/dist/ptr/node/NetworkConfig.js.map +1 -0
  32. package/dist/ptr/node/NetworkRuntime.d.ts +125 -0
  33. package/dist/ptr/node/NetworkRuntime.d.ts.map +1 -0
  34. package/dist/ptr/node/NetworkRuntime.js +1138 -0
  35. package/dist/ptr/node/NetworkRuntime.js.map +1 -0
  36. package/dist/ptr/node/P2PChatSession.d.ts +53 -0
  37. package/dist/ptr/node/P2PChatSession.d.ts.map +1 -0
  38. package/dist/ptr/node/P2PChatSession.js +152 -0
  39. package/dist/ptr/node/P2PChatSession.js.map +1 -0
  40. package/dist/ptr/node/Runtimes.d.ts.map +1 -1
  41. package/dist/ptr/node/Runtimes.js +10 -0
  42. package/dist/ptr/node/Runtimes.js.map +1 -1
  43. package/package.json +4 -2
package/README.md CHANGED
@@ -13,7 +13,7 @@ Full-featured TypeScript implementation of MCard content-addressable storage, su
13
13
  - **UTF-8 Handles**: International support (文檔, مستند, ドキュメント, документ)
14
14
  - **Monadic API**: Maybe, Either, IO monads for functional composition
15
15
  - **PTR Runtime**: Polynomial Type Runtime with polyglot execution (JS, Python, Rust, C, WASM, Lean)
16
- - **LLM Integration**: Ollama provider for local LLM execution
16
+ - **LLM Integration**: Ollama, WebLLM (browser), and MLC-LLM providers
17
17
  - **Vector Search**: sqlite-vec extension for semantic similarity search
18
18
 
19
19
  ## Quick Start
@@ -379,6 +379,56 @@ npm run clm:lambda
379
379
  - **Graceful Fallback**: Unknown runtimes (R, Julia) are skipped, consensus among available runtimes
380
380
  - **Legacy Format Support**: Handles both top-level `examples` and `balanced.examples`
381
381
 
382
+ ## P2P Session Management
383
+
384
+ MCard now supports decentralized, append-only session recording with summarization capabilities, ideal for multi-agent systems and audit logs.
385
+
386
+ ### Feature Highlights
387
+ - **Immutable Chain**: Each message is a discrete MCard linked to the previous one (blockchain-like structure).
388
+ - **Session Summarization**: Compress a long conversation chain into a single Summary MCard for efficient retrieval.
389
+ - **Persistence & Resume**: Sessions can be paused, serialized to disk, and resumed seamlessly.
390
+ - **Orchestration**: Nested CLM execution allowing "Root" agents to coordinate multiple "Child" agents.
391
+
392
+ ### Example: P2P Chat Recording
393
+ ```typescript
394
+ import { P2PChatSession, CardCollection } from 'mcard-js';
395
+
396
+ // Initialize session
397
+ const session = new P2PChatSession(collection, 'session_123', 5); // buffer size 5
398
+
399
+ // Add messages
400
+ await session.addMessage('Alice', 'Hello World');
401
+ await session.addMessage('Bob', 'Ack');
402
+
403
+ // Auto-checkpointing happens when buffer fills, or manually:
404
+ const headHash = await session.checkpoint();
405
+
406
+ // Summarize and cleanup old segments
407
+ const summaryHash = await session.summarize(false); // pass true to keep originals
408
+ ```
409
+
410
+ ### Multi-Agent Orchestration (Recursive CLMs)
411
+
412
+ The CLM Runner now supports "Lambda-style" execution, where a script can dynamically invoke other CLMs. This enables complex multi-agent workflows.
413
+
414
+ **Orchestrator CLM (`orchestrator.yaml`)**:
415
+ ```yaml
416
+ concrete:
417
+ manifestation: Multi-Agent Logic
418
+ runtime: javascript
419
+ code_file: orchestrator_logic.js
420
+ ```
421
+
422
+ **Orchestrator Logic (`orchestrator_logic.js`)**:
423
+ ```javascript
424
+ // Function runCLM is injected into the context!
425
+ await context.runCLM('send_message.yaml', { sender: 'Agent A', content: 'Ping' });
426
+ await context.runCLM('send_message.yaml', { sender: 'Agent B', content: 'Pong' });
427
+
428
+ // Summarize
429
+ const result = await context.runCLM('summarize_session.yaml', { sessionId: ... });
430
+ ```
431
+
382
432
  ## Content Detection
383
433
 
384
434
  The `ContentTypeInterpreter` module provides intelligent content type detection with parity to the Python implementation.
@@ -512,6 +562,33 @@ await Loader.loadFileToCollection('./docs', collection, {
512
562
  });
513
563
  ```
514
564
 
565
+ ## Frontend Observability (Grafana Faro)
566
+
567
+ MCard integrates [Grafana Faro](https://grafana.com/oss/faro/) as a **frontend observability sidecar**, complementing backend observability (e.g., Grafana Beyla). This enables full-stack visibility into your CLM verifications when running in browser environments.
568
+
569
+ ```typescript
570
+ import { FaroSidecar } from 'mcard-js';
571
+
572
+ // Initialize the sidecar (Browser only)
573
+ const faro = FaroSidecar.getInstance().initialize({
574
+ url: 'https://faro-collector-us-central1.grafana.net/collect/your-app-id',
575
+ apiKey: 'your-api-key', // Optional if using public collector
576
+ appName: 'mcard-browser-runtime',
577
+ appVersion: '1.0.0',
578
+ enableTracing: true, // Enables OpenTelemetry tracing
579
+ namespace: 'ptr_verification' // Custom namespace for logs
580
+ });
581
+
582
+ if (faro) {
583
+ faro.api.pushLog(['PTR verification started']);
584
+ }
585
+ ```
586
+
587
+ The Sidecar implementation:
588
+ 1. **Safe Initialization**: Automatically detects non-browser environments (Node.js) and no-ops gracefully.
589
+ 2. **Auto-Instrumentation**: Captures console logs, uncaught exceptions, Web Vitals, and network traces.
590
+ 3. **OpenTelemetry Tracing**: Correlates frontend traces with backend spans for end-to-end distributed tracing.
591
+
515
592
  ## Integration Testing
516
593
 
517
594
  ### Live Integration Tests
@@ -542,6 +619,41 @@ To run integration tests against a live Ollama instance:
542
619
  * **Collection Search**: Enhanced `CardCollection` with search capabilities (content, hash, string).
543
620
  * **CLM Test Runner**: New CLI (`npm run clm:all`) for running all CLMs with summary reporting.
544
621
 
622
+ ### 🌐 Network IO Enhancements
623
+ * **Retry with Backoff**: Configurable retry logic with `exponential`, `linear`, or `constant` backoff strategies.
624
+ ```typescript
625
+ config: {
626
+ url: 'https://api.example.com/data',
627
+ retry: {
628
+ max_attempts: 3,
629
+ backoff: 'exponential',
630
+ base_delay: 1000,
631
+ max_delay: 30000,
632
+ retry_on: [503, 429, 500] // Optional: custom status codes
633
+ }
634
+ }
635
+ ```
636
+ * **Response Caching**: Memory or MCard-persistent caching with TTL support.
637
+ ```typescript
638
+ config: {
639
+ url: 'https://api.example.com/cacheable',
640
+ cache: {
641
+ enabled: true,
642
+ ttl: 300, // seconds
643
+ storage: 'memory' // or 'mcard' for persistent
644
+ }
645
+ }
646
+ ```
647
+ * **Rate Limiting**: Token-bucket rate limiting per domain (10 req/sec default with burst of 20).
648
+ * **Bidirectional Sync**: New `both` and `bidirectional` modes for `mcard_sync` to push and pull in one operation.
649
+ ```typescript
650
+ config: {
651
+ url: 'http://remote:3000/sync',
652
+ mode: 'both' // pushes local cards, then pulls remote cards
653
+ }
654
+ ```
655
+
656
+
545
657
  ### 🛠️ Polyglot Runtime Fixes
546
658
  * **ESM Compatibility**: Fixed `ReferenceError: require is not defined` in `SqliteNodeEngine` and `schema.ts`.
547
659
  * **Double-Encoding Fix**: Resolved input context double-JSON-encoding.
package/dist/index.d.ts CHANGED
@@ -18,6 +18,7 @@ export { State } from './monads/State';
18
18
  export { LensProtocol, JsonRpcRequest, JsonRpcResponse, ErrorCodes } from './ptr/LensProtocol';
19
19
  export { SandboxWorker } from './ptr/SandboxWorker';
20
20
  export * from './ptr/common_types';
21
+ export { FaroSidecar, FaroSidecarConfig } from './ptr/FaroSidecar';
21
22
  import * as FileIO from './util/FileIO';
22
23
  import * as Loader from './util/Loader';
23
24
  export { FileIO, Loader };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAGzE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAG9D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGvC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,cAAc,oBAAoB,CAAC;AAInC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAG1B,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAGzE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAG9D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGvC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAInE,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAG1B,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC"}
package/dist/index.js CHANGED
@@ -23,6 +23,7 @@ export { State } from './monads/State';
23
23
  export { LensProtocol, ErrorCodes } from './ptr/LensProtocol';
24
24
  export { SandboxWorker } from './ptr/SandboxWorker';
25
25
  export * from './ptr/common_types';
26
+ export { FaroSidecar } from './ptr/FaroSidecar';
26
27
  // Utils
27
28
  // Note: Exporting as namespace to avoid naming collisions
28
29
  import * as FileIO from './util/FileIO';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,2CAA2C;AAE3C,aAAa;AACb,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAIzE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,OAAO;AACP,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,SAAS;AACT,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,gCAAgC;AAChC,OAAO,EAAE,YAAY,EAAmC,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,cAAc,oBAAoB,CAAC;AAEnC,QAAQ;AACR,0DAA0D;AAC1D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAE1B,MAAM;AACN,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,8CAA8C;AAC9C,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,2CAA2C;AAE3C,aAAa;AACb,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAIzE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,OAAO;AACP,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,SAAS;AACT,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,gCAAgC;AAChC,OAAO,EAAE,YAAY,EAAmC,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,WAAW,EAAqB,MAAM,mBAAmB,CAAC;AAEnE,QAAQ;AACR,0DAA0D;AAC1D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAE1B,MAAM;AACN,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,8CAA8C;AAC9C,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,56 @@
1
+ import { Faro } from '@grafana/faro-web-sdk';
2
+ /**
3
+ * Configuration for the Faro Observability Sidecar
4
+ */
5
+ export interface FaroSidecarConfig {
6
+ url: string;
7
+ apiKey?: string;
8
+ appName: string;
9
+ appVersion: string;
10
+ enableTracing?: boolean;
11
+ namespace?: string;
12
+ additionalInstrumentations?: any[];
13
+ }
14
+ /**
15
+ * FaroSidecar - Integrates Grafana Faro for Frontend Observability
16
+ *
17
+ * Acts as an observability sidecar for the PTR, capturing:
18
+ * - Logs
19
+ * - Errors
20
+ * - Web Vitals
21
+ * - Traces (OpenTelemetry)
22
+ * - User Sessions
23
+ */
24
+ export declare class FaroSidecar {
25
+ private static instance;
26
+ private faro;
27
+ private constructor();
28
+ /**
29
+ * Get the singleton instance of FaroSidecar
30
+ */
31
+ static getInstance(): FaroSidecar;
32
+ /**
33
+ * Initialize the Faro SDK
34
+ *
35
+ * @param config Configuration options
36
+ * @returns The initialized Faro instance or null if not in a browser environment
37
+ */
38
+ initialize(config: FaroSidecarConfig): Faro | null;
39
+ /**
40
+ * Get the underlying Faro instance
41
+ */
42
+ getFaro(): Faro | null;
43
+ /**
44
+ * Manually push an error to Faro
45
+ */
46
+ pushError(error: Error, context?: Record<string, any>): void;
47
+ /**
48
+ * Manually push a log message to Faro
49
+ */
50
+ pushLog(message: string, context?: Record<string, any>): void;
51
+ /**
52
+ * Push a custom event
53
+ */
54
+ pushEvent(name: string, attributes?: Record<string, string>): void;
55
+ }
56
+ //# sourceMappingURL=FaroSidecar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FaroSidecar.d.ts","sourceRoot":"","sources":["../../src/ptr/FaroSidecar.ts"],"names":[],"mappings":"AACA,OAAO,EAGH,IAAI,EACP,MAAM,uBAAuB,CAAC;AAG/B;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0BAA0B,CAAC,EAAE,GAAG,EAAE,CAAC;CACtC;AAED;;;;;;;;;GASG;AACH,qBAAa,WAAW;IACpB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA4B;IACnD,OAAO,CAAC,IAAI,CAAqB;IAEjC,OAAO;IAEP;;OAEG;WACW,WAAW,IAAI,WAAW;IAOxC;;;;;OAKG;IACI,UAAU,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,GAAG,IAAI;IAuDzD;;OAEG;IACI,OAAO,IAAI,IAAI,GAAG,IAAI;IAI7B;;OAEG;IACI,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAMnE;;OAEG;IACI,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAMpE;;OAEG;IACI,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;CAK5E"}
@@ -0,0 +1,102 @@
1
+ import { initializeFaro, getWebInstrumentations } from '@grafana/faro-web-sdk';
2
+ import { TracingInstrumentation } from '@grafana/faro-web-tracing';
3
+ /**
4
+ * FaroSidecar - Integrates Grafana Faro for Frontend Observability
5
+ *
6
+ * Acts as an observability sidecar for the PTR, capturing:
7
+ * - Logs
8
+ * - Errors
9
+ * - Web Vitals
10
+ * - Traces (OpenTelemetry)
11
+ * - User Sessions
12
+ */
13
+ export class FaroSidecar {
14
+ static instance = null;
15
+ faro = null;
16
+ constructor() { }
17
+ /**
18
+ * Get the singleton instance of FaroSidecar
19
+ */
20
+ static getInstance() {
21
+ if (!FaroSidecar.instance) {
22
+ FaroSidecar.instance = new FaroSidecar();
23
+ }
24
+ return FaroSidecar.instance;
25
+ }
26
+ /**
27
+ * Initialize the Faro SDK
28
+ *
29
+ * @param config Configuration options
30
+ * @returns The initialized Faro instance or null if not in a browser environment
31
+ */
32
+ initialize(config) {
33
+ // Ensure we are in a browser environment
34
+ if (typeof window === 'undefined') {
35
+ console.warn('[FaroSidecar] Not initializing Grafana Faro: Non-browser environment detected.');
36
+ return null;
37
+ }
38
+ if (this.faro) {
39
+ console.warn('[FaroSidecar] Grafana Faro is already initialized.');
40
+ return this.faro;
41
+ }
42
+ const { url, apiKey, appName, appVersion, enableTracing = true, namespace = 'ptr_runtime', additionalInstrumentations = [] } = config;
43
+ const instrumentations = [
44
+ ...getWebInstrumentations(),
45
+ ...additionalInstrumentations
46
+ ];
47
+ if (enableTracing) {
48
+ instrumentations.push(new TracingInstrumentation());
49
+ }
50
+ const faroOptions = {
51
+ url,
52
+ apiKey,
53
+ app: {
54
+ name: appName,
55
+ version: appVersion,
56
+ namespace
57
+ },
58
+ instrumentations,
59
+ };
60
+ try {
61
+ this.faro = initializeFaro(faroOptions);
62
+ console.log(`[FaroSidecar] Grafana Faro initialized for ${appName}@${appVersion}`);
63
+ // Auto-push a session start log
64
+ this.faro.api.pushLog([`PTR Observability Sidecar started for ${appName}`]);
65
+ }
66
+ catch (error) {
67
+ console.error('[FaroSidecar] Failed to initialize Grafana Faro:', error);
68
+ }
69
+ return this.faro;
70
+ }
71
+ /**
72
+ * Get the underlying Faro instance
73
+ */
74
+ getFaro() {
75
+ return this.faro;
76
+ }
77
+ /**
78
+ * Manually push an error to Faro
79
+ */
80
+ pushError(error, context) {
81
+ if (this.faro) {
82
+ this.faro.api.pushError(error, { context });
83
+ }
84
+ }
85
+ /**
86
+ * Manually push a log message to Faro
87
+ */
88
+ pushLog(message, context) {
89
+ if (this.faro) {
90
+ this.faro.api.pushLog([message], { context });
91
+ }
92
+ }
93
+ /**
94
+ * Push a custom event
95
+ */
96
+ pushEvent(name, attributes) {
97
+ if (this.faro) {
98
+ this.faro.api.pushEvent(name, attributes);
99
+ }
100
+ }
101
+ }
102
+ //# sourceMappingURL=FaroSidecar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FaroSidecar.js","sourceRoot":"","sources":["../../src/ptr/FaroSidecar.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../../src/ptr/llm/Config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,gBAAgB,WAAW,CAAC;AAEzC,MAAM,WAAW,cAAc;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAiCxD,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;CAU9B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,YAAY,GAAG,UAAU,CAAC;AACzE,eAAO,MAAM,gBAAgB,EAAE,cAAc,EAA+C,CAAC;AAE7F,qBAAa,SAAS;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvB,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB,EAAE,MAAM,CAAC;IAE9B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;IAEzB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IAExC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;gBAEJ,IAAI,GAAE,OAAO,CAAC,SAAS,CAAM;IA4BzC,QAAQ;IASR,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,IAAI,kBAAkB,IAAI,MAAM,CAK/B;IAED,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IA8BzC,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,GAAE,GAAQ,GAAG,SAAS;CA2BpE"}
1
+ {"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../../src/ptr/llm/Config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,gBAAgB,WAAW,CAAC;AAEzC,MAAM,WAAW,cAAc;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAiDxD,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;CAU9B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,YAAY,GAAG,UAAU,CAAC;AACzE,eAAO,MAAM,gBAAgB,EAAE,cAAc,EAA+C,CAAC;AAE7F,qBAAa,SAAS;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvB,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB,EAAE,MAAM,CAAC;IAE9B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;IAEzB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IAExC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;gBAEJ,IAAI,GAAE,OAAO,CAAC,SAAS,CAAM;IA4BzC,QAAQ;IASR,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,IAAI,kBAAkB,IAAI,MAAM,CAK/B;IAED,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IA8BzC,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,GAAE,GAAQ,GAAG,SAAS;CA2BpE"}
@@ -14,6 +14,22 @@ export const LLM_PROVIDERS = {
14
14
  default_model: 'gemma3:latest',
15
15
  available_models: ['gemma3:latest', 'llama3:latest', 'qwen3:latest'],
16
16
  },
17
+ 'webllm': {
18
+ base_url: '', // running in-browser
19
+ api_path: '',
20
+ chat_path: '',
21
+ models_path: null,
22
+ default_model: 'Llama-3-8B-Instruct-q4f32_1-MLC',
23
+ available_models: ['Llama-3-8B-Instruct-q4f32_1-MLC', 'Hermes-2-Pro-Llama-3-8B-q4f16_1-MLC', 'Phi-3-Mini-4k-Instruct-q4f16_1-MLC'],
24
+ },
25
+ 'mlc-llm': {
26
+ base_url: 'http://localhost:8000',
27
+ api_path: '/v1/completions',
28
+ chat_path: '/v1/chat/completions',
29
+ models_path: '/v1/models',
30
+ default_model: 'Llama-3-8B-Instruct-q4f16_1-MLC',
31
+ available_models: [],
32
+ },
17
33
  'lmstudio': {
18
34
  base_url: 'http://localhost:1234',
19
35
  api_path: '/v1/completions',
@@ -1 +1 @@
1
- {"version":3,"file":"Config.js","sourceRoot":"","sources":["../../../src/ptr/llm/Config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Config.js","sourceRoot":"","sources":["../../../src/ptr/llm/Config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"LLMRuntime.d.ts","sourceRoot":"","sources":["../../../src/ptr/llm/LLMRuntime.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAE,SAAS,EAAoB,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,wBAAgB,YAAY,CACxB,aAAa,GAAE,MAAyB,EACxC,QAAQ,GAAE,MAAM,GAAG,IAAW,EAC9B,OAAO,GAAE,MAAY,GACtB,WAAW,CAMb;AAED,qBAAa,UAAW,YAAW,OAAO;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,SAAS,CAA4B;gBAEjC,aAAa,GAAE,MAAyB;IAIpD,IAAI,QAAQ,IAAI,WAAW,CAK1B;IAEK,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YA8CxF,mBAAmB;YAKnB,aAAa;IAiB3B,OAAO,CAAC,gBAAgB;CAsB3B;AAMD;;;;GAIG;AACH,wBAAgB,WAAW,CACvB,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,OAAO,CAAC,SAAS,CAAM,GAChC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAkBzB;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CACrB,QAAQ,GAAE,GAAG,EAAE,GAAG,IAAW,EAC7B,MAAM,GAAE,MAAM,GAAG,IAAW,EAC5B,aAAa,GAAE,MAAW,EAC1B,MAAM,GAAE,OAAO,CAAC,SAAS,CAAM,GAChC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAgCzB"}
1
+ {"version":3,"file":"LLMRuntime.d.ts","sourceRoot":"","sources":["../../../src/ptr/llm/LLMRuntime.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAE,SAAS,EAAoB,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAIzD,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,wBAAgB,YAAY,CACxB,aAAa,GAAE,MAAyB,EACxC,QAAQ,GAAE,MAAM,GAAG,IAAW,EAC9B,OAAO,GAAE,MAAY,GACtB,WAAW,CAYb;AAED,qBAAa,UAAW,YAAW,OAAO;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,SAAS,CAA4B;gBAEjC,aAAa,GAAE,MAAyB;IAIpD,IAAI,QAAQ,IAAI,WAAW,CAK1B;IAEK,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YA8CxF,mBAAmB;YAKnB,aAAa;IAiB3B,OAAO,CAAC,gBAAgB;CAsB3B;AAMD;;;;GAIG;AACH,wBAAgB,WAAW,CACvB,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,OAAO,CAAC,SAAS,CAAM,GAChC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAkBzB;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CACrB,QAAQ,GAAE,GAAG,EAAE,GAAG,IAAW,EAC7B,MAAM,GAAE,MAAM,GAAG,IAAW,EAC5B,aAAa,GAAE,MAAW,EAC1B,MAAM,GAAE,OAAO,CAAC,SAAS,CAAM,GAChC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAgCzB"}
@@ -6,12 +6,20 @@
6
6
  */
7
7
  import { LLMConfig, DEFAULT_PROVIDER } from './Config.js';
8
8
  import { OllamaProvider } from './providers/OllamaProvider.js';
9
+ import { WebLLMProvider } from './providers/WebLLMProvider.js';
10
+ import { MLCLLMProvider } from './providers/MLCLLMProvider.js';
9
11
  import { IO } from '../../monads/IO.js';
10
12
  import { Either } from '../../monads/Either.js';
11
13
  export function get_provider(provider_name = DEFAULT_PROVIDER, base_url = null, timeout = 120) {
12
14
  if (provider_name === 'ollama') {
13
15
  return new OllamaProvider(base_url, timeout);
14
16
  }
17
+ if (provider_name === 'webllm') {
18
+ return new WebLLMProvider();
19
+ }
20
+ if (provider_name === 'mlc-llm') {
21
+ return new MLCLLMProvider(base_url, timeout);
22
+ }
15
23
  // Future: lmstudio, openai
16
24
  throw new Error(`Unknown provider: ${provider_name}`);
17
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LLMRuntime.js","sourceRoot":"","sources":["../../../src/ptr/llm/LLMRuntime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LLMRuntime.js","sourceRoot":"","sources":["../../../src/ptr/llm/LLMRuntime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * MLC LLM Provider Implementation
3
+ *
4
+ * Provider for the MLC LLM REST API (OpenAI compatible).
5
+ * Typically running via `mlc_llm serve`.
6
+ */
7
+ import { BaseLLMProvider, ChatMessage } from './LLMProvider.js';
8
+ import { Either } from '../../../monads/Either.js';
9
+ export declare class MLCLLMProvider extends BaseLLMProvider {
10
+ provider_name: string;
11
+ private base_url;
12
+ private timeout;
13
+ private config;
14
+ constructor(base_url?: string | null, timeout?: number);
15
+ private _fetch_json;
16
+ private _node_request;
17
+ complete(prompt: string, params: Record<string, any>): Promise<Either<string, string>>;
18
+ chat(messages: ChatMessage[], params: Record<string, any>): Promise<Either<string, Record<string, any>>>;
19
+ validate_connection(): Promise<boolean>;
20
+ list_models(): Promise<Either<string, string[]>>;
21
+ }
22
+ //# sourceMappingURL=MLCLLMProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MLCLLMProvider.d.ts","sourceRoot":"","sources":["../../../../src/ptr/llm/providers/MLCLLMProvider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAKnD,qBAAa,cAAe,SAAQ,eAAe;IAC/C,aAAa,SAAa;IAC1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAM;gBAER,QAAQ,GAAE,MAAM,GAAG,IAAW,EAAE,OAAO,GAAE,MAAY;YAOnD,WAAW;IA2BzB,OAAO,CAAC,aAAa;IA0Cf,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IA2BtF,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IAgCxG,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;IAKvC,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAWzD"}
@@ -0,0 +1,155 @@
1
+ /**
2
+ * MLC LLM Provider Implementation
3
+ *
4
+ * Provider for the MLC LLM REST API (OpenAI compatible).
5
+ * Typically running via `mlc_llm serve`.
6
+ */
7
+ import { BaseLLMProvider } from './LLMProvider.js';
8
+ import { Either } from '../../../monads/Either.js';
9
+ import { LLM_PROVIDERS } from '../Config.js';
10
+ import * as http from 'http';
11
+ import * as https from 'https';
12
+ export class MLCLLMProvider extends BaseLLMProvider {
13
+ provider_name = 'mlc-llm';
14
+ base_url;
15
+ timeout;
16
+ config;
17
+ constructor(base_url = null, timeout = 120) {
18
+ super();
19
+ this.config = LLM_PROVIDERS['mlc-llm'];
20
+ this.base_url = (base_url || this.config.base_url).replace(/\/$/, '');
21
+ this.timeout = timeout * 1000;
22
+ }
23
+ async _fetch_json(endpoint, options) {
24
+ // Prefer native fetch if available (Node 18+, Browser)
25
+ if (typeof globalThis.fetch === 'function') {
26
+ try {
27
+ const controller = new AbortController();
28
+ const id = setTimeout(() => controller.abort(), this.timeout);
29
+ const response = await fetch(`${this.base_url}${endpoint}`, {
30
+ ...options,
31
+ signal: controller.signal
32
+ });
33
+ clearTimeout(id);
34
+ if (!response.ok) {
35
+ return Either.left(`HTTP error ${response.status}: ${await response.text()}`);
36
+ }
37
+ const data = await response.json();
38
+ return Either.right(data);
39
+ }
40
+ catch (e) {
41
+ return Either.left(`Connection error: ${e.message}`);
42
+ }
43
+ }
44
+ // Fallback to http/https module for older environments (unlikely given engine constraint but safe)
45
+ return this._node_request(endpoint, options);
46
+ }
47
+ _node_request(endpoint, options) {
48
+ const urlStr = `${this.base_url}${endpoint}`;
49
+ const url = new URL(urlStr);
50
+ const isHttps = url.protocol === 'https:';
51
+ const client = isHttps ? https : http;
52
+ const reqOptions = {
53
+ method: options.method || 'GET',
54
+ headers: options.headers || {},
55
+ timeout: this.timeout,
56
+ };
57
+ return new Promise((resolve) => {
58
+ const req = client.request(url, reqOptions, (res) => {
59
+ let body = '';
60
+ res.on('data', (chunk) => body += chunk);
61
+ res.on('end', () => {
62
+ if (res.statusCode && res.statusCode >= 200 && res.statusCode < 300) {
63
+ try {
64
+ resolve(Either.right(JSON.parse(body)));
65
+ }
66
+ catch (e) {
67
+ resolve(Either.left(`Parse error: ${e}`));
68
+ }
69
+ }
70
+ else {
71
+ resolve(Either.left(`HTTP Error ${res.statusCode}: ${body}`));
72
+ }
73
+ });
74
+ });
75
+ req.on('error', (e) => resolve(Either.left(e.message)));
76
+ req.on('timeout', () => {
77
+ req.destroy();
78
+ resolve(Either.left('Request timed out'));
79
+ });
80
+ if (options.body) {
81
+ req.write(options.body);
82
+ }
83
+ req.end();
84
+ });
85
+ }
86
+ async complete(prompt, params) {
87
+ // MLC LLM / OpenAI 'completions' endpoint
88
+ const data = {
89
+ model: params.model || this.config.default_model,
90
+ prompt: prompt,
91
+ max_tokens: params.max_tokens,
92
+ temperature: params.temperature,
93
+ top_p: params.top_p,
94
+ stream: false
95
+ };
96
+ const result = await this._fetch_json(this.config.api_path, {
97
+ method: 'POST',
98
+ headers: { 'Content-Type': 'application/json' },
99
+ body: JSON.stringify(data)
100
+ });
101
+ if (result.isLeft)
102
+ return Either.left(result.left);
103
+ const response = result.right;
104
+ // OpenAI format: choices[0].text
105
+ if (response.choices && response.choices.length > 0) {
106
+ return Either.right(response.choices[0].text || '');
107
+ }
108
+ return Either.left(`Unexpected response format: ${JSON.stringify(response)}`);
109
+ }
110
+ async chat(messages, params) {
111
+ const data = {
112
+ model: params.model || this.config.default_model,
113
+ messages: messages,
114
+ max_tokens: params.max_tokens,
115
+ temperature: params.temperature,
116
+ top_p: params.top_p,
117
+ stream: false
118
+ };
119
+ const result = await this._fetch_json(this.config.chat_path, {
120
+ method: 'POST',
121
+ headers: { 'Content-Type': 'application/json' },
122
+ body: JSON.stringify(data)
123
+ });
124
+ if (result.isLeft)
125
+ return Either.left(result.left);
126
+ const response = result.right;
127
+ // OpenAI format: choices[0].message
128
+ if (response.choices && response.choices.length > 0) {
129
+ const message = response.choices[0].message;
130
+ return Either.right({
131
+ content: message.content,
132
+ role: message.role,
133
+ model: response.model,
134
+ usage: response.usage
135
+ });
136
+ }
137
+ return Either.left(`Unexpected response format: ${JSON.stringify(response)}`);
138
+ }
139
+ async validate_connection() {
140
+ const result = await this._fetch_json(this.config.models_path, { method: 'GET' });
141
+ return result.isRight;
142
+ }
143
+ async list_models() {
144
+ const result = await this._fetch_json(this.config.models_path, { method: 'GET' });
145
+ if (result.isLeft)
146
+ return Either.left(result.left);
147
+ const response = result.right;
148
+ // OpenAI format: { data: [{ id: 'model-id', ... }] }
149
+ if (response.data && Array.isArray(response.data)) {
150
+ return Either.right(response.data.map((m) => m.id));
151
+ }
152
+ return Either.left('Invalid models response');
153
+ }
154
+ }
155
+ //# sourceMappingURL=MLCLLMProvider.js.map