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
@@ -0,0 +1,125 @@
1
+ import { Runtime } from './RuntimeInterface.js';
2
+ import { CardCollection } from '../../model/CardCollection.js';
3
+ /**
4
+ * Network Runtime for handling declarative network operations.
5
+ *
6
+ * Supports builtins:
7
+ * - http_request (general)
8
+ * - http_get
9
+ * - http_post
10
+ * - load_url (enhanced)
11
+ * - mcard_send (send MCard to remote)
12
+ * - listen_http (receive MCards)
13
+ * - mcard_sync (synchronize collection)
14
+ * - listen_sync (listen for sync requests)
15
+ *
16
+ * Security:
17
+ * Configure via environment variables:
18
+ * - CLM_ALLOWED_DOMAINS: Comma-separated allowed domains (e.g., "api.example.com,*.trusted.com")
19
+ * - CLM_BLOCKED_DOMAINS: Comma-separated blocked domains (takes precedence)
20
+ * - CLM_BLOCK_LOCALHOST: Set to "true" to block localhost
21
+ * - CLM_BLOCK_PRIVATE_IPS: Set to "true" to block private IP ranges
22
+ */
23
+ export declare class NetworkRuntime implements Runtime {
24
+ private collection?;
25
+ private securityConfig;
26
+ private responseCache;
27
+ private rateLimiter;
28
+ private sessions;
29
+ private readonly defaultRateLimit;
30
+ constructor(collection?: CardCollection);
31
+ /**
32
+ * Load security configuration from environment variables
33
+ */
34
+ private loadSecurityConfigFromEnv;
35
+ /**
36
+ * Validate URL against security policy
37
+ * Throws SecurityViolationError if URL is not allowed
38
+ */
39
+ private validateUrlSecurity;
40
+ /**
41
+ * Match hostname against domain pattern (supports wildcards like *.example.com)
42
+ */
43
+ private matchDomainPattern;
44
+ /**
45
+ * Check if hostname is a private IP address
46
+ */
47
+ private isPrivateIP;
48
+ private createSecurityError;
49
+ /**
50
+ * Serialize an MCard to a JSON-safe payload for network transfer
51
+ */
52
+ private serializeMCard;
53
+ /**
54
+ * Deserialize a JSON payload back to an MCard
55
+ * Uses fromData if hash/g_time provided (preserves identity)
56
+ * Otherwise creates new MCard (generates new hash/g_time)
57
+ */
58
+ private deserializeMCard;
59
+ /**
60
+ * Verify hash matches content (optional strict mode)
61
+ */
62
+ private verifyMCardHash;
63
+ /**
64
+ * Calculate delay for retry attempt based on backoff strategy
65
+ */
66
+ private calculateBackoffDelay;
67
+ /**
68
+ * Check if HTTP status code should trigger a retry
69
+ */
70
+ private shouldRetryStatus;
71
+ /**
72
+ * Sleep for a given duration
73
+ */
74
+ private sleep;
75
+ /**
76
+ * Generate cache key from request config
77
+ */
78
+ private generateCacheKey;
79
+ /**
80
+ * Get cached response if valid
81
+ */
82
+ private getCachedResponse;
83
+ /**
84
+ * Cache a response with TTL
85
+ */
86
+ private cacheResponse;
87
+ /**
88
+ * Store response in MCard collection for persistent caching
89
+ */
90
+ private cacheToPersistentStorage;
91
+ /**
92
+ * Token bucket rate limiter
93
+ * Returns true if request should proceed, false if rate limited
94
+ */
95
+ private checkRateLimit;
96
+ /**
97
+ * Wait until rate limit allows request
98
+ */
99
+ private waitForRateLimit;
100
+ execute(_code: string, context: unknown, config: any, _chapterDir: string): Promise<unknown>;
101
+ private handleHttpGet;
102
+ private handleHttpPost;
103
+ private handleHttpRequest;
104
+ private handleLoadUrl;
105
+ private handleMCardSend;
106
+ private handleListenHttp;
107
+ private handleMCardSync;
108
+ private getPeerConnectionClass;
109
+ private handleWebRTCConnect;
110
+ private _setupP2PProtocol;
111
+ private handleWebRTCListen;
112
+ private handleListenSync;
113
+ /**
114
+ * Simple variable interpolation: ${key} or ${input.key} or ${secrets.KEY}
115
+ * context = { input: ..., secrets: ..., ... }
116
+ */
117
+ private interpolate;
118
+ private interpolateHeaders;
119
+ private handleSessionRecord;
120
+ private handleMCardRead;
121
+ handleRunCommand(config: {
122
+ command: string;
123
+ }, context: any): Promise<any>;
124
+ }
125
+ //# sourceMappingURL=NetworkRuntime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NetworkRuntime.d.ts","sourceRoot":"","sources":["../../../src/ptr/node/NetworkRuntime.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAoB/D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,cAAe,YAAW,OAAO;IAC1C,OAAO,CAAC,UAAU,CAAC,CAAiB;IACpC,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,aAAa,CAAoE;IACzF,OAAO,CAAC,WAAW,CAAsD;IACzE,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAyC;gBAE9D,UAAU,CAAC,EAAE,cAAc;IAQvC;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAejC;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAyD3B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAY1B;;OAEG;IACH,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,mBAAmB;IAQ3B;;OAEG;IACH,OAAO,CAAC,cAAc;IAUtB;;;;OAIG;YACW,gBAAgB;IAY9B;;OAEG;IACH,OAAO,CAAC,eAAe;IAUvB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAwB7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;OAEG;IACH,OAAO,CAAC,KAAK;IAMb;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAYxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAYzB;;OAEG;IACH,OAAO,CAAC,aAAa;IAOrB;;OAEG;YACW,wBAAwB;IAgBtC;;;OAGG;IACH,OAAO,CAAC,cAAc;IAuBtB;;OAEG;YACW,gBAAgB;IAMxB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YAuCpF,aAAa;YAKb,cAAc;YAUd,iBAAiB;YA0LjB,aAAa;YA0Bb,eAAe;YAyBf,gBAAgB;YA6DhB,eAAe;IA6H7B,OAAO,CAAC,sBAAsB;YAShB,mBAAmB;IA6GjC,OAAO,CAAC,iBAAiB;YA6DX,kBAAkB;YAsClB,gBAAgB;IA+F9B;;;OAGG;IACH,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,kBAAkB;YAUZ,mBAAmB;YA+FnB,eAAe;IA2BvB,gBAAgB,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;CAwBlF"}