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.
- package/README.md +113 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/ptr/FaroSidecar.d.ts +56 -0
- package/dist/ptr/FaroSidecar.d.ts.map +1 -0
- package/dist/ptr/FaroSidecar.js +102 -0
- package/dist/ptr/FaroSidecar.js.map +1 -0
- package/dist/ptr/llm/Config.d.ts.map +1 -1
- package/dist/ptr/llm/Config.js +16 -0
- package/dist/ptr/llm/Config.js.map +1 -1
- package/dist/ptr/llm/LLMRuntime.d.ts.map +1 -1
- package/dist/ptr/llm/LLMRuntime.js +8 -0
- package/dist/ptr/llm/LLMRuntime.js.map +1 -1
- package/dist/ptr/llm/providers/MLCLLMProvider.d.ts +22 -0
- package/dist/ptr/llm/providers/MLCLLMProvider.d.ts.map +1 -0
- package/dist/ptr/llm/providers/MLCLLMProvider.js +155 -0
- package/dist/ptr/llm/providers/MLCLLMProvider.js.map +1 -0
- package/dist/ptr/llm/providers/WebLLMProvider.d.ts +22 -0
- package/dist/ptr/llm/providers/WebLLMProvider.d.ts.map +1 -0
- package/dist/ptr/llm/providers/WebLLMProvider.js +151 -0
- package/dist/ptr/llm/providers/WebLLMProvider.js.map +1 -0
- package/dist/ptr/node/CLMRunner.d.ts +7 -1
- package/dist/ptr/node/CLMRunner.d.ts.map +1 -1
- package/dist/ptr/node/CLMRunner.js +61 -2
- package/dist/ptr/node/CLMRunner.js.map +1 -1
- package/dist/ptr/node/NetworkConfig.d.ts +191 -0
- package/dist/ptr/node/NetworkConfig.d.ts.map +1 -0
- package/dist/ptr/node/NetworkConfig.js +8 -0
- package/dist/ptr/node/NetworkConfig.js.map +1 -0
- package/dist/ptr/node/NetworkRuntime.d.ts +125 -0
- package/dist/ptr/node/NetworkRuntime.d.ts.map +1 -0
- package/dist/ptr/node/NetworkRuntime.js +1138 -0
- package/dist/ptr/node/NetworkRuntime.js.map +1 -0
- package/dist/ptr/node/P2PChatSession.d.ts +53 -0
- package/dist/ptr/node/P2PChatSession.d.ts.map +1 -0
- package/dist/ptr/node/P2PChatSession.js +152 -0
- package/dist/ptr/node/P2PChatSession.js.map +1 -0
- package/dist/ptr/node/Runtimes.d.ts.map +1 -1
- package/dist/ptr/node/Runtimes.js +10 -0
- package/dist/ptr/node/Runtimes.js.map +1 -1
- 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
|
|
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 };
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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;
|
|
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;
|
|
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,
|
|
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"}
|
package/dist/ptr/llm/Config.js
CHANGED
|
@@ -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;
|
|
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":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,MAAM,UAAU,YAAY,CACxB,gBAAwB,gBAAgB,EACxC,WAA0B,IAAI,EAC9B,UAAkB,GAAG;IAErB,IAAI,aAAa,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,IAAI,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IACD,2BAA2B;IAC3B,MAAM,IAAI,KAAK,CAAC,qBAAqB,aAAa,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,OAAO,UAAU;IACnB,aAAa,CAAS;IACd,SAAS,GAAuB,IAAI,CAAC;IAE7C,YAAY,gBAAwB,gBAAgB;QAChD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACvC,CAAC;IAED,IAAI,QAAQ;QACR,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,UAAkB,EAAE,OAAgB,EAAE,MAAW,EAAE,UAAkB;QAC/E,mEAAmE;QACnE,yDAAyD;QAEzD,iEAAiE;QACjE,IAAI,SAAS,GAAwB,EAAE,CAAC;QACxC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YAClD,SAAS,GAAG,OAA8B,CAAC;QAC/C,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC;QAExB,sBAAsB;QACtB,MAAM,SAAS,GAAG,SAAS,CAAC,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAE/D,+BAA+B;QAC/B,IAAI,SAAS,CAAC,QAAQ,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;YAC5C,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,YAAY,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;QACjG,CAAC;QAED,yCAAyC;QACzC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,GAAG,OAAO,CAAC;QACrB,CAAC;aAAM,CAAC;YACJ,uCAAuC;YACvC,kGAAkG;YAClG,yBAAyB;YACzB,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;QAED,UAAU;QACV,IAAI,MAAM,CAAC;QACX,IAAI,SAAS,CAAC,aAAa,EAAE,CAAC;YAC1B,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,UAAU,MAAM,CAAC,IAAI,EAAE,CAAC;QACnC,CAAC;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC1D,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,MAAc,EAAE,MAAiB;QAC/D,MAAM,MAAM,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,MAAc,EAAE,MAAiB;QACzD,MAAM,QAAQ,GAAU,EAAE,CAAC;QAE3B,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAEjD,IAAI,MAAM,CAAC,qBAAqB,EAAE,CAAC;YAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,qBAAqB,EAAE,CAAC,CAAC;QAChF,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;IAEO,gBAAgB,CAAC,QAAa,EAAE,MAAiB;QACrD,IAAI,OAAO,GAAG,QAAQ,CAAC;QACvB,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,SAAS,IAAI,QAAQ,EAAE,CAAC;YACpE,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;QAC/B,CAAC;QAED,IAAI,MAAM,CAAC,eAAe,KAAK,MAAM,EAAE,CAAC;YACpC,IAAI,CAAC;gBACD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;oBAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBACnC,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACzC,IAAI,KAAK,IAAI,CAAC,IAAI,GAAG,GAAG,KAAK,EAAE,CAAC;wBAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;oBACrD,CAAC;gBACL,CAAC;gBACD,OAAO,OAAO,CAAC;YACnB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,OAAO,OAAO,CAAC;YACnB,CAAC;QACL,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ;AAED,gFAAgF;AAChF,8BAA8B;AAC9B,gFAAgF;AAEhF;;;;GAIG;AACH,MAAM,UAAU,WAAW,CACvB,MAAc,EACd,SAA6B,EAAE;IAE/B,OAAO,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE;QACpB,IAAI,CAAC;YACD,kDAAkD;YAClD,kFAAkF;YAClF,gEAAgE;YAChE,sDAAsD;YACtD,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,MAAa,CAAC,CAAC;YAE/C,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,SAAS,CAAC,kBAAkB,EAAE,CAAC;YAE9C,OAAO,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAErD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,MAAM,CAAC,IAAI,CAAc,yBAAyB,CAAC,EAAE,CAAC,CAAC;QAClE,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CACrB,WAAyB,IAAI,EAC7B,SAAwB,IAAI,EAC5B,gBAAwB,EAAE,EAC1B,SAA6B,EAAE;IAG/B,OAAO,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE;QACpB,IAAI,CAAC;YACD,8CAA8C;YAC9C,MAAM,UAAU,GAAQ,EAAE,GAAG,MAAM,EAAE,CAAC;YACtC,IAAI,aAAa;gBAAE,UAAU,CAAC,aAAa,GAAG,aAAa,CAAC;YAE5D,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC;YAC5C,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAEnD,iCAAiC;YACjC,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACpB,IAAI,SAAS,CAAC,aAAa,EAAE,CAAC;oBAC1B,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,aAAa,EAAE,CAAC,CAAC;gBACpE,CAAC;gBACD,IAAI,MAAM,EAAE,CAAC;oBACT,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;gBACjD,CAAC;gBACD,IAAI,SAAS,CAAC,qBAAqB,EAAE,CAAC;oBAClC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,CAAC,qBAAqB,EAAE,CAAC,CAAC;gBAC/E,CAAC;YACL,CAAC;YAED,MAAM,MAAM,GAAG,SAAS,CAAC,kBAAkB,EAAE,CAAC;YAC9C,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAE/C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,MAAM,CAAC,IAAI,CAAc,oBAAoB,CAAC,EAAE,CAAC,CAAC;QAC7D,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
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
|