@rolealpha/n8n-nodes-rolealpha 0.7.3 → 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,226 +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.
9
- * An entity that could not be read in the first run gets a pending row, so that it is
10
- * taken in silently later instead of being reported as new.
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.ENTITY_TYPES = exports.PENDING = void 0;
14
- exports.snapshotOf = snapshotOf;
15
- exports.toRow = toRow;
16
- 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;
17
23
  exports.detectChanges = detectChanges;
18
- exports.listIndex = listIndex;
19
- exports.readSnapshots = readSnapshots;
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
- function hash(value, length = 16) {
27
- return (0, crypto_1.createHash)('sha256').update((0, seal_1.canonicalJson)(value), 'utf8').digest('hex').slice(0, length);
28
- }
29
- /** Attributes that change without the entity changing in substance. */
30
- const VOLATILE = /^(updated_?at|updatedAt|modified_?at|last_?(seen|run|login)(_?at)?|version_?count|views?)$/i;
31
- function snapshotOf(entry, details, rels) {
32
- const fields = {};
33
- for (const [key, value] of Object.entries(details.data ?? {})) {
34
- if (value === undefined || VOLATILE.test(key))
35
- continue;
36
- fields[key] = hash(value, 12);
37
- }
38
- const edges = [...new Set(rels.map((r) => `${r.type}${r.direction === 'outgoing' ? '>' : '<'}${r.uuid}`))].sort();
39
- const name = details.name || entry.name;
40
- return {
41
- uuid: entry.uuid,
42
- name,
43
- entityType: entry.entityType,
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 toRow(s, seenAt) {
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
- function parseJson(value, fallback) {
63
- if (value && typeof value === 'object')
64
- return value;
65
- if (typeof value !== 'string' || value.trim() === '')
66
- return fallback;
67
- try {
68
- return JSON.parse(value);
69
- }
70
- catch {
71
- 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
+ });
72
78
  }
79
+ return out;
73
80
  }
74
- /** Rows as they come back from a table: drops rows without uuid or fingerprint. */
75
- function normalizeRows(raw) {
76
- return (Array.isArray(raw) ? raw : [])
77
- .filter((r) => !!r && typeof r === 'object')
78
- .filter((r) => typeof r.uuid === 'string' && r.uuid !== '' && typeof r.fingerprint === 'string')
79
- .map((r) => ({
80
- uuid: String(r.uuid).toLowerCase(),
81
- entity_type: String(r.entity_type ?? ''),
82
- name: String(r.name ?? ''),
83
- custom_id: typeof r.custom_id === 'string' && r.custom_id !== '' ? r.custom_id : null,
84
- fingerprint: String(r.fingerprint),
85
- fields: typeof r.fields === 'string' ? r.fields : JSON.stringify(r.fields ?? {}),
86
- edges: typeof r.edges === 'string' ? r.edges : JSON.stringify(r.edges ?? []),
87
- seen_at: String(r.seen_at ?? ''),
88
- }));
89
- }
90
- function detectChanges(previousRaw, current, opts) {
91
- const now = (opts.now ?? new Date()).toISOString();
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
- upsert.push(toRow(snap, now));
106
- // Part of the first run, only read now: its first snapshot, not a change.
107
- if (baseline || old?.fingerprint === exports.PENDING)
100
+ }
101
+ if (!opts.bound.has(row.entityUuid) && !watch.has(row.entityType)) {
102
+ skipped.unwatched++;
108
103
  continue;
109
- if (!old) {
110
- 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++;
111
107
  continue;
112
108
  }
113
- const oldFields = parseJson(old.fields, {});
114
- const oldEdges = new Set(parseJson(old.edges, []));
115
- const newEdges = new Set(snap.edges);
116
- const changedFields = [...new Set([...Object.keys(oldFields), ...Object.keys(snap.fields)])].filter((k) => oldFields[k] !== snap.fields[k]).sort();
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
- const remove = [];
144
- if (opts.complete) {
145
- for (const old of previous) {
146
- if (seen.has(old.uuid))
147
- continue;
148
- remove.push(old.uuid);
149
- if (!baseline) {
150
- 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, []) });
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 { baseline, complete: opts.complete, changes, upsert, remove, unreadable };
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 details and relationships of every index entry. Entries the server turned away
193
- * (e.g. rate limit) are read once more one by one after a pause; what still fails is
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 readSnapshots(src, entries, concurrency = 2, opts = {}) {
197
- const snapshots = [];
198
- const failed = [];
199
- const read = async (entry) => {
200
- const [details, rels] = await Promise.all([src.details(entry.uuid), src.relationships(entry.uuid)]);
201
- snapshots.push(snapshotOf(entry, details, rels));
202
- };
203
- await pool(entries, concurrency, async (entry) => {
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 read(entry);
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
- failed.push({ entry, error });
177
+ unreadable.push({ uuid, error: String(error.message ?? error).slice(0, 300) });
209
178
  }
210
- });
211
- const unreadable = [];
212
- if (failed.length > 0) {
213
- await (opts.sleep ?? ((ms) => new Promise((r) => setTimeout(r, ms))))(opts.pauseMs ?? 10_000);
214
- for (const { entry } of failed) {
215
- try {
216
- await read(entry);
217
- }
218
- catch (error) {
219
- unreadable.push({ uuid: entry.uuid, name: entry.name, entityType: entry.entityType, error: String(error.message ?? error).slice(0, 300) });
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
- snapshots.sort((a, b) => a.uuid.localeCompare(b.uuid));
224
- return { snapshots, unreadable };
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
@@ -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): 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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"}
@@ -1,6 +1,6 @@
1
1
  /**
2
- * Workflows that follow the organisation. When a step, role or agent is created or changed
3
- * in roleALPHA, a model proposes to create, update or deactivate an n8n workflow. The
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 { EntityChange } from './changes';
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[];