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
|
@@ -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"}
|