@rolealpha/n8n-nodes-rolealpha 0.7.2 → 0.8.0

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.
@@ -1,192 +1,229 @@
1
1
  "use strict";
2
2
  /**
3
- * Change detection in the roleALPHA graph. roleALPHA sends no event when a step, role or
4
- * agent is created or changed, so a scheduler takes a snapshot and compares it with the
5
- * rows it stored the last time.
3
+ * Change detection in the roleALPHA graph. roleALPHA's list_changes names the entities that
4
+ * changed effectively since a cursor: approved drafts and every relationship change, fanned out
5
+ * to each end. One call per run replaces reading the whole organisation, so the cost grows with
6
+ * the changes, not with the size of the organisation.
6
7
  *
7
- * Fail-closed: an entity that could not be read is neither new nor changed nor removed;
8
- * its old row stays. Removals are reported only when the complete index was read.
8
+ * What counts: entities a managed workflow is bound to, and entities of the watched types
9
+ * (a new or changed step may need a workflow). What does not: relationships the runner resolves
10
+ * at run time, and on request the access's own writes (who decides, who holds a role, which policy
11
+ * applies). Those never require a workflow to change.
12
+ *
13
+ * A deleted entity does not appear itself; its neighbours get a relationship row whose other
14
+ * end is null. Such a row, a lost cursor or an earlier unreadable check makes the detector ask
15
+ * for every bound entity whether it still exists. Fail-closed: only "not found" counts as removed.
9
16
  */
10
17
  Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.ENTITY_TYPES = void 0;
12
- exports.snapshotOf = snapshotOf;
13
- exports.toRow = toRow;
14
- exports.normalizeRows = normalizeRows;
18
+ exports.NEIGHBOUR_RELATIONSHIPS = exports.RUNTIME_RELATIONSHIPS = exports.ENTITY_TYPES = void 0;
19
+ exports.normalizeFeedRows = normalizeFeedRows;
20
+ exports.summarizeFeed = summarizeFeed;
21
+ exports.readFeed = readFeed;
22
+ exports.checkExistence = checkExistence;
15
23
  exports.detectChanges = detectChanges;
16
- exports.listIndex = listIndex;
17
- exports.readSnapshots = readSnapshots;
18
- const crypto_1 = require("crypto");
19
- const seal_1 = require("./seal");
20
- /** Entity types of the lean index (list_entities). */
24
+ exports.boundEntities = boundEntities;
25
+ /** Entity types list_changes can filter on and Detect Changes can watch. */
21
26
  exports.ENTITY_TYPES = ['process', 'role', 'agent', 'policy', 'organigramm', 'project', 'okr', 'person'];
22
- function hash(value, length = 16) {
23
- return (0, crypto_1.createHash)('sha256').update((0, seal_1.canonicalJson)(value), 'utf8').digest('hex').slice(0, length);
24
- }
25
- /** Attributes that change without the entity changing in substance. */
26
- const VOLATILE = /^(updated_?at|updatedAt|modified_?at|last_?(seen|run|login)(_?at)?|version_?count|views?)$/i;
27
- function snapshotOf(entry, details, rels) {
28
- const fields = {};
29
- for (const [key, value] of Object.entries(details.data ?? {})) {
30
- if (value === undefined || VOLATILE.test(key))
31
- continue;
32
- fields[key] = hash(value, 12);
33
- }
34
- const edges = [...new Set(rels.map((r) => `${r.type}${r.direction === 'outgoing' ? '>' : '<'}${r.uuid}`))].sort();
35
- const name = details.name || entry.name;
36
- return {
37
- uuid: entry.uuid,
38
- name,
39
- entityType: entry.entityType,
40
- customId: details.customId,
41
- fields,
42
- edges,
43
- fingerprint: hash({ name, customId: details.customId, fields, edges }),
44
- };
27
+ /** Relationships the runner reads at run time: a change to them never changes a workflow. */
28
+ exports.RUNTIME_RELATIONSHIPS = [
29
+ 'DECIDES_ON',
30
+ 'ACCOUNTABLE_FOR',
31
+ 'RESPONSIBLE_FOR',
32
+ 'CONSULTED_ON',
33
+ 'INFORMED_ON',
34
+ 'EXECUTES',
35
+ 'AGENT_FULFILLS_ROLE',
36
+ 'AGENT_SUPPORTS_PROCESS',
37
+ 'AGENT_BOUND_BY_POLICY',
38
+ 'IS_IMPLEMENTED_BY',
39
+ 'APPLIES_TO',
40
+ ];
41
+ /** Relationships that make a step a neighbour of another: the order and the breakdown of steps. */
42
+ exports.NEIGHBOUR_RELATIONSHIPS = ['DEPENDS_ON', 'HAS_SUBPROCESS'];
43
+ function obj(value) {
44
+ return value && typeof value === 'object' && !Array.isArray(value) ? value : {};
45
45
  }
46
- function toRow(s, seenAt) {
47
- return {
48
- uuid: s.uuid,
49
- entity_type: s.entityType,
50
- name: s.name,
51
- custom_id: s.customId,
52
- fingerprint: s.fingerprint,
53
- fields: JSON.stringify(s.fields),
54
- edges: JSON.stringify(s.edges),
55
- seen_at: seenAt,
56
- };
46
+ function lower(value) {
47
+ return typeof value === 'string' ? value.trim().toLowerCase() : '';
57
48
  }
58
- function parseJson(value, fallback) {
59
- if (value && typeof value === 'object')
60
- return value;
61
- if (typeof value !== 'string' || value.trim() === '')
62
- return fallback;
63
- try {
64
- return JSON.parse(value);
65
- }
66
- catch {
67
- return fallback;
49
+ /** Rows as list_changes returns them; drops rows without entity or change. */
50
+ function normalizeFeedRows(raw) {
51
+ const rows = Array.isArray(raw) ? raw : Array.isArray(obj(raw).changes) ? obj(raw).changes : [];
52
+ const out = [];
53
+ for (const r of rows.map(obj)) {
54
+ const entityUuid = lower(r.entityUuid);
55
+ const change = String(r.change ?? '');
56
+ if (!entityUuid || !['created', 'updated', 'deleted', 'relationship'].includes(change))
57
+ continue;
58
+ const v = obj(r.via);
59
+ const via = typeof v.relationshipType === 'string'
60
+ ? {
61
+ relationshipId: v.relationshipId,
62
+ relTypeId: typeof v.relTypeId === 'number' ? v.relTypeId : undefined,
63
+ relationshipType: v.relationshipType,
64
+ otherEntityUuid: lower(v.otherEntityUuid) || null,
65
+ role: v.role,
66
+ action: (['added', 'changed', 'removed'].includes(String(v.action)) ? v.action : 'changed'),
67
+ }
68
+ : undefined;
69
+ out.push({
70
+ entityUuid,
71
+ entityType: String(r.entityType ?? ''),
72
+ changedAt: String(r.changedAt ?? ''),
73
+ change: change,
74
+ origin: typeof r.origin === 'string' ? r.origin : undefined,
75
+ ownChange: r.ownChange === true,
76
+ via,
77
+ });
68
78
  }
79
+ return out;
69
80
  }
70
- /** Rows as they come back from a table: drops rows without uuid or fingerprint. */
71
- function normalizeRows(raw) {
72
- return (Array.isArray(raw) ? raw : [])
73
- .filter((r) => !!r && typeof r === 'object')
74
- .filter((r) => typeof r.uuid === 'string' && r.uuid !== '' && typeof r.fingerprint === 'string')
75
- .map((r) => ({
76
- uuid: String(r.uuid).toLowerCase(),
77
- entity_type: String(r.entity_type ?? ''),
78
- name: String(r.name ?? ''),
79
- custom_id: typeof r.custom_id === 'string' && r.custom_id !== '' ? r.custom_id : null,
80
- fingerprint: String(r.fingerprint),
81
- fields: typeof r.fields === 'string' ? r.fields : JSON.stringify(r.fields ?? {}),
82
- edges: typeof r.edges === 'string' ? r.edges : JSON.stringify(r.edges ?? []),
83
- seen_at: String(r.seen_at ?? ''),
84
- }));
85
- }
86
- function detectChanges(previousRaw, current, opts) {
87
- const now = (opts.now ?? new Date()).toISOString();
88
- const types = new Set(opts.types);
89
- // Rows of other types belong to another detector with another type filter; leave them alone.
90
- const previous = normalizeRows(previousRaw).filter((r) => types.has(r.entity_type));
91
- const unreadable = opts.unreadable ?? [];
92
- const baseline = previous.length === 0 && !opts.reportBaseline;
93
- const before = new Map(previous.map((r) => [r.uuid, r]));
94
- const seen = new Set([...current.map((c) => c.uuid), ...unreadable.map((u) => u.uuid.toLowerCase())]);
95
- const changes = [];
96
- const upsert = [];
97
- for (const snap of current) {
98
- const old = before.get(snap.uuid);
99
- if (old && old.fingerprint === snap.fingerprint)
81
+ /**
82
+ * Turns feed rows into one change per entity. `bound` maps entity UUIDs to the managed
83
+ * workflows bound to them; `watchTypes` are the types whose new and changed entities count
84
+ * even without a workflow.
85
+ */
86
+ function summarizeFeed(rows, opts) {
87
+ const watch = new Set(opts.watchTypes);
88
+ const ignore = new Set(opts.ignoreRelationships ?? exports.RUNTIME_RELATIONSHIPS);
89
+ const skipped = { own: 0, runtime: 0, unwatched: 0 };
90
+ const byUuid = new Map();
91
+ let deletionSeen = false;
92
+ for (const row of rows) {
93
+ // A lost end is checked even when the row itself does not count.
94
+ if (row.change === 'relationship' && row.via && row.via.otherEntityUuid === null)
95
+ deletionSeen = true;
96
+ // ownChange compares the account: with a personal login it would also drop that person's approvals.
97
+ if (row.ownChange && opts.skipOwn) {
98
+ skipped.own++;
100
99
  continue;
101
- upsert.push(toRow(snap, now));
102
- if (baseline)
100
+ }
101
+ if (!opts.bound.has(row.entityUuid) && !watch.has(row.entityType)) {
102
+ skipped.unwatched++;
103
103
  continue;
104
- if (!old) {
105
- changes.push({ change: 'created', uuid: snap.uuid, name: snap.name, entityType: snap.entityType, customId: snap.customId, previousName: null, changedFields: [], edgesAdded: snap.edges, edgesRemoved: [] });
104
+ }
105
+ if (row.change === 'relationship' && row.via && ignore.has(row.via.relationshipType)) {
106
+ skipped.runtime++;
106
107
  continue;
107
108
  }
108
- const oldFields = parseJson(old.fields, {});
109
- const oldEdges = new Set(parseJson(old.edges, []));
110
- const newEdges = new Set(snap.edges);
111
- const changedFields = [...new Set([...Object.keys(oldFields), ...Object.keys(snap.fields)])].filter((k) => oldFields[k] !== snap.fields[k]).sort();
112
- if (old.name !== snap.name)
113
- changedFields.unshift('name');
114
- if ((old.custom_id ?? null) !== snap.customId)
115
- changedFields.unshift('customId');
116
- changes.push({
117
- change: 'changed',
118
- uuid: snap.uuid,
119
- name: snap.name,
120
- entityType: snap.entityType,
121
- customId: snap.customId,
122
- previousName: old.name !== snap.name ? old.name : null,
123
- changedFields,
124
- edgesAdded: snap.edges.filter((e) => !oldEdges.has(e)),
125
- edgesRemoved: [...oldEdges].filter((e) => !newEdges.has(e)).sort(),
126
- });
127
- }
128
- const remove = [];
129
- if (opts.complete) {
130
- for (const old of previous) {
131
- if (seen.has(old.uuid))
132
- continue;
133
- remove.push(old.uuid);
134
- if (!baseline) {
135
- changes.push({ change: 'removed', uuid: old.uuid, name: old.name, entityType: old.entity_type, customId: old.custom_id, previousName: null, changedFields: [], edgesAdded: [], edgesRemoved: parseJson(old.edges, []) });
136
- }
109
+ let c = byUuid.get(row.entityUuid);
110
+ if (!c) {
111
+ c = { change: 'changed', uuid: row.entityUuid, entityType: row.entityType, name: '', customId: null, changedAt: null, relationships: [], workflows: opts.bound.get(row.entityUuid) ?? [] };
112
+ byUuid.set(row.entityUuid, c);
137
113
  }
138
- }
139
- return { baseline, complete: opts.complete, changes, upsert, remove, unreadable };
140
- }
141
- // ---------------------------------------------------------------- reading
142
- function obj(value) {
143
- return value && typeof value === 'object' && !Array.isArray(value) ? value : {};
144
- }
145
- /** Reads the complete lean index of one type, page by page. */
146
- async function listIndex(client, organisation, entityType, maxPages = 20) {
147
- const out = [];
148
- let offset = 0;
149
- for (let page = 0; page < maxPages; page++) {
150
- const res = obj(await client.callTool('list_entities', { organisation, entityType, offset }));
151
- const rows = Array.isArray(res.entities) ? res.entities : [];
152
- for (const raw of rows.map(obj)) {
153
- const uuid = typeof raw.uuid === 'string' ? raw.uuid.toLowerCase() : '';
154
- if (uuid)
155
- out.push({ uuid, name: String(raw.name ?? ''), entityType });
114
+ if (row.change === 'deleted')
115
+ c.change = 'removed';
116
+ else if (row.change === 'created' && c.change !== 'removed')
117
+ c.change = 'created';
118
+ if (!c.changedAt || row.changedAt > c.changedAt)
119
+ c.changedAt = row.changedAt || c.changedAt;
120
+ if (row.change === 'relationship' && row.via) {
121
+ const rel = { type: row.via.relationshipType, action: row.via.action, otherUuid: row.via.otherEntityUuid, end: row.via.role ?? null };
122
+ const key = JSON.stringify(rel);
123
+ if (!c.relationships.some((r) => JSON.stringify(r) === key))
124
+ c.relationships.push(rel);
156
125
  }
157
- if (res.hasMore !== true || rows.length === 0)
158
- return out;
159
- offset = typeof res.nextOffset === 'number' ? res.nextOffset : offset + rows.length;
160
126
  }
161
- throw new Error(`The index of "${entityType}" has more than ${maxPages} pages; narrow the entity types`);
127
+ return { changes: [...byUuid.values()], deletionSeen, skipped };
162
128
  }
163
- /** Runs `fn` over `items` with at most `limit` calls at a time. */
164
- async function pool(items, limit, fn) {
165
- const out = new Array(items.length);
166
- let next = 0;
167
- const workers = Array.from({ length: Math.max(1, Math.min(limit, items.length)) }, async () => {
168
- while (next < items.length) {
169
- const i = next++;
170
- out[i] = await fn(items[i]);
171
- }
172
- });
173
- await Promise.all(workers);
174
- return out;
129
+ /**
130
+ * Reads list_changes from a cursor, or on the first run from `since`, page by page.
131
+ * A failed call throws, so the stored cursor stays where it was.
132
+ */
133
+ async function readFeed(client, organisation, start, opts = {}) {
134
+ const maxPages = Math.max(1, opts.maxPages ?? 20);
135
+ const limit = Math.min(500, Math.max(1, opts.limit ?? 500));
136
+ const rows = [];
137
+ let cursor = start.cursor ?? '';
138
+ let hasMore = false;
139
+ let pages = 0;
140
+ while (pages < maxPages) {
141
+ const args = { organisation, limit };
142
+ if (cursor)
143
+ args.cursor = cursor;
144
+ else if (start.since)
145
+ args.since = start.since;
146
+ else
147
+ throw new Error('list_changes needs a cursor or a start time');
148
+ const res = obj(await client.callTool('list_changes', args));
149
+ pages++;
150
+ if (typeof res.nextCursor !== 'string' || res.nextCursor === '')
151
+ throw new Error('list_changes returned no cursor');
152
+ rows.push(...normalizeFeedRows(res.changes));
153
+ cursor = res.nextCursor;
154
+ hasMore = res.hasMore === true;
155
+ if (!hasMore)
156
+ break;
157
+ }
158
+ return { rows, cursor, hasMore, pages };
175
159
  }
176
- /** Reads details and relationships of every index entry. A failed read marks the entity unreadable. */
177
- async function readSnapshots(src, entries, concurrency = 4) {
178
- const snapshots = [];
160
+ const NOT_FOUND = /not found|nicht gefunden|existiert nicht/i;
161
+ /** Asks for every UUID whether it still exists. Only a plain "not found" counts as removed. */
162
+ async function checkExistence(client, organisation, uuids) {
163
+ const removed = [];
179
164
  const unreadable = [];
180
- await pool(entries, concurrency, async (entry) => {
165
+ for (const uuid of uuids) {
181
166
  try {
182
- const [details, rels] = await Promise.all([src.details(entry.uuid), src.relationships(entry.uuid)]);
183
- snapshots.push(snapshotOf(entry, details, rels));
167
+ const res = obj(await client.callTool('get_entity_details', { entityUuid: uuid, organisation }));
168
+ const error = typeof res.error === 'string' ? res.error : '';
169
+ if (!error)
170
+ continue;
171
+ if (NOT_FOUND.test(error))
172
+ removed.push(uuid);
173
+ else
174
+ unreadable.push({ uuid, error: error.slice(0, 300) });
184
175
  }
185
176
  catch (error) {
186
- unreadable.push({ uuid: entry.uuid, name: entry.name, error: String(error.message ?? error).slice(0, 300) });
177
+ unreadable.push({ uuid, error: String(error.message ?? error).slice(0, 300) });
178
+ }
179
+ }
180
+ return { removed, unreadable };
181
+ }
182
+ async function detectChanges(client, organisation, state, opts) {
183
+ const started = !state.cursor;
184
+ const since = opts.since || (opts.now ?? new Date()).toISOString();
185
+ const feed = await readFeed(client, organisation, started ? { since } : { cursor: state.cursor }, { maxPages: opts.maxPages });
186
+ const summary = summarizeFeed(feed.rows, opts);
187
+ const changes = summary.changes;
188
+ let checked = 0;
189
+ let unreadable = [];
190
+ let recheck = false;
191
+ // Without a cursor nobody knows what happened in between, so the bound entities are checked once.
192
+ if (started || summary.deletionSeen || state.recheck) {
193
+ const known = new Set(changes.filter((c) => c.change === 'removed').map((c) => c.uuid));
194
+ const uuids = [...opts.bound.keys()].filter((u) => !known.has(u)).sort();
195
+ const check = await checkExistence(client, organisation, uuids);
196
+ checked = uuids.length;
197
+ unreadable = check.unreadable;
198
+ recheck = check.unreadable.length > 0;
199
+ for (const uuid of check.removed) {
200
+ const hit = changes.find((c) => c.uuid === uuid);
201
+ if (hit)
202
+ hit.change = 'removed';
203
+ else
204
+ changes.push({ change: 'removed', uuid, entityType: '', name: '', customId: null, changedAt: null, relationships: [], workflows: opts.bound.get(uuid) ?? [] });
187
205
  }
188
- });
189
- snapshots.sort((a, b) => a.uuid.localeCompare(b.uuid));
190
- return { snapshots, unreadable };
206
+ }
207
+ return {
208
+ changes,
209
+ cursor: feed.cursor,
210
+ hasMore: feed.hasMore,
211
+ started,
212
+ checked,
213
+ unreadable,
214
+ skipped: summary.skipped,
215
+ state: { cursor: feed.cursor, ...(recheck ? { recheck: true } : {}) },
216
+ };
217
+ }
218
+ /** Bound entity UUIDs of managed workflows (drafts excluded) to the IDs of those workflows. */
219
+ function boundEntities(workflows) {
220
+ const bound = new Map();
221
+ for (const w of workflows) {
222
+ if (w.isDraft)
223
+ continue;
224
+ for (const uuid of w.entities.map(lower).filter(Boolean))
225
+ bound.set(uuid, [...(bound.get(uuid) ?? []), w.id]);
226
+ }
227
+ return bound;
191
228
  }
192
229
  //# sourceMappingURL=changes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"changes.js","sourceRoot":"","sources":["../../lib/changes.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AA4EH,gCAqBC;AAED,sBAWC;AAaD,sCAcC;AAED,sCAuDC;AASD,8BAcC;AAsBD,sCAaC;AA1PD,mCAAoC;AACpC,iCAAuC;AAIvC,sDAAsD;AACzC,QAAA,YAAY,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAU,CAAC;AA6DvH,SAAS,IAAI,CAAC,KAAc,EAAE,MAAM,GAAG,EAAE;IACxC,OAAO,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAA,oBAAa,EAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AACjG,CAAC;AAED,uEAAuE;AACvE,MAAM,QAAQ,GAAG,6FAA6F,CAAC;AAE/G,SAAgB,UAAU,CACzB,KAAiB,EACjB,OAAiF,EACjF,IAAoB;IAEpB,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;QAC/D,IAAI,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,SAAS;QACxD,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC/B,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAClH,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC;IACxC,OAAO;QACN,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,IAAI;QACJ,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,MAAM;QACN,KAAK;QACL,WAAW,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;KACtE,CAAC;AACH,CAAC;AAED,SAAgB,KAAK,CAAC,CAAiB,EAAE,MAAc;IACtD,OAAO;QACN,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,WAAW,EAAE,CAAC,CAAC,UAAU;QACzB,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,SAAS,EAAE,CAAC,CAAC,QAAQ;QACrB,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;QAChC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;QAC9B,OAAO,EAAE,MAAM;KACf,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAI,KAAc,EAAE,QAAW;IAChD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAU,CAAC;IAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,QAAQ,CAAC;IACtE,IAAI,CAAC;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAM,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,QAAQ,CAAC;IACjB,CAAC;AACF,CAAC;AAED,mFAAmF;AACnF,SAAgB,aAAa,CAAC,GAAY;IACzC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;SACpC,MAAM,CAAC,CAAC,CAAC,EAAgC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC;SACzE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,EAAE,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,CAAC;SAC/F,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE;QAClC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC;QACxC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;QAC1B,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;QACrF,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC;QAClC,MAAM,EAAE,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC;QAChF,KAAK,EAAE,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC5E,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;KAChC,CAAC,CAAC,CAAC;AACN,CAAC;AAED,SAAgB,aAAa,CAC5B,WAAoB,EACpB,OAAyB,EACzB,IAA2H;IAE3H,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACnD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClC,6FAA6F;IAC7F,MAAM,QAAQ,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;IACpF,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;IACzC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;IAC/D,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAS,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;IAE9G,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,GAAG,IAAI,GAAG,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW;YAAE,SAAS;QAC1D,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;QAC9B,IAAI,QAAQ;YAAE,SAAS;QACvB,IAAI,CAAC,GAAG,EAAE,CAAC;YACV,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC;YAC7M,SAAS;QACV,CAAC;QACD,MAAM,SAAS,GAAG,SAAS,CAAyB,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,SAAS,CAAW,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;QAC7D,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACnJ,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;YAAE,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC1D,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ;YAAE,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACjF,OAAO,CAAC,IAAI,CAAC;YACZ,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,YAAY,EAAE,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;YACtD,aAAa;YACb,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACtD,YAAY,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;SAClE,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnB,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS;YACjC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACtB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,YAAY,EAAE,SAAS,CAAW,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;YACpO,CAAC;QACF,CAAC;IACF,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AACnF,CAAC;AAED,2EAA2E;AAE3E,SAAS,GAAG,CAAC,KAAc;IAC1B,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,KAAiC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9G,CAAC;AAED,+DAA+D;AACxD,KAAK,UAAU,SAAS,CAAC,MAAiB,EAAE,YAAoB,EAAE,UAAkB,EAAE,QAAQ,GAAG,EAAE;IACzG,MAAM,GAAG,GAAiB,EAAE,CAAC;IAC7B,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC;QAC5C,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAC9F,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxE,IAAI,IAAI;gBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,GAAG,CAAC;QAC1D,MAAM,GAAG,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACrF,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,iBAAiB,UAAU,mBAAmB,QAAQ,iCAAiC,CAAC,CAAC;AAC1G,CAAC;AAED,mEAAmE;AACnE,KAAK,UAAU,IAAI,CAAO,KAAU,EAAE,KAAa,EAAE,EAA2B;IAC/E,MAAM,GAAG,GAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;QAC7F,OAAO,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAC5B,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;YACjB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;IACF,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3B,OAAO,GAAG,CAAC;AACZ,CAAC;AAOD,uGAAuG;AAChG,KAAK,UAAU,aAAa,CAAC,GAAgB,EAAE,OAAqB,EAAE,WAAW,GAAG,CAAC;IAC3F,MAAM,SAAS,GAAqB,EAAE,CAAC;IACvC,MAAM,UAAU,GAA+B,EAAE,CAAC;IAClD,MAAM,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QAChD,IAAI,CAAC;YACJ,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAE,KAAe,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QACzH,CAAC;IACF,CAAC,CAAC,CAAC;IACH,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"changes.js","sourceRoot":"","sources":["../../lib/changes.ts"],"names":[],"mappings":"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"}
package/dist/lib/mcp.d.ts CHANGED
@@ -27,7 +27,7 @@ export declare function parseRpcBody(body: string, id?: number | string): JsonRp
27
27
  export declare function unwrapToolResult(result: unknown): unknown;
28
28
  /** Waits before a repeated call; injected so tests run without delay. */
29
29
  export type Sleep = (ms: number) => Promise<void>;
30
- /** Wait before repeat `attempt` (0-based): Retry-After if the server sent one, else 1, 2, 4, 8 s plus jitter. */
30
+ /** Wait before repeat `attempt` (0-based): what the server asked for, else 1, 2, 4, 8 s, plus jitter. */
31
31
  export declare function retryDelay(reply: HttpReply | undefined, attempt: number, random?: () => number): number;
32
32
  export declare class McpClient {
33
33
  private readonly transport;
package/dist/lib/mcp.js CHANGED
@@ -90,11 +90,25 @@ function unwrapToolResult(result) {
90
90
  const sleepFor = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
91
91
  /** Repeats of a call the server turned away for load (429, 503) or answered empty. */
92
92
  const RETRIES = 4;
93
- const MAX_WAIT_MS = 30_000;
94
- /** Wait before repeat `attempt` (0-based): Retry-After if the server sent one, else 1, 2, 4, 8 s plus jitter. */
93
+ /** One window of the roleALPHA limiter is a minute; waiting longer never helps. */
94
+ const MAX_WAIT_MS = 61_000;
95
+ /** Seconds the server asks to wait: Retry-After, RateLimit-Reset, or reset= in a RateLimit header. */
96
+ function waitSeconds(reply) {
97
+ const plain = (name) => {
98
+ const v = header(reply.headers, name)?.trim();
99
+ return v !== undefined && /^\d+(\.\d+)?$/.test(v) ? Number(v) : NaN;
100
+ };
101
+ for (const name of ['retry-after', 'ratelimit-reset']) {
102
+ const s = plain(name);
103
+ if (Number.isFinite(s))
104
+ return s;
105
+ }
106
+ const m = /(?:^|[;,\s])reset=(\d+(?:\.\d+)?)/i.exec(header(reply.headers, 'ratelimit') ?? '');
107
+ return m ? Number(m[1]) : NaN;
108
+ }
109
+ /** Wait before repeat `attempt` (0-based): what the server asked for, else 1, 2, 4, 8 s, plus jitter. */
95
110
  function retryDelay(reply, attempt, random = Math.random) {
96
- const after = reply ? header(reply.headers, 'retry-after') : undefined;
97
- const seconds = after !== undefined && /^\d+(\.\d+)?$/.test(after.trim()) ? Number(after) : NaN;
111
+ const seconds = reply ? waitSeconds(reply) : NaN;
98
112
  const base = Number.isFinite(seconds) ? seconds * 1000 : 1000 * 2 ** attempt;
99
113
  return Math.min(MAX_WAIT_MS, Math.round(base + random() * 500));
100
114
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../lib/mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../lib/mcp.ts"],"names":[],"mappings":"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"}