@mcp-abap-adt/llm-agent-libs 26.0.0 → 28.0.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.
Files changed (95) hide show
  1. package/README.md +11 -14
  2. package/dist/agent.d.ts +2 -1
  3. package/dist/agent.d.ts.map +1 -1
  4. package/dist/agent.js +6 -5
  5. package/dist/agent.js.map +1 -1
  6. package/dist/builder.d.ts +36 -14
  7. package/dist/builder.d.ts.map +1 -1
  8. package/dist/builder.js +472 -348
  9. package/dist/builder.js.map +1 -1
  10. package/dist/config/config-watcher.d.ts.map +1 -1
  11. package/dist/config/config-watcher.js +9 -5
  12. package/dist/config/config-watcher.js.map +1 -1
  13. package/dist/index.d.ts +1 -2
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +1 -5
  16. package/dist/index.js.map +1 -1
  17. package/dist/mcp/vectorize-mcp-tools.d.ts.map +1 -1
  18. package/dist/mcp/vectorize-mcp-tools.js +21 -2
  19. package/dist/mcp/vectorize-mcp-tools.js.map +1 -1
  20. package/dist/pipeline/handlers/history-upsert.d.ts.map +1 -1
  21. package/dist/pipeline/handlers/history-upsert.js +8 -1
  22. package/dist/pipeline/handlers/history-upsert.js.map +1 -1
  23. package/dist/pipeline/handlers/rag-query.d.ts +1 -1
  24. package/dist/pipeline/handlers/rag-query.d.ts.map +1 -1
  25. package/dist/pipeline/handlers/rag-query.js +10 -2
  26. package/dist/pipeline/handlers/rag-query.js.map +1 -1
  27. package/dist/plugins/index.d.ts +1 -1
  28. package/dist/plugins/index.d.ts.map +1 -1
  29. package/dist/plugins/index.js +1 -1
  30. package/dist/plugins/index.js.map +1 -1
  31. package/dist/plugins/types.d.ts +7 -0
  32. package/dist/plugins/types.d.ts.map +1 -1
  33. package/dist/plugins/types.js +85 -14
  34. package/dist/plugins/types.js.map +1 -1
  35. package/dist/session/session-graph-factory.d.ts +49 -16
  36. package/dist/session/session-graph-factory.d.ts.map +1 -1
  37. package/dist/session/session-graph-factory.js +140 -62
  38. package/dist/session/session-graph-factory.js.map +1 -1
  39. package/dist/skills/plugin-host/qdrant-store.d.ts +6 -1
  40. package/dist/skills/plugin-host/qdrant-store.d.ts.map +1 -1
  41. package/dist/skills/plugin-host/qdrant-store.js +7 -7
  42. package/dist/skills/plugin-host/qdrant-store.js.map +1 -1
  43. package/dist/util/stop-all.d.ts +19 -0
  44. package/dist/util/stop-all.d.ts.map +1 -0
  45. package/dist/util/stop-all.js +30 -0
  46. package/dist/util/stop-all.js.map +1 -0
  47. package/package.json +10 -38
  48. package/dist/coordinator/dag/reviewer-error-strategy.d.ts +0 -15
  49. package/dist/coordinator/dag/reviewer-error-strategy.d.ts.map +0 -1
  50. package/dist/coordinator/dag/reviewer-error-strategy.js +0 -38
  51. package/dist/coordinator/dag/reviewer-error-strategy.js.map +0 -1
  52. package/dist/providers.d.ts +0 -58
  53. package/dist/providers.d.ts.map +0 -1
  54. package/dist/providers.js +0 -225
  55. package/dist/providers.js.map +0 -1
  56. package/dist/skills/plugin-host/chunker.test.d.ts +0 -2
  57. package/dist/skills/plugin-host/chunker.test.d.ts.map +0 -1
  58. package/dist/skills/plugin-host/chunker.test.js +0 -31
  59. package/dist/skills/plugin-host/chunker.test.js.map +0 -1
  60. package/dist/skills/plugin-host/compatible-skills-rag.test.d.ts +0 -2
  61. package/dist/skills/plugin-host/compatible-skills-rag.test.d.ts.map +0 -1
  62. package/dist/skills/plugin-host/compatible-skills-rag.test.js +0 -174
  63. package/dist/skills/plugin-host/compatible-skills-rag.test.js.map +0 -1
  64. package/dist/skills/plugin-host/http-marketplace-source.test.d.ts +0 -2
  65. package/dist/skills/plugin-host/http-marketplace-source.test.d.ts.map +0 -1
  66. package/dist/skills/plugin-host/http-marketplace-source.test.js +0 -71
  67. package/dist/skills/plugin-host/http-marketplace-source.test.js.map +0 -1
  68. package/dist/skills/plugin-host/in-memory-store.test.d.ts +0 -2
  69. package/dist/skills/plugin-host/in-memory-store.test.d.ts.map +0 -1
  70. package/dist/skills/plugin-host/in-memory-store.test.js +0 -100
  71. package/dist/skills/plugin-host/in-memory-store.test.js.map +0 -1
  72. package/dist/skills/plugin-host/marketplace-adapter.test.d.ts +0 -2
  73. package/dist/skills/plugin-host/marketplace-adapter.test.d.ts.map +0 -1
  74. package/dist/skills/plugin-host/marketplace-adapter.test.js +0 -46
  75. package/dist/skills/plugin-host/marketplace-adapter.test.js.map +0 -1
  76. package/dist/skills/plugin-host/qdrant-store.test.d.ts +0 -2
  77. package/dist/skills/plugin-host/qdrant-store.test.d.ts.map +0 -1
  78. package/dist/skills/plugin-host/qdrant-store.test.js +0 -396
  79. package/dist/skills/plugin-host/qdrant-store.test.js.map +0 -1
  80. package/dist/skills/plugin-host/skill-plugin-host.ingest.test.d.ts +0 -2
  81. package/dist/skills/plugin-host/skill-plugin-host.ingest.test.d.ts.map +0 -1
  82. package/dist/skills/plugin-host/skill-plugin-host.ingest.test.js +0 -520
  83. package/dist/skills/plugin-host/skill-plugin-host.ingest.test.js.map +0 -1
  84. package/dist/skills/plugin-host/skill-plugin-host.recall-and-reload.test.d.ts +0 -2
  85. package/dist/skills/plugin-host/skill-plugin-host.recall-and-reload.test.d.ts.map +0 -1
  86. package/dist/skills/plugin-host/skill-plugin-host.recall-and-reload.test.js +0 -328
  87. package/dist/skills/plugin-host/skill-plugin-host.recall-and-reload.test.js.map +0 -1
  88. package/dist/skills/plugin-host/skills-rag-source.test.d.ts +0 -2
  89. package/dist/skills/plugin-host/skills-rag-source.test.d.ts.map +0 -1
  90. package/dist/skills/plugin-host/skills-rag-source.test.js +0 -69
  91. package/dist/skills/plugin-host/skills-rag-source.test.js.map +0 -1
  92. package/dist/skills/plugin-host/source-strategies.test.d.ts +0 -2
  93. package/dist/skills/plugin-host/source-strategies.test.d.ts.map +0 -1
  94. package/dist/skills/plugin-host/source-strategies.test.js +0 -52
  95. package/dist/skills/plugin-host/source-strategies.test.js.map +0 -1
@@ -1,520 +0,0 @@
1
- import assert from 'node:assert/strict';
2
- import { test } from 'node:test';
3
- import { CatalogCasError } from '@mcp-abap-adt/llm-agent';
4
- import { makeInMemoryStoreProvider } from './in-memory-store.js';
5
- import { makeSkillPluginHost } from './skill-plugin-host.js';
6
- // Deterministic 3-dim vector from text — lets the in-memory store embed with no real embedder.
7
- function hash3(text) {
8
- const v = [0, 0, 0];
9
- for (let i = 0; i < text.length; i++) {
10
- v[i % 3] += text.charCodeAt(i);
11
- }
12
- return v;
13
- }
14
- // In-memory store provider embed: text → vector (number[]).
15
- const embed = async (text) => hash3(text);
16
- // Host serving embedder: text → IEmbedResult.
17
- const embedder = {
18
- async embed(text) {
19
- return { vector: hash3(text) };
20
- },
21
- };
22
- function rec(id, sourceId, group, content) {
23
- return {
24
- id,
25
- sourceId,
26
- group,
27
- name: id,
28
- retrievalText: content,
29
- content,
30
- provenance: id,
31
- };
32
- }
33
- function info(group, description = `desc-${group}`) {
34
- return { group, description, collection: group };
35
- }
36
- /** A stub source that returns a fixed result or throws on acquire. */
37
- function makeStubSource(result) {
38
- return {
39
- async acquire(_options) {
40
- if (typeof result === 'function')
41
- return result();
42
- return result;
43
- },
44
- };
45
- }
46
- const HOST_BASE = {
47
- embedder: embedder,
48
- embeddingSpaceId: 'sp',
49
- retrievalSchemaVersion: 1,
50
- dimension: 3,
51
- };
52
- // 1 -------------------------------------------------------------------------
53
- test('commits all desired collections in ONE publishCatalog', async () => {
54
- const provider = makeInMemoryStoreProvider({ embed });
55
- let publishCount = 0;
56
- const origPublish = provider.publishCatalog.bind(provider);
57
- provider.publishCatalog = async (rev, entries, options) => {
58
- publishCount++;
59
- return origPublish(rev, entries, options);
60
- };
61
- const host = makeSkillPluginHost({
62
- ...HOST_BASE,
63
- storeProvider: provider,
64
- sources: [
65
- {
66
- id: 's1',
67
- source: makeStubSource({
68
- collections: [info('c1')],
69
- records: [rec('c1:a', 's1', 'c1', 'alpha record')],
70
- }),
71
- },
72
- {
73
- id: 's2',
74
- source: makeStubSource({
75
- collections: [info('c2')],
76
- records: [rec('c2:a', 's2', 'c2', 'beta record')],
77
- }),
78
- },
79
- ],
80
- });
81
- const res = await host.load();
82
- assert.equal(res.ok, true);
83
- assert.deepEqual([...res.committed].sort(), ['c1', 'c2']);
84
- assert.equal(publishCount, 1);
85
- assert.deepEqual(host
86
- .groups()
87
- .map((g) => g.group)
88
- .sort(), ['c1', 'c2']);
89
- const hits = await host
90
- .rag('c1')
91
- .query('alpha record', { k: 5, threshold: 0 });
92
- assert.ok(hits.some((h) => h.record.id === 'c1:a'));
93
- });
94
- // 2 -------------------------------------------------------------------------
95
- test('multi-source merge: union records + ownership; conflicting descriptions throw', async () => {
96
- // Same description → merged.
97
- {
98
- const provider = makeInMemoryStoreProvider({ embed });
99
- const host = makeSkillPluginHost({
100
- ...HOST_BASE,
101
- storeProvider: provider,
102
- sources: [
103
- {
104
- id: 's1',
105
- source: makeStubSource({
106
- collections: [info('c1', 'shared')],
107
- records: [rec('c1:a', 's1', 'c1', 'aaa')],
108
- }),
109
- },
110
- {
111
- id: 's2',
112
- source: makeStubSource({
113
- collections: [info('c1', 'shared')],
114
- records: [rec('c1:b', 's2', 'c1', 'bbb')],
115
- }),
116
- },
117
- ],
118
- });
119
- const res = await host.load();
120
- assert.equal(res.ok, true);
121
- assert.deepEqual(res.committed, ['c1']);
122
- const hits = await host.rag('c1').query('aaa', { k: 5, threshold: 0 });
123
- assert.equal(hits.length, 2); // union of both sources' records
124
- }
125
- // Different descriptions → throw.
126
- {
127
- const provider = makeInMemoryStoreProvider({ embed });
128
- const host = makeSkillPluginHost({
129
- ...HOST_BASE,
130
- storeProvider: provider,
131
- sources: [
132
- {
133
- id: 's1',
134
- source: makeStubSource({
135
- collections: [info('c1', 'A')],
136
- records: [rec('c1:a', 's1', 'c1', 'aaa')],
137
- }),
138
- },
139
- {
140
- id: 's2',
141
- source: makeStubSource({
142
- collections: [info('c1', 'B')],
143
- records: [rec('c1:b', 's2', 'c1', 'bbb')],
144
- }),
145
- },
146
- ],
147
- });
148
- await assert.rejects(() => host.load());
149
- }
150
- });
151
- // 3 -------------------------------------------------------------------------
152
- test('carry-forward publishes a NEW generation', async () => {
153
- const provider = makeInMemoryStoreProvider({ embed });
154
- // Load A: c1 fed by s1 + s2, both succeed.
155
- const sourcesOk = [
156
- {
157
- id: 's1',
158
- source: makeStubSource({
159
- collections: [info('c1')],
160
- records: [rec('c1:s1', 's1', 'c1', 's1 body')],
161
- }),
162
- },
163
- {
164
- id: 's2',
165
- source: makeStubSource({
166
- collections: [info('c1')],
167
- records: [rec('c1:s2', 's2', 'c1', 's2 body')],
168
- }),
169
- },
170
- ];
171
- const hostA = makeSkillPluginHost({
172
- ...HOST_BASE,
173
- storeProvider: provider,
174
- sources: sourcesOk,
175
- });
176
- await hostA.load();
177
- const priorAfterA = await provider.readCatalog();
178
- const priorGen = priorAfterA.entries.find((e) => e.collection.group === 'c1')?.generation;
179
- // Load B: s2 throws → carry-forward of s2's records into a NEW generation.
180
- const hostB = makeSkillPluginHost({
181
- ...HOST_BASE,
182
- storeProvider: provider,
183
- strict: false,
184
- sources: [
185
- {
186
- id: 's1',
187
- source: makeStubSource({
188
- collections: [info('c1')],
189
- records: [rec('c1:s1', 's1', 'c1', 's1 body refreshed')],
190
- }),
191
- },
192
- {
193
- id: 's2',
194
- source: makeStubSource(() => {
195
- throw new Error('s2 down');
196
- }),
197
- },
198
- ],
199
- });
200
- const res = await hostB.load();
201
- assert.equal(res.ok, true);
202
- const afterB = await provider.readCatalog();
203
- const newGen = afterB.entries.find((e) => e.collection.group === 'c1')?.generation;
204
- assert.notEqual(newGen, priorGen); // a NEW generation, not the prior pointer
205
- // The new generation has s1 (refreshed) + s2 (carried forward).
206
- const hits = await hostB.rag('c1').query('body', { k: 10, threshold: 0 });
207
- const ids = hits.map((h) => h.record.id).sort();
208
- assert.deepEqual(ids, ['c1:s1', 'c1:s2']);
209
- });
210
- // 4 -------------------------------------------------------------------------
211
- test('first-load build failure with NO prior → omit + partial result', async () => {
212
- // Provider where forGroup('c2').upsert always throws (no prior generation exists).
213
- const provider = makeInMemoryStoreProvider({ embed });
214
- const orig = provider.forGroup.bind(provider);
215
- provider.forGroup = (group) => {
216
- const store = orig(group);
217
- if (group === 'c2') {
218
- return {
219
- ...store,
220
- async upsert() {
221
- throw new Error('c2 upsert fail');
222
- },
223
- };
224
- }
225
- return store;
226
- };
227
- const host = makeSkillPluginHost({
228
- ...HOST_BASE,
229
- storeProvider: provider,
230
- sources: [
231
- {
232
- id: 's1',
233
- source: makeStubSource({
234
- collections: [info('c1')],
235
- records: [rec('c1:a', 's1', 'c1', 'alpha')],
236
- }),
237
- },
238
- {
239
- id: 's2',
240
- source: makeStubSource({
241
- collections: [info('c2')],
242
- records: [rec('c2:a', 's2', 'c2', 'beta')],
243
- }),
244
- },
245
- ],
246
- });
247
- const res = await host.load();
248
- assert.equal(res.ok, false);
249
- assert.deepEqual(res.committed, ['c1']);
250
- assert.equal(res.omitted.length, 1);
251
- assert.equal(res.omitted[0].group, 'c2');
252
- // c1 committed and serves; c2 serves nothing.
253
- assert.deepEqual(host.groups().map((g) => g.group), ['c1']);
254
- const c2hits = await host.rag('c2').query('beta', { k: 5, threshold: 0 });
255
- assert.equal(c2hits.length, 0);
256
- });
257
- // 5 -------------------------------------------------------------------------
258
- test('collection-set reconciliation: removed collection tombstoned now, reclaimed next load', async () => {
259
- // servingMode:false so the reload guard does not block the set-change.
260
- const provider = makeInMemoryStoreProvider({ embed });
261
- let dropCalls = [];
262
- const origDrop = provider.dropCollection.bind(provider);
263
- provider.dropCollection = async (group, options) => {
264
- dropCalls.push(group);
265
- return origDrop(group, options);
266
- };
267
- const mkHost = (sources) => makeSkillPluginHost({
268
- ...HOST_BASE,
269
- storeProvider: provider,
270
- servingMode: false,
271
- sources,
272
- });
273
- // Load A: {c1, c2}
274
- const hostA = mkHost([
275
- {
276
- id: 's1',
277
- source: makeStubSource({
278
- collections: [info('c1')],
279
- records: [rec('c1:a', 's1', 'c1', 'alpha')],
280
- }),
281
- },
282
- {
283
- id: 's2',
284
- source: makeStubSource({
285
- collections: [info('c2')],
286
- records: [rec('c2:a', 's2', 'c2', 'beta')],
287
- }),
288
- },
289
- ]);
290
- await hostA.load();
291
- // Loads B and C run on the SAME host: deferred reclaim is per-host-instance state
292
- // (load B schedules c2's drop; load C — the next load() on that host — reclaims it).
293
- const hostBC = mkHost([
294
- {
295
- id: 's1',
296
- source: makeStubSource({
297
- collections: [info('c1')],
298
- records: [rec('c1:a', 's1', 'c1', 'alpha')],
299
- }),
300
- },
301
- ]);
302
- // Load B: {c1} only.
303
- const resB = await hostBC.load();
304
- assert.deepEqual(resB.committed, ['c1']);
305
- assert.deepEqual(resB.tombstoned, ['c2']);
306
- // Immediately after B: groups()={c1}, rag('c2') empty.
307
- assert.deepEqual(hostBC.groups().map((g) => g.group), ['c1']);
308
- assert.equal((await hostBC.rag('c2').query('beta', { k: 5, threshold: 0 })).length, 0);
309
- assert.equal(dropCalls.length, 0); // not physically dropped yet (deferred)
310
- // Load C: reclaims c2 (dropCollection runs at the start).
311
- dropCalls = [];
312
- await hostBC.load();
313
- assert.deepEqual(dropCalls, ['c2']);
314
- });
315
- // 6 -------------------------------------------------------------------------
316
- test('partial-commit orphan cleanup (P1.4)', async () => {
317
- // c2 has a PRIOR generation; its second build fails mid-way (upsert throws once) →
318
- // commit keeps c2's prior pointer; the freshly-built gen is discarded in the finally.
319
- const provider = makeInMemoryStoreProvider({ embed });
320
- let c2UpsertCalls = 0;
321
- const discarded = [];
322
- const beganC2 = [];
323
- const orig = provider.forGroup.bind(provider);
324
- provider.forGroup = (group) => {
325
- const store = orig(group);
326
- if (group !== 'c2')
327
- return store;
328
- return {
329
- ...store,
330
- async beginGeneration() {
331
- const g = await store.beginGeneration();
332
- beganC2.push(g.generation);
333
- return g;
334
- },
335
- async upsert(generation, records, options) {
336
- c2UpsertCalls++;
337
- if (c2UpsertCalls === 2)
338
- throw new Error('c2 second upsert fail');
339
- return store.upsert(generation, records, options);
340
- },
341
- async discardGeneration(generation) {
342
- discarded.push(generation);
343
- return store.discardGeneration(generation);
344
- },
345
- };
346
- };
347
- const mkSources = () => [
348
- {
349
- id: 's1',
350
- source: makeStubSource({
351
- collections: [info('c1')],
352
- records: [rec('c1:a', 's1', 'c1', 'alpha')],
353
- }),
354
- },
355
- {
356
- id: 's2',
357
- source: makeStubSource({
358
- collections: [info('c2')],
359
- records: [rec('c2:a', 's2', 'c2', 'beta')],
360
- }),
361
- },
362
- ];
363
- // Load A: both succeed → c2 has a prior generation.
364
- const hostA = makeSkillPluginHost({
365
- ...HOST_BASE,
366
- storeProvider: provider,
367
- sources: mkSources(),
368
- });
369
- await hostA.load();
370
- const priorC2 = (await provider.readCatalog()).entries.find((e) => e.collection.group === 'c2')?.generation;
371
- assert.ok(priorC2);
372
- // Load B: c2's build fails mid (upsert throws) → falls back to prior pointer.
373
- const hostB = makeSkillPluginHost({
374
- ...HOST_BASE,
375
- storeProvider: provider,
376
- servingMode: false,
377
- sources: mkSources(),
378
- });
379
- const resB = await hostB.load();
380
- assert.equal(resB.ok, true); // committed===true (partial commit, c2 prior pointer kept)
381
- // The freshly-built (failed-mid) c2 generation was discarded even though committed===true.
382
- const builtMid = beganC2[beganC2.length - 1];
383
- assert.ok(discarded.includes(builtMid));
384
- // The committed catalog keeps c2's PRIOR pointer.
385
- const after = await provider.readCatalog();
386
- assert.equal(after.entries.find((e) => e.collection.group === 'c2')?.generation, priorC2);
387
- });
388
- // 7 -------------------------------------------------------------------------
389
- test('lost CAS → discard built gens + retry from fresh snapshot, then commit', async () => {
390
- const provider = makeInMemoryStoreProvider({ embed });
391
- let publishCalls = 0;
392
- const origPublish = provider.publishCatalog.bind(provider);
393
- provider.publishCatalog = async (rev, entries, options) => {
394
- publishCalls++;
395
- if (publishCalls === 1)
396
- throw new CatalogCasError('lost cas');
397
- return origPublish(rev, entries, options);
398
- };
399
- let beginCalls = 0;
400
- const origForGroup = provider.forGroup.bind(provider);
401
- provider.forGroup = (group) => {
402
- const store = origForGroup(group);
403
- return {
404
- ...store,
405
- async beginGeneration() {
406
- beginCalls++;
407
- return store.beginGeneration();
408
- },
409
- };
410
- };
411
- const host = makeSkillPluginHost({
412
- ...HOST_BASE,
413
- storeProvider: provider,
414
- sources: [
415
- {
416
- id: 's1',
417
- source: makeStubSource({
418
- collections: [info('c1')],
419
- records: [rec('c1:a', 's1', 'c1', 'alpha')],
420
- }),
421
- },
422
- ],
423
- });
424
- const res = await host.load();
425
- assert.equal(res.ok, true);
426
- assert.equal(publishCalls, 2); // first lost, second won
427
- assert.equal(beginCalls, 2); // a FRESH generation per attempt (no reuse)
428
- });
429
- // 8 -------------------------------------------------------------------------
430
- test('exhausted CAS → throw, no orphans', async () => {
431
- const provider = makeInMemoryStoreProvider({ embed });
432
- // Seed a pre-existing committed generation directly.
433
- const seedGen = 'pre#g0';
434
- await provider._seed(seedGen, [
435
- { record: rec('pre:a', 'sp', 'pre', 'seed'), vector: hash3('seed') },
436
- ]);
437
- await provider.publishCatalog('c0', [
438
- {
439
- collection: info('pre'),
440
- sources: ['sp'],
441
- generation: seedGen,
442
- manifest: {
443
- embeddingSpaceId: 'sp',
444
- dimension: 3,
445
- retrievalSchemaVersion: 1,
446
- },
447
- },
448
- ]);
449
- const discarded = [];
450
- const origForGroup = provider.forGroup.bind(provider);
451
- provider.forGroup = (group) => {
452
- const store = origForGroup(group);
453
- return {
454
- ...store,
455
- async discardGeneration(generation) {
456
- discarded.push(generation);
457
- return store.discardGeneration(generation);
458
- },
459
- };
460
- };
461
- provider.publishCatalog = async () => {
462
- throw new CatalogCasError('always lost');
463
- };
464
- const host = makeSkillPluginHost({
465
- ...HOST_BASE,
466
- storeProvider: provider,
467
- servingMode: false,
468
- catalogCasMaxAttempts: 3,
469
- sources: [
470
- {
471
- id: 's1',
472
- source: makeStubSource({
473
- collections: [info('c1')],
474
- records: [rec('c1:a', 's1', 'c1', 'alpha')],
475
- }),
476
- },
477
- ],
478
- });
479
- await assert.rejects(() => host.load());
480
- // The pre-existing committed generation survives; only built gens were discarded.
481
- const cat = await provider.readCatalog();
482
- assert.ok(cat.entries.some((e) => e.generation === seedGen));
483
- assert.ok(discarded.length >= 3); // each attempt's built gen discarded
484
- assert.ok(!discarded.includes(seedGen));
485
- });
486
- // 9 -------------------------------------------------------------------------
487
- test('strict:true source failure → throw, nothing committed', async () => {
488
- const provider = makeInMemoryStoreProvider({ embed });
489
- let publishCalls = 0;
490
- const origPublish = provider.publishCatalog.bind(provider);
491
- provider.publishCatalog = async (rev, entries, options) => {
492
- publishCalls++;
493
- return origPublish(rev, entries, options);
494
- };
495
- const host = makeSkillPluginHost({
496
- ...HOST_BASE,
497
- storeProvider: provider,
498
- strict: true,
499
- sources: [
500
- {
501
- id: 's1',
502
- source: makeStubSource({
503
- collections: [info('c1')],
504
- records: [rec('c1:a', 's1', 'c1', 'alpha')],
505
- }),
506
- },
507
- {
508
- id: 's2',
509
- source: makeStubSource(() => {
510
- throw new Error('s2 down');
511
- }),
512
- },
513
- ],
514
- });
515
- await assert.rejects(() => host.load());
516
- assert.equal(publishCalls, 0);
517
- const cat = await provider.readCatalog();
518
- assert.equal(cat.entries.length, 0);
519
- });
520
- //# sourceMappingURL=skill-plugin-host.ingest.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skill-plugin-host.ingest.test.js","sourceRoot":"","sources":["../../../src/skills/plugin-host/skill-plugin-host.ingest.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=skill-plugin-host.recall-and-reload.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skill-plugin-host.recall-and-reload.test.d.ts","sourceRoot":"","sources":["../../../src/skills/plugin-host/skill-plugin-host.recall-and-reload.test.ts"],"names":[],"mappings":""}