@agnt-sdk/studio 0.0.1

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 (78) hide show
  1. package/README.md +162 -0
  2. package/dist/AgntExecutor.d.ts +56 -0
  3. package/dist/AgntExecutor.d.ts.map +1 -0
  4. package/dist/AgntExecutor.js +117 -0
  5. package/dist/AgntExecutor.js.map +1 -0
  6. package/dist/BaseExecutor.d.ts +69 -0
  7. package/dist/BaseExecutor.d.ts.map +1 -0
  8. package/dist/BaseExecutor.js +528 -0
  9. package/dist/BaseExecutor.js.map +1 -0
  10. package/dist/ImageCache.d.ts +94 -0
  11. package/dist/ImageCache.d.ts.map +1 -0
  12. package/dist/ImageCache.js +232 -0
  13. package/dist/ImageCache.js.map +1 -0
  14. package/dist/cli/commands/init.d.ts +5 -0
  15. package/dist/cli/commands/init.d.ts.map +1 -0
  16. package/dist/cli/commands/init.js +47 -0
  17. package/dist/cli/commands/init.js.map +1 -0
  18. package/dist/cli/commands/pull.d.ts +10 -0
  19. package/dist/cli/commands/pull.d.ts.map +1 -0
  20. package/dist/cli/commands/pull.js +82 -0
  21. package/dist/cli/commands/pull.js.map +1 -0
  22. package/dist/cli/index.d.ts +6 -0
  23. package/dist/cli/index.d.ts.map +1 -0
  24. package/dist/cli/index.js +28 -0
  25. package/dist/cli/index.js.map +1 -0
  26. package/dist/cli/utils/api.d.ts +38 -0
  27. package/dist/cli/utils/api.d.ts.map +1 -0
  28. package/dist/cli/utils/api.js +44 -0
  29. package/dist/cli/utils/api.js.map +1 -0
  30. package/dist/cli/utils/config.d.ts +5 -0
  31. package/dist/cli/utils/config.d.ts.map +1 -0
  32. package/dist/cli/utils/config.js +5 -0
  33. package/dist/cli/utils/config.js.map +1 -0
  34. package/dist/conditions.d.ts +14 -0
  35. package/dist/conditions.d.ts.map +1 -0
  36. package/dist/conditions.js +59 -0
  37. package/dist/conditions.js.map +1 -0
  38. package/dist/executorFactory.d.ts +10 -0
  39. package/dist/executorFactory.d.ts.map +1 -0
  40. package/dist/executorFactory.js +45 -0
  41. package/dist/executorFactory.js.map +1 -0
  42. package/dist/index.d.ts +21 -0
  43. package/dist/index.d.ts.map +1 -0
  44. package/dist/index.js +26 -0
  45. package/dist/index.js.map +1 -0
  46. package/dist/providers/anthropic.d.ts +22 -0
  47. package/dist/providers/anthropic.d.ts.map +1 -0
  48. package/dist/providers/anthropic.js +280 -0
  49. package/dist/providers/anthropic.js.map +1 -0
  50. package/dist/providers/bedrock.d.ts +23 -0
  51. package/dist/providers/bedrock.d.ts.map +1 -0
  52. package/dist/providers/bedrock.js +281 -0
  53. package/dist/providers/bedrock.js.map +1 -0
  54. package/dist/providers/deepseek.d.ts +22 -0
  55. package/dist/providers/deepseek.d.ts.map +1 -0
  56. package/dist/providers/deepseek.js +193 -0
  57. package/dist/providers/deepseek.js.map +1 -0
  58. package/dist/providers/google.d.ts +22 -0
  59. package/dist/providers/google.d.ts.map +1 -0
  60. package/dist/providers/google.js +357 -0
  61. package/dist/providers/google.js.map +1 -0
  62. package/dist/providers/openai.d.ts +22 -0
  63. package/dist/providers/openai.d.ts.map +1 -0
  64. package/dist/providers/openai.js +194 -0
  65. package/dist/providers/openai.js.map +1 -0
  66. package/dist/systemTools.d.ts +6 -0
  67. package/dist/systemTools.d.ts.map +1 -0
  68. package/dist/systemTools.js +15 -0
  69. package/dist/systemTools.js.map +1 -0
  70. package/dist/tracing.d.ts +32 -0
  71. package/dist/tracing.d.ts.map +1 -0
  72. package/dist/tracing.js +38 -0
  73. package/dist/tracing.js.map +1 -0
  74. package/dist/types.d.ts +280 -0
  75. package/dist/types.d.ts.map +1 -0
  76. package/dist/types.js +5 -0
  77. package/dist/types.js.map +1 -0
  78. package/package.json +76 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageCache.d.ts","sourceRoot":"","sources":["../src/ImageCache.ts"],"names":[],"mappings":"AAEA,UAAU,gBAAgB;IACxB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,mBAAoB,SAAQ,UAAU;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,aAAa;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,OAAO,OAAO,UAAU;;IAC7B,OAAO,CAAC,GAAG,CAA4C;IACvD,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,KAAK,CAAa;gBAEd,EAAE,GAAG,EAAE,YAAkB,EAAE,GAAE,gBAAqB;IA+C9D;;;OAGG;IACH,GAAG,CAAC,WAAW,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI;IAoBnD;;OAEG;IACH,GAAG,CAAC,WAAW,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,GAAG,IAAI;IAiClE;;OAEG;IACH,GAAG,CAAC,WAAW,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IAQhD;;;OAGG;IACH,MAAM,CAAC,WAAW,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAOpD;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb;;OAEG;IACH,QAAQ,IAAI,mBAAmB;IAa/B;;OAEG;IACH,UAAU,IAAI,IAAI;IASlB;;;OAGG;IACH,aAAa,IAAI,UAAU;IA4B3B;;OAEG;IACH,SAAS,IAAI,IAAI;IAWjB;;OAEG;IACH,gBAAgB,IAAI,aAAa;CAkBlC"}
@@ -0,0 +1,232 @@
1
+ import crypto from "crypto";
2
+ /**
3
+ * ImageCache - Caches processed images per provider format
4
+ *
5
+ * Prevents reprocessing the same image when switching providers multiple times.
6
+ * Stores images in multiple formats (anthropic, openai, bedrock) keyed by source URL.
7
+ *
8
+ * Example:
9
+ * - Original: https://example.com/image.jpg
10
+ * - Cache stores:
11
+ * - anthropic: "data:image/jpeg;base64,..."
12
+ * - openai: "data:image/jpeg;base64,..." (or original URL)
13
+ * - bedrock: { type: "image", image: { format: "jpeg", source: { bytes: Uint8Array } } }
14
+ *
15
+ * Cache key: SHA256 hash of source URL for consistent lookup
16
+ */
17
+ export default class ImageCache {
18
+ log;
19
+ maxCacheSize;
20
+ cache;
21
+ stats;
22
+ constructor({ log, maxCacheSize = 100 } = {}) {
23
+ this.log = log || console.log;
24
+ this.maxCacheSize = maxCacheSize;
25
+ // Cache structure: { [imageKey]: { [provider]: processedImage } }
26
+ // imageKey = hash of source URL/content
27
+ // provider = "anthropic" | "openai" | "bedrock" | "deepseek"
28
+ this.cache = new Map();
29
+ // Track cache statistics
30
+ this.stats = {
31
+ hits: 0,
32
+ misses: 0,
33
+ stores: 0,
34
+ evictions: 0
35
+ };
36
+ }
37
+ /**
38
+ * Generate cache key from image source
39
+ * Uses SHA256 hash for consistent, collision-resistant keys
40
+ */
41
+ #generateKey(imageSource) {
42
+ // Handle different input types
43
+ let sourceString;
44
+ if (typeof imageSource === 'string') {
45
+ // URL or data URL
46
+ sourceString = imageSource;
47
+ }
48
+ else if (imageSource?.image_url) {
49
+ // { image_url: "..." } format
50
+ sourceString = typeof imageSource.image_url === 'string'
51
+ ? imageSource.image_url
52
+ : imageSource.image_url.url;
53
+ }
54
+ else if (imageSource?.image?.source?.bytes) {
55
+ // Bedrock format - hash the bytes
56
+ const bytes = imageSource.image.source.bytes;
57
+ return crypto.createHash('sha256').update(bytes).digest('hex');
58
+ }
59
+ else {
60
+ this.log("[ImageCache] Unknown image source format:", typeof imageSource);
61
+ return null;
62
+ }
63
+ // For URLs and data URLs, hash the string
64
+ return crypto.createHash('sha256').update(sourceString).digest('hex');
65
+ }
66
+ /**
67
+ * Get cached image for specific provider
68
+ * Returns null if not found
69
+ */
70
+ get(imageSource, provider) {
71
+ const key = this.#generateKey(imageSource);
72
+ if (!key)
73
+ return null;
74
+ const entry = this.cache.get(key);
75
+ if (!entry || !entry[provider]) {
76
+ this.stats.misses++;
77
+ return null;
78
+ }
79
+ this.stats.hits++;
80
+ this.log(`[ImageCache] HIT - ${provider} (${key.substring(0, 8)}...)`);
81
+ // Update LRU - move to end
82
+ this.cache.delete(key);
83
+ this.cache.set(key, entry);
84
+ return entry[provider];
85
+ }
86
+ /**
87
+ * Store processed image for specific provider
88
+ */
89
+ set(imageSource, provider, processedImage) {
90
+ const key = this.#generateKey(imageSource);
91
+ if (!key)
92
+ return;
93
+ // Get or create entry for this image
94
+ let entry = this.cache.get(key);
95
+ if (!entry) {
96
+ entry = {};
97
+ }
98
+ // Store processed image for this provider
99
+ entry[provider] = processedImage;
100
+ // Remove old entry if exists (for LRU)
101
+ this.cache.delete(key);
102
+ // Add to end (most recently used)
103
+ this.cache.set(key, entry);
104
+ this.stats.stores++;
105
+ this.log(`[ImageCache] STORE - ${provider} (${key.substring(0, 8)}...)`);
106
+ // Evict oldest if cache is full
107
+ if (this.cache.size > this.maxCacheSize) {
108
+ const firstKey = this.cache.keys().next().value;
109
+ if (firstKey) {
110
+ this.cache.delete(firstKey);
111
+ this.stats.evictions++;
112
+ this.log(`[ImageCache] EVICT - Cache size exceeded (${firstKey.substring(0, 8)}...)`);
113
+ }
114
+ }
115
+ }
116
+ /**
117
+ * Check if image is cached for specific provider
118
+ */
119
+ has(imageSource, provider) {
120
+ const key = this.#generateKey(imageSource);
121
+ if (!key)
122
+ return false;
123
+ const entry = this.cache.get(key);
124
+ return !!(entry && entry[provider]);
125
+ }
126
+ /**
127
+ * Get all cached formats for an image
128
+ * Returns object with available providers
129
+ */
130
+ getAll(imageSource) {
131
+ const key = this.#generateKey(imageSource);
132
+ if (!key)
133
+ return null;
134
+ return this.cache.get(key) || null;
135
+ }
136
+ /**
137
+ * Clear entire cache
138
+ */
139
+ clear() {
140
+ const size = this.cache.size;
141
+ this.cache.clear();
142
+ this.log(`[ImageCache] CLEAR - Removed ${size} entries`);
143
+ }
144
+ /**
145
+ * Get cache statistics
146
+ */
147
+ getStats() {
148
+ const hitRateNum = this.stats.hits + this.stats.misses > 0
149
+ ? (this.stats.hits / (this.stats.hits + this.stats.misses) * 100).toFixed(2)
150
+ : '0';
151
+ return {
152
+ ...this.stats,
153
+ hitRate: `${hitRateNum}%`,
154
+ cacheSize: this.cache.size,
155
+ maxSize: this.maxCacheSize
156
+ };
157
+ }
158
+ /**
159
+ * Reset statistics
160
+ */
161
+ resetStats() {
162
+ this.stats = {
163
+ hits: 0,
164
+ misses: 0,
165
+ stores: 0,
166
+ evictions: 0
167
+ };
168
+ }
169
+ /**
170
+ * Get cache size in bytes (approximate)
171
+ * Useful for monitoring memory usage
172
+ */
173
+ getMemorySize() {
174
+ let totalSize = 0;
175
+ for (const entry of this.cache.values()) {
176
+ for (const image of Object.values(entry)) {
177
+ if (typeof image === 'string') {
178
+ // Data URL or regular URL
179
+ totalSize += image.length * 2; // UTF-16 encoding
180
+ }
181
+ else if (image?.image?.source?.bytes) {
182
+ // Bedrock format
183
+ totalSize += image.image.source.bytes.length;
184
+ }
185
+ else if (image?.image_url) {
186
+ // OpenAI/Anthropic format
187
+ const url = typeof image.image_url === 'string'
188
+ ? image.image_url
189
+ : image.image_url.url;
190
+ totalSize += url.length * 2;
191
+ }
192
+ }
193
+ }
194
+ return {
195
+ bytes: totalSize,
196
+ kb: (totalSize / 1024).toFixed(2),
197
+ mb: (totalSize / 1024 / 1024).toFixed(2)
198
+ };
199
+ }
200
+ /**
201
+ * Log cache status
202
+ */
203
+ logStatus() {
204
+ const stats = this.getStats();
205
+ const memory = this.getMemorySize();
206
+ this.log("[ImageCache] Status:");
207
+ this.log(` Entries: ${stats.cacheSize}/${stats.maxSize}`);
208
+ this.log(` Hits: ${stats.hits} | Misses: ${stats.misses} | Hit Rate: ${stats.hitRate}`);
209
+ this.log(` Stores: ${stats.stores} | Evictions: ${stats.evictions}`);
210
+ this.log(` Memory: ${memory.mb} MB (${memory.kb} KB)`);
211
+ }
212
+ /**
213
+ * Estimate provider-specific memory usage
214
+ */
215
+ getProviderStats() {
216
+ const providerCounts = {
217
+ anthropic: 0,
218
+ openai: 0,
219
+ bedrock: 0,
220
+ deepseek: 0
221
+ };
222
+ for (const entry of this.cache.values()) {
223
+ for (const providerKey of Object.keys(entry)) {
224
+ if (providerCounts[providerKey] !== undefined) {
225
+ providerCounts[providerKey]++;
226
+ }
227
+ }
228
+ }
229
+ return providerCounts;
230
+ }
231
+ }
232
+ //# sourceMappingURL=ImageCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageCache.js","sourceRoot":"","sources":["../src/ImageCache.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAiC5B;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,OAAO,OAAO,UAAU;IACrB,GAAG,CAA4C;IAC/C,YAAY,CAAS;IACrB,KAAK,CAAmC;IACxC,KAAK,CAAa;IAE1B,YAAY,EAAE,GAAG,EAAE,YAAY,GAAG,GAAG,KAAuB,EAAE;QAC5D,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QAEjC,kEAAkE;QAClE,wCAAwC;QACxC,6DAA6D;QAC7D,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;QAEvB,yBAAyB;QACzB,IAAI,CAAC,KAAK,GAAG;YACX,IAAI,EAAE,CAAC;YACP,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,CAAC;YACT,SAAS,EAAE,CAAC;SACb,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,WAAgB;QAC3B,+BAA+B;QAC/B,IAAI,YAAoB,CAAC;QAEzB,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACpC,kBAAkB;YAClB,YAAY,GAAG,WAAW,CAAC;QAC7B,CAAC;aAAM,IAAI,WAAW,EAAE,SAAS,EAAE,CAAC;YAClC,8BAA8B;YAC9B,YAAY,GAAG,OAAO,WAAW,CAAC,SAAS,KAAK,QAAQ;gBACtD,CAAC,CAAC,WAAW,CAAC,SAAS;gBACvB,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC;QAChC,CAAC;aAAM,IAAI,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;YAC7C,kCAAkC;YAClC,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;YAC7C,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACjE,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,2CAA2C,EAAE,OAAO,WAAW,CAAC,CAAC;YAC1E,OAAO,IAAI,CAAC;QACd,CAAC;QAED,0CAA0C;QAC1C,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACxE,CAAC;IAED;;;OAGG;IACH,GAAG,CAAC,WAAgB,EAAE,QAAgB;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAC3C,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QAEtB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAClB,IAAI,CAAC,GAAG,CAAC,sBAAsB,QAAQ,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;QAEvE,2BAA2B;QAC3B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAE3B,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,WAAgB,EAAE,QAAgB,EAAE,cAAmB;QACzD,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAC3C,IAAI,CAAC,GAAG;YAAE,OAAO;QAEjB,qCAAqC;QACrC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,EAAE,CAAC;QACb,CAAC;QAED,0CAA0C;QAC1C,KAAK,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAC;QAEjC,uCAAuC;QACvC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAEvB,kCAAkC;QAClC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAE3B,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACpB,IAAI,CAAC,GAAG,CAAC,wBAAwB,QAAQ,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;QAEzE,gCAAgC;QAChC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YAChD,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;gBACvB,IAAI,CAAC,GAAG,CAAC,6CAA6C,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;YACxF,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,WAAgB,EAAE,QAAgB;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAC3C,IAAI,CAAC,GAAG;YAAE,OAAO,KAAK,CAAC;QAEvB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IACtC,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,WAAgB;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAC3C,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QAEtB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,KAAK;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,GAAG,CAAC,gCAAgC,IAAI,UAAU,CAAC,CAAC;IAC3D,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;YACxD,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YAC5E,CAAC,CAAC,GAAG,CAAC;QAER,OAAO;YACL,GAAG,IAAI,CAAC,KAAK;YACb,OAAO,EAAE,GAAG,UAAU,GAAG;YACzB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;YAC1B,OAAO,EAAE,IAAI,CAAC,YAAY;SAC3B,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,UAAU;QACR,IAAI,CAAC,KAAK,GAAG;YACX,IAAI,EAAE,CAAC;YACP,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,CAAC;YACT,SAAS,EAAE,CAAC;SACb,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,aAAa;QACX,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACxC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAC9B,0BAA0B;oBAC1B,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,kBAAkB;gBACnD,CAAC;qBAAM,IAAI,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;oBACvC,iBAAiB;oBACjB,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;gBAC/C,CAAC;qBAAM,IAAI,KAAK,EAAE,SAAS,EAAE,CAAC;oBAC5B,0BAA0B;oBAC1B,MAAM,GAAG,GAAG,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ;wBAC7C,CAAC,CAAC,KAAK,CAAC,SAAS;wBACjB,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC;oBACxB,SAAS,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO;YACL,KAAK,EAAE,SAAS;YAChB,EAAE,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACjC,EAAE,EAAE,CAAC,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;SACzC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,SAAS;QACP,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAEpC,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACjC,IAAI,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,GAAG,CAAC,WAAW,KAAK,CAAC,IAAI,cAAc,KAAK,CAAC,MAAM,gBAAgB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACzF,IAAI,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,MAAM,iBAAiB,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,EAAE,QAAQ,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,MAAM,cAAc,GAAkB;YACpC,SAAS,EAAE,CAAC;YACZ,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,CAAC;SACZ,CAAC;QAEF,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACxC,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7C,IAAI,cAAc,CAAC,WAAkC,CAAC,KAAK,SAAS,EAAE,CAAC;oBACrE,cAAc,CAAC,WAAkC,CAAC,EAAE,CAAC;gBACvD,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,cAAc,CAAC;IACxB,CAAC;CACF"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * agnt init — create agnt.config.js in the current directory
3
+ */
4
+ export declare function runInit(): Promise<void>;
5
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CA6C7C"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * agnt init — create agnt.config.js in the current directory
3
+ */
4
+ import { getConfigPath } from '../utils/config.js';
5
+ export async function runInit() {
6
+ const existing = await getConfigPath();
7
+ if (existing) {
8
+ console.log(`agnt.config.js already exists at: ${existing}`);
9
+ return;
10
+ }
11
+ const { join } = await import('path');
12
+ const { writeFile } = await import('fs/promises');
13
+ const configPath = join(process.cwd(), 'agnt.config.js');
14
+ const template = `/**
15
+ * Agnt Configuration
16
+ *
17
+ * Docs: https://agnt.ai/docs/sdk
18
+ *
19
+ * WARNING: Keep this file out of version control if it contains secrets.
20
+ * Add agnt.config.js to your .gitignore when using serviceKey directly.
21
+ */
22
+
23
+ export default {
24
+ // Service key for private/unlisted prompts
25
+ // Get yours from: https://app.agnt.ai/settings/api-keys
26
+ serviceKey: process.env.AGNT_SERVICE_KEY || '',
27
+
28
+ // Agnt API base URL
29
+ apiUrl: 'https://api.agnt.ai',
30
+
31
+ // Directory where pulled prompt manifests are saved
32
+ outputDir: './agnt/prompts',
33
+
34
+ // API mode:
35
+ // false — use local pulled manifests (fast, offline-capable)
36
+ // true — fetch manifests from API on every execution (always up-to-date)
37
+ apiMode: false,
38
+
39
+ // Maximum messages in the agent loop before throwing (prevents infinite loops)
40
+ maxMessages: 50,
41
+ };
42
+ `;
43
+ await writeFile(configPath, template, 'utf-8');
44
+ console.log(`Created agnt.config.js`);
45
+ console.log(`Next: agnt pull <accountSlug>/<promptSlug>`);
46
+ }
47
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,CAAC,KAAK,UAAU,OAAO;IAC3B,MAAM,QAAQ,GAAG,MAAM,aAAa,EAAE,CAAC;IACvC,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,qCAAqC,QAAQ,EAAE,CAAC,CAAC;QAC7D,OAAO;IACT,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IAElD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAEzD,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BlB,CAAC;IAEA,MAAM,SAAS,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;AAC5D,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * agnt pull — fetch and save v2 manifest(s) to the local outputDir
3
+ *
4
+ * Usage:
5
+ * agnt pull skej/contact-collector # pull one prompt
6
+ * agnt pull skej/* # pull all public from account
7
+ * agnt pull # pull all from config default account
8
+ */
9
+ export declare function runPull(address?: string): Promise<void>;
10
+ //# sourceMappingURL=pull.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/pull.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,wBAAsB,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsE7D"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * agnt pull — fetch and save v2 manifest(s) to the local outputDir
3
+ *
4
+ * Usage:
5
+ * agnt pull skej/contact-collector # pull one prompt
6
+ * agnt pull skej/* # pull all public from account
7
+ * agnt pull # pull all from config default account
8
+ */
9
+ import { loadConfig } from '../utils/config.js';
10
+ import { AgntApiClient } from '../utils/api.js';
11
+ export async function runPull(address) {
12
+ const config = await loadConfig();
13
+ if (!config) {
14
+ console.error('No agnt.config.js found. Run: agnt init');
15
+ process.exit(1);
16
+ }
17
+ const client = new AgntApiClient({ apiUrl: config.apiUrl, serviceKey: config.serviceKey });
18
+ const { mkdir, writeFile } = await import('fs/promises');
19
+ const { join, resolve } = await import('path');
20
+ const outputDir = resolve(config.outputDir);
21
+ await mkdir(outputDir, { recursive: true });
22
+ if (!address) {
23
+ console.error('Usage: agnt pull <accountSlug>/<promptSlug> OR agnt pull <accountSlug>/*');
24
+ process.exit(1);
25
+ }
26
+ const isWildcard = address.endsWith('/*');
27
+ if (isWildcard) {
28
+ const accountSlug = address.slice(0, -2);
29
+ console.log(`Pulling all public prompts for account: ${accountSlug}`);
30
+ let prompts;
31
+ try {
32
+ prompts = await client.listPublicPrompts(accountSlug);
33
+ }
34
+ catch (err) {
35
+ console.error(`Failed to list prompts: ${err.message}`);
36
+ process.exit(1);
37
+ }
38
+ if (prompts.length === 0) {
39
+ console.log('No public prompts found.');
40
+ return;
41
+ }
42
+ let saved = 0;
43
+ for (const p of prompts) {
44
+ try {
45
+ const manifest = await client.getManifest(accountSlug, p.name);
46
+ await saveManifest(manifest, accountSlug, p.name, outputDir, writeFile, join, mkdir);
47
+ console.log(` ✓ ${accountSlug}/${p.name}`);
48
+ saved++;
49
+ }
50
+ catch (err) {
51
+ console.warn(` ✗ ${accountSlug}/${p.name}: ${err.message}`);
52
+ }
53
+ }
54
+ console.log(`\nPulled ${saved}/${prompts.length} prompts to ${config.outputDir}`);
55
+ }
56
+ else {
57
+ const parts = address.split('/');
58
+ if (parts.length !== 2 || !parts[0] || !parts[1]) {
59
+ console.error(`Invalid address: "${address}". Expected "accountSlug/promptSlug"`);
60
+ process.exit(1);
61
+ }
62
+ const [accountSlug, promptSlug] = parts;
63
+ let manifest;
64
+ try {
65
+ manifest = await client.getManifest(accountSlug, promptSlug);
66
+ }
67
+ catch (err) {
68
+ console.error(`Failed to pull ${address}: ${err.message}`);
69
+ process.exit(1);
70
+ }
71
+ await saveManifest(manifest, accountSlug, promptSlug, outputDir, writeFile, join, mkdir);
72
+ console.log(`Pulled ${address} → ${config.outputDir}/${accountSlug}/${promptSlug}.json`);
73
+ }
74
+ }
75
+ async function saveManifest(manifest, accountSlug, promptSlug, outputDir, writeFile, join, mkdir) {
76
+ const accountDir = join(outputDir, accountSlug);
77
+ await mkdir(accountDir, { recursive: true });
78
+ const filePath = join(accountDir, `${promptSlug}.json`);
79
+ const payload = { manifest, pulledAt: new Date().toISOString() };
80
+ await writeFile(filePath, JSON.stringify(payload, null, 2), 'utf-8');
81
+ }
82
+ //# sourceMappingURL=pull.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pull.js","sourceRoot":"","sources":["../../../src/cli/commands/pull.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAgB;IAC5C,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;IAClC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IAE3F,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IACzD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;IAE/C,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC5C,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE5C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,4EAA4E,CAAC,CAAC;QAC5F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE1C,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,2CAA2C,WAAW,EAAE,CAAC,CAAC;QACtE,IAAI,OAAgC,CAAC;QACrC,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,2BAA2B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;YACxC,OAAO;QACT,CAAC;QAED,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC/D,MAAM,YAAY,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;gBACrF,OAAO,CAAC,GAAG,CAAC,OAAO,WAAW,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC5C,KAAK,EAAE,CAAC;YACV,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,OAAO,CAAC,IAAI,CAAC,OAAO,WAAW,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,IAAI,OAAO,CAAC,MAAM,eAAe,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IAEpF,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,OAAO,CAAC,KAAK,CAAC,qBAAqB,OAAO,sCAAsC,CAAC,CAAC;YAClF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC;QAExC,IAAI,QAA0B,CAAC;QAC/B,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAC/D,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,kBAAkB,OAAO,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,YAAY,CAAC,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACzF,OAAO,CAAC,GAAG,CAAC,UAAU,OAAO,MAAM,MAAM,CAAC,SAAS,IAAI,WAAW,IAAI,UAAU,OAAO,CAAC,CAAC;IAC3F,CAAC;AACH,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,QAA0B,EAC1B,WAAmB,EACnB,UAAkB,EAClB,SAAiB,EACjB,SAAiD,EACjD,IAAgC,EAChC,KAAyC;IAEzC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAChD,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,UAAU,OAAO,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;IACjE,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACvE,CAAC"}
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * agnt CLI — @agnt-sdk/studio
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA;;GAEG"}
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * agnt CLI — @agnt-sdk/studio
4
+ */
5
+ import { Command } from 'commander';
6
+ import { runInit } from './commands/init.js';
7
+ import { runPull } from './commands/pull.js';
8
+ const program = new Command();
9
+ program
10
+ .name('agnt')
11
+ .description('Agnt SDK CLI — manage and run v2 prompt manifests')
12
+ .version('0.0.1');
13
+ program
14
+ .command('init')
15
+ .description('Create agnt.config.js in the current directory')
16
+ .action(async () => {
17
+ await runInit();
18
+ });
19
+ program
20
+ .command('pull [address]')
21
+ .description('Pull prompt manifest(s) from the Agnt API\n' +
22
+ ' agnt pull skej/contact-collector # pull one prompt\n' +
23
+ ' agnt pull skej/* # pull all public from account')
24
+ .action(async (address) => {
25
+ await runPull(address);
26
+ });
27
+ program.parse(process.argv);
28
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,MAAM,CAAC;KACZ,WAAW,CAAC,mDAAmD,CAAC;KAChE,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,gDAAgD,CAAC;KAC7D,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,OAAO,EAAE,CAAC;AAClB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CACV,6CAA6C;IAC7C,0DAA0D;IAC1D,qEAAqE,CACtE;KACA,MAAM,CAAC,KAAK,EAAE,OAAgB,EAAE,EAAE;IACjC,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * AgntApiClient — HTTP client for the Agnt API
3
+ *
4
+ * Used by:
5
+ * - AgntExecutor (runtime manifest loading)
6
+ * - agnt pull CLI command
7
+ */
8
+ import type { PromptManifestV2 } from '../../types.js';
9
+ export interface AgntApiOptions {
10
+ apiUrl: string;
11
+ serviceKey?: string;
12
+ }
13
+ export interface PulledPrompt {
14
+ manifest: PromptManifestV2;
15
+ pulledAt: string;
16
+ }
17
+ export interface PublicPromptListItem {
18
+ name: string;
19
+ title: string;
20
+ description?: string;
21
+ visibility: string;
22
+ }
23
+ export declare class AgntApiClient {
24
+ private apiUrl;
25
+ private serviceKey;
26
+ constructor(options: AgntApiOptions);
27
+ private request;
28
+ /**
29
+ * Fetch a v2 manifest for a specific prompt.
30
+ * Public for listed/system prompts; auth required for private/unlisted.
31
+ */
32
+ getManifest(accountSlug: string, promptSlug: string): Promise<PromptManifestV2>;
33
+ /**
34
+ * List public prompts for an account.
35
+ */
36
+ listPublicPrompts(accountSlug: string): Promise<PublicPromptListItem[]>;
37
+ }
38
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/api.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAAS;gBAEf,OAAO,EAAE,cAAc;YAKrB,OAAO;IAiBrB;;;OAGG;IACG,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAOrF;;OAEG;IACG,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;CAM9E"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * AgntApiClient — HTTP client for the Agnt API
3
+ *
4
+ * Used by:
5
+ * - AgntExecutor (runtime manifest loading)
6
+ * - agnt pull CLI command
7
+ */
8
+ export class AgntApiClient {
9
+ apiUrl;
10
+ serviceKey;
11
+ constructor(options) {
12
+ this.apiUrl = options.apiUrl.replace(/\/$/, '');
13
+ this.serviceKey = options.serviceKey ?? '';
14
+ }
15
+ async request(path, options = {}, requireAuth = false) {
16
+ const url = `${this.apiUrl}${path}`;
17
+ const headers = { 'Content-Type': 'application/json' };
18
+ if (this.serviceKey || requireAuth) {
19
+ headers['Authorization'] = `Bearer ${this.serviceKey}`;
20
+ }
21
+ const response = await fetch(url, { ...options, headers: { ...headers, ...options.headers } });
22
+ if (!response.ok) {
23
+ const error = await response.text();
24
+ throw new Error(`Agnt API error (${response.status}): ${error}`);
25
+ }
26
+ return response.json();
27
+ }
28
+ /**
29
+ * Fetch a v2 manifest for a specific prompt.
30
+ * Public for listed/system prompts; auth required for private/unlisted.
31
+ */
32
+ async getManifest(accountSlug, promptSlug) {
33
+ const data = await this.request(`/manifests/${accountSlug}/${promptSlug}`);
34
+ return data.manifest;
35
+ }
36
+ /**
37
+ * List public prompts for an account.
38
+ */
39
+ async listPublicPrompts(accountSlug) {
40
+ const data = await this.request(`/manifests/${accountSlug}`);
41
+ return data.prompts;
42
+ }
43
+ }
44
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/cli/utils/api.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAqBH,MAAM,OAAO,aAAa;IAChB,MAAM,CAAS;IACf,UAAU,CAAS;IAE3B,YAAY,OAAuB;QACjC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;IAC7C,CAAC;IAEO,KAAK,CAAC,OAAO,CAAI,IAAY,EAAE,UAAuB,EAAE,EAAE,WAAW,GAAG,KAAK;QACnF,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;QACpC,MAAM,OAAO,GAA2B,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;QAC/E,IAAI,IAAI,CAAC,UAAU,IAAI,WAAW,EAAE,CAAC;YACnC,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,IAAI,CAAC,UAAU,EAAE,CAAC;QACzD,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAE/F,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,mBAAmB,QAAQ,CAAC,MAAM,MAAM,KAAK,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,EAAgB,CAAC;IACvC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,CAAC,WAAmB,EAAE,UAAkB;QACvD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAC7B,cAAc,WAAW,IAAI,UAAU,EAAE,CAC1C,CAAC;QACF,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,WAAmB;QACzC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAC7B,cAAc,WAAW,EAAE,CAC5B,CAAC;QACF,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Config re-export — all packages share the same agnt.config.js via @agnt-sdk/config
3
+ */
4
+ export { AgntConfig, loadConfig, getConfigPath } from '@agnt-sdk/config';
5
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Config re-export — all packages share the same agnt.config.js via @agnt-sdk/config
3
+ */
4
+ export { loadConfig, getConfigPath } from '@agnt-sdk/config';
5
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/cli/utils/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAc,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Condition evaluation for v2 PromptManifest
3
+ *
4
+ * Evaluates LeafConditions and CompoundConditions against runtime variables.
5
+ * Variable paths use dot notation: `variables.<key>` → variables['key']
6
+ */
7
+ import type { Condition } from './types.js';
8
+ /**
9
+ * Evaluate a condition (leaf or compound) against runtime variables.
10
+ * Returns true if the condition passes (item should be included).
11
+ * A null/undefined condition always passes.
12
+ */
13
+ export declare function evaluateCondition(condition: Condition | null | undefined, variables: Record<string, any>): boolean;
14
+ //# sourceMappingURL=conditions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conditions.d.ts","sourceRoot":"","sources":["../src/conditions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAoC,MAAM,YAAY,CAAC;AAwC9E;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,EACvC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B,OAAO,CAaT"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Condition evaluation for v2 PromptManifest
3
+ *
4
+ * Evaluates LeafConditions and CompoundConditions against runtime variables.
5
+ * Variable paths use dot notation: `variables.<key>` → variables['key']
6
+ */
7
+ function isCompound(c) {
8
+ return 'operator' in c;
9
+ }
10
+ /**
11
+ * Resolve a variable path against the runtime context.
12
+ * Supports: `variables.<key>` and bare key names as shorthand.
13
+ */
14
+ function resolveVariablePath(path, variables) {
15
+ if (path.startsWith('variables.')) {
16
+ return variables[path.slice('variables.'.length)];
17
+ }
18
+ // Bare key (shorthand)
19
+ return variables[path];
20
+ }
21
+ /**
22
+ * Evaluate a single leaf condition
23
+ */
24
+ function evaluateLeaf(condition, variables) {
25
+ const actual = resolveVariablePath(condition.variable, variables);
26
+ const expected = condition.value;
27
+ switch (condition.op) {
28
+ case 'eq': return actual === expected;
29
+ case 'neq': return actual !== expected;
30
+ case 'gt': return actual > expected;
31
+ case 'gte': return actual >= expected;
32
+ case 'lt': return actual < expected;
33
+ case 'lte': return actual <= expected;
34
+ case 'in': return Array.isArray(expected) && expected.includes(actual);
35
+ case 'not_in': return Array.isArray(expected) && !expected.includes(actual);
36
+ case 'exists': return actual !== undefined && actual !== null;
37
+ case 'not_exists': return actual === undefined || actual === null;
38
+ default: return false;
39
+ }
40
+ }
41
+ /**
42
+ * Evaluate a condition (leaf or compound) against runtime variables.
43
+ * Returns true if the condition passes (item should be included).
44
+ * A null/undefined condition always passes.
45
+ */
46
+ export function evaluateCondition(condition, variables) {
47
+ if (!condition)
48
+ return true;
49
+ if (isCompound(condition)) {
50
+ switch (condition.operator) {
51
+ case 'AND': return condition.rules.every(r => evaluateCondition(r, variables));
52
+ case 'OR': return condition.rules.some(r => evaluateCondition(r, variables));
53
+ case 'NOT': return condition.rules.length > 0 && !evaluateCondition(condition.rules[0], variables);
54
+ default: return false;
55
+ }
56
+ }
57
+ return evaluateLeaf(condition, variables);
58
+ }
59
+ //# sourceMappingURL=conditions.js.map