@exellix/ai-tasks 10.1.0 → 10.1.2
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/CHANGELOG.md +490 -472
- package/dist/node-execution/traceLifecycle.d.ts +16 -40
- package/dist/node-execution/traceLifecycle.d.ts.map +1 -1
- package/dist/node-execution/traceLifecycle.js +82 -289
- package/dist/node-execution/traceLifecycle.js.map +1 -1
- package/dist/node-execution/traceLifecycleLocal.d.ts +42 -0
- package/dist/node-execution/traceLifecycleLocal.d.ts.map +1 -0
- package/dist/node-execution/traceLifecycleLocal.js +312 -0
- package/dist/node-execution/traceLifecycleLocal.js.map +1 -0
- package/documenations/node-execution-graphenix.md +3 -3
- package/package.json +96 -96
package/CHANGELOG.md
CHANGED
|
@@ -1,472 +1,490 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
All notable changes to `@exellix/ai-tasks` are documented here.
|
|
4
|
-
|
|
5
|
-
The published **npm version** always matches **`version`** in [`package.json`](package.json). If this file skips a semver, treat [`BREAKING-CHANGES.md`](BREAKING-CHANGES.md) and [`RUNTASK_REQUEST.md`](RUNTASK_REQUEST.md) as the source of truth for cross-version upgrades.
|
|
6
|
-
|
|
7
|
-
## [10.1.
|
|
8
|
-
|
|
9
|
-
### Added
|
|
10
|
-
|
|
11
|
-
- **AT-CR-001:**
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
### Changed
|
|
42
|
-
|
|
43
|
-
-
|
|
44
|
-
- **`@
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
- **
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
-
|
|
71
|
-
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
### Changed
|
|
94
|
-
|
|
95
|
-
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
###
|
|
100
|
-
|
|
101
|
-
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
-
|
|
109
|
-
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
-
|
|
149
|
-
- **
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
- **
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
- **
|
|
175
|
-
|
|
176
|
-
## [9.
|
|
177
|
-
|
|
178
|
-
### Changed
|
|
179
|
-
|
|
180
|
-
-
|
|
181
|
-
- **`@
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
- **`
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
- **
|
|
214
|
-
-
|
|
215
|
-
|
|
216
|
-
###
|
|
217
|
-
|
|
218
|
-
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
###
|
|
223
|
-
|
|
224
|
-
-
|
|
225
|
-
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
- **`
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
- **
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
###
|
|
249
|
-
|
|
250
|
-
- `
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
###
|
|
273
|
-
|
|
274
|
-
- **`
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
###
|
|
283
|
-
|
|
284
|
-
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
###
|
|
291
|
-
|
|
292
|
-
- **`
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
- **
|
|
304
|
-
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
###
|
|
309
|
-
|
|
310
|
-
-
|
|
311
|
-
|
|
312
|
-
## [8.0
|
|
313
|
-
|
|
314
|
-
###
|
|
315
|
-
|
|
316
|
-
- **
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
###
|
|
339
|
-
|
|
340
|
-
- **`
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
###
|
|
374
|
-
|
|
375
|
-
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
###
|
|
397
|
-
|
|
398
|
-
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
###
|
|
430
|
-
|
|
431
|
-
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
###
|
|
440
|
-
|
|
441
|
-
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
-
|
|
461
|
-
-
|
|
462
|
-
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
- **
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to `@exellix/ai-tasks` are documented here.
|
|
4
|
+
|
|
5
|
+
The published **npm version** always matches **`version`** in [`package.json`](package.json). If this file skips a semver, treat [`BREAKING-CHANGES.md`](BREAKING-CHANGES.md) and [`RUNTASK_REQUEST.md`](RUNTASK_REQUEST.md) as the source of truth for cross-version upgrades.
|
|
6
|
+
|
|
7
|
+
## [10.1.2] - 2026-06-24
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- **AT-CR-001 (complete):** GTF-FR-001 lifecycle delegated to `@x12i/graphenix-trace-format@^2.12.0` — `unitExecutions`, `modelInvocations`, and `nodeExecutions` indexes stay in sync during node-plan execution when `RunTaskRequest.executionTrace` is present.
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
|
|
15
|
+
- **Graphenix trace-format ^2.12.0:** GTF-FR-001 lifecycle (`markUnit*`, `recordModelInvocation*`, `appendUnitLifecycleEvent`) now delegated to `@x12i/graphenix-trace-format` via ai-tasks shims; other `@x12i/graphenix-*` packages remain at latest **^2.11.0**.
|
|
16
|
+
- Node rollup and `fallback.applied` events still use local helpers until upstream exports them.
|
|
17
|
+
|
|
18
|
+
## [10.1.1] - 2026-06-24
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
- **Graphenix alignment:** all `@x12i/graphenix-*` packages **^2.11.0** (2.11 train).
|
|
23
|
+
- `traceLifecycle.ts` adapter prefers GTF-FR-001 exports from `@x12i/graphenix-trace-format` when present; falls back to local impl until upstream exports `markUnitStarted` / `recordModelInvocation*`.
|
|
24
|
+
|
|
25
|
+
## [10.1.0] - 2026-06-24
|
|
26
|
+
|
|
27
|
+
### Added
|
|
28
|
+
|
|
29
|
+
- **AT-CR-001:** Dual-write v2 `executionTrace` indexes during node-plan execution — `unitExecutions`, `modelInvocations`, and `nodeExecutions` stay in sync with `unit.*` / `model.invocation.*` events when `RunTaskRequest.executionTrace` is present.
|
|
30
|
+
- Lifecycle helpers in [`src/node-execution/traceLifecycle.ts`](src/node-execution/traceLifecycle.ts) (GTF-FR-001-compatible API; delegates event append to `@x12i/graphenix-trace-format`).
|
|
31
|
+
- Observation sink for PRE / MAIN / POST plan units → gateway `usage` / `cost` on `modelInvocations` when available.
|
|
32
|
+
- Tests: [`test/trace/executionTraceDualWrite.test.ts`](test/trace/executionTraceDualWrite.test.ts) (T1–T6).
|
|
33
|
+
|
|
34
|
+
### Changed
|
|
35
|
+
|
|
36
|
+
- **Graphenix alignment:** all `@x12i/graphenix-*` packages **^2.10.0** (bundled with AT-CR-001).
|
|
37
|
+
- Requires `@x12i/graphenix-trace-format` **^2.10.0** (index dual-write; upstream GTF-FR-001 export planned).
|
|
38
|
+
|
|
39
|
+
## [10.0.13] - 2026-06-20
|
|
40
|
+
|
|
41
|
+
### Changed
|
|
42
|
+
|
|
43
|
+
- **`@exellix/ai-skills`** **^6.12.5** (graphenix 2.7.3 + catalox 5.9.8 train).
|
|
44
|
+
- **`@x12i/catalox`** / **`@x12i/catalox-contracts`** **^5.9.8**.
|
|
45
|
+
|
|
46
|
+
## [10.0.12] - 2026-06-20
|
|
47
|
+
|
|
48
|
+
### Changed
|
|
49
|
+
|
|
50
|
+
- **Graphenix alignment:** all `@x12i/graphenix-*` packages **^2.7.3** (full format suite train).
|
|
51
|
+
|
|
52
|
+
## [10.0.11] - 2026-06-20
|
|
53
|
+
|
|
54
|
+
### Fixed
|
|
55
|
+
|
|
56
|
+
- **`@exellix/fact-guard-*` dependencies:** publish semver **`^1.0.1`** in `dependencies` (10.0.10 accidentally shipped **`file:../fact-guard/...`** in `dependencies`, which breaks installs outside this monorepo).
|
|
57
|
+
- **`prepublishOnly`:** fail fast if `file:` / `link:` / `workspace:` specs remain in `package.json` at publish time.
|
|
58
|
+
|
|
59
|
+
### Changed
|
|
60
|
+
|
|
61
|
+
- **Graphenix alignment:** all `@x12i/graphenix-*` packages **^2.7.2** (compiler emits `webQueryTemplate` on `webScope` units; legacy `webScoping` rejected on plans).
|
|
62
|
+
- **`@exellix/ai-skills`** **^6.12.4** (graphenix 2.7.2 train).
|
|
63
|
+
- **Web scope validation:** enabled `webScope` PRE units require non-empty **`unitParams.webQueryTemplate`** (or `webQueryTemplates[]`); rejects legacy **`webScoping`** / NARRIX question fallbacks on unit params (`LEGACY_WEB_SCOPE_UNIT_PARAMS`, `WEB_QUERY_TEMPLATE_REQUIRED`, `WEB_QUERY_TEMPLATE_UNRESOLVED`).
|
|
64
|
+
|
|
65
|
+
## [10.0.10] - 2026-06-20
|
|
66
|
+
|
|
67
|
+
### Changed
|
|
68
|
+
|
|
69
|
+
- **Web scoping:** migrate from **`@exellix/narrix-web-scoper`** to published **`@x12i/web-scoper@^1.1.1`**. New adapter module **`src/web-scope/`** compiles graph/task input to **`{ question, record?, options? }`** or **`searchMany`** packs; **`executionMemory.webContext`** uses **`{ ok, context?, error? }`** (replaces legacy **`available`**).
|
|
70
|
+
- **Standalone PRE `webScope` unit:** playground and Graphenix plans invoke the same adapter via **`unitParams.enableWebScope`** + **`unitParams.options`**.
|
|
71
|
+
- **Docs:** README, RUNTASK_REQUEST, and **`documenations/web-scoping-in-ai-tasks.md`** updated for the new contract.
|
|
72
|
+
|
|
73
|
+
### Removed
|
|
74
|
+
|
|
75
|
+
- Dependency on **`@exellix/narrix-web-scoper`**. Legacy **`narrix.webScoping`** / template fields are still mapped at invoke time where supported.
|
|
76
|
+
|
|
77
|
+
## [10.0.9] - 2026-06-18
|
|
78
|
+
|
|
79
|
+
### Changed
|
|
80
|
+
|
|
81
|
+
- **Graphenix alignment:** all `@x12i/graphenix-*` packages **^2.7.0** (fact-guard schema/validation/compiler train; optional `unitParams.factGuard` fully validated upstream).
|
|
82
|
+
- **`@exellix/ai-skills`** **^6.12.3** (graphenix 2.7.0 train).
|
|
83
|
+
|
|
84
|
+
## [10.0.8] - 2026-06-18
|
|
85
|
+
|
|
86
|
+
### Changed
|
|
87
|
+
|
|
88
|
+
- **`@exellix/fact-guard-*`** **^1.0.0** — re-scoped from `@x12i` to **`@exellix`** (npm publish train).
|
|
89
|
+
- **`@exellix/xynthesis`** **^4.8.4**.
|
|
90
|
+
|
|
91
|
+
## [10.0.7] - 2026-06-18
|
|
92
|
+
|
|
93
|
+
### Changed
|
|
94
|
+
|
|
95
|
+
- **Graphenix alignment:** all `@x12i/graphenix-*` packages **^2.6.0** (optional `unitParams.factGuard` on sub-action units; validates against graphenix `FactGuardStepConfig`).
|
|
96
|
+
- **`@exellix/ai-skills`** **^6.12.2** (graphenix 2.6.0 train).
|
|
97
|
+
- **`@exellix/fact-guard-*`** **^1.0.0** (npm semver; was monorepo `file:` link).
|
|
98
|
+
|
|
99
|
+
### Added
|
|
100
|
+
|
|
101
|
+
- Node-plan validation tests for graphenix 2.6.0 fact-guard golden fixtures (`node-synthesis-fact-guard-*`, `node-polish-fact-guard-enabled`, `node-audit-fact-guard-nested`).
|
|
102
|
+
|
|
103
|
+
## [10.0.6] - 2026-06-17
|
|
104
|
+
|
|
105
|
+
### Added
|
|
106
|
+
|
|
107
|
+
- **Fact-guard sub-actions (optional):** optional atom integrity checks on PRE synthesis, POST audit/polish/scoping, and execution-strategy planner/optimizer hops via **`@exellix/fact-guard-*` ^1.0.0**. Disabled by default (`factGuard.enabled: false` or absent = unchanged behavior). Kill-switch: **`FACT_GUARD_DISABLED=1`**. MAIN **`runSkill`** path unchanged.
|
|
108
|
+
- **`FactGuardStepConfig`** on `SynthesisConfig`, `AuditConfig`, `PolishConfig`, `ExecutionStrategyInvocation`, and `aiScopingOptions`.
|
|
109
|
+
- **`npm run test:fact-guard`** — integration tests (mocked LLM).
|
|
110
|
+
|
|
111
|
+
### Changed
|
|
112
|
+
|
|
113
|
+
- **`@exellix/xynthesis`** **^4.8.3** (fact-guard passthrough on `executeXynthesisAction`).
|
|
114
|
+
|
|
115
|
+
## [10.0.5] - 2026-06-17
|
|
116
|
+
|
|
117
|
+
### Changed
|
|
118
|
+
|
|
119
|
+
- **Graphenix alignment:** all `@x12i/graphenix-*` packages **^2.5.0** (CRS-FRS-003 train; jobMemory.context authoring preserved upstream).
|
|
120
|
+
- **`@exellix/ai-skills`** **^6.12.1** — consumes graphenix 2.5.0 train.
|
|
121
|
+
|
|
122
|
+
## [10.0.4] - 2026-06-15
|
|
123
|
+
|
|
124
|
+
### Changed
|
|
125
|
+
|
|
126
|
+
- **Graphenix alignment:** all `@x12i/graphenix-*` packages **^2.4.0** (suite train bump from 2.3.0).
|
|
127
|
+
- **`@exellix/ai-skills`** **^6.12.0** — consumes graphenix 2.4.0 train.
|
|
128
|
+
|
|
129
|
+
## [10.0.2] - 2026-06-14
|
|
130
|
+
|
|
131
|
+
### Added
|
|
132
|
+
|
|
133
|
+
- **Graphenix 2.1.0 alignment:** `@x12i/graphenix-plan-format` and `@x12i/graphenix-executable-contracts` **^2.1.0** — rejects plans with `unitParams.synthesisInputStrategy` (`LEGACY_SYNTHESIS_INPUT_STRATEGY_ON_PLAN`).
|
|
134
|
+
- **`resolveSynthesisContextStrategyKey`** — PRE synthesis template key from skill catalog (`@exellix/ai-skills` **^6.11.0**); path-driven source material via `invokeContract.reads` / `memoryPaths`.
|
|
135
|
+
- Validation test for legacy synthesis field on compiled plans.
|
|
136
|
+
|
|
137
|
+
### Changed
|
|
138
|
+
|
|
139
|
+
- **`synthesisConfigFromUnit`** strips `unitParams.synthesisInputStrategy` from plan wire; no longer defaults plan enum to `policy`.
|
|
140
|
+
- Wire fixture `graph-engine-pre-synthesis.json` — path-only synthesis unit (no `synthesisInputStrategy`).
|
|
141
|
+
- **Docs:** README / RUNTASK_REQUEST — skill-catalog-only template key; graphenix **2.1.0** deps.
|
|
142
|
+
|
|
143
|
+
## [10.0.1] - 2026-06-13
|
|
144
|
+
|
|
145
|
+
### Added
|
|
146
|
+
|
|
147
|
+
- **Graphenix 2.0.3 alignment:** `@x12i/graphenix-executable-contracts` and `@x12i/graphenix-plan-format` **^2.0.3** — orchestration strategy registry (`plan`, `split`, `merge`, `pick-best`, `webScope`), path-driven synthesis units (`invokeContract.reads`).
|
|
148
|
+
- Golden tests for graphenix plan fixtures: `node-synthesis-execution-memory-only`, `node-split-merge`, `node-web-scope-standalone`.
|
|
149
|
+
- **Synthesis path bridge:** `synthesisConfigFromUnit` copies `invokeContract.reads` → `memoryPaths` when omitted; defaults `synthesisInputStrategy` to `policy` for path-driven plans.
|
|
150
|
+
|
|
151
|
+
### Changed
|
|
152
|
+
|
|
153
|
+
- Graph authoring fixtures: removed deprecated `preInputStrategy` from `aiTaskStrategies`.
|
|
154
|
+
- Wire fixture `graph-engine-pre-synthesis.json` aligned with graphenix 2.0.3 compile output (`reads`: `input`, `executionMemory`).
|
|
155
|
+
- **Docs:** README Graphenix 10.x section; downstream [graph-model-change-2026-06-13.md](../temp/downstream/graph-model-change-2026-06-13.md).
|
|
156
|
+
|
|
157
|
+
## [10.0.0] - 2026-06-13
|
|
158
|
+
|
|
159
|
+
### Breaking
|
|
160
|
+
|
|
161
|
+
- **Removed** `taskConfiguration` and `executionPipeline` from `RunTaskRequest` — use frozen `nodePlan` only.
|
|
162
|
+
- **Removed** compile pipeline (`src/compile/*`, `taskConfigurationCompileError`).
|
|
163
|
+
|
|
164
|
+
### Added
|
|
165
|
+
|
|
166
|
+
- **PRE synthesis wiring:** `resolveRawTemplate(role: synthesisContext, strategyKey)` via `@exellix/ai-skills` **^6.10.0**.
|
|
167
|
+
- **PRE/POST orchestration runtime:** `externalPreUtility` (`plan`, `split`, `webScope`), `externalPostUtility` (`merge`, `pick-best`), multi-shard MAIN + FuncX fan-in.
|
|
168
|
+
- **Web scope:** Narrix preprocessor `enableWebScope` + standalone `webScope` unit.
|
|
169
|
+
- **Strategy catalogs:** synthesis-input, pre/post orchestration (publish via `npm run publish:task-strategies`).
|
|
170
|
+
- **nodePlan audit parity:** real `reRunMain` + synthesized `contextMarkdown`.
|
|
171
|
+
|
|
172
|
+
### Changed
|
|
173
|
+
|
|
174
|
+
- **`@exellix/ai-skills`** **^6.10.0** (support templates + single `professional-answer` Catalox seed).
|
|
175
|
+
|
|
176
|
+
## [9.1.1] - 2026-06-13
|
|
177
|
+
|
|
178
|
+
### Changed
|
|
179
|
+
|
|
180
|
+
- **Run-task handoff closure:** Stale docs updated — node template scope is `nodePlan.invokeContract.taskVariable`, not `executionMemory.taskVariables`.
|
|
181
|
+
- **`@exellix/ai-skills`** **^6.9.1** (WM source-of-truth alignment).
|
|
182
|
+
|
|
183
|
+
### Added
|
|
184
|
+
|
|
185
|
+
- Golden parity tests for all **7** node plan fixtures (`node-post-audit`, `node-input-synthesis-profile` added to `golden-fixtures.test.ts`).
|
|
186
|
+
|
|
187
|
+
## [9.1.0] - 2026-06-09
|
|
188
|
+
|
|
189
|
+
### Changed
|
|
190
|
+
|
|
191
|
+
- **Graphenix 2.1.0 alignment:** Accept parent plan format `"executable-plan"` (v2) and trace format `"execution-trace"` (v2).
|
|
192
|
+
- **Snapshot isolation:** `overlayUnitModelOnRequest` ignores concrete wire ids in `resolvedInvocationSnapshot.modelId`, preferring authored `modelSelection` (CR-1.3).
|
|
193
|
+
|
|
194
|
+
## [9.0.5] - 2026-06-08
|
|
195
|
+
|
|
196
|
+
### Changed
|
|
197
|
+
|
|
198
|
+
- **`@x12i/funcx`** **^4.9.5** (direct dependency + npm override) — aligns PRE/POST xynthesis with funcx catalog gate via **`@x12i/ai-profiles`** (requires funcx ≥ 4.9.5; fixes subnet-style PRE `Unknown model "google/gemini-2.5-flash-lite"`).
|
|
199
|
+
- **`@x12i/ai-profiles`** **^3.4.0**, **`@exellix/xynthesis`** **^4.6.5** (publish **4.6.6** for funcx bump).
|
|
200
|
+
|
|
201
|
+
## [9.0.1] - 2026-06-07
|
|
202
|
+
|
|
203
|
+
### Changed
|
|
204
|
+
|
|
205
|
+
- Graphenix dependency alignment with latest CP release train: **`graphenix-plan-format`** and **`graphenix-trace-format`** @ **^1.1.1**; dev **`graphenix-authoring-format`** @ **^1.2.1**, **`graphenix-plan-compiler`** @ **^1.1.1**. **`graphenix-executable-contracts`** remains **^1.1.0**.
|
|
206
|
+
- **`npm` overrides:** Pin transitive **`@x12i/funcx`** to **^4.6.0** (aligns with **`@exellix/xynthesis` ≥ 4.6.2** and **`@x12i/logxer` ^4.6.0**).
|
|
207
|
+
|
|
208
|
+
## [9.0.0] - 2026-06-07
|
|
209
|
+
|
|
210
|
+
### Changed (breaking)
|
|
211
|
+
|
|
212
|
+
- **Graphenix node execution v2.1:** `runTask()` requires **`nodePlan`** (`NodeExecutionPlan`); production path is **`executeNodeFromPlan`** (unit loop + per-unit model selection). Legacy **`executionPipeline`** / **`taskConfiguration`** compile is **off the hot path** (still exported for migration tooling).
|
|
213
|
+
- **Forbidden wire fields** when `nodePlan` is set: root **`modelConfig`**, **`executionPipeline`**, **`taskConfiguration`** — model slots come from `nodePlan.executionUnits[].modelSelection`.
|
|
214
|
+
- **`executionTrace`** (optional): graphenix v2 trace append (`unit.*`, `model.invocation.*`).
|
|
215
|
+
|
|
216
|
+
### Added
|
|
217
|
+
|
|
218
|
+
- **`src/node-execution/`** — unit dispatch, Narrix units, PRE/MAIN/POST handlers, trace bridge.
|
|
219
|
+
- Dependencies: **`@x12i/graphenix-executable-contracts`**, **`graphenix-plan-format`**, **`graphenix-trace-format`** @ **^1.1.0**; dev **`graphenix-plan-compiler`** @ **^1.1.0**.
|
|
220
|
+
- Docs: [`documenations/node-execution-graphenix.md`](documenations/node-execution-graphenix.md), [`reports/graphenix-graph-engine-handoff.md`](../archived/ai-tasks/reports/graphenix-graph-engine-handoff.md); updated [`RUNTASK_REQUEST.md`](RUNTASK_REQUEST.md) and JSON schema.
|
|
221
|
+
|
|
222
|
+
### Fixed
|
|
223
|
+
|
|
224
|
+
- **`xynthesizedOutput`:** PRE synthesis restores `request.xynthesized` updates and **`response.xynthesizedPatch`** for graph-engine merge (`applySynthesisPreStepToRequest`).
|
|
225
|
+
- **Polish POST:** wire **`structuredOutput`** (JSON mode) on polish LLM calls; node-execution POST handler merges **`parsed`** and **`intermediateSteps`**.
|
|
226
|
+
|
|
227
|
+
## [8.8.0] - 2026-06-05
|
|
228
|
+
|
|
229
|
+
### Fixed
|
|
230
|
+
|
|
231
|
+
- **MAIN gateway wire shape:** `prepareMainSkillModelConfigForInvoke` applies ai-skills **`normalizeModelConfigForGatewayInvoke`** after profile resolution so MAIN invoke sends `{ provider, model }` tuple (never composite `openrouter/…` slug with `provider: unspecified`).
|
|
232
|
+
- Consumes **`skillModel`** slot only for MAIN routing — no graph `modelConfig` merge at the execution boundary.
|
|
233
|
+
|
|
234
|
+
### Changed
|
|
235
|
+
|
|
236
|
+
- Bumped **`@exellix/ai-skills`** to **^6.5.0**, **`@exellix/xynthesis`** to **^4.6.0**, **`@x12i/ai-profiles`** to **^3.2.0** (`normalizeInvokeModel` contract).
|
|
237
|
+
|
|
238
|
+
## [8.7.0] - 2026-06-05
|
|
239
|
+
|
|
240
|
+
### Changed
|
|
241
|
+
|
|
242
|
+
- Bumped **`@exellix/ai-skills`** to **^6.4.0** and **`@exellix/xynthesis`** to **^4.5.0** (gateway **≥ 10.1.0**, **`@x12i/ai-profiles` ^3.0.0**, **`@x12i/activix` ^8.6.0**).
|
|
243
|
+
- Added direct **`@x12i/ai-profiles` ^3.0.0** dependency so orchestrator model resolution aligns with ai-skills / xynthesis (avoids hoisted **2.1.x** from legacy narrix transitive paths).
|
|
244
|
+
- README stack alignment table and gateway 10.x notes updated for the new minimums.
|
|
245
|
+
|
|
246
|
+
## [8.6.3] - 2026-06-05
|
|
247
|
+
|
|
248
|
+
### Fixed (CR-13)
|
|
249
|
+
|
|
250
|
+
- **`prepareMainSkillModelConfigForInvoke`:** Resolves `skillModel` / `llmCall.model` profile/choice aliases to concrete gateway wire ids once before ai-skills invoke (via `resolveModelReference`).
|
|
251
|
+
- **`MAIN_SKILL_MODEL_RESOLUTION_FAILED`:** New `RunTaskModelResolutionError` code when MAIN alias resolution fails; Activix classification event `skill_model_resolution_failed`.
|
|
252
|
+
- Bumped **`@exellix/ai-skills`** to **^6.3.0** for Optimixer `modelProfile` split + `SKILL_MODEL_RESOLUTION_FAILED`.
|
|
253
|
+
|
|
254
|
+
## [8.5.0] - 2026-06-03
|
|
255
|
+
|
|
256
|
+
### Changed (breaking)
|
|
257
|
+
|
|
258
|
+
- **Execution strategies:** planner/optimizer invoke **`@exellix/xynthesis` ≥ 4.4.0** (`execution-plan`, `execution-evaluate-result`) with `modelConfig.preActionModel` / `postActionModel`. Removed direct `@x12i/funcx` `run()` from ai-tasks.
|
|
259
|
+
- **`runPlanWebScopeQuestions`:** xynthesis `plan-web-scope-questions` only; removed `backend: "funcx"`.
|
|
260
|
+
- **Catalog:** `runtimeKind: "xynthesis-action"`, `defaultSidekickAction` on planner/optimizer rows.
|
|
261
|
+
|
|
262
|
+
### Added
|
|
263
|
+
|
|
264
|
+
- `runPlannerViaXynthesis`, `runOptimizerViaXynthesis`, `setExecutionStrategyActionInvoker`, `setPlanWebScopeQuestionsActionInvoker`, `resolveSafeExecutionStrategyCatalogDefaultSidekickAction`.
|
|
265
|
+
|
|
266
|
+
### Removed
|
|
267
|
+
|
|
268
|
+
- `setFuncxExecutionStrategyInvoker`, `setResearchPlanQuestionsFuncxInvoker`, direct `@x12i/funcx` dependency.
|
|
269
|
+
|
|
270
|
+
## [8.6.0] - 2026-06-04
|
|
271
|
+
|
|
272
|
+
### Removed (breaking)
|
|
273
|
+
|
|
274
|
+
- **Studio skill analysis** removed from the runtime package: **`analyzeRunTaskRequest`**, re-exports of **`buildSkillRequestAnalysisPacket`**, **`formatSkillRequestAnalysisMarkdown`**, **`FUNCX_ANALYZE_GATEWAY_INVOKE_REQUEST_ID`**, and related analysis types. Invoke preflight belongs in **studio / skills-manager** — see **[`documenations/studio-skill-invoke-preflight.md`](documenations/studio-skill-invoke-preflight.md)** (suggested design, not mandatory). Orchestrator static checks remain: **`validateRunTaskConfig`**, **`analyzeExpectedRunTaskInput`**.
|
|
275
|
+
|
|
276
|
+
## [8.5.3] - 2026-06-04
|
|
277
|
+
|
|
278
|
+
### Changed
|
|
279
|
+
|
|
280
|
+
- Bumped **`@exellix/xynthesis`** to **^4.4.5** and **`@exellix/ai-skills`** to **^6.0.2** for Optimixer **max-token retry** on PRE/POST (xynthesis) and MAIN (ai-skills): one automatic re-invoke when output hits the token limit and Optimixer returns **`retryPrediction`** (no host **`maxTokens`** required).
|
|
281
|
+
|
|
282
|
+
### Added
|
|
283
|
+
|
|
284
|
+
- Unit test **`runPostStepLlmCall.maxTokenRetry.test.ts`** (mock Optimixer + synthesis invoker; no live LLM).
|
|
285
|
+
|
|
286
|
+
## [8.4.0] - 2026-06-01 — `preActionModel`, `skillModel`, `postActionModel`. **`xynthesisModel` removed** (validation rejects with `NON_CANONICAL_MODEL_CONFIG`). PRE uses `preActionModel`; POST uses `postActionModel`.
|
|
287
|
+
- **`@x12i/ai-profiles` ^2.0.0:** Required `catalogLane` on profile resolution; ai-tasks defaults `"text"` ( `"image"` for `vision` ). Registry source defaults to `auto`.
|
|
288
|
+
- **`@exellix/xynthesis` ^4.2.1:** Minimum for ai-profiles v2 alignment.
|
|
289
|
+
|
|
290
|
+
### Added
|
|
291
|
+
|
|
292
|
+
- **`defaultAiTasksResolveAiProfileOptions`**, slot helpers `resolvePreActionModel` / `resolvePostActionModel`, builder `withPreActionModel` / `withPostActionModel`.
|
|
293
|
+
|
|
294
|
+
### Removed
|
|
295
|
+
|
|
296
|
+
- Exports **`resolveXynthesisModelForPre`**, **`getXynthesisModelFromSlots`**, builder **`withXynthesisModel`**.
|
|
297
|
+
|
|
298
|
+
## [Unreleased — prior notes]
|
|
299
|
+
|
|
300
|
+
### Changed
|
|
301
|
+
|
|
302
|
+
- **`@x12i/ai-profiles` ≥1.8.0:** Direct dependency bumped from **^1.7.2**; **`npm` override** pins transitive `@x12i/ai-profiles` to this package's direct version (required fix in **1.8.0** for profile alias resolution). Live coverage: `npm run test:live` → `test/e2e/ai-profiles-live.test.ts` (registry `auto` + real xynthesis alias call).
|
|
303
|
+
- **`@exellix/xynthesis` ^4.1.8:** Fixes OpenRouter **400 invalid model ID** on PRE/POST hops (wire id was `openrouter/<slug>` instead of bare OR API slug). ai-tasks invocation routing aligned (skill gateway shape vs xynthesis Funcx slug). Requires **≥4.1.8** — do not use **4.1.7** for alias-based xynthesis calls with OpenRouter.
|
|
304
|
+
- **`@x12i/logxer` ^4.4.2:** Package diagnostics use **`createLogxer`** with diagnostic catalog (`.metadata/log-diagnostics.json`), **`warnCode`** / **`DebugLogAbstract`**, **`fieldEvidence`**, **`runWithLogContext`** during **`runTask()`**, and in-process **`getAiTasksJobLogs`** for debug UIs. Override pins transitive logxer to **4.4.2** (no nested **4.4.0** from `@x12i/optimixer`).
|
|
305
|
+
|
|
306
|
+
## [8.1.1] - 2026-05-28
|
|
307
|
+
|
|
308
|
+
### Changed
|
|
309
|
+
|
|
310
|
+
- **`npm` overrides:** Pin transitive **`@x12i/activix`**, **`@x12i/catalox`**, and **`@x12i/funcx`** to this package's direct versions so graph-engine and other consumers resolve a single copy (no nested **funcx 3.9.x** / **activix 7.x** / **catalox 4.x** from `@exellix/narrix-web-scoper` or `@x12i/funcx`).
|
|
311
|
+
|
|
312
|
+
## [8.1.0] - 2026-05-28
|
|
313
|
+
|
|
314
|
+
### Added
|
|
315
|
+
|
|
316
|
+
- **Model profile aliases (`@x12i/ai-profiles`):** Resolve ai-profiles profile/shortcut names and legacy tiers (`weak`, `strong`, `default`) to concrete provider model ids for **ai-skills MAIN** (`skillModel` / `llmCall.model`). Keep **ai-profiles aliases** on **xynthesis** paths (`modelConfig.xynthesisModel`, POST/PRE/scoping `llmCall.model`). Exports: `resolveModelReference`, `resolveModelReferenceForXynthesis`, `normalizeXynthesisModelAlias`, `resolveRunTaskModelReferences`, `isResolvableModelAlias`, `formatResolvedProfileModelId`.
|
|
317
|
+
- **Dual-root `RunTaskRequest.inputs`:** Optional top-level plural payload bucket (distinct from `executionMemory.inputs`); forwarded on MAIN like `input`.
|
|
318
|
+
|
|
319
|
+
### Changed
|
|
320
|
+
|
|
321
|
+
- **Smart-input validation context:** `inputs.*` resolves against top-level **`request.inputs`** only (not `executionMemory.inputs`). Use **`executionMemory.inputs.*`** for execution-memory plural paths.
|
|
322
|
+
- **PRE `memoryPaths`:** Dual-root fallback — `executionMemory.input.<rest>` falls back to `executionMemory.inputs.<firstKey>.<rest>` when singular path is missing.
|
|
323
|
+
- **`@exellix/xynthesis` ^4.0.6:** Xynthesis LLM calls use alias-only model resolution (`resolveModelReferenceForXynthesis`); default post-step model is **`balanced`** when omitted. **`skillModel`** resolution for **`@exellix/ai-skills` ^5.8.6** unchanged.
|
|
324
|
+
- **Validation:** `modelConfig.xynthesisModel` rejects concrete provider ids; accepts ai-profiles aliases (replaces 8.0.0 `MODEL_CONFIG_NOT_RESOLVED` for legacy tiers on both slots).
|
|
325
|
+
|
|
326
|
+
### Documentation
|
|
327
|
+
|
|
328
|
+
- README — [Model profile aliases](#model-profile-aliases-x12iai-profiles); [`.docs/ai-tasks-model-profile-aliases-7x.md`](../archived/ai-tasks/.docs/ai-tasks-model-profile-aliases-7x.md).
|
|
329
|
+
|
|
330
|
+
## [8.0.9] - 2026-05-28
|
|
331
|
+
|
|
332
|
+
### Changed
|
|
333
|
+
|
|
334
|
+
- **Dependencies (graph-engine alignment):** **`@x12i/funcx` ^4.2.0** (no 3.9.x path), **`@x12i/activix` ^8.0.5**, **`@x12i/catalox` ^5.1.1**; **`@x12i/funcx/functions`** re-exports (`FUNCX_EXECUTION_PLAN_FUNCTION_ID`, etc.).
|
|
335
|
+
|
|
336
|
+
## [8.0.8] - 2026-05-27
|
|
337
|
+
|
|
338
|
+
### Added
|
|
339
|
+
|
|
340
|
+
- **`getModelCapabilities`** re-export from `@exellix/xynthesis` (replaces removed **`MODEL_CAPABILITIES`** constant).
|
|
341
|
+
|
|
342
|
+
### Fixed
|
|
343
|
+
|
|
344
|
+
- **Exports:** Removed broken **`MODEL_CAPABILITIES`** re-export from `@exellix/xynthesis` 4.x (symbol removed upstream). Use **`getModelCapabilities(modelId)`** from `@exellix/ai-tasks` or `@exellix/xynthesis` instead.
|
|
345
|
+
|
|
346
|
+
### Deprecated
|
|
347
|
+
|
|
348
|
+
- **`8.0.7`** — do not use; re-exported **`MODEL_CAPABILITIES`** against **`@exellix/xynthesis` ≥ 4.x** where the symbol no longer exists. Upgrade to **8.0.8+**.
|
|
349
|
+
|
|
350
|
+
## [7.7.1] - 2026-05-25
|
|
351
|
+
|
|
352
|
+
### Added
|
|
353
|
+
|
|
354
|
+
- **`RunTaskRequest.taskConfiguration`:** Graph-engine may forward the node `taskConfiguration` blob; **`compileTaskConfigurationOnRunTaskRequest`** (also at **`runTask()`** entry) maps **`aiTaskStrategies.pre: "synthesis"`** and **`aiTaskProfile.inputSynthesis.enabled`** into PRE **`synthesized-context`** + **`includeContextInPrompt: true`**. Exports **`TaskConfigurationCompileError`**, **`AI_TASK_PRE_ENABLE_SYNTHESIS`**.
|
|
355
|
+
|
|
356
|
+
### Documentation
|
|
357
|
+
|
|
358
|
+
- **`RUNTASK_REQUEST.md`**, **README**, [`.docs/flow-io/xynthesis-pre.md`](../archived/ai-tasks/.docs/flow-io/xynthesis-pre.md), graph-engine task [`reports/graph-engine-task-pre-synthesis-compile.md`](../archived/ai-tasks/reports/graph-engine-task-pre-synthesis-compile.md).
|
|
359
|
+
- Fixtures: [`test/fixtures/run-task/graph-engine-pre-synthesis.json`](test/fixtures/run-task/graph-engine-pre-synthesis.json), [`test/fixtures/graphs/graph-qcrbz6t-pre-synthesis.json`](test/fixtures/graphs/graph-qcrbz6t-pre-synthesis.json).
|
|
360
|
+
|
|
361
|
+
## [7.6.4] - 2026-05-18
|
|
362
|
+
|
|
363
|
+
### Changed
|
|
364
|
+
|
|
365
|
+
- **`@exellix/ai-skills` ≥ 5.5.0:** Dependency **5.5.2**; `pickRunSkillRequestFields` forwards top-level **`executionMemory`** on `runSkill` (native `buildWorkingMemory` support). Removed the 7.6.3 `jobMemory.executionMemory` nest bridge.
|
|
366
|
+
|
|
367
|
+
### Dependencies
|
|
368
|
+
|
|
369
|
+
- **`@exellix/ai-skills`:** `5.5.2` (was `5.4.0`).
|
|
370
|
+
|
|
371
|
+
## [7.6.3] - 2026-05-18
|
|
372
|
+
|
|
373
|
+
### Fixed
|
|
374
|
+
|
|
375
|
+
- **Gateway `executionMemory` paths (interim):** `DirectExecutionStrategy` nested `request.executionMemory` on `jobMemory.executionMemory` before `runSkill` for ai-skills **< 5.5.0**. Superseded in **7.6.4** by native top-level forward. Strips `RunTaskRequest`-only fields from the `runSkill` payload.
|
|
376
|
+
|
|
377
|
+
### Documentation
|
|
378
|
+
|
|
379
|
+
- **Change request:** [`reports/change-request-tasknode-variable-scopes-7.6.2.md`](../archived/ai-tasks/reports/change-request-tasknode-variable-scopes-7.6.2.md) — upstream work for `@exellix/ai-skills`, `@x12i/rendrix`, and optional gateway path aliases.
|
|
380
|
+
|
|
381
|
+
## [7.6.2] - 2026-05-18
|
|
382
|
+
|
|
383
|
+
### Fixed
|
|
384
|
+
|
|
385
|
+
- **`smartInput.strict`:** Accepted on `RunTaskRequest.smartInput` and forwarded through `normalizeSmartInputConfig` to the gateway path.
|
|
386
|
+
|
|
387
|
+
### Changed
|
|
388
|
+
|
|
389
|
+
- **MAIN template variables:** `runTask` forwards **`variables`** (job/graph bucket) **as-is** via `passthroughJobTemplateVariables` — no longer folds `jobContext`, `input`, `xynthesized`, or `smartInput` into `variables`. Node scope remains on **`executionMemory.taskVariables`**.
|
|
390
|
+
|
|
391
|
+
### Documentation
|
|
392
|
+
|
|
393
|
+
- **`RUNTASK_REQUEST.md`:** TaskNode authoring map (`taskConfiguration`, `inputsConfig`, `taskVariable`, two-bucket `jobVariables` / `taskVariables`), dual `outputValidation`, `inputSynthesis` compile table, forbidden metadata.
|
|
394
|
+
- **README**, web-scoping doc, Narrix JSDoc: authoring path **`taskConfiguration.narrix`** (not `metadata.narrix`).
|
|
395
|
+
|
|
396
|
+
### Schema
|
|
397
|
+
|
|
398
|
+
- **`run-task-request.json`:** `executionStrategyCatalogItems`, `smartInputRenderOptions`, Rendrix path objects, `smartInput.strict`, variable-bucket descriptions.
|
|
399
|
+
|
|
400
|
+
## [7.6.0] - 2026-05-18
|
|
401
|
+
|
|
402
|
+
### Added
|
|
403
|
+
|
|
404
|
+
- **`xynthesized.execution` scope:** `XynthesizedMemory.execution`, `XynthesizedDestinationScope` includes **`"execution"`**, PRE **`xynthesizedOutput.destination: "execution"`** writes and returns **`xynthesizedPatch.execution`** (same replace/merge semantics as job/task; no redirect to other buckets).
|
|
405
|
+
- **Smart-input:** `xynthesized.*` paths must use scope **`job`**, **`task`**, or **`execution`**; **`resolveXynthesizedSmartInputPath`** helper for in-package resolution against request **`xynthesized`**.
|
|
406
|
+
- **`TaskRequestBuilder.withXynthesizedExecution(key, value)`**.
|
|
407
|
+
|
|
408
|
+
### Documentation
|
|
409
|
+
|
|
410
|
+
- **`RUNTASK_REQUEST.md`**, **`documenations/synthesized-context-guide.md`**, and **`documenations/schemas/v1/run-task-request.json`** updated for the execution bucket.
|
|
411
|
+
|
|
412
|
+
## [7.2.0] - 2026-05-06
|
|
413
|
+
|
|
414
|
+
### Changed
|
|
415
|
+
|
|
416
|
+
- **Breaking (exports):** Replaced **`AI_TASKS_FUNCX_*`** constants with **`FUNCX_EXECUTION_PLAN_FUNCTION_ID`** (`execution/plan`), **`FUNCX_EXECUTION_EVALUATE_RESULT_FUNCTION_ID`** (`execution/evaluate-result`), **`FUNCX_RESEARCH_PLAN_QUESTIONS_FUNCTION_ID`** (`research/plan-questions`).
|
|
417
|
+
- **Execution strategies:** Planner and optimizer call **`run(functionId, payload)`** with the **generic FuncX envelope** only (`goal`, `input`, `context`, `result?`, `args`, `attribution`). Responses are adapted via **`adaptExecutionPlanResult`** / **`adaptEvaluateResultResponse`** ([`genericExecutionFuncxEnvelope.ts`](src/execution-strategies/genericExecutionFuncxEnvelope.ts)).
|
|
418
|
+
- **`runPlanWebScopeQuestions`:** Optional **`backend: "funcx"`** for **`research/plan-questions`**; **`setResearchPlanQuestionsFuncxInvoker`** for tests.
|
|
419
|
+
- **`ExecutionType`:** Re-exported from **`@exellix/ai-tasks`** via local [`executionType.ts`](src/types/executionType.ts) (`DIRECT`) because **`@exellix/ai-skills`** no longer exports this symbol on supported versions.
|
|
420
|
+
- **`@x12i/funcx` ≥ 3.8.2:** **`unwrapFuncxRunValue`** delegates to **`getRunJsonResult`** (use **3.8.2+** for current normalization behavior). Re-exports: **`getRunJsonResult`**, **`isHttpRunSuccessBody`**, **`genericExecutionEnvelopeJsonSchema`**, **`buildAskAttribution`**, type **`GenericExecutionEnvelope`**.
|
|
421
|
+
|
|
422
|
+
## [7.1.2] - 2026-05-06
|
|
423
|
+
|
|
424
|
+
### Added
|
|
425
|
+
|
|
426
|
+
- **`narrix.webScopeQuestions`:** optional explicit web-scope questions on `RunTaskRequest.narrix`; when `webScopeTemplates` is unset, the NARRIX preprocessor runs `@exellix/narrix-web-scoper` **`scopeQuestionPack`** and stores a normalized `WebScoperResult` in `executionMemory.webContext`.
|
|
427
|
+
- **`runPlanWebScopeQuestions`** (and **`parseAndValidatePlanWebScopeQuestionsOutput`**, **`buildPlanWebScopeQuestionsUserPrompt`**) for AI-driven web-scope planning; FuncX path uses **`research/plan-questions`** (see **Unreleased** / **`FUNCX_RESEARCH_PLAN_QUESTIONS_FUNCTION_ID`**). FR tracker: **`documenations/funcx-scoping-integration-gaps.md`** §6.
|
|
428
|
+
|
|
429
|
+
### Documentation
|
|
430
|
+
|
|
431
|
+
- **`documenations/web-scoping-in-ai-tasks.md`**, **README**, **RUNTASK_REQUEST.md:** documented `webScopeQuestions` shape and precedence vs templates.
|
|
432
|
+
|
|
433
|
+
## [7.1.1] - 2026-05-06
|
|
434
|
+
|
|
435
|
+
### Added
|
|
436
|
+
|
|
437
|
+
- **Package root type exports:** `XynthesizedMemory`, `SmartInputConfig`, `XynthesizedDestinationScope`, `XynthesizedOutputConfig`, `ExecutionStrategyInvocation`, `ExecutionStrategyPhase`, and `ExecutionStrategyWrapperKey` are re-exported from `@exellix/ai-tasks` alongside `RunTaskRequest`, so hosts can depend on stable names instead of `NonNullable<RunTaskRequest['xynthesized']>` or `RunTaskRequest['executionStrategies'][number]`.
|
|
438
|
+
|
|
439
|
+
### Documentation
|
|
440
|
+
|
|
441
|
+
- **CHANGELOG discipline:** Documented that `package.json` is authoritative for the shipped semver and pointed cross-version migration readers at `BREAKING-CHANGES.md` / `RUNTASK_REQUEST.md` when intermediate entries are missing.
|
|
442
|
+
|
|
443
|
+
_Note: Releases **after 6.0.1** through **before 7.1.1** were not listed here chronologically; consult git history and `BREAKING-CHANGES.md` for that span._
|
|
444
|
+
|
|
445
|
+
## [6.0.1] - 2026-05-05
|
|
446
|
+
|
|
447
|
+
### Fixed
|
|
448
|
+
|
|
449
|
+
- **Synthesis E2E gate:** `test/synthesis/e2e-synthesis-real.test.ts` no longer requires `LLM_MODEL_STRONG` / `LLM_MODEL_NORMAL`; it runs when **`RUN_SYNTHESIS_E2E=1`** and a recognized provider key is set (`OPEN_ROUTER_KEY`, `GROK_API_KEY`, etc.). Warns when a model env var is missing.
|
|
450
|
+
|
|
451
|
+
### Documentation
|
|
452
|
+
|
|
453
|
+
- **Xynthesis upstream work:** [`documenations/xynthesis-upstream-fixes-checklist.md`](documenations/xynthesis-upstream-fixes-checklist.md) (Activix `diagnostics.owner`, `jobId`/`taskId` hardening in `runSidekickGatewayCall`, tests to add in xynthesis).
|
|
454
|
+
|
|
455
|
+
## [6.0.0] - 2026-05-04
|
|
456
|
+
|
|
457
|
+
### Breaking
|
|
458
|
+
|
|
459
|
+
- **`runTask` / `RunTaskRequest`:** `agentId`, `jobTypeId`, and `taskTypeId` are **required** again (aligned with `@exellix/ai-skills` `RunSkillRequest`). `runTask()` calls **`assertRequiredRunSkillCorrelation`** and throws if any value is missing or whitespace-only.
|
|
460
|
+
- **`TaskRequestBuilder.build()`** throws unless those three fields were set (use **`withAiSkillsCorrelation`** or **`withAgentId` / `withJobTypeId` / `withTaskTypeId`**).
|
|
461
|
+
- **`TaskConvenienceMethods.executeDirect`** now requires an **`options`** object including **`agentId`**, **`jobTypeId`**, and **`taskTypeId`** (third argument is no longer optional).
|
|
462
|
+
- **`TaskConvenienceMethods.executeWithType`** now requires the **`options`** argument (same correlation fields as `RunTaskRequest`).
|
|
463
|
+
|
|
464
|
+
### Added
|
|
465
|
+
|
|
466
|
+
- Exported **`assertRequiredRunSkillCorrelation`** from the package root for hosts that validate payloads before calling `runTask`.
|
|
467
|
+
|
|
468
|
+
## [5.7.1] - 2026-05-04
|
|
469
|
+
|
|
470
|
+
### Fixed
|
|
471
|
+
|
|
472
|
+
- **Types:** `RunTaskRequest` now **omits and re-declares** `agentId`, `jobTypeId`, and `taskTypeId` as **optional**, matching `runTask()` usage and latest `@exellix/ai-skills` `RunSkillRequest` where those fields are required. Callers can still pass them when the gateway requires them.
|
|
473
|
+
|
|
474
|
+
## [5.7.0] - 2026-05-04
|
|
475
|
+
|
|
476
|
+
### Added
|
|
477
|
+
|
|
478
|
+
- **RunTask request contract documentation:** [`RUNTASK_REQUEST.md`](RUNTASK_REQUEST.md) — normative field list, template merge precedence, `executionMemory` vs `jobMemory.execution`, `executionPipeline` semantics, xynthesis visibility notes, and examples.
|
|
479
|
+
- **JSON Schema fragment:** [`documenations/schemas/v1/run-task-request.json`](documenations/schemas/v1/run-task-request.json) and OpenAPI component `RunTaskRequestSubset` in [`documenations/schemas/openapi-3.1-components.yaml`](documenations/schemas/openapi-3.1-components.yaml).
|
|
480
|
+
- **Request shape helpers** (exported from package root): `normalizeRunTaskRequest`, `collectRunTaskRequestWarnings`, `collectExecutionPipelineWarnings`, `isRunTaskRequestWarningsEnabled`.
|
|
481
|
+
- **Env-gated diagnostics:** `AI_TASKS_REQUEST_WARNINGS=1` (also `true` / `yes`) logs structured JSON for deprecated duplicate fields, ignored pipeline steps, and observability hints at the start of each `runTask` call.
|
|
482
|
+
|
|
483
|
+
### Changed
|
|
484
|
+
|
|
485
|
+
- **Types:** `RunTaskRequest` documents deprecated mirrors: optional root `question`, `inputs`, and `jobInput` (typed for discoverability; removal deferred to a future major after hosts migrate).
|
|
486
|
+
|
|
487
|
+
### Notes
|
|
488
|
+
|
|
489
|
+
- **Additive / non-breaking:** Runtime merge behavior is unchanged; warnings are opt-in via env.
|
|
490
|
+
- **Cross-package:** Minimum orchestrator (e.g. graph-engine) version is **not declared** in `@exellix/ai-tasks` — follow the consuming app’s pinned `@exellix/ai-tasks` range; see `RUNTASK_REQUEST.md` § Orchestrator integration.
|