@mondaydotcomorg/atp-client 0.19.5 → 0.19.6

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.
@@ -6,11 +6,13 @@
6
6
  export interface TokenEntry {
7
7
  token: string;
8
8
  addedAt: number;
9
+ sequence: number;
9
10
  }
10
11
  export declare class ProvenanceTokenRegistry {
11
12
  private cache;
12
13
  private maxSize;
13
14
  private ttl;
15
+ private sequenceCounter;
14
16
  constructor(maxSize?: number, ttlHours?: number);
15
17
  /**
16
18
  * Add a token to the registry
@@ -18,6 +20,7 @@ export declare class ProvenanceTokenRegistry {
18
20
  add(token: string): void;
19
21
  /**
20
22
  * Get recent tokens (non-expired, sorted by age, limited)
23
+ * Returns tokens in chronological order (oldest first, most recent last)
21
24
  */
22
25
  getRecentTokens(maxCount?: number): string[];
23
26
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"provenance-registry.d.ts","sourceRoot":"","sources":["../../src/core/provenance-registry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,UAAU;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,uBAAuB;IACnC,OAAO,CAAC,KAAK,CAAsC;IACnD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,GAAG,CAAS;gBAER,OAAO,GAAE,MAAc,EAAE,QAAQ,GAAE,MAAU;IAKzD;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAgBxB;;OAEG;IACH,eAAe,CAAC,QAAQ,GAAE,MAAa,GAAG,MAAM,EAAE;IAmClD;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,IAAI,IAAI,MAAM;IAId;;OAEG;IACH,OAAO,CAAC,YAAY;IAepB;;OAEG;IACH,OAAO,CAAC,QAAQ;CAehB"}
1
+ {"version":3,"file":"provenance-registry.d.ts","sourceRoot":"","sources":["../../src/core/provenance-registry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,UAAU;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,uBAAuB;IACnC,OAAO,CAAC,KAAK,CAAsC;IACnD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,eAAe,CAAa;gBAExB,OAAO,GAAE,MAAc,EAAE,QAAQ,GAAE,MAAU;IAKzD;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAiBxB;;;OAGG;IACH,eAAe,CAAC,QAAQ,GAAE,MAAa,GAAG,MAAM,EAAE;IAuClD;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,IAAI,IAAI,MAAM;IAId;;OAEG;IACH,OAAO,CAAC,YAAY;IAepB;;OAEG;IACH,OAAO,CAAC,QAAQ;CAehB"}
@@ -7,6 +7,7 @@ export class ProvenanceTokenRegistry {
7
7
  cache = new Map();
8
8
  maxSize;
9
9
  ttl;
10
+ sequenceCounter = 0;
10
11
  constructor(maxSize = 10000, ttlHours = 1) {
11
12
  this.maxSize = maxSize;
12
13
  this.ttl = ttlHours * 3600 * 1000;
@@ -21,16 +22,21 @@ export class ProvenanceTokenRegistry {
21
22
  if (this.cache.size >= this.maxSize) {
22
23
  this.evictLRU();
23
24
  }
24
- // Store token
25
+ // Store token with sequence number for stable ordering
25
26
  this.cache.set(token, {
26
27
  token,
27
28
  addedAt: Date.now(),
29
+ sequence: this.sequenceCounter++,
28
30
  });
29
31
  }
30
32
  /**
31
33
  * Get recent tokens (non-expired, sorted by age, limited)
34
+ * Returns tokens in chronological order (oldest first, most recent last)
32
35
  */
33
36
  getRecentTokens(maxCount = 1000) {
37
+ if (maxCount <= 0) {
38
+ return [];
39
+ }
34
40
  this.evictExpired();
35
41
  const now = Date.now();
36
42
  const expiredTokens = [];
@@ -54,8 +60,8 @@ export class ProvenanceTokenRegistry {
54
60
  return false;
55
61
  }
56
62
  })
57
- .sort((a, b) => b.addedAt - a.addedAt)
58
- .slice(0, maxCount);
63
+ .sort((a, b) => a.sequence - b.sequence)
64
+ .slice(-maxCount);
59
65
  for (const token of expiredTokens) {
60
66
  this.cache.delete(token);
61
67
  }
@@ -93,10 +99,10 @@ export class ProvenanceTokenRegistry {
93
99
  */
94
100
  evictLRU() {
95
101
  let oldestToken = null;
96
- let oldestTime = Infinity;
102
+ let oldestSequence = Infinity;
97
103
  for (const [token, entry] of this.cache.entries()) {
98
- if (entry.addedAt < oldestTime) {
99
- oldestTime = entry.addedAt;
104
+ if (entry.sequence < oldestSequence) {
105
+ oldestSequence = entry.sequence;
100
106
  oldestToken = token;
101
107
  }
102
108
  }
@@ -1 +1 @@
1
- {"version":3,"file":"provenance-registry.js","sourceRoot":"","sources":["../../src/core/provenance-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provenance-registry.js","sourceRoot":"","sources":["../../src/core/provenance-registry.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mondaydotcomorg/atp-client",
3
- "version": "0.19.5",
3
+ "version": "0.19.6",
4
4
  "description": "Client SDK for Agent Tool Protocol",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -44,14 +44,17 @@
44
44
  },
45
45
  "license": "MIT",
46
46
  "dependencies": {
47
- "@mondaydotcomorg/atp-protocol": "0.19.5",
48
- "@mondaydotcomorg/atp-runtime": "0.19.5",
47
+ "@mondaydotcomorg/atp-protocol": "0.19.6",
48
+ "@mondaydotcomorg/atp-runtime": "0.19.6",
49
49
  "undici": "*",
50
- "zod": "^3.25.0",
51
50
  "zod-to-json-schema": "^3.24.6"
52
51
  },
52
+ "peerDependencies": {
53
+ "zod": "^3.25.0"
54
+ },
53
55
  "devDependencies": {
54
56
  "typescript": "^5.3.3",
55
- "vitest": "^1.2.1"
57
+ "vitest": "^1.2.1",
58
+ "zod": "^3.25.0"
56
59
  }
57
60
  }
@@ -7,12 +7,14 @@
7
7
  export interface TokenEntry {
8
8
  token: string;
9
9
  addedAt: number;
10
+ sequence: number;
10
11
  }
11
12
 
12
13
  export class ProvenanceTokenRegistry {
13
14
  private cache: Map<string, TokenEntry> = new Map();
14
15
  private maxSize: number;
15
16
  private ttl: number;
17
+ private sequenceCounter: number = 0;
16
18
 
17
19
  constructor(maxSize: number = 10000, ttlHours: number = 1) {
18
20
  this.maxSize = maxSize;
@@ -31,17 +33,23 @@ export class ProvenanceTokenRegistry {
31
33
  this.evictLRU();
32
34
  }
33
35
 
34
- // Store token
36
+ // Store token with sequence number for stable ordering
35
37
  this.cache.set(token, {
36
38
  token,
37
39
  addedAt: Date.now(),
40
+ sequence: this.sequenceCounter++,
38
41
  });
39
42
  }
40
43
 
41
44
  /**
42
45
  * Get recent tokens (non-expired, sorted by age, limited)
46
+ * Returns tokens in chronological order (oldest first, most recent last)
43
47
  */
44
48
  getRecentTokens(maxCount: number = 1000): string[] {
49
+ if (maxCount <= 0) {
50
+ return [];
51
+ }
52
+
45
53
  this.evictExpired();
46
54
 
47
55
  const now = Date.now();
@@ -66,8 +74,8 @@ export class ProvenanceTokenRegistry {
66
74
  return false;
67
75
  }
68
76
  })
69
- .sort((a, b) => b.addedAt - a.addedAt)
70
- .slice(0, maxCount);
77
+ .sort((a, b) => a.sequence - b.sequence)
78
+ .slice(-maxCount);
71
79
 
72
80
  for (const token of expiredTokens) {
73
81
  this.cache.delete(token);
@@ -113,11 +121,11 @@ export class ProvenanceTokenRegistry {
113
121
  */
114
122
  private evictLRU(): void {
115
123
  let oldestToken: string | null = null;
116
- let oldestTime = Infinity;
124
+ let oldestSequence = Infinity;
117
125
 
118
126
  for (const [token, entry] of this.cache.entries()) {
119
- if (entry.addedAt < oldestTime) {
120
- oldestTime = entry.addedAt;
127
+ if (entry.sequence < oldestSequence) {
128
+ oldestSequence = entry.sequence;
121
129
  oldestToken = token;
122
130
  }
123
131
  }