@xynehq/jaf 0.1.2

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 (279) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +596 -0
  3. package/dist/a2a/agent-card.d.ts +28 -0
  4. package/dist/a2a/agent-card.d.ts.map +1 -0
  5. package/dist/a2a/agent-card.js +250 -0
  6. package/dist/a2a/agent-card.js.map +1 -0
  7. package/dist/a2a/agent.d.ts +38 -0
  8. package/dist/a2a/agent.d.ts.map +1 -0
  9. package/dist/a2a/agent.js +223 -0
  10. package/dist/a2a/agent.js.map +1 -0
  11. package/dist/a2a/client.d.ts +35 -0
  12. package/dist/a2a/client.d.ts.map +1 -0
  13. package/dist/a2a/client.js +337 -0
  14. package/dist/a2a/client.js.map +1 -0
  15. package/dist/a2a/examples/client-example.d.ts +104 -0
  16. package/dist/a2a/examples/client-example.d.ts.map +1 -0
  17. package/dist/a2a/examples/client-example.js +232 -0
  18. package/dist/a2a/examples/client-example.js.map +1 -0
  19. package/dist/a2a/examples/server-example.d.ts +9 -0
  20. package/dist/a2a/examples/server-example.d.ts.map +1 -0
  21. package/dist/a2a/examples/server-example.js +209 -0
  22. package/dist/a2a/examples/server-example.js.map +1 -0
  23. package/dist/a2a/examples/weather-agent.d.ts +8 -0
  24. package/dist/a2a/examples/weather-agent.d.ts.map +1 -0
  25. package/dist/a2a/examples/weather-agent.js +232 -0
  26. package/dist/a2a/examples/weather-agent.js.map +1 -0
  27. package/dist/a2a/executor.d.ts +43 -0
  28. package/dist/a2a/executor.d.ts.map +1 -0
  29. package/dist/a2a/executor.js +507 -0
  30. package/dist/a2a/executor.js.map +1 -0
  31. package/dist/a2a/index.d.ts +378 -0
  32. package/dist/a2a/index.d.ts.map +1 -0
  33. package/dist/a2a/index.js +72 -0
  34. package/dist/a2a/index.js.map +1 -0
  35. package/dist/a2a/memory/cleanup.d.ts +58 -0
  36. package/dist/a2a/memory/cleanup.d.ts.map +1 -0
  37. package/dist/a2a/memory/cleanup.js +281 -0
  38. package/dist/a2a/memory/cleanup.js.map +1 -0
  39. package/dist/a2a/memory/factory.d.ts +38 -0
  40. package/dist/a2a/memory/factory.d.ts.map +1 -0
  41. package/dist/a2a/memory/factory.js +369 -0
  42. package/dist/a2a/memory/factory.js.map +1 -0
  43. package/dist/a2a/memory/index.d.ts +13 -0
  44. package/dist/a2a/memory/index.d.ts.map +1 -0
  45. package/dist/a2a/memory/index.js +16 -0
  46. package/dist/a2a/memory/index.js.map +1 -0
  47. package/dist/a2a/memory/providers/in-memory.d.ts +10 -0
  48. package/dist/a2a/memory/providers/in-memory.d.ts.map +1 -0
  49. package/dist/a2a/memory/providers/in-memory.js +539 -0
  50. package/dist/a2a/memory/providers/in-memory.js.map +1 -0
  51. package/dist/a2a/memory/providers/postgres.d.ts +10 -0
  52. package/dist/a2a/memory/providers/postgres.d.ts.map +1 -0
  53. package/dist/a2a/memory/providers/postgres.js +404 -0
  54. package/dist/a2a/memory/providers/postgres.js.map +1 -0
  55. package/dist/a2a/memory/providers/redis.d.ts +10 -0
  56. package/dist/a2a/memory/providers/redis.d.ts.map +1 -0
  57. package/dist/a2a/memory/providers/redis.js +435 -0
  58. package/dist/a2a/memory/providers/redis.js.map +1 -0
  59. package/dist/a2a/memory/serialization.d.ts +53 -0
  60. package/dist/a2a/memory/serialization.d.ts.map +1 -0
  61. package/dist/a2a/memory/serialization.js +233 -0
  62. package/dist/a2a/memory/serialization.js.map +1 -0
  63. package/dist/a2a/memory/types.d.ts +395 -0
  64. package/dist/a2a/memory/types.d.ts.map +1 -0
  65. package/dist/a2a/memory/types.js +85 -0
  66. package/dist/a2a/memory/types.js.map +1 -0
  67. package/dist/a2a/protocol.d.ts +38 -0
  68. package/dist/a2a/protocol.d.ts.map +1 -0
  69. package/dist/a2a/protocol.js +211 -0
  70. package/dist/a2a/protocol.js.map +1 -0
  71. package/dist/a2a/server.d.ts +343 -0
  72. package/dist/a2a/server.d.ts.map +1 -0
  73. package/dist/a2a/server.js +362 -0
  74. package/dist/a2a/server.js.map +1 -0
  75. package/dist/a2a/types.d.ts +730 -0
  76. package/dist/a2a/types.d.ts.map +1 -0
  77. package/dist/a2a/types.js +73 -0
  78. package/dist/a2a/types.js.map +1 -0
  79. package/dist/adk/agents/index.d.ts +48 -0
  80. package/dist/adk/agents/index.d.ts.map +1 -0
  81. package/dist/adk/agents/index.js +277 -0
  82. package/dist/adk/agents/index.js.map +1 -0
  83. package/dist/adk/artifacts/index.d.ts +62 -0
  84. package/dist/adk/artifacts/index.d.ts.map +1 -0
  85. package/dist/adk/artifacts/index.js +394 -0
  86. package/dist/adk/artifacts/index.js.map +1 -0
  87. package/dist/adk/config/llm-config.d.ts +75 -0
  88. package/dist/adk/config/llm-config.d.ts.map +1 -0
  89. package/dist/adk/config/llm-config.js +422 -0
  90. package/dist/adk/config/llm-config.js.map +1 -0
  91. package/dist/adk/content/index.d.ts +58 -0
  92. package/dist/adk/content/index.d.ts.map +1 -0
  93. package/dist/adk/content/index.js +220 -0
  94. package/dist/adk/content/index.js.map +1 -0
  95. package/dist/adk/examples/advanced-features.d.ts +22 -0
  96. package/dist/adk/examples/advanced-features.d.ts.map +1 -0
  97. package/dist/adk/examples/advanced-features.js +380 -0
  98. package/dist/adk/examples/advanced-features.js.map +1 -0
  99. package/dist/adk/examples/basic-agent.d.ts +28 -0
  100. package/dist/adk/examples/basic-agent.d.ts.map +1 -0
  101. package/dist/adk/examples/basic-agent.js +207 -0
  102. package/dist/adk/examples/basic-agent.js.map +1 -0
  103. package/dist/adk/examples/multi-agent.d.ts +24 -0
  104. package/dist/adk/examples/multi-agent.d.ts.map +1 -0
  105. package/dist/adk/examples/multi-agent.js +321 -0
  106. package/dist/adk/examples/multi-agent.js.map +1 -0
  107. package/dist/adk/examples/streaming-example.d.ts +9 -0
  108. package/dist/adk/examples/streaming-example.d.ts.map +1 -0
  109. package/dist/adk/examples/streaming-example.js +193 -0
  110. package/dist/adk/examples/streaming-example.js.map +1 -0
  111. package/dist/adk/index.d.ts +65 -0
  112. package/dist/adk/index.d.ts.map +1 -0
  113. package/dist/adk/index.js +251 -0
  114. package/dist/adk/index.js.map +1 -0
  115. package/dist/adk/models.d.ts +338 -0
  116. package/dist/adk/models.d.ts.map +1 -0
  117. package/dist/adk/models.js +466 -0
  118. package/dist/adk/models.js.map +1 -0
  119. package/dist/adk/providers/error-handler.d.ts +100 -0
  120. package/dist/adk/providers/error-handler.d.ts.map +1 -0
  121. package/dist/adk/providers/error-handler.js +289 -0
  122. package/dist/adk/providers/error-handler.js.map +1 -0
  123. package/dist/adk/providers/llm-service.d.ts +41 -0
  124. package/dist/adk/providers/llm-service.d.ts.map +1 -0
  125. package/dist/adk/providers/llm-service.js +520 -0
  126. package/dist/adk/providers/llm-service.js.map +1 -0
  127. package/dist/adk/providers/type-converters.d.ts +34 -0
  128. package/dist/adk/providers/type-converters.d.ts.map +1 -0
  129. package/dist/adk/providers/type-converters.js +436 -0
  130. package/dist/adk/providers/type-converters.js.map +1 -0
  131. package/dist/adk/runners/index.d.ts +33 -0
  132. package/dist/adk/runners/index.d.ts.map +1 -0
  133. package/dist/adk/runners/index.js +466 -0
  134. package/dist/adk/runners/index.js.map +1 -0
  135. package/dist/adk/schemas/index.d.ts +85 -0
  136. package/dist/adk/schemas/index.d.ts.map +1 -0
  137. package/dist/adk/schemas/index.js +363 -0
  138. package/dist/adk/schemas/index.js.map +1 -0
  139. package/dist/adk/sessions/examples/session-provider-usage.d.ts +10 -0
  140. package/dist/adk/sessions/examples/session-provider-usage.d.ts.map +1 -0
  141. package/dist/adk/sessions/examples/session-provider-usage.js +145 -0
  142. package/dist/adk/sessions/examples/session-provider-usage.js.map +1 -0
  143. package/dist/adk/sessions/index.d.ts +53 -0
  144. package/dist/adk/sessions/index.d.ts.map +1 -0
  145. package/dist/adk/sessions/index.js +451 -0
  146. package/dist/adk/sessions/index.js.map +1 -0
  147. package/dist/adk/sessions/postgres-provider.d.ts +22 -0
  148. package/dist/adk/sessions/postgres-provider.d.ts.map +1 -0
  149. package/dist/adk/sessions/postgres-provider.js +293 -0
  150. package/dist/adk/sessions/postgres-provider.js.map +1 -0
  151. package/dist/adk/sessions/redis-provider.d.ts +19 -0
  152. package/dist/adk/sessions/redis-provider.d.ts.map +1 -0
  153. package/dist/adk/sessions/redis-provider.js +237 -0
  154. package/dist/adk/sessions/redis-provider.js.map +1 -0
  155. package/dist/adk/streaming/index.d.ts +76 -0
  156. package/dist/adk/streaming/index.d.ts.map +1 -0
  157. package/dist/adk/streaming/index.js +419 -0
  158. package/dist/adk/streaming/index.js.map +1 -0
  159. package/dist/adk/tools/index.d.ts +27 -0
  160. package/dist/adk/tools/index.d.ts.map +1 -0
  161. package/dist/adk/tools/index.js +506 -0
  162. package/dist/adk/tools/index.js.map +1 -0
  163. package/dist/adk/types.d.ts +351 -0
  164. package/dist/adk/types.d.ts.map +1 -0
  165. package/dist/adk/types.js +107 -0
  166. package/dist/adk/types.js.map +1 -0
  167. package/dist/core/engine.d.ts +3 -0
  168. package/dist/core/engine.d.ts.map +1 -0
  169. package/dist/core/engine.js +438 -0
  170. package/dist/core/engine.js.map +1 -0
  171. package/dist/core/errors.d.ts +8 -0
  172. package/dist/core/errors.d.ts.map +1 -0
  173. package/dist/core/errors.js +84 -0
  174. package/dist/core/errors.js.map +1 -0
  175. package/dist/core/tool-results.d.ts +57 -0
  176. package/dist/core/tool-results.d.ts.map +1 -0
  177. package/dist/core/tool-results.js +133 -0
  178. package/dist/core/tool-results.js.map +1 -0
  179. package/dist/core/tracing.d.ts +32 -0
  180. package/dist/core/tracing.d.ts.map +1 -0
  181. package/dist/core/tracing.js +132 -0
  182. package/dist/core/tracing.js.map +1 -0
  183. package/dist/core/types.d.ts +165 -0
  184. package/dist/core/types.d.ts.map +1 -0
  185. package/dist/core/types.js +3 -0
  186. package/dist/core/types.js.map +1 -0
  187. package/dist/demo/agents.d.ts +23 -0
  188. package/dist/demo/agents.d.ts.map +1 -0
  189. package/dist/demo/agents.js +69 -0
  190. package/dist/demo/agents.js.map +1 -0
  191. package/dist/demo/index.d.ts +2 -0
  192. package/dist/demo/index.d.ts.map +1 -0
  193. package/dist/demo/index.js +250 -0
  194. package/dist/demo/index.js.map +1 -0
  195. package/dist/demo/mock-provider.d.ts +22 -0
  196. package/dist/demo/mock-provider.d.ts.map +1 -0
  197. package/dist/demo/mock-provider.js +138 -0
  198. package/dist/demo/mock-provider.js.map +1 -0
  199. package/dist/demo/tools.d.ts +14 -0
  200. package/dist/demo/tools.d.ts.map +1 -0
  201. package/dist/demo/tools.js +115 -0
  202. package/dist/demo/tools.js.map +1 -0
  203. package/dist/index.d.ts +20 -0
  204. package/dist/index.d.ts.map +1 -0
  205. package/dist/index.js +30 -0
  206. package/dist/index.js.map +1 -0
  207. package/dist/memory/factory.d.ts +22 -0
  208. package/dist/memory/factory.d.ts.map +1 -0
  209. package/dist/memory/factory.js +88 -0
  210. package/dist/memory/factory.js.map +1 -0
  211. package/dist/memory/providers/in-memory.d.ts +7 -0
  212. package/dist/memory/providers/in-memory.d.ts.map +1 -0
  213. package/dist/memory/providers/in-memory.js +287 -0
  214. package/dist/memory/providers/in-memory.js.map +1 -0
  215. package/dist/memory/providers/postgres.d.ts +15 -0
  216. package/dist/memory/providers/postgres.d.ts.map +1 -0
  217. package/dist/memory/providers/postgres.js +495 -0
  218. package/dist/memory/providers/postgres.js.map +1 -0
  219. package/dist/memory/providers/redis.d.ts +18 -0
  220. package/dist/memory/providers/redis.d.ts.map +1 -0
  221. package/dist/memory/providers/redis.js +354 -0
  222. package/dist/memory/providers/redis.js.map +1 -0
  223. package/dist/memory/types.d.ts +296 -0
  224. package/dist/memory/types.d.ts.map +1 -0
  225. package/dist/memory/types.js +93 -0
  226. package/dist/memory/types.js.map +1 -0
  227. package/dist/policies/handoff.d.ts +16 -0
  228. package/dist/policies/handoff.d.ts.map +1 -0
  229. package/dist/policies/handoff.js +20 -0
  230. package/dist/policies/handoff.js.map +1 -0
  231. package/dist/policies/validation.d.ts +14 -0
  232. package/dist/policies/validation.d.ts.map +1 -0
  233. package/dist/policies/validation.js +92 -0
  234. package/dist/policies/validation.js.map +1 -0
  235. package/dist/providers/mcp.d.ts +17 -0
  236. package/dist/providers/mcp.d.ts.map +1 -0
  237. package/dist/providers/mcp.js +111 -0
  238. package/dist/providers/mcp.js.map +1 -0
  239. package/dist/providers/model.d.ts +3 -0
  240. package/dist/providers/model.d.ts.map +1 -0
  241. package/dist/providers/model.js +113 -0
  242. package/dist/providers/model.js.map +1 -0
  243. package/dist/server/index.d.ts +35 -0
  244. package/dist/server/index.d.ts.map +1 -0
  245. package/dist/server/index.js +66 -0
  246. package/dist/server/index.js.map +1 -0
  247. package/dist/server/server.d.ts +12 -0
  248. package/dist/server/server.d.ts.map +1 -0
  249. package/dist/server/server.js +394 -0
  250. package/dist/server/server.js.map +1 -0
  251. package/dist/server/types.d.ts +456 -0
  252. package/dist/server/types.d.ts.map +1 -0
  253. package/dist/server/types.js +75 -0
  254. package/dist/server/types.js.map +1 -0
  255. package/dist/test-utils/db-setup.d.ts +34 -0
  256. package/dist/test-utils/db-setup.d.ts.map +1 -0
  257. package/dist/test-utils/db-setup.js +149 -0
  258. package/dist/test-utils/db-setup.js.map +1 -0
  259. package/dist/utils/logger.d.ts +63 -0
  260. package/dist/utils/logger.d.ts.map +1 -0
  261. package/dist/utils/logger.js +199 -0
  262. package/dist/utils/logger.js.map +1 -0
  263. package/dist/utils/safe-math.d.ts +31 -0
  264. package/dist/utils/safe-math.d.ts.map +1 -0
  265. package/dist/utils/safe-math.js +86 -0
  266. package/dist/utils/safe-math.js.map +1 -0
  267. package/dist/visualization/example.d.ts +9 -0
  268. package/dist/visualization/example.d.ts.map +1 -0
  269. package/dist/visualization/example.js +236 -0
  270. package/dist/visualization/example.js.map +1 -0
  271. package/dist/visualization/graphviz.d.ts +42 -0
  272. package/dist/visualization/graphviz.d.ts.map +1 -0
  273. package/dist/visualization/graphviz.js +403 -0
  274. package/dist/visualization/graphviz.js.map +1 -0
  275. package/dist/visualization/index.d.ts +10 -0
  276. package/dist/visualization/index.d.ts.map +1 -0
  277. package/dist/visualization/index.js +12 -0
  278. package/dist/visualization/index.js.map +1 -0
  279. package/package.json +99 -0
@@ -0,0 +1,394 @@
1
+ /**
2
+ * JAF ADK Layer - Artifact Storage System
3
+ *
4
+ * Provides persistent key-value storage for agent conversations
5
+ * with support for multiple storage backends
6
+ */
7
+ // ========== In-Memory Storage ==========
8
+ export const createMemoryArtifactStorage = (config) => {
9
+ const storage = new Map();
10
+ const maxSize = config?.maxSize || 10 * 1024 * 1024; // 10MB default
11
+ const ttl = config?.ttl; // Optional TTL
12
+ // Helper to get session storage
13
+ const getSessionStorage = (sessionId) => {
14
+ if (!storage.has(sessionId)) {
15
+ storage.set(sessionId, new Map());
16
+ }
17
+ return storage.get(sessionId);
18
+ };
19
+ // Helper to check TTL
20
+ const isExpired = (artifact) => {
21
+ if (!ttl)
22
+ return false;
23
+ const age = Date.now() - artifact.metadata.lastModified.getTime();
24
+ return age > ttl * 1000;
25
+ };
26
+ // Helper to estimate size
27
+ const estimateSize = (value) => {
28
+ try {
29
+ return JSON.stringify(value).length;
30
+ }
31
+ catch {
32
+ return 0;
33
+ }
34
+ };
35
+ return {
36
+ get: async (sessionId, key) => {
37
+ const sessionStorage = getSessionStorage(sessionId);
38
+ const artifact = sessionStorage.get(key);
39
+ if (!artifact)
40
+ return null;
41
+ if (isExpired(artifact)) {
42
+ sessionStorage.delete(key);
43
+ return null;
44
+ }
45
+ return artifact;
46
+ },
47
+ set: async (sessionId, key, value, metadata) => {
48
+ const sessionStorage = getSessionStorage(sessionId);
49
+ const size = estimateSize(value);
50
+ if (size > maxSize) {
51
+ throw new Error(`Artifact size (${size} bytes) exceeds maximum allowed size (${maxSize} bytes)`);
52
+ }
53
+ const now = new Date();
54
+ const artifact = {
55
+ key,
56
+ value,
57
+ metadata: {
58
+ created: metadata?.created || sessionStorage.get(key)?.metadata.created || now,
59
+ lastModified: now,
60
+ contentType: metadata?.contentType,
61
+ size,
62
+ tags: metadata?.tags
63
+ }
64
+ };
65
+ sessionStorage.set(key, artifact);
66
+ return artifact;
67
+ },
68
+ delete: async (sessionId, key) => {
69
+ const sessionStorage = getSessionStorage(sessionId);
70
+ return sessionStorage.delete(key);
71
+ },
72
+ list: async (sessionId) => {
73
+ const sessionStorage = getSessionStorage(sessionId);
74
+ const artifacts = [];
75
+ for (const [key, artifact] of sessionStorage.entries()) {
76
+ if (!isExpired(artifact)) {
77
+ artifacts.push(artifact);
78
+ }
79
+ else {
80
+ sessionStorage.delete(key);
81
+ }
82
+ }
83
+ return artifacts;
84
+ },
85
+ clear: async (sessionId) => {
86
+ storage.delete(sessionId);
87
+ },
88
+ exists: async (sessionId, key) => {
89
+ const sessionStorage = getSessionStorage(sessionId);
90
+ const artifact = sessionStorage.get(key);
91
+ if (!artifact)
92
+ return false;
93
+ if (isExpired(artifact)) {
94
+ sessionStorage.delete(key);
95
+ return false;
96
+ }
97
+ return true;
98
+ }
99
+ };
100
+ };
101
+ // ========== Redis Storage ==========
102
+ export const createRedisArtifactStorage = (config) => {
103
+ let redis;
104
+ const keyPrefix = config.keyPrefix || 'jaf:artifacts:';
105
+ const maxSize = config.maxSize || 10 * 1024 * 1024; // 10MB default
106
+ const ttl = config.ttl; // Optional TTL in seconds
107
+ try {
108
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
109
+ const Redis = require('ioredis');
110
+ redis = new Redis({
111
+ host: config.host,
112
+ port: config.port,
113
+ password: config.password,
114
+ db: config.database || 0
115
+ });
116
+ }
117
+ catch (error) {
118
+ throw new Error('Redis artifact storage requires ioredis to be installed');
119
+ }
120
+ const getKey = (sessionId, key) => `${keyPrefix}${sessionId}:${key}`;
121
+ const getSessionPattern = (sessionId) => `${keyPrefix}${sessionId}:*`;
122
+ return {
123
+ get: async (sessionId, key) => {
124
+ const redisKey = getKey(sessionId, key);
125
+ const data = await redis.get(redisKey);
126
+ if (!data)
127
+ return null;
128
+ try {
129
+ return JSON.parse(data);
130
+ }
131
+ catch {
132
+ return null;
133
+ }
134
+ },
135
+ set: async (sessionId, key, value, metadata) => {
136
+ const now = new Date();
137
+ const artifact = {
138
+ key,
139
+ value,
140
+ metadata: {
141
+ created: metadata?.created || now,
142
+ lastModified: now,
143
+ contentType: metadata?.contentType,
144
+ size: JSON.stringify(value).length,
145
+ tags: metadata?.tags
146
+ }
147
+ };
148
+ const serialized = JSON.stringify(artifact);
149
+ if (serialized.length > maxSize) {
150
+ throw new Error(`Artifact size exceeds maximum allowed size`);
151
+ }
152
+ const redisKey = getKey(sessionId, key);
153
+ if (ttl) {
154
+ await redis.setex(redisKey, ttl, serialized);
155
+ }
156
+ else {
157
+ await redis.set(redisKey, serialized);
158
+ }
159
+ return artifact;
160
+ },
161
+ delete: async (sessionId, key) => {
162
+ const redisKey = getKey(sessionId, key);
163
+ const result = await redis.del(redisKey);
164
+ return result > 0;
165
+ },
166
+ list: async (sessionId) => {
167
+ const pattern = getSessionPattern(sessionId);
168
+ const keys = await redis.keys(pattern);
169
+ if (keys.length === 0)
170
+ return [];
171
+ const values = await redis.mget(...keys);
172
+ const artifacts = [];
173
+ for (const value of values) {
174
+ if (value) {
175
+ try {
176
+ artifacts.push(JSON.parse(value));
177
+ }
178
+ catch {
179
+ // Skip invalid artifacts
180
+ }
181
+ }
182
+ }
183
+ return artifacts;
184
+ },
185
+ clear: async (sessionId) => {
186
+ const pattern = getSessionPattern(sessionId);
187
+ const keys = await redis.keys(pattern);
188
+ if (keys.length > 0) {
189
+ await redis.del(...keys);
190
+ }
191
+ },
192
+ exists: async (sessionId, key) => {
193
+ const redisKey = getKey(sessionId, key);
194
+ const exists = await redis.exists(redisKey);
195
+ return exists > 0;
196
+ }
197
+ };
198
+ };
199
+ // ========== PostgreSQL Storage ==========
200
+ export const createPostgresArtifactStorage = (config) => {
201
+ let pool;
202
+ const tableName = config.tableName || 'jaf_artifacts';
203
+ // const maxSize = config.maxSize || 10 * 1024 * 1024; // TODO: Implement size limit checking
204
+ const ttl = config.ttl;
205
+ try {
206
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
207
+ const { Pool } = require('pg');
208
+ pool = new Pool({
209
+ connectionString: config.connectionString
210
+ });
211
+ }
212
+ catch (error) {
213
+ throw new Error('PostgreSQL artifact storage requires pg to be installed');
214
+ }
215
+ async function initializeTable() {
216
+ const query = `
217
+ CREATE TABLE IF NOT EXISTS ${tableName} (
218
+ session_id VARCHAR(255) NOT NULL,
219
+ key VARCHAR(255) NOT NULL,
220
+ value JSONB NOT NULL,
221
+ metadata JSONB NOT NULL,
222
+ created_at TIMESTAMP WITH TIME ZONE NOT NULL,
223
+ modified_at TIMESTAMP WITH TIME ZONE NOT NULL,
224
+ expires_at TIMESTAMP WITH TIME ZONE,
225
+ PRIMARY KEY (session_id, key)
226
+ );
227
+ CREATE INDEX IF NOT EXISTS idx_session_id ON ${tableName} (session_id);
228
+ CREATE INDEX IF NOT EXISTS idx_expires_at ON ${tableName} (expires_at);
229
+ `;
230
+ await pool.query(query);
231
+ }
232
+ // Initialize table asynchronously
233
+ const initPromise = initializeTable().catch(error => {
234
+ console.error('Failed to initialize PostgreSQL artifact storage table:', error);
235
+ throw error;
236
+ });
237
+ return {
238
+ get: async (sessionId, key) => {
239
+ await initPromise; // Ensure table exists
240
+ const query = `
241
+ SELECT * FROM ${tableName}
242
+ WHERE session_id = $1 AND key = $2
243
+ AND (expires_at IS NULL OR expires_at > NOW())
244
+ `;
245
+ const result = await pool.query(query, [sessionId, key]);
246
+ if (result.rows.length === 0)
247
+ return null;
248
+ const row = result.rows[0];
249
+ return {
250
+ key: row.key,
251
+ value: row.value,
252
+ metadata: {
253
+ ...row.metadata,
254
+ created: new Date(row.created_at),
255
+ lastModified: new Date(row.modified_at)
256
+ }
257
+ };
258
+ },
259
+ set: async (sessionId, key, value, metadata) => {
260
+ await initPromise; // Ensure table exists
261
+ const now = new Date();
262
+ const expiresAt = ttl ? new Date(now.getTime() + ttl * 1000) : null;
263
+ const artifact = {
264
+ key,
265
+ value,
266
+ metadata: {
267
+ created: metadata?.created || now,
268
+ lastModified: now,
269
+ contentType: metadata?.contentType,
270
+ size: JSON.stringify(value).length,
271
+ tags: metadata?.tags
272
+ }
273
+ };
274
+ const query = `
275
+ INSERT INTO ${tableName} (session_id, key, value, metadata, created_at, modified_at, expires_at)
276
+ VALUES ($1, $2, $3, $4, $5, $6, $7)
277
+ ON CONFLICT (session_id, key)
278
+ DO UPDATE SET
279
+ value = $3,
280
+ metadata = $4,
281
+ modified_at = $6,
282
+ expires_at = $7
283
+ RETURNING *
284
+ `;
285
+ await pool.query(query, [
286
+ sessionId,
287
+ key,
288
+ JSON.stringify(value),
289
+ JSON.stringify(artifact.metadata),
290
+ artifact.metadata.created,
291
+ now,
292
+ expiresAt
293
+ ]);
294
+ return artifact;
295
+ },
296
+ delete: async (sessionId, key) => {
297
+ await initPromise; // Ensure table exists
298
+ const query = `
299
+ DELETE FROM ${tableName}
300
+ WHERE session_id = $1 AND key = $2
301
+ `;
302
+ const result = await pool.query(query, [sessionId, key]);
303
+ return result.rowCount > 0;
304
+ },
305
+ list: async (sessionId) => {
306
+ await initPromise; // Ensure table exists
307
+ const query = `
308
+ SELECT * FROM ${tableName}
309
+ WHERE session_id = $1
310
+ AND (expires_at IS NULL OR expires_at > NOW())
311
+ ORDER BY modified_at DESC
312
+ `;
313
+ const result = await pool.query(query, [sessionId]);
314
+ return result.rows.map((row) => ({
315
+ key: row.key,
316
+ value: row.value,
317
+ metadata: {
318
+ ...row.metadata,
319
+ created: new Date(row.created_at),
320
+ lastModified: new Date(row.modified_at)
321
+ }
322
+ }));
323
+ },
324
+ clear: async (sessionId) => {
325
+ await initPromise; // Ensure table exists
326
+ const query = `
327
+ DELETE FROM ${tableName}
328
+ WHERE session_id = $1
329
+ `;
330
+ await pool.query(query, [sessionId]);
331
+ },
332
+ exists: async (sessionId, key) => {
333
+ await initPromise; // Ensure table exists
334
+ const query = `
335
+ SELECT 1 FROM ${tableName}
336
+ WHERE session_id = $1 AND key = $2
337
+ AND (expires_at IS NULL OR expires_at > NOW())
338
+ LIMIT 1
339
+ `;
340
+ const result = await pool.query(query, [sessionId, key]);
341
+ return result.rows.length > 0;
342
+ }
343
+ };
344
+ };
345
+ // ========== Session Integration ==========
346
+ /**
347
+ * Helper functions to integrate artifacts with sessions
348
+ */
349
+ export const getSessionArtifact = (session, key) => {
350
+ return session.artifacts[key] || null;
351
+ };
352
+ export const setSessionArtifact = (session, key, value) => {
353
+ return {
354
+ ...session,
355
+ artifacts: {
356
+ ...session.artifacts,
357
+ [key]: value
358
+ }
359
+ };
360
+ };
361
+ export const deleteSessionArtifact = (session, key) => {
362
+ const { [key]: _, ...rest } = session.artifacts;
363
+ return {
364
+ ...session,
365
+ artifacts: rest
366
+ };
367
+ };
368
+ export const clearSessionArtifacts = (session) => {
369
+ return {
370
+ ...session,
371
+ artifacts: {}
372
+ };
373
+ };
374
+ export const listSessionArtifacts = (session) => {
375
+ return Object.keys(session.artifacts);
376
+ };
377
+ // ========== Factory Function ==========
378
+ export const createArtifactStorage = (config) => {
379
+ switch (config.type) {
380
+ case 'memory':
381
+ return createMemoryArtifactStorage(config.config);
382
+ case 'redis':
383
+ return createRedisArtifactStorage(config.config);
384
+ case 'postgres':
385
+ return createPostgresArtifactStorage(config.config);
386
+ case 's3':
387
+ throw new Error('S3 artifact storage not yet implemented');
388
+ case 'gcs':
389
+ throw new Error('GCS artifact storage not yet implemented');
390
+ default:
391
+ throw new Error(`Unknown artifact storage type: ${config.type}`);
392
+ }
393
+ };
394
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adk/artifacts/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * JAF ADK Layer - LLM Configuration Bridge
3
+ *
4
+ * Functional configuration system for LLM providers following JAF patterns
5
+ */
6
+ import { Model } from '../types.js';
7
+ import type { AdkLLMServiceConfig } from '../providers/llm-service.js';
8
+ export interface AdkLLMConfig {
9
+ provider: 'litellm' | 'openai' | 'anthropic' | 'google';
10
+ baseUrl?: string;
11
+ apiKey?: string;
12
+ defaultModel?: Model | string;
13
+ timeout?: number;
14
+ retries?: number;
15
+ temperature?: number;
16
+ maxTokens?: number;
17
+ streaming?: boolean;
18
+ }
19
+ export interface AdkProviderConfig {
20
+ name: string;
21
+ baseUrl: string;
22
+ apiKey: string;
23
+ models: AdkModelConfig[];
24
+ rateLimits?: AdkRateLimitConfig;
25
+ features?: AdkProviderFeatures;
26
+ }
27
+ export interface AdkModelConfig {
28
+ name: string;
29
+ displayName: string;
30
+ contextWindow: number;
31
+ maxTokens: number;
32
+ supportsFunctionCalling: boolean;
33
+ supportsStreaming: boolean;
34
+ costPer1KTokens?: {
35
+ input: number;
36
+ output: number;
37
+ };
38
+ }
39
+ export interface AdkRateLimitConfig {
40
+ requestsPerMinute?: number;
41
+ tokensPerMinute?: number;
42
+ concurrent?: number;
43
+ }
44
+ export interface AdkProviderFeatures {
45
+ streaming: boolean;
46
+ functionCalling: boolean;
47
+ multimodal: boolean;
48
+ vision: boolean;
49
+ jsonMode: boolean;
50
+ }
51
+ export interface AdkEnvironmentConfig {
52
+ litellmUrl?: string;
53
+ litellmApiKey?: string;
54
+ openaiApiKey?: string;
55
+ anthropicApiKey?: string;
56
+ googleApiKey?: string;
57
+ azureApiKey?: string;
58
+ azureEndpoint?: string;
59
+ defaultProvider?: string;
60
+ defaultModel?: string;
61
+ }
62
+ export declare const DEFAULT_PROVIDER_CONFIGS: Record<string, AdkProviderConfig>;
63
+ export declare const loadEnvironmentConfig: () => AdkEnvironmentConfig;
64
+ export declare const createAdkLLMConfig: (provider: string, overrides?: Partial<AdkLLMConfig>) => AdkLLMConfig;
65
+ export declare const createAdkLLMServiceConfig: (config: AdkLLMConfig) => AdkLLMServiceConfig;
66
+ export declare const getModelConfig: (modelName: string) => AdkModelConfig | undefined;
67
+ export declare const getModelsForProvider: (provider: string) => AdkModelConfig[];
68
+ export declare const getAllAvailableModels: () => AdkModelConfig[];
69
+ export declare const getProviderForModel: (modelName: string) => string | undefined;
70
+ export declare const mapAdkModelToProviderModel: (adkModel: Model | string) => string;
71
+ export declare const validateAdkLLMConfig: (config: AdkLLMConfig) => string[];
72
+ export declare const createDefaultAdkLLMConfig: () => AdkLLMConfig;
73
+ export declare const createAdkLLMConfigFromEnvironment: () => AdkLLMConfig;
74
+ export declare const debugAdkLLMConfig: (config: AdkLLMConfig) => void;
75
+ //# sourceMappingURL=llm-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-config.d.ts","sourceRoot":"","sources":["../../../src/adk/config/llm-config.ts"],"names":[],"mappings":"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"}