@mondaydotcomorg/atp-runtime 0.17.14

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 (137) hide show
  1. package/README.md +389 -0
  2. package/dist/approval/handler.d.ts +12 -0
  3. package/dist/approval/handler.d.ts.map +1 -0
  4. package/dist/approval/handler.js +17 -0
  5. package/dist/approval/handler.js.map +1 -0
  6. package/dist/approval/index.d.ts +17 -0
  7. package/dist/approval/index.d.ts.map +1 -0
  8. package/dist/approval/index.js +94 -0
  9. package/dist/approval/index.js.map +1 -0
  10. package/dist/approval/types.d.ts +21 -0
  11. package/dist/approval/types.d.ts.map +1 -0
  12. package/dist/approval/types.js +5 -0
  13. package/dist/approval/types.js.map +1 -0
  14. package/dist/cache/backends.d.ts +39 -0
  15. package/dist/cache/backends.d.ts.map +1 -0
  16. package/dist/cache/backends.js +167 -0
  17. package/dist/cache/backends.js.map +1 -0
  18. package/dist/cache/index.d.ts +32 -0
  19. package/dist/cache/index.d.ts.map +1 -0
  20. package/dist/cache/index.js +103 -0
  21. package/dist/cache/index.js.map +1 -0
  22. package/dist/cache/types.d.ts +20 -0
  23. package/dist/cache/types.d.ts.map +1 -0
  24. package/dist/cache/types.js +2 -0
  25. package/dist/cache/types.js.map +1 -0
  26. package/dist/embedding/index.d.ts +39 -0
  27. package/dist/embedding/index.d.ts.map +1 -0
  28. package/dist/embedding/index.js +162 -0
  29. package/dist/embedding/index.js.map +1 -0
  30. package/dist/embedding/types.d.ts +28 -0
  31. package/dist/embedding/types.d.ts.map +1 -0
  32. package/dist/embedding/types.js +5 -0
  33. package/dist/embedding/types.js.map +1 -0
  34. package/dist/embedding/utils.d.ts +11 -0
  35. package/dist/embedding/utils.d.ts.map +1 -0
  36. package/dist/embedding/utils.js +30 -0
  37. package/dist/embedding/utils.js.map +1 -0
  38. package/dist/embedding/vector-store.d.ts +64 -0
  39. package/dist/embedding/vector-store.d.ts.map +1 -0
  40. package/dist/embedding/vector-store.js +142 -0
  41. package/dist/embedding/vector-store.js.map +1 -0
  42. package/dist/index.d.ts +18 -0
  43. package/dist/index.d.ts.map +1 -0
  44. package/dist/index.js +17 -0
  45. package/dist/index.js.map +1 -0
  46. package/dist/llm/callback.d.ts +13 -0
  47. package/dist/llm/callback.d.ts.map +1 -0
  48. package/dist/llm/callback.js +19 -0
  49. package/dist/llm/callback.js.map +1 -0
  50. package/dist/llm/index.d.ts +29 -0
  51. package/dist/llm/index.d.ts.map +1 -0
  52. package/dist/llm/index.js +118 -0
  53. package/dist/llm/index.js.map +1 -0
  54. package/dist/llm/replay.d.ts +47 -0
  55. package/dist/llm/replay.d.ts.map +1 -0
  56. package/dist/llm/replay.js +114 -0
  57. package/dist/llm/replay.js.map +1 -0
  58. package/dist/llm/types.d.ts +24 -0
  59. package/dist/llm/types.d.ts.map +1 -0
  60. package/dist/llm/types.js +2 -0
  61. package/dist/llm/types.js.map +1 -0
  62. package/dist/log/index.d.ts +12 -0
  63. package/dist/log/index.d.ts.map +1 -0
  64. package/dist/log/index.js +166 -0
  65. package/dist/log/index.js.map +1 -0
  66. package/dist/log/types.d.ts +19 -0
  67. package/dist/log/types.d.ts.map +1 -0
  68. package/dist/log/types.js +5 -0
  69. package/dist/log/types.js.map +1 -0
  70. package/dist/metadata/decorators.d.ts +27 -0
  71. package/dist/metadata/decorators.d.ts.map +1 -0
  72. package/dist/metadata/decorators.js +38 -0
  73. package/dist/metadata/decorators.js.map +1 -0
  74. package/dist/metadata/generated.d.ts +18 -0
  75. package/dist/metadata/generated.d.ts.map +1 -0
  76. package/dist/metadata/generated.js +290 -0
  77. package/dist/metadata/generated.js.map +1 -0
  78. package/dist/metadata/index.d.ts +11 -0
  79. package/dist/metadata/index.d.ts.map +1 -0
  80. package/dist/metadata/index.js +45 -0
  81. package/dist/metadata/index.js.map +1 -0
  82. package/dist/metadata/types.d.ts +22 -0
  83. package/dist/metadata/types.d.ts.map +1 -0
  84. package/dist/metadata/types.js +6 -0
  85. package/dist/metadata/types.js.map +1 -0
  86. package/dist/pause/index.d.ts +11 -0
  87. package/dist/pause/index.d.ts.map +1 -0
  88. package/dist/pause/index.js +15 -0
  89. package/dist/pause/index.js.map +1 -0
  90. package/dist/pause/types.d.ts +46 -0
  91. package/dist/pause/types.d.ts.map +1 -0
  92. package/dist/pause/types.js +57 -0
  93. package/dist/pause/types.js.map +1 -0
  94. package/dist/progress/index.d.ts +19 -0
  95. package/dist/progress/index.d.ts.map +1 -0
  96. package/dist/progress/index.js +61 -0
  97. package/dist/progress/index.js.map +1 -0
  98. package/dist/progress/types.d.ts +7 -0
  99. package/dist/progress/types.d.ts.map +1 -0
  100. package/dist/progress/types.js +2 -0
  101. package/dist/progress/types.js.map +1 -0
  102. package/dist/registry.d.ts +16 -0
  103. package/dist/registry.d.ts.map +1 -0
  104. package/dist/registry.js +16 -0
  105. package/dist/registry.js.map +1 -0
  106. package/dist/utils.d.ts +11 -0
  107. package/dist/utils.d.ts.map +1 -0
  108. package/dist/utils.js +31 -0
  109. package/dist/utils.js.map +1 -0
  110. package/package.json +51 -0
  111. package/src/approval/handler.ts +26 -0
  112. package/src/approval/index.ts +95 -0
  113. package/src/approval/types.ts +23 -0
  114. package/src/cache/backends.ts +196 -0
  115. package/src/cache/index.ts +74 -0
  116. package/src/cache/types.ts +20 -0
  117. package/src/embedding/index.ts +153 -0
  118. package/src/embedding/types.ts +31 -0
  119. package/src/embedding/utils.ts +34 -0
  120. package/src/embedding/vector-store.ts +164 -0
  121. package/src/index.ts +35 -0
  122. package/src/llm/callback.ts +24 -0
  123. package/src/llm/index.ts +121 -0
  124. package/src/llm/replay.ts +141 -0
  125. package/src/llm/types.ts +29 -0
  126. package/src/log/index.ts +167 -0
  127. package/src/log/types.ts +21 -0
  128. package/src/metadata/decorators.ts +44 -0
  129. package/src/metadata/generated.ts +293 -0
  130. package/src/metadata/index.ts +61 -0
  131. package/src/metadata/types.ts +24 -0
  132. package/src/pause/index.ts +28 -0
  133. package/src/pause/types.ts +57 -0
  134. package/src/progress/index.ts +50 -0
  135. package/src/progress/types.ts +6 -0
  136. package/src/registry.ts +22 -0
  137. package/src/utils.ts +37 -0
@@ -0,0 +1,167 @@
1
+ /**
2
+ */
3
+ import NodeCache from 'node-cache';
4
+ /**
5
+ * In-memory cache implementation using node-cache
6
+ */
7
+ export class MemoryCacheBackend {
8
+ cache;
9
+ constructor(config) {
10
+ this.cache = new NodeCache({
11
+ stdTTL: config?.defaultTTL ?? 600,
12
+ checkperiod: config?.checkPeriod ?? 120,
13
+ maxKeys: config?.maxKeys ?? 1000,
14
+ useClones: false,
15
+ });
16
+ }
17
+ async get(key) {
18
+ const value = this.cache.get(key);
19
+ return value ?? null;
20
+ }
21
+ async set(key, value, ttl) {
22
+ if (ttl) {
23
+ this.cache.set(key, value, ttl);
24
+ }
25
+ else {
26
+ this.cache.set(key, value);
27
+ }
28
+ }
29
+ async delete(key) {
30
+ this.cache.del(key);
31
+ }
32
+ async has(key) {
33
+ return this.cache.has(key);
34
+ }
35
+ async clear() {
36
+ this.cache.flushAll();
37
+ }
38
+ }
39
+ /**
40
+ * Redis cache implementation (lazy-loaded only if configured)
41
+ */
42
+ export class RedisCacheBackend {
43
+ client;
44
+ connected = false;
45
+ constructor(config) {
46
+ import('ioredis')
47
+ .then((Redis) => {
48
+ this.client = new Redis.default({
49
+ host: config.host,
50
+ port: config.port,
51
+ password: config.password,
52
+ db: config.db ?? 0,
53
+ retryStrategy: (times) => {
54
+ if (times > 3) {
55
+ return null;
56
+ }
57
+ return Math.min(times * 100, 2000);
58
+ },
59
+ lazyConnect: true,
60
+ });
61
+ this.client
62
+ .connect()
63
+ .then(() => {
64
+ this.connected = true;
65
+ })
66
+ .catch(() => {
67
+ this.connected = false;
68
+ });
69
+ })
70
+ .catch(() => {
71
+ throw new Error('ioredis package not installed. Install it with: yarn add ioredis');
72
+ });
73
+ }
74
+ async get(key) {
75
+ if (!this.connected) {
76
+ console.warn('[Redis Cache] Not connected, cannot get key:', key);
77
+ return null;
78
+ }
79
+ try {
80
+ const value = await this.client.get(key);
81
+ return value ? JSON.parse(value) : null;
82
+ }
83
+ catch (error) {
84
+ console.error('[Redis Cache] Failed to get key:', key, error instanceof Error ? error.message : error);
85
+ return null;
86
+ }
87
+ }
88
+ async set(key, value, ttl) {
89
+ if (!this.connected) {
90
+ console.warn('[Redis Cache] Not connected, cannot set key:', key);
91
+ return;
92
+ }
93
+ try {
94
+ const serialized = JSON.stringify(value);
95
+ if (ttl) {
96
+ await this.client.setex(key, ttl, serialized);
97
+ }
98
+ else {
99
+ await this.client.set(key, serialized);
100
+ }
101
+ }
102
+ catch (error) {
103
+ console.error('[Redis Cache] Failed to set key:', key, error instanceof Error ? error.message : error);
104
+ }
105
+ }
106
+ async delete(key) {
107
+ if (!this.connected) {
108
+ console.warn('[Redis Cache] Not connected, cannot delete key:', key);
109
+ return;
110
+ }
111
+ try {
112
+ await this.client.del(key);
113
+ }
114
+ catch (error) {
115
+ console.error('[Redis Cache] Failed to delete key:', key, error instanceof Error ? error.message : error);
116
+ }
117
+ }
118
+ async has(key) {
119
+ if (!this.connected) {
120
+ console.warn('[Redis Cache] Not connected, cannot check key:', key);
121
+ return false;
122
+ }
123
+ try {
124
+ const exists = await this.client.exists(key);
125
+ return exists === 1;
126
+ }
127
+ catch (error) {
128
+ console.error('[Redis Cache] Failed to check key:', key, error instanceof Error ? error.message : error);
129
+ return false;
130
+ }
131
+ }
132
+ async clear() {
133
+ if (!this.connected) {
134
+ console.warn('[Redis Cache] Not connected, cannot clear cache');
135
+ return;
136
+ }
137
+ try {
138
+ await this.client.flushdb();
139
+ }
140
+ catch (error) {
141
+ console.error('[Redis Cache] Failed to clear cache:', error instanceof Error ? error.message : error);
142
+ }
143
+ }
144
+ }
145
+ let cacheBackend = new MemoryCacheBackend();
146
+ /**
147
+ * Initializes the cache system with configuration
148
+ */
149
+ export function initializeCache(config) {
150
+ if (config.type === 'redis' && config.redis) {
151
+ cacheBackend = new RedisCacheBackend(config.redis);
152
+ }
153
+ else {
154
+ cacheBackend = new MemoryCacheBackend({
155
+ maxKeys: config.maxKeys,
156
+ defaultTTL: config.defaultTTL,
157
+ checkPeriod: config.checkPeriod,
158
+ });
159
+ }
160
+ }
161
+ /**
162
+ * Get the current cache backend
163
+ */
164
+ export function getCacheBackend() {
165
+ return cacheBackend;
166
+ }
167
+ //# sourceMappingURL=backends.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backends.js","sourceRoot":"","sources":["../../src/cache/backends.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ export type { CacheConfig, CacheBackend } from './types';
2
+ export { MemoryCacheBackend, RedisCacheBackend, initializeCache } from './backends.js';
3
+ /**
4
+ * Cache Runtime API
5
+ *
6
+ * Store and retrieve data with optional TTL (Time To Live).
7
+ * Supports in-memory (node-cache) and Redis backends.
8
+ */
9
+ declare class CacheAPI {
10
+ /**
11
+ * Gets a value from cache
12
+ */
13
+ get<T>(key: string): Promise<T | null>;
14
+ /**
15
+ * Sets a value in cache with optional TTL in seconds
16
+ */
17
+ set(key: string, value: unknown, ttl?: number): Promise<void>;
18
+ /**
19
+ * Deletes a value from cache
20
+ */
21
+ delete(key: string): Promise<void>;
22
+ /**
23
+ * Checks if a key exists in cache
24
+ */
25
+ has(key: string): Promise<boolean>;
26
+ /**
27
+ * Clears all cache entries
28
+ */
29
+ clear(): Promise<void>;
30
+ }
31
+ export declare const cache: CacheAPI;
32
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":"AAWA,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEvF;;;;;GAKG;AACH,cACM,QAAQ;IACb;;OAEG;IAIG,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAI5C;;OAEG;IAMG,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInE;;OAEG;IAIG,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC;;OAEG;IAIG,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIxC;;OAEG;IAEG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG5B;AAED,eAAO,MAAM,KAAK,UAAiB,CAAC"}
@@ -0,0 +1,103 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ /**
11
+ * Cache API - Clean refactored version with decorators and extracted modules
12
+ *
13
+ * Benefits:
14
+ * - No duplication between implementation and metadata
15
+ * - Types auto-detected from TypeScript signatures
16
+ * - Clean separation of concerns (backends, API)
17
+ */
18
+ import { RuntimeAPI, RuntimeMethod } from '../metadata/decorators.js';
19
+ import { getCacheBackend } from './backends.js';
20
+ export { MemoryCacheBackend, RedisCacheBackend, initializeCache } from './backends.js';
21
+ /**
22
+ * Cache Runtime API
23
+ *
24
+ * Store and retrieve data with optional TTL (Time To Live).
25
+ * Supports in-memory (node-cache) and Redis backends.
26
+ */
27
+ let CacheAPI = class CacheAPI {
28
+ /**
29
+ * Gets a value from cache
30
+ */
31
+ async get(key) {
32
+ return getCacheBackend().get(key);
33
+ }
34
+ /**
35
+ * Sets a value in cache with optional TTL in seconds
36
+ */
37
+ async set(key, value, ttl) {
38
+ return getCacheBackend().set(key, value, ttl);
39
+ }
40
+ /**
41
+ * Deletes a value from cache
42
+ */
43
+ async delete(key) {
44
+ return getCacheBackend().delete(key);
45
+ }
46
+ /**
47
+ * Checks if a key exists in cache
48
+ */
49
+ async has(key) {
50
+ return getCacheBackend().has(key);
51
+ }
52
+ /**
53
+ * Clears all cache entries
54
+ */
55
+ async clear() {
56
+ return getCacheBackend().clear();
57
+ }
58
+ };
59
+ __decorate([
60
+ RuntimeMethod('Get a value from cache by key', {
61
+ key: { description: 'Cache key' },
62
+ }),
63
+ __metadata("design:type", Function),
64
+ __metadata("design:paramtypes", [String]),
65
+ __metadata("design:returntype", Promise)
66
+ ], CacheAPI.prototype, "get", null);
67
+ __decorate([
68
+ RuntimeMethod('Set a value in cache with optional TTL', {
69
+ key: { description: 'Cache key' },
70
+ value: { description: 'Value to cache', type: 'unknown' },
71
+ ttl: { description: 'Time to live in seconds', optional: true },
72
+ }),
73
+ __metadata("design:type", Function),
74
+ __metadata("design:paramtypes", [String, Object, Number]),
75
+ __metadata("design:returntype", Promise)
76
+ ], CacheAPI.prototype, "set", null);
77
+ __decorate([
78
+ RuntimeMethod('Delete a value from cache', {
79
+ key: { description: 'Cache key to delete' },
80
+ }),
81
+ __metadata("design:type", Function),
82
+ __metadata("design:paramtypes", [String]),
83
+ __metadata("design:returntype", Promise)
84
+ ], CacheAPI.prototype, "delete", null);
85
+ __decorate([
86
+ RuntimeMethod('Check if a key exists in cache', {
87
+ key: { description: 'Cache key to check' },
88
+ }),
89
+ __metadata("design:type", Function),
90
+ __metadata("design:paramtypes", [String]),
91
+ __metadata("design:returntype", Promise)
92
+ ], CacheAPI.prototype, "has", null);
93
+ __decorate([
94
+ RuntimeMethod('Clear all cache entries'),
95
+ __metadata("design:type", Function),
96
+ __metadata("design:paramtypes", []),
97
+ __metadata("design:returntype", Promise)
98
+ ], CacheAPI.prototype, "clear", null);
99
+ CacheAPI = __decorate([
100
+ RuntimeAPI('cache', 'Cache API - Store and retrieve data with optional TTL')
101
+ ], CacheAPI);
102
+ export const cache = new CacheAPI();
103
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGhD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEvF;;;;;GAKG;AAEH,IAAM,QAAQ,GAAd,MAAM,QAAQ;IACb;;OAEG;IAIG,AAAN,KAAK,CAAC,GAAG,CAAI,GAAW;QACvB,OAAO,eAAe,EAAE,CAAC,GAAG,CAAI,GAAG,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IAMG,AAAN,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAc,EAAE,GAAY;QAClD,OAAO,eAAe,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IAIG,AAAN,KAAK,CAAC,MAAM,CAAC,GAAW;QACvB,OAAO,eAAe,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IAIG,AAAN,KAAK,CAAC,GAAG,CAAC,GAAW;QACpB,OAAO,eAAe,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IAEG,AAAN,KAAK,CAAC,KAAK;QACV,OAAO,eAAe,EAAE,CAAC,KAAK,EAAE,CAAC;IAClC,CAAC;CACD,CAAA;AA3CM;IAHL,aAAa,CAAC,+BAA+B,EAAE;QAC/C,GAAG,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE;KACjC,CAAC;;;;mCAGD;AAUK;IALL,aAAa,CAAC,wCAAwC,EAAE;QACxD,GAAG,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE;QACjC,KAAK,EAAE,EAAE,WAAW,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE;QACzD,GAAG,EAAE,EAAE,WAAW,EAAE,yBAAyB,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC/D,CAAC;;;;mCAGD;AAQK;IAHL,aAAa,CAAC,2BAA2B,EAAE;QAC3C,GAAG,EAAE,EAAE,WAAW,EAAE,qBAAqB,EAAE;KAC3C,CAAC;;;;sCAGD;AAQK;IAHL,aAAa,CAAC,gCAAgC,EAAE;QAChD,GAAG,EAAE,EAAE,WAAW,EAAE,oBAAoB,EAAE;KAC1C,CAAC;;;;mCAGD;AAMK;IADL,aAAa,CAAC,yBAAyB,CAAC;;;;qCAGxC;AAjDI,QAAQ;IADb,UAAU,CAAC,OAAO,EAAE,uDAAuD,CAAC;GACvE,QAAQ,CAkDb;AAED,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,20 @@
1
+ export interface CacheConfig {
2
+ type: 'memory' | 'redis';
3
+ redis?: {
4
+ host: string;
5
+ port: number;
6
+ password?: string;
7
+ db?: number;
8
+ };
9
+ maxKeys?: number;
10
+ defaultTTL?: number;
11
+ checkPeriod?: number;
12
+ }
13
+ export interface CacheBackend {
14
+ get<T>(key: string): Promise<T | null>;
15
+ set(key: string, value: unknown, ttl?: number): Promise<void>;
16
+ delete(key: string): Promise<void>;
17
+ has(key: string): Promise<boolean>;
18
+ clear(): Promise<void>;
19
+ }
20
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cache/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,EAAE,CAAC,EAAE,MAAM,CAAC;KACZ,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC5B,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACvC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/cache/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,39 @@
1
+ import type { EmbeddingRecord, SearchOptions, SearchResult } from './types';
2
+ export type { EmbeddingOptions, EmbeddingRecord, SearchOptions, SearchResult } from './types';
3
+ export { VectorStore, initializeVectorStore, clearVectorStore, getVectorStore, setVectorStoreExecutionId, clearVectorStoreExecutionId, } from './vector-store.js';
4
+ export { cosineSimilarity, generateEmbeddingId } from './utils.js';
5
+ /**
6
+ * Embedding Runtime API
7
+ *
8
+ * Decorators automatically:
9
+ * - Extract parameter names and types
10
+ * - Generate metadata for type definitions
11
+ * - Maintain single source of truth
12
+ */
13
+ declare class EmbeddingAPI {
14
+ /**
15
+ * Request client to generate embedding and store it
16
+ * For batch inputs, returns array of IDs for stored embeddings
17
+ */
18
+ embed(input: string | string[], metadata?: Record<string, unknown>): Promise<string | string[]>;
19
+ /**
20
+ * Search stored embeddings by similarity
21
+ * Query must be embedded first via embed()
22
+ */
23
+ search(query: string, options?: Omit<SearchOptions, 'query'>): Promise<SearchResult[]>;
24
+ /**
25
+ * Calculate cosine similarity between two embedding vectors
26
+ * This is a utility function that doesn't require client interaction
27
+ */
28
+ similarity(embedding1: number[], embedding2: number[]): number;
29
+ /**
30
+ * Get all stored embeddings (useful for debugging)
31
+ */
32
+ getAll(): EmbeddingRecord[];
33
+ /**
34
+ * Get count of stored embeddings
35
+ */
36
+ count(): number;
37
+ }
38
+ export declare const embedding: EmbeddingAPI;
39
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/embedding/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5E,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC9F,OAAO,EACN,WAAW,EACX,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,yBAAyB,EACzB,2BAA2B,GAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEnE;;;;;;;GAOG;AACH,cACM,YAAY;IACjB;;;OAGG;IAYG,KAAK,CACV,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EACxB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;IA8B7B;;;OAGG;IAWG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAiC5F;;;OAGG;IAKH,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM;IAI9D;;OAEG;IAEH,MAAM,IAAI,eAAe,EAAE;IAI3B;;OAEG;IAEH,KAAK,IAAI,MAAM;CAGf;AAED,eAAO,MAAM,SAAS,cAAqB,CAAC"}
@@ -0,0 +1,162 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { pauseForCallback, CallbackType, EmbeddingOperation } from '../pause/index.js';
11
+ import { RuntimeAPI, RuntimeMethod } from '../metadata/decorators.js';
12
+ import { getVectorStore } from './vector-store.js';
13
+ import { cosineSimilarity, generateEmbeddingId } from './utils.js';
14
+ import { nextSequenceNumber, getCachedResult, shouldPauseForClient } from '../llm/replay.js';
15
+ export { VectorStore, initializeVectorStore, clearVectorStore, getVectorStore, setVectorStoreExecutionId, clearVectorStoreExecutionId, } from './vector-store.js';
16
+ export { cosineSimilarity, generateEmbeddingId } from './utils.js';
17
+ /**
18
+ * Embedding Runtime API
19
+ *
20
+ * Decorators automatically:
21
+ * - Extract parameter names and types
22
+ * - Generate metadata for type definitions
23
+ * - Maintain single source of truth
24
+ */
25
+ let EmbeddingAPI = class EmbeddingAPI {
26
+ /**
27
+ * Request client to generate embedding and store it
28
+ * For batch inputs, returns array of IDs for stored embeddings
29
+ */
30
+ async embed(input, metadata) {
31
+ const isBatch = Array.isArray(input);
32
+ const texts = isBatch ? input : [input];
33
+ const ids = texts.map((_, i) => generateEmbeddingId(i));
34
+ const currentSequence = nextSequenceNumber();
35
+ const cachedResult = getCachedResult(currentSequence);
36
+ if (cachedResult !== undefined && cachedResult !== null) {
37
+ const vectorStore = getVectorStore();
38
+ const embedding = cachedResult;
39
+ for (let i = 0; i < texts.length; i++) {
40
+ vectorStore.store(ids[i], texts[i], embedding, metadata);
41
+ }
42
+ return isBatch ? ids : ids[0];
43
+ }
44
+ if (shouldPauseForClient()) {
45
+ pauseForCallback(CallbackType.EMBEDDING, EmbeddingOperation.EMBED, {
46
+ text: isBatch ? texts.join('\n') : texts[0],
47
+ input,
48
+ ids,
49
+ metadata,
50
+ sequenceNumber: currentSequence,
51
+ });
52
+ }
53
+ throw new Error('Embedding service not provided by client');
54
+ }
55
+ /**
56
+ * Search stored embeddings by similarity
57
+ * Query must be embedded first via embed()
58
+ */
59
+ async search(query, options) {
60
+ const currentSequence = nextSequenceNumber();
61
+ const vectorStore = getVectorStore();
62
+ const cachedQueryEmbedding = getCachedResult(currentSequence);
63
+ if (cachedQueryEmbedding !== undefined && cachedQueryEmbedding !== null) {
64
+ vectorStore.setQueryEmbedding(cachedQueryEmbedding);
65
+ const searchOptions = { ...options, query };
66
+ if (options?.collection) {
67
+ searchOptions.filter = {
68
+ ...searchOptions.filter,
69
+ collection: options.collection,
70
+ };
71
+ }
72
+ return vectorStore.search(searchOptions);
73
+ }
74
+ if (shouldPauseForClient()) {
75
+ pauseForCallback(CallbackType.EMBEDDING, EmbeddingOperation.SEARCH, {
76
+ query,
77
+ options: {
78
+ ...options,
79
+ query,
80
+ },
81
+ sequenceNumber: currentSequence,
82
+ });
83
+ }
84
+ throw new Error('Embedding service not provided by client');
85
+ }
86
+ /**
87
+ * Calculate cosine similarity between two embedding vectors
88
+ * This is a utility function that doesn't require client interaction
89
+ */
90
+ similarity(embedding1, embedding2) {
91
+ return cosineSimilarity(embedding1, embedding2);
92
+ }
93
+ /**
94
+ * Get all stored embeddings (useful for debugging)
95
+ */
96
+ getAll() {
97
+ return getVectorStore().getAll();
98
+ }
99
+ /**
100
+ * Get count of stored embeddings
101
+ */
102
+ count() {
103
+ return getVectorStore().count();
104
+ }
105
+ };
106
+ __decorate([
107
+ RuntimeMethod('Request client to generate and store embeddings', {
108
+ input: {
109
+ description: 'Text(s) to embed',
110
+ type: 'string | string[]',
111
+ },
112
+ metadata: {
113
+ description: 'Optional metadata to store with embeddings',
114
+ optional: true,
115
+ type: 'Record<string, unknown>',
116
+ },
117
+ }),
118
+ __metadata("design:type", Function),
119
+ __metadata("design:paramtypes", [Object, Object]),
120
+ __metadata("design:returntype", Promise)
121
+ ], EmbeddingAPI.prototype, "embed", null);
122
+ __decorate([
123
+ RuntimeMethod('Search stored embeddings by similarity', {
124
+ query: {
125
+ description: 'Search query text (will be embedded by client)',
126
+ },
127
+ options: {
128
+ description: 'Search options (topK, minSimilarity, filter)',
129
+ optional: true,
130
+ type: 'SearchOptions',
131
+ },
132
+ }),
133
+ __metadata("design:type", Function),
134
+ __metadata("design:paramtypes", [String, Object]),
135
+ __metadata("design:returntype", Promise)
136
+ ], EmbeddingAPI.prototype, "search", null);
137
+ __decorate([
138
+ RuntimeMethod('Calculate cosine similarity between two embedding vectors', {
139
+ embedding1: { description: 'First embedding vector', type: 'number[]' },
140
+ embedding2: { description: 'Second embedding vector', type: 'number[]' },
141
+ }),
142
+ __metadata("design:type", Function),
143
+ __metadata("design:paramtypes", [Array, Array]),
144
+ __metadata("design:returntype", Number)
145
+ ], EmbeddingAPI.prototype, "similarity", null);
146
+ __decorate([
147
+ RuntimeMethod('Get all stored embeddings'),
148
+ __metadata("design:type", Function),
149
+ __metadata("design:paramtypes", []),
150
+ __metadata("design:returntype", Array)
151
+ ], EmbeddingAPI.prototype, "getAll", null);
152
+ __decorate([
153
+ RuntimeMethod('Get count of stored embeddings'),
154
+ __metadata("design:type", Function),
155
+ __metadata("design:paramtypes", []),
156
+ __metadata("design:returntype", Number)
157
+ ], EmbeddingAPI.prototype, "count", null);
158
+ EmbeddingAPI = __decorate([
159
+ RuntimeAPI('embedding', 'Embedding API - Client-side embedding with server-side vector storage')
160
+ ], EmbeddingAPI);
161
+ export const embedding = new EmbeddingAPI();
162
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/embedding/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Embedding API Types
3
+ */
4
+ export interface EmbeddingOptions {
5
+ input: string | string[];
6
+ model?: string;
7
+ dimensions?: number;
8
+ context?: Record<string, unknown>;
9
+ }
10
+ export interface EmbeddingRecord {
11
+ id: string;
12
+ text: string;
13
+ embedding: number[];
14
+ metadata?: Record<string, unknown>;
15
+ }
16
+ export interface SearchOptions {
17
+ query: string;
18
+ topK?: number;
19
+ minSimilarity?: number;
20
+ filter?: Record<string, unknown>;
21
+ }
22
+ export interface SearchResult {
23
+ id: string;
24
+ text: string;
25
+ similarity: number;
26
+ metadata?: Record<string, unknown>;
27
+ }
28
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/embedding/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,gBAAgB;IAChC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,eAAe;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,aAAa;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,YAAY;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Embedding API Types
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/embedding/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,11 @@
1
+ /**
2
+
3
+ /**
4
+ * Calculate cosine similarity between two vectors
5
+ */
6
+ export declare function cosineSimilarity(vec1: number[], vec2: number[]): number;
7
+ /**
8
+ * Generate a unique ID for an embedding
9
+ */
10
+ export declare function generateEmbeddingId(index?: number): string;
11
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/embedding/utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAqBvE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,GAAE,MAAU,GAAG,MAAM,CAE7D"}
@@ -0,0 +1,30 @@
1
+ /**
2
+
3
+ /**
4
+ * Calculate cosine similarity between two vectors
5
+ */
6
+ export function cosineSimilarity(vec1, vec2) {
7
+ if (vec1.length !== vec2.length) {
8
+ throw new Error(`Vectors must have the same length (${vec1.length} vs ${vec2.length})`);
9
+ }
10
+ let dotProduct = 0;
11
+ let norm1 = 0;
12
+ let norm2 = 0;
13
+ for (let i = 0; i < vec1.length; i++) {
14
+ dotProduct += vec1[i] * vec2[i];
15
+ norm1 += vec1[i] * vec1[i];
16
+ norm2 += vec2[i] * vec2[i];
17
+ }
18
+ const denominator = Math.sqrt(norm1) * Math.sqrt(norm2);
19
+ if (denominator === 0) {
20
+ return 0;
21
+ }
22
+ return dotProduct / denominator;
23
+ }
24
+ /**
25
+ * Generate a unique ID for an embedding
26
+ */
27
+ export function generateEmbeddingId(index = 0) {
28
+ return `emb_${Date.now()}_${index}_${Math.random().toString(36).slice(2)}`;
29
+ }
30
+ //# sourceMappingURL=utils.js.map