@rolealpha/n8n-nodes-rolealpha 0.7.3 → 0.8.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.
- package/README.md +61 -40
- package/dist/lib/changes.d.ts +126 -83
- package/dist/lib/changes.js +200 -197
- package/dist/lib/changes.js.map +1 -1
- package/dist/lib/mcp.d.ts +1 -1
- package/dist/lib/mcp.js +18 -4
- package/dist/lib/mcp.js.map +1 -1
- package/dist/lib/workflows.d.ts +16 -3
- package/dist/lib/workflows.js +43 -5
- package/dist/lib/workflows.js.map +1 -1
- package/dist/nodes/RoleAlphaWorkflowBuilder/RoleAlphaWorkflowBuilder.node.d.ts +1 -1
- package/dist/nodes/RoleAlphaWorkflowBuilder/RoleAlphaWorkflowBuilder.node.js +83 -54
- package/dist/nodes/RoleAlphaWorkflowBuilder/RoleAlphaWorkflowBuilder.node.js.map +1 -1
- package/package.json +1 -1
package/dist/lib/changes.js
CHANGED
|
@@ -1,226 +1,229 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* Change detection in the roleALPHA graph. roleALPHA
|
|
4
|
-
*
|
|
5
|
-
*
|
|
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
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
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.
|
|
11
16
|
*/
|
|
12
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
exports.
|
|
14
|
-
exports.
|
|
15
|
-
exports.
|
|
16
|
-
exports.
|
|
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;
|
|
17
23
|
exports.detectChanges = detectChanges;
|
|
18
|
-
exports.
|
|
19
|
-
|
|
20
|
-
const crypto_1 = require("crypto");
|
|
21
|
-
const seal_1 = require("./seal");
|
|
22
|
-
/** Fingerprint of a row for an entity that existed in the first run but could not be read. */
|
|
23
|
-
exports.PENDING = 'pending';
|
|
24
|
-
/** 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. */
|
|
25
26
|
exports.ENTITY_TYPES = ['process', 'role', 'agent', 'policy', 'organigramm', 'project', 'okr', 'person'];
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
customId: details.customId,
|
|
45
|
-
fields,
|
|
46
|
-
edges,
|
|
47
|
-
fingerprint: hash({ name, customId: details.customId, fields, edges }),
|
|
48
|
-
};
|
|
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 : {};
|
|
49
45
|
}
|
|
50
|
-
function
|
|
51
|
-
return
|
|
52
|
-
uuid: s.uuid,
|
|
53
|
-
entity_type: s.entityType,
|
|
54
|
-
name: s.name,
|
|
55
|
-
custom_id: s.customId,
|
|
56
|
-
fingerprint: s.fingerprint,
|
|
57
|
-
fields: JSON.stringify(s.fields),
|
|
58
|
-
edges: JSON.stringify(s.edges),
|
|
59
|
-
seen_at: seenAt,
|
|
60
|
-
};
|
|
46
|
+
function lower(value) {
|
|
47
|
+
return typeof value === 'string' ? value.trim().toLowerCase() : '';
|
|
61
48
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
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
|
+
});
|
|
72
78
|
}
|
|
79
|
+
return out;
|
|
73
80
|
}
|
|
74
|
-
/**
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
const types = new Set(opts.types);
|
|
93
|
-
// Rows of other types belong to another detector with another type filter; leave them alone.
|
|
94
|
-
const previous = normalizeRows(previousRaw).filter((r) => types.has(r.entity_type));
|
|
95
|
-
const unreadable = opts.unreadable ?? [];
|
|
96
|
-
const baseline = previous.length === 0 && !opts.reportBaseline;
|
|
97
|
-
const before = new Map(previous.map((r) => [r.uuid, r]));
|
|
98
|
-
const seen = new Set([...current.map((c) => c.uuid), ...unreadable.map((u) => u.uuid.toLowerCase())]);
|
|
99
|
-
const changes = [];
|
|
100
|
-
const upsert = [];
|
|
101
|
-
for (const snap of current) {
|
|
102
|
-
const old = before.get(snap.uuid);
|
|
103
|
-
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++;
|
|
104
99
|
continue;
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
100
|
+
}
|
|
101
|
+
if (!opts.bound.has(row.entityUuid) && !watch.has(row.entityType)) {
|
|
102
|
+
skipped.unwatched++;
|
|
108
103
|
continue;
|
|
109
|
-
|
|
110
|
-
|
|
104
|
+
}
|
|
105
|
+
if (row.change === 'relationship' && row.via && ignore.has(row.via.relationshipType)) {
|
|
106
|
+
skipped.runtime++;
|
|
111
107
|
continue;
|
|
112
108
|
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
if (old.name !== snap.name)
|
|
118
|
-
changedFields.unshift('name');
|
|
119
|
-
if ((old.custom_id ?? null) !== snap.customId)
|
|
120
|
-
changedFields.unshift('customId');
|
|
121
|
-
changes.push({
|
|
122
|
-
change: 'changed',
|
|
123
|
-
uuid: snap.uuid,
|
|
124
|
-
name: snap.name,
|
|
125
|
-
entityType: snap.entityType,
|
|
126
|
-
customId: snap.customId,
|
|
127
|
-
previousName: old.name !== snap.name ? old.name : null,
|
|
128
|
-
changedFields,
|
|
129
|
-
edgesAdded: snap.edges.filter((e) => !oldEdges.has(e)),
|
|
130
|
-
edgesRemoved: [...oldEdges].filter((e) => !newEdges.has(e)).sort(),
|
|
131
|
-
});
|
|
132
|
-
}
|
|
133
|
-
if (baseline) {
|
|
134
|
-
for (const u of unreadable) {
|
|
135
|
-
const uuid = u.uuid.toLowerCase();
|
|
136
|
-
if (before.has(uuid))
|
|
137
|
-
continue;
|
|
138
|
-
if (!u.entityType || !types.has(u.entityType))
|
|
139
|
-
continue;
|
|
140
|
-
upsert.push({ uuid, entity_type: u.entityType, name: u.name, custom_id: null, fingerprint: exports.PENDING, fields: '{}', edges: '[]', seen_at: now });
|
|
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);
|
|
141
113
|
}
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
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);
|
|
152
125
|
}
|
|
153
126
|
}
|
|
154
|
-
return {
|
|
155
|
-
}
|
|
156
|
-
// ---------------------------------------------------------------- reading
|
|
157
|
-
function obj(value) {
|
|
158
|
-
return value && typeof value === 'object' && !Array.isArray(value) ? value : {};
|
|
159
|
-
}
|
|
160
|
-
/** Reads the complete lean index of one type, page by page. */
|
|
161
|
-
async function listIndex(client, organisation, entityType, maxPages = 20) {
|
|
162
|
-
const out = [];
|
|
163
|
-
let offset = 0;
|
|
164
|
-
for (let page = 0; page < maxPages; page++) {
|
|
165
|
-
const res = obj(await client.callTool('list_entities', { organisation, entityType, offset }));
|
|
166
|
-
const rows = Array.isArray(res.entities) ? res.entities : [];
|
|
167
|
-
for (const raw of rows.map(obj)) {
|
|
168
|
-
const uuid = typeof raw.uuid === 'string' ? raw.uuid.toLowerCase() : '';
|
|
169
|
-
if (uuid)
|
|
170
|
-
out.push({ uuid, name: String(raw.name ?? ''), entityType });
|
|
171
|
-
}
|
|
172
|
-
if (res.hasMore !== true || rows.length === 0)
|
|
173
|
-
return out;
|
|
174
|
-
offset = typeof res.nextOffset === 'number' ? res.nextOffset : offset + rows.length;
|
|
175
|
-
}
|
|
176
|
-
throw new Error(`The index of "${entityType}" has more than ${maxPages} pages; narrow the entity types`);
|
|
177
|
-
}
|
|
178
|
-
/** Runs `fn` over `items` with at most `limit` calls at a time. */
|
|
179
|
-
async function pool(items, limit, fn) {
|
|
180
|
-
const out = new Array(items.length);
|
|
181
|
-
let next = 0;
|
|
182
|
-
const workers = Array.from({ length: Math.max(1, Math.min(limit, items.length)) }, async () => {
|
|
183
|
-
while (next < items.length) {
|
|
184
|
-
const i = next++;
|
|
185
|
-
out[i] = await fn(items[i]);
|
|
186
|
-
}
|
|
187
|
-
});
|
|
188
|
-
await Promise.all(workers);
|
|
189
|
-
return out;
|
|
127
|
+
return { changes: [...byUuid.values()], deletionSeen, skipped };
|
|
190
128
|
}
|
|
191
129
|
/**
|
|
192
|
-
* Reads
|
|
193
|
-
*
|
|
194
|
-
* marked unreadable.
|
|
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.
|
|
195
132
|
*/
|
|
196
|
-
async function
|
|
197
|
-
const
|
|
198
|
-
const
|
|
199
|
-
const
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
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 };
|
|
159
|
+
}
|
|
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 = [];
|
|
164
|
+
const unreadable = [];
|
|
165
|
+
for (const uuid of uuids) {
|
|
204
166
|
try {
|
|
205
|
-
await
|
|
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) });
|
|
206
175
|
}
|
|
207
176
|
catch (error) {
|
|
208
|
-
|
|
177
|
+
unreadable.push({ uuid, error: String(error.message ?? error).slice(0, 300) });
|
|
209
178
|
}
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
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) ?? [] });
|
|
221
205
|
}
|
|
222
206
|
}
|
|
223
|
-
|
|
224
|
-
|
|
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;
|
|
225
228
|
}
|
|
226
229
|
//# sourceMappingURL=changes.js.map
|
package/dist/lib/changes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"changes.js","sourceRoot":"","sources":["../../lib/changes.ts"],"names":[],"mappings":"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"}
|
|
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):
|
|
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
|
-
|
|
94
|
-
|
|
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
|
|
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
|
}
|
package/dist/lib/mcp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../lib/mcp.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAuCH,oCAyBC;AAUD,4CAqBC;
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../lib/mcp.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/workflows.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Workflows that follow the organisation. When a step
|
|
3
|
-
*
|
|
2
|
+
* Workflows that follow the organisation. When a step is created or changed in roleALPHA,
|
|
3
|
+
* or an entity a workflow is bound to, a model proposes to create, update or deactivate an n8n workflow. The
|
|
4
4
|
* proposal never goes live by itself: it becomes an inactive draft, a person filling the
|
|
5
5
|
* deciding role approves it, and only then is it applied.
|
|
6
6
|
*
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* it has not seen, nor bake persons, addresses or UUIDs into a workflow, nor touch a
|
|
10
10
|
* workflow that is not managed.
|
|
11
11
|
*/
|
|
12
|
-
import type
|
|
12
|
+
import { type EntityChange } from './changes';
|
|
13
13
|
import { type GraphSource } from './graph';
|
|
14
14
|
export declare const MANAGED_TAG = "rolealpha-managed";
|
|
15
15
|
export declare const DRAFT_TAG = "rolealpha-draft";
|
|
@@ -59,6 +59,8 @@ export interface DraftInfo {
|
|
|
59
59
|
change: string;
|
|
60
60
|
contentHash: string;
|
|
61
61
|
reason: string;
|
|
62
|
+
/** false when the entity is only a neighbour of the target: Apply then leaves the binding as it is. */
|
|
63
|
+
bindEntity?: boolean;
|
|
62
64
|
}
|
|
63
65
|
export interface Binding {
|
|
64
66
|
managed: true;
|
|
@@ -93,11 +95,18 @@ export declare function summarizeWorkflows(raw: unknown[]): {
|
|
|
93
95
|
workflows: ManagedWorkflow[];
|
|
94
96
|
credentials: KnownCredential[];
|
|
95
97
|
};
|
|
98
|
+
/** A managed workflow a change touches: bound to the entity, or to a neighbouring step. */
|
|
99
|
+
export interface AffectedWorkflow {
|
|
100
|
+
workflowId: string;
|
|
101
|
+
name: string;
|
|
102
|
+
as: 'bound' | 'neighbour';
|
|
103
|
+
}
|
|
96
104
|
export interface PlanContext {
|
|
97
105
|
change: EntityChange;
|
|
98
106
|
/** What roleALPHA says about the entity now: details, step, relationships. Never persons. */
|
|
99
107
|
entity: unknown;
|
|
100
108
|
workflows: ManagedWorkflow[];
|
|
109
|
+
affected?: AffectedWorkflow[];
|
|
101
110
|
credentials: KnownCredential[];
|
|
102
111
|
nodeTypes: string[];
|
|
103
112
|
extraRules?: string[];
|
|
@@ -118,6 +127,8 @@ export interface PlanCheck {
|
|
|
118
127
|
targetWorkflowId: string | null;
|
|
119
128
|
targetVersion: string | null;
|
|
120
129
|
entityUuid: string;
|
|
130
|
+
/** Whether the workflow becomes bound to the entity; not when it only neighbours the target. */
|
|
131
|
+
bindEntity: boolean;
|
|
121
132
|
/** Blocking: the proposal is not used. */
|
|
122
133
|
problems: string[];
|
|
123
134
|
/** Not blocking, for the person who approves (e.g. a credential to set). */
|
|
@@ -168,3 +179,5 @@ export declare function discardDraft(api: N8nApi, draftId: string): Promise<{
|
|
|
168
179
|
}>;
|
|
169
180
|
/** The entity as roleALPHA shows it now, without persons: a step with its roles, anything else with its edges. */
|
|
170
181
|
export declare function entityContext(src: GraphSource, change: EntityChange): Promise<unknown>;
|
|
182
|
+
/** The managed workflows a change touches: bound to the entity itself, or to a neighbouring step. */
|
|
183
|
+
export declare function affectedWorkflows(change: EntityChange, entity: unknown, workflows: ManagedWorkflow[]): AffectedWorkflow[];
|