@taifoon/n8n-nodes-typesafe 1.1.0 → 1.3.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.
package/README.md CHANGED
@@ -70,6 +70,13 @@ It is not for writing text, summarising, or reasoning about code. We measured th
70
70
  | **Pick one** ("Choice") | the option, a probability for every option, and a `confidence` | a Switch that knows when it is guessing |
71
71
  | **Rate it** ("Score") | a level on a rubric you write, and a `confidence` | a ranking you can threshold |
72
72
 
73
+ Two things make the answers sharper, and both are optional:
74
+
75
+ - **Describe the options.** Write `billing = payments and refunds; technical = bugs and outages; other = fits none`.
76
+ The descriptions go to the model and are what separates options that sound alike. Add an `other`: a message
77
+ that fits nowhere is then answered *other* with confidence, instead of being forced into a team.
78
+ - **Say what yes and no mean.** A yes/no question has *Yes Means* and *No Means* fields for where the line is.
79
+
73
80
  Ask all the questions that might matter in the same node. They are answered at once and independently,
74
81
  so ten questions cost about the same as one.
75
82
 
@@ -85,6 +92,12 @@ When you are ready, create a **TypeSafe API** credential and paste your key. The
85
92
  you find out immediately whether the key works. Running n8n for a team? You can provision the key from a
86
93
  secrets file so nobody ever sees it: [Supplying keys securely](docs/SECURE_KEYS.md).
87
94
 
95
+ **Upgrading from 1.1 or earlier?** The credential type was renamed (from `typeSafeApi` to
96
+ `taifoonTypeSafeApi`) so it cannot collide with other TypeSafe packages or a future built-in node. After
97
+ updating, create the **TypeSafe API** credential again and select it in your TypeSafe nodes. Nothing else
98
+ changed. If you pre-fill credentials from a file, use the new name as the key
99
+ ([Supplying keys securely](docs/SECURE_KEYS.md)).
100
+
88
101
  ## Try it in two minutes
89
102
 
90
103
  1. Add a **Manual Trigger** and an **Edit Fields** node with a `subject` and a `body`: paste in any
@@ -121,6 +134,11 @@ and a four-level default rubric. No logic changes. Add the pack, add one test se
121
134
  open a pull request. Native speakers catch what we cannot: we would especially welcome Chinese, Korean,
122
135
  Hindi, Turkish, Ukrainian, Swedish, Hebrew and Indonesian, and corrections to the eleven we ship.
123
136
 
137
+ It splits a sentence that holds several jobs (*check if it is a refund and rate the urgency*), keeps the levels you
138
+ name (*rate the tone as polite, neutral or rude*) and reads *from 5 to 1* as the 1 to 5 scale. When it cannot do what
139
+ you wrote it says so in `warnings` rather than substituting quietly: a *0 to 10* scale has eleven steps and a rating
140
+ takes at most ten, and *is the customer new or returning?* asked as a yes/no answers whether EITHER holds, not which.
141
+
124
142
  It is deliberately literal. It will not invent categories you did not name: *"classify this ticket"*
125
143
  with no list comes back flagged `needs_input`. It suggests thresholds but never applies them for you,
126
144
  for the reason in the next section.
@@ -241,6 +259,10 @@ questions you actually want to gate on. If you route `urgency` as well, a perfec
241
259
  | Pick one | `minConfidence`, and `in` for the options you accept | below the confidence → **Review** |
242
260
  | Rate it | `min`, `max` on the level, and optionally `minConfidence` | pass or fail; below the confidence → **Review** |
243
261
 
262
+ A mistake in Routing never reads as a pass. A rule that names a question you did not ask (a typo, a renamed ID), a
263
+ yes/no rule with no threshold, or a confidence bar on an answer that carries no confidence all send the item to
264
+ **Review**, with the reason in `decisions`.
265
+
244
266
  Two details: a rating is a **zero-based level number** (0 is your first level; every answer includes a
245
267
  `legend`), and an answer that does not validate always goes to Review. Nothing fails open.
246
268
 
@@ -277,6 +299,7 @@ are retried with backoff. Input is text or JSON; no images or audio.
277
299
 
278
300
  ## More
279
301
 
302
+ [TypeSafe over MCP, and an approval gate for agent tool calls](docs/MCP.md) ·
280
303
  [Supplying keys securely](docs/SECURE_KEYS.md) · [Workflow patterns](docs/WORKFLOWS.md) ·
281
304
  [How Translate works, rule by rule](docs/TRANSLATION.md) · [Trading gates in eleven languages](docs/TRADING_GATES.md) · [Key policy and rotation](docs/KEY_POLICY.md)
282
305
 
@@ -1,5 +1,5 @@
1
1
  import type { IAuthenticateGeneric, ICredentialTestRequest, ICredentialType, INodeProperties } from 'n8n-workflow';
2
- export declare class TypeSafeApi implements ICredentialType {
2
+ export declare class TaifoonTypeSafeApi implements ICredentialType {
3
3
  name: string;
4
4
  displayName: string;
5
5
  icon: {
@@ -1,15 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TypeSafeApi = void 0;
4
- class TypeSafeApi {
3
+ exports.TaifoonTypeSafeApi = void 0;
4
+ class TaifoonTypeSafeApi {
5
5
  constructor() {
6
- this.name = 'typeSafeApi';
6
+ this.name = 'taifoonTypeSafeApi';
7
7
  this.displayName = 'TypeSafe API';
8
8
  this.icon = { light: 'file:taifoon.svg', dark: 'file:taifoon.dark.svg' };
9
9
  this.documentationUrl = 'https://docs.typesafe.ai/introduction/quickstart';
10
10
  this.properties = [
11
11
  { displayName: 'API Key', name: 'apiKey', type: 'string', typeOptions: { password: true }, default: '', required: true, description: 'From console.typesafe.ai' },
12
- { displayName: 'Base URL', name: 'baseUrl', type: 'string', default: 'https://api.typesafe.ai', description: 'Change only for a proxy or a private deployment' },
12
+ { displayName: 'Base URL', name: 'baseUrl', type: 'string', default: 'https://api.typesafe.ai', description: 'Change only for a private deployment. Must be https: the node refuses to send your key anywhere else.' },
13
13
  ];
14
14
  this.authenticate = { type: 'generic', properties: { headers: { Authorization: '=Bearer {{$credentials.apiKey}}' } } };
15
15
  this.test = {
@@ -18,5 +18,5 @@ class TypeSafeApi {
18
18
  };
19
19
  }
20
20
  }
21
- exports.TypeSafeApi = TypeSafeApi;
22
- //# sourceMappingURL=TypeSafeApi.credentials.js.map
21
+ exports.TaifoonTypeSafeApi = TaifoonTypeSafeApi;
22
+ //# sourceMappingURL=TaifoonTypeSafeApi.credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaifoonTypeSafeApi.credentials.js","sourceRoot":"","sources":["../../credentials/TaifoonTypeSafeApi.credentials.ts"],"names":[],"mappings":";;;AAMA,MAAa,kBAAkB;IAA/B;QAGC,SAAI,GAAG,oBAAoB,CAAC;QAE5B,gBAAW,GAAG,cAAc,CAAC;QAE7B,SAAI,GAAG,EAAE,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,uBAAuB,EAAW,CAAC;QAE7E,qBAAgB,GAAG,kDAAkD,CAAC;QAEtE,eAAU,GAAsB;YAC/B,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,0BAA0B,EAAE;YACjK,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,yBAAyB,EAAE,WAAW,EAAE,uGAAuG,EAAE;SACtN,CAAC;QAEF,iBAAY,GAAyB,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,iCAAiC,EAAE,EAAE,EAAE,CAAC;QAGxI,SAAI,GAA2B;YAC9B,OAAO,EAAE,EAAE,OAAO,EAAE,2BAA2B,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM;gBACpF,IAAI,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,kCAAkC,EAAE,EAAE,EAAE,EAAE;SACjJ,CAAC;IACH,CAAC;CAAA;AAvBD,gDAuBC"}
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TaifoonTypeSafe = void 0;
4
4
  const n8n_workflow_1 = require("n8n-workflow");
5
5
  const translate_1 = require("./translate");
6
- const split = (s, sep) => String(s !== null && s !== void 0 ? s : '').split(sep).map((x) => x.trim()).filter(Boolean);
6
+ const split = (s, sep) => (Array.isArray(s) ? s.map(String) : String(s !== null && s !== void 0 ? s : '').split(sep)).map((x) => x.trim()).filter(Boolean);
7
7
  const REDACT = /(apikey_|tfn_live_|npm_|Bearer\s+)[A-Za-z0-9_.-]+/g;
8
8
  function safeError(error) {
9
9
  var _a, _b, _c, _d, _e, _f, _g;
@@ -28,8 +28,24 @@ function nextStep(status, connection) {
28
28
  return 'TypeSafe reports the account has no credit. Top it up at console.typesafe.ai.';
29
29
  return undefined;
30
30
  }
31
+ function retryAfterMs(error) {
32
+ var _a, _b, _c, _d, _e;
33
+ const headers = (_b = (_a = error.response) === null || _a === void 0 ? void 0 : _a.headers) !== null && _b !== void 0 ? _b : (_d = (_c = error.cause) === null || _c === void 0 ? void 0 : _c.response) === null || _d === void 0 ? void 0 : _d.headers;
34
+ const raw = (_e = headers === null || headers === void 0 ? void 0 : headers['retry-after']) !== null && _e !== void 0 ? _e : headers === null || headers === void 0 ? void 0 : headers['Retry-After'];
35
+ if (raw === undefined || raw === null || raw === '')
36
+ return undefined;
37
+ const secs = Number(raw);
38
+ const ms = Number.isFinite(secs) ? secs * 1000 : Date.parse(String(raw)) - Date.now();
39
+ return Number.isFinite(ms) && ms >= 0 ? Math.min(ms, 30000) : undefined;
40
+ }
41
+ function parseOptions(raw) {
42
+ if (raw && typeof raw === 'object' && !Array.isArray(raw))
43
+ return Object.entries(raw).map(([k, v]) => [k.trim(), v === null || v === undefined || String(v).trim() === '' ? null : String(v).trim()]).filter(([k]) => k);
44
+ const entries = Array.isArray(raw) ? raw.map(String) : String(raw !== null && raw !== void 0 ? raw : '').split(/[\n;]/.test(String(raw !== null && raw !== void 0 ? raw : '')) ? /\s*[\n;]\s*/ : /\s*,\s*/);
45
+ return entries.map((e) => { const at = e.indexOf('='); return (at < 0 ? [e.trim(), null] : [e.slice(0, at).trim(), e.slice(at + 1).trim() || null]); }).filter(([k]) => k);
46
+ }
31
47
  async function withBackoff(node, call) {
32
- var _a, _b;
48
+ var _a, _b, _c;
33
49
  for (let attempt = 0;; attempt++) {
34
50
  try {
35
51
  return await call();
@@ -37,7 +53,7 @@ async function withBackoff(node, call) {
37
53
  catch (error) {
38
54
  const status = Number((_a = error.httpCode) !== null && _a !== void 0 ? _a : (_b = error.response) === null || _b === void 0 ? void 0 : _b.status);
39
55
  if ((status === 429 || status === 529) && attempt < 3) {
40
- await (0, n8n_workflow_1.sleep)(500 * 2 ** attempt);
56
+ await (0, n8n_workflow_1.sleep)((_c = retryAfterMs(error)) !== null && _c !== void 0 ? _c : 500 * 2 ** attempt);
41
57
  continue;
42
58
  }
43
59
  throw new n8n_workflow_1.NodeApiError(node, safeError(error));
@@ -64,7 +80,7 @@ class TaifoonTypeSafe {
64
80
  outputNames: ['Pass', 'Fail', 'Review'],
65
81
  usableAsTool: true,
66
82
  credentials: [
67
- { name: 'typeSafeApi', required: true, displayOptions: { show: { operation: ['ask'], connection: ['direct'] } } },
83
+ { name: 'taifoonTypeSafeApi', required: true, displayOptions: { show: { operation: ['ask'], connection: ['direct'] } } },
68
84
  ],
69
85
  properties: [
70
86
  { displayName: 'Operation', name: 'operation', type: 'options', noDataExpression: true, default: 'ask',
@@ -83,12 +99,14 @@ class TaifoonTypeSafe {
83
99
  description: 'Ask every question that might matter in one call: they are answered in parallel and in isolation, so ten cost about what one does',
84
100
  options: [{ name: 'question', displayName: 'Question', values: [
85
101
  { displayName: 'ID', name: 'id', type: 'string', default: '', placeholder: 'is_refund', description: 'Lower-case name the answer is returned under' },
86
- { displayName: 'Levels', name: 'levels', type: 'string', default: '', placeholder: 'None | Low | Medium | High', displayOptions: { show: { kind: ['score'] } }, description: 'Pipe-separated rubric, lowest first, 2 to 10 levels' },
87
- { displayName: 'Options', name: 'options', type: 'string', default: '', placeholder: 'billing, technical, sales, abuse', displayOptions: { show: { kind: ['choice'] } }, description: 'Comma-separated, 2 to 50' },
102
+ { displayName: 'Levels', name: 'levels', type: 'string', default: '', placeholder: 'None | Low | Medium | High', displayOptions: { show: { kind: ['score'] } }, description: 'Pipe-separated rubric, lowest first, 2 to 10 levels. Each level is a description: write what that level looks like. The answer is a zero-based position on this list and can land between levels.' },
103
+ { displayName: 'No Means', name: 'noMeans', type: 'string', default: '', placeholder: 'No urgency expressed', displayOptions: { show: { kind: ['noul'] } }, description: 'Optional. What a "no" means, in your words. Helps when the question alone could be read two ways.' },
104
+ { displayName: 'Options', name: 'options', type: 'string', default: '', placeholder: 'billing = payments and refunds; technical = bugs and outages; sales', displayOptions: { show: { kind: ['choice'] } }, description: 'The options, 2 to 255, separated by commas. To describe an option write "name = description"; separate the entries with semicolons or new lines if a description contains a comma. Descriptions are sent to the model and are what separates options that sound alike.' },
88
105
  { displayName: 'Question Text', name: 'text', type: 'string', default: '', description: 'One atomic question. Anything that weighs several factors should be several questions.' },
89
106
  { displayName: 'Type', name: 'kind', type: 'options', default: 'noul', options: [
90
107
  { name: 'Choice (Pick One of a Set)', value: 'choice' }, { name: 'Noul (Yes/No as a Probability)', value: 'noul' }, { name: 'Score (Level on a Rubric)', value: 'score' }
91
108
  ] },
109
+ { displayName: 'Yes Means', name: 'yesMeans', type: 'string', default: '', placeholder: 'Explicitly time-sensitive', displayOptions: { show: { kind: ['noul'] } }, description: 'Optional. What a "yes" means, in your words.' },
92
110
  ] }] },
93
111
  { displayName: 'Questions From Translate (JSON)', name: 'questionsJson', type: 'json', default: '[]', displayOptions: { show: { operation: ['ask'] } },
94
112
  description: 'Optional. The "questions" array produced by the Translate operation, for example {{ $JSON.ask.questions }}. Added to the questions above.' },
@@ -114,7 +132,7 @@ class TaifoonTypeSafe {
114
132
  };
115
133
  }
116
134
  async execute() {
117
- var _a, _b, _c, _d, _e, _f, _g, _h;
135
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
118
136
  const items = this.getInputData();
119
137
  const pass = [];
120
138
  const fail = [];
@@ -128,6 +146,7 @@ class TaifoonTypeSafe {
128
146
  const runnable = questions.filter((q) => !q.needs_input);
129
147
  pass.push({ pairedItem: { item: i }, json: {
130
148
  ready: questions.length > 0 && runnable.length === questions.length, deterministic: true, languages: langs, questions, dropped, notes,
149
+ warnings: questions.filter((q) => q.warning).map((q) => ({ id: q.id, warning: q.warning })),
131
150
  ask: { questions: runnable.map((q) => ({ id: q.id, kind: q.kind, text: q.text, source: q.source, ...(q.options ? { options: q.options.join(', ') } : {}), ...(q.levels ? { levels: q.levels.join(' | ') } : {}) })),
132
151
  routing: {} },
133
152
  suggestedRouting: Object.fromEntries(runnable.map((q) => [q.id, q.routing])),
@@ -157,16 +176,20 @@ class TaifoonTypeSafe {
157
176
  let answers = [];
158
177
  let meta = {};
159
178
  if (connection === 'direct') {
160
- const cred = await this.getCredentials('typeSafeApi');
179
+ const cred = await this.getCredentials('taifoonTypeSafeApi');
161
180
  const questions = {};
162
181
  for (const q of qs) {
163
- questions[q.id] = q.kind === 'choice' ? { type: 'choice', instructions: q.text, criteria: Object.fromEntries(split(q.options, /\s*,\s*/).map((o) => [o, o])) }
182
+ const means = { ...(((_c = q.yesMeans) === null || _c === void 0 ? void 0 : _c.trim()) ? { true: q.yesMeans.trim() } : {}), ...(((_d = q.noMeans) === null || _d === void 0 ? void 0 : _d.trim()) ? { false: q.noMeans.trim() } : {}) };
183
+ questions[q.id] = q.kind === 'choice' ? { type: 'choice', instructions: q.text, criteria: Object.fromEntries(parseOptions(q.options).map(([o, d]) => [o, d !== null && d !== void 0 ? d : o])) }
164
184
  : q.kind === 'score' ? { type: 'score', instructions: q.text, criteria: split(q.levels, /\s*\|\s*/) }
165
- : { type: 'noul', instructions: q.text };
185
+ : { type: 'noul', instructions: q.text, ...(Object.keys(means).length ? { criteria: means } : {}) };
166
186
  }
167
- const req = { method: 'POST', url: `${String(cred.baseUrl || 'https://api.typesafe.ai').replace(/\/$/, '')}/v1/systemone`, body: { model: 'jev-latest', state, questions }, json: true, timeout: 60000 };
187
+ const base = String(cred.baseUrl || 'https://api.typesafe.ai').replace(/\/$/, '');
188
+ if (!/^https:\/\/[^\s/]+/i.test(base))
189
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'The Base URL in the TypeSafe API credential must start with https://', { itemIndex: i });
190
+ const req = { method: 'POST', url: `${base}/v1/systemone`, body: { model: 'jev-latest', state, questions }, json: true, timeout: 60000 };
168
191
  const started = Date.now();
169
- const res = (await withBackoff(this.getNode(), () => this.helpers.httpRequestWithAuthentication.call(this, 'typeSafeApi', req)));
192
+ const res = (await withBackoff(this.getNode(), () => this.helpers.httpRequestWithAuthentication.call(this, 'taifoonTypeSafeApi', req)));
170
193
  answers = qs.map((q) => {
171
194
  var _a, _b, _c, _d, _e, _f;
172
195
  const a = ((_a = res.answers) !== null && _a !== void 0 ? _a : {})[q.id];
@@ -178,12 +201,16 @@ class TaifoonTypeSafe {
178
201
  return { id: q.id, kind: q.kind, schema_ok: typeof a.choice === 'string', value: (_c = a.choice) !== null && _c !== void 0 ? _c : null, confidence: (_d = a.confidence) !== null && _d !== void 0 ? _d : null, probabilities: a.probabilities };
179
202
  return { id: q.id, kind: q.kind, schema_ok: typeof a.score === 'number', value: (_e = a.score) !== null && _e !== void 0 ? _e : null, confidence: (_f = a.confidence) !== null && _f !== void 0 ? _f : null, probabilities: a.probabilities, legend: a.legend };
180
203
  });
181
- meta = { model: (_c = res.model) !== null && _c !== void 0 ? _c : 'jev-latest', provider: 'typesafe', connection, latency_ms: Date.now() - started, usage: (_d = res.usage) !== null && _d !== void 0 ? _d : {} };
204
+ meta = { model: (_e = res.model) !== null && _e !== void 0 ? _e : 'jev-latest', provider: 'typesafe', connection, latency_ms: Date.now() - started, usage: (_f = res.usage) !== null && _f !== void 0 ? _f : {} };
182
205
  }
183
206
  else if (connection === 'trial') {
184
- const res = await askTrial(this, { state: state, questions: qs.map((q) => ({ id: q.id, kind: q.kind, text: q.text,
185
- ...(q.kind === 'choice' ? { options: split(q.options, /\s*,\s*/) } : {}), ...(q.kind === 'score' ? { levels: split(q.levels, /\s*\|\s*/) } : {}) })) });
186
- answers = (_e = res.answers) !== null && _e !== void 0 ? _e : [];
207
+ const res = await askTrial(this, { state: state, questions: qs.map((q) => {
208
+ var _a, _b;
209
+ return ({ id: q.id, kind: q.kind, text: q.text,
210
+ ...(q.kind === 'choice' ? { options: Object.fromEntries(parseOptions(q.options)) } : {}), ...(q.kind === 'score' ? { levels: split(q.levels, /\s*\|\s*/) } : {}),
211
+ ...(q.kind === 'noul' && ((_a = q.yesMeans) === null || _a === void 0 ? void 0 : _a.trim()) ? { yes_means: q.yesMeans.trim() } : {}), ...(q.kind === 'noul' && ((_b = q.noMeans) === null || _b === void 0 ? void 0 : _b.trim()) ? { no_means: q.noMeans.trim() } : {}) });
212
+ }) });
213
+ answers = (_g = res.answers) !== null && _g !== void 0 ? _g : [];
187
214
  meta = { model: res.model, provider: 'typesafe', connection, latency_ms: res.latency_ms, usage: res.usage, trial: res.trial, next: res.next };
188
215
  }
189
216
  else {
@@ -207,15 +234,15 @@ class TaifoonTypeSafe {
207
234
  }
208
235
  catch (error) {
209
236
  if (this.continueOnFail()) {
210
- review.push({ json: { error: String((_f = error.message) !== null && _f !== void 0 ? _f : 'request failed').replace(/(apikey_|tfn_live_|Bearer\s+)[A-Za-z0-9_.-]+/g, '$1[redacted]'), branch: 'review' }, pairedItem: { item: i } });
237
+ review.push({ json: { error: String((_h = error.message) !== null && _h !== void 0 ? _h : 'request failed').replace(/(apikey_|tfn_live_|Bearer\s+)[A-Za-z0-9_.-]+/g, '$1[redacted]'), branch: 'review' }, pairedItem: { item: i } });
211
238
  continue;
212
239
  }
213
240
  if (error instanceof n8n_workflow_1.NodeOperationError)
214
- throw new n8n_workflow_1.NodeOperationError(this.getNode(), error.message, { itemIndex: i, description: (_g = error.description) !== null && _g !== void 0 ? _g : undefined });
241
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), error.message, { itemIndex: i, description: (_j = error.description) !== null && _j !== void 0 ? _j : undefined });
215
242
  const safe = safeError(error);
216
243
  const step = nextStep(Number(safe.httpCode), String(this.getNodeParameter('connection', i, 'direct')));
217
244
  if (step)
218
- throw new n8n_workflow_1.NodeOperationError(this.getNode(), step, { itemIndex: i, description: String((_h = safe.description) !== null && _h !== void 0 ? _h : '') });
245
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), step, { itemIndex: i, description: String((_k = safe.description) !== null && _k !== void 0 ? _k : '') });
219
246
  throw new n8n_workflow_1.NodeApiError(this.getNode(), safe, { itemIndex: i });
220
247
  }
221
248
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TaifoonTypeSafe.node.js","sourceRoot":"","sources":["../../../nodes/TaifoonTypeSafe/TaifoonTypeSafe.node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TaifoonTypeSafe.node.js","sourceRoot":"","sources":["../../../nodes/TaifoonTypeSafe/TaifoonTypeSafe.node.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ export interface Compiled {
9
9
  lang?: string;
10
10
  explain: string;
11
11
  needs_input?: string;
12
+ warning?: string;
12
13
  routing: Route;
13
14
  }
14
15
  export interface Route {
@@ -115,15 +115,21 @@ function extractOptions(clause, lang = "en") {
115
115
  function levelsFor(clause, lang) {
116
116
  const p = PACKS[lang];
117
117
  const r = clause.match(p.loose
118
- ? new RegExp(`${p.from ? `(?:(?:${p.from})\\s*)?` : ""}(\\d{1,2})\\s*(?:-|–|—|〜|~|${p.to})\\s*(\\d{1,2})|(\\d{1,2})\\s*(?:${p.outOf})`, "iu")
119
- : new RegExp(`${NB}(?:(?:${p.from})\\s+)?(\\d{1,2})\\s*(?:-|–|—|${NB}(?:${p.to})${NA})\\s*(\\d{1,2})${NA}|${NB}(?:${p.outOf})\\s+(\\d{1,2})${NA}(?!\\s*\\p{L})`, "iu"));
118
+ ? new RegExp(`${p.from ? `(?:(?:${p.from})\\s*)?` : ""}(\\d{1,3})\\s*(?:-|–|—|〜|~|${p.to})\\s*(\\d{1,3})|(\\d{1,3})\\s*(?:${p.outOf})`, "iu")
119
+ : new RegExp(`${NB}(?:(?:${p.from})\\s+)?(\\d{1,3})\\s*(?:-|–|—|${NB}(?:${p.to})${NA})\\s*(\\d{1,3})${NA}|${NB}(?:${p.outOf})\\s+(\\d{1,3})${NA}(?!\\s*\\p{L})`, "iu"));
120
120
  if (r) {
121
- const lo = r[3] ? 1 : Number(r[1]);
122
- const hi = r[3] ? Number(r[3]) : Number(r[2]);
121
+ const first = r[3] ? 1 : Number(r[1]);
122
+ const second = r[3] ? Number(r[3]) : Number(r[2]);
123
+ const lo = Math.min(first, second);
124
+ const hi = Math.max(first, second);
123
125
  const n = hi - lo + 1;
124
- if (hi > lo && n >= 2 && n <= 10) {
126
+ if (n >= 2 && n <= 10) {
125
127
  return { levels: Array.from({ length: n }, (_, k) => `${lo + k}${k === 0 ? " (lowest)" : k === n - 1 ? " (highest)" : ""}`), why: `the task names a ${lo} to ${hi} scale`, matched: r[0] };
126
128
  }
129
+ if (n > 10) {
130
+ return { levels: [...p.rubric], why: `the task names a ${lo} to ${hi} scale (${n} steps), more than the 10 levels a rating can have`, matched: r[0],
131
+ warning: `a ${lo} to ${hi} scale has ${n} steps and a rating takes at most 10 levels, so the default ${p.rubric.length}-level rubric is used instead: the answer is a level on THAT rubric, not a number from ${lo} to ${hi}. Name a scale of up to 10 steps or write your own levels.` };
132
+ }
127
133
  }
128
134
  return { levels: [...p.rubric], why: "no scale was named, so a four-level rubric is used: replace it with your own", matched: null };
129
135
  }
@@ -146,7 +152,14 @@ const asQuestion = (c, lang) => {
146
152
  return /[??؟]$/u.test(q) ? q : `${q}${lang === "ar" ? "؟" : lang === "ja" ? "?" : "?"}`;
147
153
  };
148
154
  function translateTask(task, maxQuestions = 8, lang) {
149
- const all = clauses(task);
155
+ const all = clauses(task).flatMap((c) => {
156
+ const l = detectLang(c, lang);
157
+ const pk = PACKS[l];
158
+ if (pk.loose || !pk.and)
159
+ return [c];
160
+ const parts = c.split(new RegExp(`\\s*(?:,\\s+(?:(?:${pk.and})\\s+)?|\\s+(?:${pk.and})\\s+)(?=(?:${pk.choice}|${pk.score}${pk.lead ? `|${pk.lead}` : ""})${NA})`, "iu")).map((x) => x.trim()).filter((x) => x.length >= 4);
161
+ return parts.length > 1 ? parts : [c];
162
+ }).slice(0, 12);
150
163
  const taken = new Set();
151
164
  const questions = [];
152
165
  const seen = new Set();
@@ -165,12 +178,20 @@ function translateTask(task, maxQuestions = 8, lang) {
165
178
  });
166
179
  }
167
180
  else if (RX[l].score.test(c)) {
168
- const { levels, why, matched } = levelsFor(c, l);
169
- const text = (matched ? c.replace(matched, "") : c).replace(/\s{2,}/g, " ").trim();
170
- questions.push({ id: slug(c, taken, l), kind: "score", text: asQuestion(text, l), levels, source: c, lang: l, explain: `a rating verb -> score; ${why}${tag}`, routing: { min: Math.ceil((levels.length - 1) / 2) } });
181
+ const scale = levelsFor(c, l);
182
+ const named = scale.matched ? [] : extractOptions(c, l);
183
+ const useNamed = named.length >= 2 && named.length <= 10;
184
+ const levels = useNamed ? named : scale.levels;
185
+ const why = useNamed ? `the task names its own ${named.length} levels` : scale.why;
186
+ const stem = useNamed ? c.replace(new RegExp(`(?::|${nb(l)}(?:${PACKS[l].intro})${na(l)}[:\\s]).*$`, "iu"), "").trim() || c : c;
187
+ const text = (scale.matched ? stem.replace(scale.matched, "") : stem).replace(/\s{2,}/g, " ").trim();
188
+ questions.push({ id: slug(stem, taken, l), kind: "score", text: asQuestion(text, l), levels, source: c, lang: l, explain: `a rating verb -> score; ${why}${tag}`,
189
+ ...(scale.warning && !useNamed ? { warning: scale.warning } : {}), routing: { min: Math.ceil((levels.length - 1) / 2) } });
171
190
  }
172
191
  else {
173
- questions.push({ id: slug(c, taken, l), kind: "noul", text: asQuestion(c, l), source: c, lang: l, explain: `a statement that is true or false -> noul (the probability it is true)${tag}`, routing: { gte: 0.5 } });
192
+ const eitherOr = !PACKS[l].loose && new RegExp(`${NB}(?:${PACKS[l].or})${NA}`, "iu").test(c);
193
+ questions.push({ id: slug(c, taken, l), kind: "noul", text: asQuestion(c, l), source: c, lang: l, explain: `a statement that is true or false -> noul (the probability it is true)${tag}`,
194
+ ...(eitherOr ? { warning: "this names alternatives and is asked as a yes/no: the probability is that EITHER holds, not which one. To get the pick, phrase it as a selection and list the options." } : {}), routing: { gte: 0.5 } });
174
195
  }
175
196
  }
176
197
  const notes = [
@@ -191,13 +212,20 @@ function decide(answers, routing) {
191
212
  continue;
192
213
  }
193
214
  if (a.kind === "noul") {
215
+ if (r.gte === undefined && r.lte === undefined) {
216
+ decisions.push({ id: a.id, outcome: "review", reason: "routed without a threshold (gte or lte): failing closed to review" });
217
+ continue;
218
+ }
194
219
  const p = typeof a.p === "number" ? a.p : a.value === true ? 1 : 0;
195
220
  const ok = (r.gte === undefined || p >= r.gte) && (r.lte === undefined || p <= r.lte);
196
221
  decisions.push({ id: a.id, outcome: ok ? "pass" : "fail", reason: `p=${p.toFixed(3)} against ${r.gte !== undefined ? `>= ${r.gte}` : ""}${r.lte !== undefined ? ` <= ${r.lte}` : ""}`.trim() });
197
222
  }
198
223
  else if (a.kind === "choice") {
199
224
  const conf = typeof a.confidence === "number" ? a.confidence : null;
200
- if (r.minConfidence !== undefined && conf !== null && conf < r.minConfidence) {
225
+ if (r.minConfidence !== undefined && conf === null) {
226
+ decisions.push({ id: a.id, outcome: "review", reason: `a confidence of at least ${r.minConfidence} was asked for and the answer carries none: failing closed to review` });
227
+ }
228
+ else if (r.minConfidence !== undefined && conf !== null && conf < r.minConfidence) {
201
229
  decisions.push({ id: a.id, outcome: "review", reason: `chose ${String(a.value)} at confidence ${conf.toFixed(2)}, below ${r.minConfidence}: a person should look` });
202
230
  }
203
231
  else {
@@ -208,6 +236,10 @@ function decide(answers, routing) {
208
236
  else {
209
237
  const v = Number(a.value);
210
238
  const conf = typeof a.confidence === "number" ? a.confidence : null;
239
+ if (r.minConfidence !== undefined && conf === null) {
240
+ decisions.push({ id: a.id, outcome: "review", reason: `a confidence of at least ${r.minConfidence} was asked for and the answer carries none: failing closed to review` });
241
+ continue;
242
+ }
211
243
  if (r.minConfidence !== undefined && conf !== null && conf < r.minConfidence) {
212
244
  decisions.push({ id: a.id, outcome: "review", reason: `score ${v} at confidence ${conf.toFixed(2)}, below ${r.minConfidence}: a person should look` });
213
245
  continue;
@@ -216,6 +248,10 @@ function decide(answers, routing) {
216
248
  decisions.push({ id: a.id, outcome: ok ? "pass" : "fail", reason: `score ${v} against ${r.min !== undefined ? `>= ${r.min}` : ""}${r.max !== undefined ? ` <= ${r.max}` : ""}`.trim() });
217
249
  }
218
250
  }
251
+ const asked = new Set(answers.map((x) => x.id));
252
+ for (const id of Object.keys(routing))
253
+ if (!asked.has(id))
254
+ decisions.push({ id, outcome: "review", reason: "routing names a question that was not asked: failing closed to review" });
219
255
  const branch = decisions.some((d) => d.outcome === "review") ? "review" : decisions.every((d) => d.outcome === "pass") && decisions.length > 0 ? "pass" : "fail";
220
256
  return { decisions, allPass: branch === "pass", branch };
221
257
  }