@multiplayer-app/agent 0.1.6 → 0.1.8

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 (69) hide show
  1. package/dist/attribution.d.ts +17 -0
  2. package/dist/attribution.d.ts.map +1 -0
  3. package/dist/attribution.js +37 -0
  4. package/dist/attribution.js.map +1 -0
  5. package/dist/config.d.ts +6 -0
  6. package/dist/config.d.ts.map +1 -1
  7. package/dist/config.js +7 -2
  8. package/dist/config.js.map +1 -1
  9. package/dist/idle-checkpoint.test.d.ts +2 -0
  10. package/dist/idle-checkpoint.test.d.ts.map +1 -0
  11. package/dist/idle-checkpoint.test.js +57 -0
  12. package/dist/idle-checkpoint.test.js.map +1 -0
  13. package/dist/loop.d.ts.map +1 -1
  14. package/dist/loop.js +2 -1
  15. package/dist/loop.js.map +1 -1
  16. package/dist/model.d.ts +3 -1
  17. package/dist/model.d.ts.map +1 -1
  18. package/dist/model.js +4 -2
  19. package/dist/model.js.map +1 -1
  20. package/dist/protocol.d.ts +16 -6
  21. package/dist/protocol.d.ts.map +1 -1
  22. package/dist/protocol.js +5 -1
  23. package/dist/protocol.js.map +1 -1
  24. package/dist/research/filingramp-contract.d.ts +45 -0
  25. package/dist/research/filingramp-contract.d.ts.map +1 -0
  26. package/dist/research/filingramp-contract.js +277 -0
  27. package/dist/research/filingramp-contract.js.map +1 -0
  28. package/dist/research/filingramp-contract.test.d.ts +2 -0
  29. package/dist/research/filingramp-contract.test.d.ts.map +1 -0
  30. package/dist/research/filingramp-contract.test.js +76 -0
  31. package/dist/research/filingramp-contract.test.js.map +1 -0
  32. package/dist/research/filingramp-tools.d.ts.map +1 -1
  33. package/dist/research/filingramp-tools.js +171 -56
  34. package/dist/research/filingramp-tools.js.map +1 -1
  35. package/dist/research/filingramp-tools.test.d.ts +2 -0
  36. package/dist/research/filingramp-tools.test.d.ts.map +1 -0
  37. package/dist/research/filingramp-tools.test.js +99 -0
  38. package/dist/research/filingramp-tools.test.js.map +1 -0
  39. package/dist/research/prompt.d.ts +4 -0
  40. package/dist/research/prompt.d.ts.map +1 -1
  41. package/dist/research/prompt.js +15 -4
  42. package/dist/research/prompt.js.map +1 -1
  43. package/dist/research/scope.d.ts +22 -8
  44. package/dist/research/scope.d.ts.map +1 -1
  45. package/dist/research/scope.js +49 -15
  46. package/dist/research/scope.js.map +1 -1
  47. package/dist/research/scope.test.js +47 -6
  48. package/dist/research/scope.test.js.map +1 -1
  49. package/dist/session-storage-sync.d.ts +15 -0
  50. package/dist/session-storage-sync.d.ts.map +1 -0
  51. package/dist/session-storage-sync.js +159 -0
  52. package/dist/session-storage-sync.js.map +1 -0
  53. package/dist/session-storage-sync.test.d.ts +2 -0
  54. package/dist/session-storage-sync.test.d.ts.map +1 -0
  55. package/dist/session-storage-sync.test.js +98 -0
  56. package/dist/session-storage-sync.test.js.map +1 -0
  57. package/dist/session.d.ts +4 -1
  58. package/dist/session.d.ts.map +1 -1
  59. package/dist/session.js +85 -28
  60. package/dist/session.js.map +1 -1
  61. package/dist/tools/fs-tools.d.ts +1 -0
  62. package/dist/tools/fs-tools.d.ts.map +1 -1
  63. package/dist/tools/fs-tools.js +11 -2
  64. package/dist/tools/fs-tools.js.map +1 -1
  65. package/dist/tools/fs-tools.test.d.ts +2 -0
  66. package/dist/tools/fs-tools.test.d.ts.map +1 -0
  67. package/dist/tools/fs-tools.test.js +41 -0
  68. package/dist/tools/fs-tools.test.js.map +1 -0
  69. package/package.json +6 -1
@@ -15,6 +15,7 @@ const util_1 = require("util");
15
15
  const ai_1 = require("ai");
16
16
  const zod_1 = require("zod");
17
17
  const filingramp_client_1 = require("./filingramp-client");
18
+ const filingramp_contract_1 = require("./filingramp-contract");
18
19
  const scope_1 = require("./scope");
19
20
  const execFileAsync = (0, util_1.promisify)(child_process_1.execFile);
20
21
  const DEFAULT_FILING_FIELDS = [
@@ -30,16 +31,41 @@ const DEFAULT_FILING_FIELDS = [
30
31
  'product',
31
32
  'project',
32
33
  ];
34
+ /** Filing fields the v2 search accepts (FilingRamp's Filing shape); unknown names fail the whole call. */
35
+ const FILING_FIELDS = [
36
+ '_id', 'accountId', 'trackingNumber', 'customTrackingNumber', 'resourceId', 'state', 'statusId', 'status', 'filingType',
37
+ 'businessType', 'typeOfInsurance', 'subTypeOfInsurance', 'dateSubmitted', 'serffDateLastModified', 'source', 'projectId',
38
+ 'productId', 'product', 'project', 'companies', 'authors', 'reviewers', 'objections', 'dispositions', 'generalInformation',
39
+ 'stateSpecifics', 'hasPreviousVersion', 'associatedFilings', 'createdAt', 'updatedAt',
40
+ ];
33
41
  const MAX_PAGE = 200;
34
42
  const MAX_DOC_HITS = 100;
35
43
  const MAX_HIGHLIGHTS = 3;
36
44
  const MAX_INLINE_TEXT_CHARS = 4000;
37
- const filterSchema = zod_1.z.object({
45
+ // What the model may pass. The contract (filingramp-contract.ts) wraps single values, picks the
46
+ // operator a field accepts and rejects unknown fields before the request leaves the VM.
47
+ const filterInputSchema = zod_1.z.object({
38
48
  field: zod_1.z.string().min(1).max(100),
39
- comparisonOperator: zod_1.z.enum(['cn', 'in', 'eq', 'gt', 'gte', 'lt', 'lte', 'ex']),
40
- value: zod_1.z.unknown(),
49
+ comparisonOperator: zod_1.z
50
+ .enum(['cn', 'in', 'eq', 'gt', 'gte', 'lt', 'lte', 'ex'])
51
+ .optional()
52
+ .describe('Omit to let the field decide: cn (contains) for names, lines and authors; in (exact) for codes; eq/gt/gte/lt/lte for dates; ex for hasObjection'),
53
+ value: zod_1.z
54
+ .union([zod_1.z.string(), zod_1.z.number(), zod_1.z.boolean(), zod_1.z.array(zod_1.z.union([zod_1.z.string(), zod_1.z.number()]))])
55
+ .describe('A string array for list fields (a bare string is wrapped), one date string for date fields, a boolean for hasObjection'),
56
+ });
57
+ const filingsFilterSchema = filterInputSchema.extend({
58
+ field: zod_1.z.string().min(1).max(100).describe('Filings filter (plural): states, typeOfInsurances, subTypeOfInsurances, filingTypes, statusIds, statuses, companies, authors, reviewers, productNames, projectNames, trackingNumbers, form.formNumbers, rate.ruleNumbers, dateSubmitted, createdAt, updatedAt, hasObjection. Singular record names are converted. Not a result field or groupBy.'),
41
59
  });
42
60
  const searchTypeSchema = zod_1.z.enum(['ACCOUNT', 'INDUSTRY']).optional().describe('Defaults to the session scope. INDUSTRY needs the industry-data entitlement.');
61
+ /** Joi-style message: `"body.fields[7]" must be one of [a, b, c, …]` → the accepted values. */
62
+ function allowedValuesFromError(error) {
63
+ const message = error instanceof Error ? error.message : String(error);
64
+ const match = message.match(/must be one of \[([^\]]*)/);
65
+ if (!match)
66
+ return undefined;
67
+ return new Set(match[1].split(',').map((item) => item.trim()).filter((item) => item && item !== '…'));
68
+ }
43
69
  function safeName(value) {
44
70
  return value.replace(/[^A-Za-z0-9._-]+/g, '_').replace(/^_+|_+$/g, '').slice(0, 120) || 'item';
45
71
  }
@@ -131,8 +157,12 @@ function createFilingRampTools(options) {
131
157
  description: 'List filings matching filters (account filings by default). Lean rows: pass `fields` for exactly what you need. Page with lastItemId (sortKey "_id") until a page is shorter than limit. For counts or breakdowns use count_filings / summarize_filings instead — never page to count.',
132
158
  inputSchema: zod_1.z.object({
133
159
  text: zod_1.z.string().max(500).optional().describe('Free-text match over filing metadata'),
134
- filters: zod_1.z.array(filterSchema).max(30).optional(),
135
- fields: zod_1.z.array(zod_1.z.string().max(100)).max(40).optional().describe(`Filing fields to return; default ${DEFAULT_FILING_FIELDS.join(', ')}`),
160
+ filters: zod_1.z.array(filingsFilterSchema).max(30).optional(),
161
+ fields: zod_1.z
162
+ .array(zod_1.z.string().max(100))
163
+ .max(40)
164
+ .optional()
165
+ .describe(`Filing fields to return, from: ${FILING_FIELDS.join(', ')}. Default ${DEFAULT_FILING_FIELDS.join(', ')}`),
136
166
  limit: zod_1.z.number().int().min(1).max(MAX_PAGE).optional(),
137
167
  lastItemId: zod_1.z.string().optional(),
138
168
  lastItemSortValue: zod_1.z.union([zod_1.z.string(), zod_1.z.number()]).optional(),
@@ -142,9 +172,9 @@ function createFilingRampTools(options) {
142
172
  saveAs: zod_1.z.string().max(200).optional().describe('Also write the full page as JSON to this workspace path (e.g. data/filings/page-1.json)'),
143
173
  }),
144
174
  execute: async (input) => {
145
- var _b, _c, _d, _e, _f, _g;
175
+ var _b, _c, _d, _e;
146
176
  const searchType = (0, scope_1.resolveSearchType)(scope, industryData, input.searchType);
147
- const filters = (0, scope_1.scopeFilingsFilters)(scope, input.filters);
177
+ const filters = (0, scope_1.scopeFilingsFilters)(scope, (0, filingramp_contract_1.normalizeFilingsFilters)(input.filters, 'search'));
148
178
  const fields = ((_b = input.fields) === null || _b === void 0 ? void 0 : _b.length) ? [...new Set(['_id', ...input.fields])] : DEFAULT_FILING_FIELDS;
149
179
  const limit = (_c = input.limit) !== null && _c !== void 0 ? _c : 100;
150
180
  let items;
@@ -158,20 +188,37 @@ function createFilingRampTools(options) {
158
188
  items = asRecordList(payload);
159
189
  }
160
190
  else {
161
- const payload = await client.request('/v2/search/filings', {
162
- method: 'POST',
163
- body: {
164
- text: input.text,
165
- filters,
166
- fields,
167
- limit,
168
- lastItemId: input.lastItemId,
169
- lastItemSortValue: input.lastItemSortValue,
170
- sortKey: (_f = input.sortKey) !== null && _f !== void 0 ? _f : '_id',
171
- sortDirection: (_g = input.sortDirection) !== null && _g !== void 0 ? _g : 1,
172
- searchType,
173
- },
174
- });
191
+ const requestPage = (fieldList) => {
192
+ var _b, _c;
193
+ return client.request('/v2/search/filings', {
194
+ method: 'POST',
195
+ body: {
196
+ text: input.text,
197
+ filters,
198
+ fields: fieldList,
199
+ limit,
200
+ lastItemId: input.lastItemId,
201
+ lastItemSortValue: input.lastItemSortValue,
202
+ sortKey: (_b = input.sortKey) !== null && _b !== void 0 ? _b : '_id',
203
+ sortDirection: (_c = input.sortDirection) !== null && _c !== void 0 ? _c : 1,
204
+ searchType,
205
+ },
206
+ });
207
+ };
208
+ let payload;
209
+ try {
210
+ payload = await requestPage(fields);
211
+ }
212
+ catch (error) {
213
+ // `"body.fields[7]" must be one of [...]`: drop what the API rejected and retry once.
214
+ const allowed = allowedValuesFromError(error);
215
+ if (!allowed)
216
+ throw error;
217
+ const kept = fields.filter((field) => allowed.has(field));
218
+ if (kept.length === fields.length)
219
+ throw error;
220
+ payload = await requestPage(kept.length ? kept : DEFAULT_FILING_FIELDS);
221
+ }
175
222
  items = asRecordList(payload);
176
223
  }
177
224
  const saved = input.saveAs ? await writeWorkspaceFile(workspaceDir, input.saveAs, JSON.stringify(items, null, 2)) : undefined;
@@ -191,13 +238,13 @@ function createFilingRampTools(options) {
191
238
  description: 'One total count of filings matching filters. For counts per state, line or status use summarize_filings.',
192
239
  inputSchema: zod_1.z.object({
193
240
  text: zod_1.z.string().max(500).optional(),
194
- filters: zod_1.z.array(filterSchema).max(30).optional(),
241
+ filters: zod_1.z.array(filingsFilterSchema).max(30).optional(),
195
242
  searchType: searchTypeSchema,
196
243
  }),
197
244
  execute: async (input) => {
198
245
  var _b;
199
246
  const searchType = (0, scope_1.resolveSearchType)(scope, industryData, input.searchType);
200
- const filters = (0, scope_1.scopeFilingsFilters)(scope, input.filters);
247
+ const filters = (0, scope_1.scopeFilingsFilters)(scope, (0, filingramp_contract_1.normalizeFilingsFilters)(input.filters, 'count'));
201
248
  const payload = await client.request('/v2/search/filings/count', {
202
249
  method: 'POST',
203
250
  body: { text: input.text, filters, searchType },
@@ -209,8 +256,8 @@ function createFilingRampTools(options) {
209
256
  description: 'Counts and totals per group (state, filingType, statusId, typeOfInsurance, subTypeOfInsurance, company, submittedMonth, dispositionMonth, source, businessType). Use this to size a population before reading documents, and for rankings or trends. Never page search_filings to count.',
210
257
  inputSchema: zod_1.z.object({
211
258
  text: zod_1.z.string().max(500).optional(),
212
- filters: zod_1.z.array(filterSchema).max(30).optional(),
213
- groupBy: zod_1.z.array(zod_1.z.string().max(40)).max(4).optional(),
259
+ filters: zod_1.z.array(filingsFilterSchema).max(30).optional(),
260
+ groupBy: zod_1.z.array(zod_1.z.string().max(40)).max(4).optional().describe('Singular names: state, typeOfInsurance, subTypeOfInsurance, filingType, statusId, company, businessType, source, submittedMonth, dispositionMonth, createdMonth. Omit for one total row.'),
214
261
  limit: zod_1.z.number().int().min(1).max(50000).optional(),
215
262
  sortBy: zod_1.z.enum(['key', 'filings']).optional(),
216
263
  searchType: searchTypeSchema,
@@ -219,10 +266,11 @@ function createFilingRampTools(options) {
219
266
  execute: async (input) => {
220
267
  var _b, _c;
221
268
  const searchType = (0, scope_1.resolveSearchType)(scope, industryData, input.searchType);
222
- const filters = (0, scope_1.scopeFilingsFilters)(scope, input.filters);
269
+ const filters = (0, scope_1.scopeFilingsFilters)(scope, (0, filingramp_contract_1.normalizeFilingsFilters)(input.filters, 'summary'));
270
+ const groupBy = (0, filingramp_contract_1.normalizeSummaryGroupBy)(input.groupBy);
223
271
  const payload = await client.request('/v2/search/filings/summary', {
224
272
  method: 'POST',
225
- body: { text: input.text, filters, groupBy: input.groupBy, limit: input.limit, sortBy: input.sortBy, searchType },
273
+ body: { text: input.text, filters, groupBy, limit: input.limit, sortBy: input.sortBy, searchType },
226
274
  });
227
275
  const items = (_b = payload === null || payload === void 0 ? void 0 : payload.items) !== null && _b !== void 0 ? _b : [];
228
276
  const saved = input.saveAs ? await writeWorkspaceFile(workspaceDir, input.saveAs, JSON.stringify(items, null, 2)) : undefined;
@@ -282,18 +330,69 @@ function createFilingRampTools(options) {
282
330
  return { filing: out, saved };
283
331
  },
284
332
  });
333
+ // Document search matches typeOfInsurance exactly, while the scope holds names or codes
334
+ // ("Homeowners", "04.0"); the filings summary says which exact labels those stand for in this
335
+ // account. Resolved once per process.
336
+ let lineLabels;
337
+ const scopeLineLabels = (searchType) => {
338
+ var _b;
339
+ if (!((_b = scope === null || scope === void 0 ? void 0 : scope.lines) === null || _b === void 0 ? void 0 : _b.length))
340
+ return Promise.resolve({ lines: [], subLines: [] });
341
+ lineLabels !== null && lineLabels !== void 0 ? lineLabels : (lineLabels = client
342
+ .request('/v2/search/filings/summary', {
343
+ method: 'POST',
344
+ body: { filters: (0, scope_1.scopeFilingsFilters)(scope), groupBy: ['typeOfInsurance', 'subTypeOfInsurance'], limit: 1000, searchType },
345
+ })
346
+ .then((payload) => {
347
+ var _b;
348
+ const keys = ((_b = payload === null || payload === void 0 ? void 0 : payload.items) !== null && _b !== void 0 ? _b : []).map((row) => { var _b; return (_b = row.key) !== null && _b !== void 0 ? _b : {}; });
349
+ const labels = (field) => [...new Set(keys.map((key) => key[field]).filter((value) => typeof value === 'string' && value.length > 0))];
350
+ return { lines: labels('typeOfInsurance'), subLines: labels('subTypeOfInsurance') };
351
+ })
352
+ .catch((error) => {
353
+ lineLabels = undefined;
354
+ throw error;
355
+ }));
356
+ return lineLabels;
357
+ };
358
+ const requestDocuments = async (body) => {
359
+ try {
360
+ // ramp-web-api mounts the OpenSearch router at /content-search (POST /global).
361
+ const payload = await client.request('/v1/content-search/global', {
362
+ method: 'POST',
363
+ body,
364
+ timeoutMs: 120000,
365
+ });
366
+ return Array.isArray(payload) ? payload : asRecordList(payload);
367
+ }
368
+ catch (error) {
369
+ if (error instanceof filingramp_client_1.FilingRampHttpError && error.status === 403) {
370
+ throw new Error(`Document search is not enabled for this account (FilingRamp "searchV2" feature): ${error.message}. Report it in the findings; filing metadata tools still work.`);
371
+ }
372
+ if (error instanceof filingramp_client_1.FilingRampHttpError && error.status === 400 && /must be|is not a valid|not allowed|required|invalid/i.test(error.message)) {
373
+ throw new Error(`Document search rejected the request: ${error.message}. Fix the filter (the tool description lists the fields and operators) and call again.`);
374
+ }
375
+ // FilingRamp hides OpenSearch failures (e.g. a missing document index) behind a generic
376
+ // "An error occurred": rephrasing the query will not help, falling back will.
377
+ if (error instanceof filingramp_client_1.FilingRampHttpError && (error.status === 400 || error.status >= 500)) {
378
+ throw new Error(`Document search is unavailable (FilingRamp ${error.status}: ${error.message}). Do not retry it with other wording. ` +
379
+ 'Find candidate filings with search_filings / summarize_filings, then read their documents with get_filing and download_attachment (extracted text lands in the workspace for grep). Note the gap in the findings.');
380
+ }
381
+ throw error;
382
+ }
383
+ };
285
384
  const searchDocuments = (0, ai_1.tool)({
286
- description: 'Full-text or semantic search INSIDE documents (extracted PDF text of forms, rate and supporting documents, objection letters, responses, library forms, circulars). This is how you find which filings contain a clause. Returns hits with highlights; set saveText=true to write each hit\'s full extracted text to data/text/<trackingNumber>/<name>.txt for grep and analysis — never read whole documents into the chat.',
385
+ description: 'Full-text or semantic search INSIDE documents (extracted PDF text of forms, rate and supporting documents, objection letters, responses, library forms and rates, circulars). This is how you find which filings contain a clause. Returns hits with highlights; set saveText=true to write each hit\'s full extracted text to data/text/<trackingNumber>/<name>.txt for grep and analysis — never read whole documents into the chat. Filters use OpenSearch\'s vocabulary: states, typeOfInsurance, subTypeOfInsurance, filingTypes, statuses, resourceTypes, productIds, projectIds take exact string arrays ("in"); authors, contacts, reviewers match a substring ("cn"); dateSubmitted, createdAt, updatedAt take one date (eq/gt/gte/lt/lte). The session scope is added for you. Library and circular indexes accept only their own fields (resourceTypes, formNumbers, editionDates, circularNumbers…), so neither the scope nor filing filters apply to them; the result reports what was not applied.',
287
386
  inputSchema: zod_1.z.object({
288
387
  query: zod_1.z.string().min(1).max(2000),
289
388
  searchType: zod_1.z.enum(['KEYWORD', 'SEMANTIC', 'HYBRID']).optional().describe('KEYWORD for exact phrases (default), SEMANTIC for meaning, HYBRID for both'),
290
389
  indexes: zod_1.z
291
- .array(zod_1.z.enum(['filings', 'objections', 'responses', 'library_forms', 'library_rates', 'circulars']))
390
+ .array(zod_1.z.enum(filingramp_contract_1.DOCUMENT_INDEXES))
292
391
  .min(1)
293
392
  .optional()
294
- .describe('Which document collections; default ["filings"]'),
295
- matchMode: zod_1.z.enum(['EXACT', 'ANY_WORD', 'PROXIMITY']).optional(),
296
- filters: zod_1.z.array(filterSchema).max(20).optional().describe('OpenSearch filters: states, filingTypes, typeOfInsurance, subTypeOfInsurance, dateSubmitted, productIds, projectIds, authors…'),
393
+ .describe('Which document collections; default ["filings"]. A collection this deployment has no index for fails on its own (requests[].failed) while the others still answer.'),
394
+ matchMode: zod_1.z.enum(['EXACT', 'ANY_WORD', 'PROXIMITY', 'PREFIX', 'FUZZY', 'BOOLEAN']).optional(),
395
+ filters: zod_1.z.array(filterInputSchema).max(20).optional().describe('See the tool description for fields and operators'),
297
396
  scope: zod_1.z.enum(['ACCOUNT', 'INDUSTRY']).optional(),
298
397
  limit: zod_1.z.number().int().min(1).max(1000).optional(),
299
398
  saveText: zod_1.z.boolean().optional(),
@@ -302,35 +401,51 @@ function createFilingRampTools(options) {
302
401
  var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
303
402
  const searchType = (_b = input.searchType) !== null && _b !== void 0 ? _b : 'KEYWORD';
304
403
  const suffix = searchType === 'KEYWORD' ? 'keyword_index' : 'semantic_index';
305
- const indexNames = ((_c = input.indexes) !== null && _c !== void 0 ? _c : ['filings']).map((name) => `${name}_${suffix}`);
404
+ const matchMode = (_c = input.matchMode) !== null && _c !== void 0 ? _c : (searchType === 'KEYWORD' ? 'EXACT' : 'ANY_WORD');
306
405
  const scopeValue = (0, scope_1.resolveSearchType)(scope, industryData, input.scope);
307
- const filters = (0, scope_1.scopeDocumentFilters)(scope, input.filters);
308
- // ramp-web-api mounts the OpenSearch router at /content-search (POST /global).
309
- let hits;
310
- try {
311
- hits = await client.request('/v1/content-search/global', {
312
- method: 'POST',
313
- body: {
406
+ const labels = await scopeLineLabels(scopeValue);
407
+ const requests = [];
408
+ const hits = [];
409
+ const failures = [];
410
+ let answered = 0;
411
+ // One request per index group: each group has its own filter vocabulary, and one filter
412
+ // outside it fails the whole request. A group whose indexes an environment does not have
413
+ // (circulars on most deployments) fails alone; the other groups still answer.
414
+ for (const group of (0, filingramp_contract_1.documentIndexGroups)((_d = input.indexes) !== null && _d !== void 0 ? _d : ['filings'])) {
415
+ const own = (0, filingramp_contract_1.normalizeDocumentFilters)(input.filters, group);
416
+ const scoped = (0, scope_1.scopeDocumentFilters)(scope, own.filters, group.fields, labels);
417
+ const entry = { indexes: group.indexes, filters: scoped.filters, unscoped: scoped.unscoped, ignoredFilters: own.ignored };
418
+ if (scoped.emptyByLines) {
419
+ requests.push({ ...entry, skipped: "no filing in scope carries the scope's lines, so no document in these indexes can match" });
420
+ continue;
421
+ }
422
+ try {
423
+ const payload = await requestDocuments({
314
424
  searchType,
315
425
  searchText: input.query,
316
- matchMode: (_d = input.matchMode) !== null && _d !== void 0 ? _d : (searchType === 'KEYWORD' ? 'EXACT' : 'ANY_WORD'),
317
- indexNames,
426
+ matchMode,
427
+ indexNames: group.indexes.map((index) => `${index}_${suffix}`),
318
428
  scope: scopeValue,
319
429
  limit: (_e = input.limit) !== null && _e !== void 0 ? _e : 50,
320
- filters,
321
- },
322
- timeoutMs: 120000,
323
- });
324
- }
325
- catch (error) {
326
- if (error instanceof filingramp_client_1.FilingRampHttpError && error.status === 403) {
327
- throw new Error(`Document search is not enabled for this account (FilingRamp "searchV2" feature): ${error.message}. Report it in the findings; filing metadata tools still work.`);
430
+ filters: scoped.filters,
431
+ });
432
+ hits.push(...payload);
433
+ requests.push(entry);
434
+ answered += 1;
435
+ }
436
+ catch (error) {
437
+ const failure = error instanceof Error ? error : new Error(String(error));
438
+ failures.push(failure);
439
+ requests.push({ ...entry, failed: failure.message });
328
440
  }
329
- throw error;
330
441
  }
331
- const list = Array.isArray(hits) ? hits : asRecordList(hits);
442
+ // Every group failed: the first failure carries the right instruction (fix the filter,
443
+ // or fall back to downloads). A partial failure is reported per group instead.
444
+ if (answered === 0 && failures.length > 0)
445
+ throw failures[0];
446
+ hits.sort((a, b) => { var _b, _c; return Number((_b = b._score) !== null && _b !== void 0 ? _b : 0) - Number((_c = a._score) !== null && _c !== void 0 ? _c : 0); });
332
447
  const results = [];
333
- for (const hit of list.slice(0, MAX_DOC_HITS)) {
448
+ for (const hit of hits.slice(0, MAX_DOC_HITS)) {
334
449
  const source = ((_f = hit._source) !== null && _f !== void 0 ? _f : {});
335
450
  const highlight = ((_g = hit.highlight) !== null && _g !== void 0 ? _g : {});
336
451
  const fragments = Object.values(highlight).flat().slice(0, MAX_HIGHLIGHTS);
@@ -359,7 +474,7 @@ function createFilingRampTools(options) {
359
474
  highlights: fragments.map((fragment) => fragment.replace(/<\/?em>/g, '**').slice(0, 300)),
360
475
  });
361
476
  }
362
- return { hits: results, total: list.length, truncated: list.length > MAX_DOC_HITS, indexNames, appliedFilters: filters };
477
+ return { hits: results, total: hits.length, truncated: hits.length > MAX_DOC_HITS, requests };
363
478
  },
364
479
  });
365
480
  const downloadAttachment = (0, ai_1.tool)({
@@ -401,7 +516,7 @@ function createFilingRampTools(options) {
401
516
  description: 'Objection letters on account filings, open or closed, with their respond-by dates. Account data only.',
402
517
  inputSchema: zod_1.z.object({
403
518
  type: zod_1.z.enum(['OPEN', 'CLOSED']),
404
- filters: zod_1.z.array(filterSchema).max(20).optional(),
519
+ filters: zod_1.z.array(filingsFilterSchema).max(20).optional(),
405
520
  limit: zod_1.z.number().int().min(1).max(MAX_PAGE).optional(),
406
521
  offset: zod_1.z.number().int().min(0).optional(),
407
522
  sortKey: zod_1.z.enum(['filingType', 'objection.letterDate', 'objection.respondByDate']).optional(),
@@ -409,7 +524,7 @@ function createFilingRampTools(options) {
409
524
  }),
410
525
  execute: async (input) => {
411
526
  var _b, _c, _d, _e, _f;
412
- const filters = (0, scope_1.scopeFilingsFilters)(scope, input.filters);
527
+ const filters = (0, scope_1.scopeFilingsFilters)(scope, (0, filingramp_contract_1.normalizeFilingsFilters)(input.filters, 'objections'));
413
528
  const payload = await client.request('/v2/search/filings/objections', {
414
529
  method: 'POST',
415
530
  query: { type: input.type },
@@ -1 +1 @@
1
- {"version":3,"file":"filingramp-tools.js","sourceRoot":"","sources":["../../src/research/filingramp-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filingramp-tools.js","sourceRoot":"","sources":["../../src/research/filingramp-tools.ts"],"names":[],"mappings":";;;;;AAyKA,sDA8ZC;AAvkBD,uFAAuF;AACvF,wFAAwF;AACxF,yFAAyF;AACzF,4FAA4F;AAC5F,iDAAwC;AACxC,2BAAmC;AACnC,gDAAuB;AACvB,+BAAgC;AAChC,2BAAoC;AACpC,6BAAuB;AAEvB,2DAAgF;AAChF,+DAQ8B;AAC9B,mCAA4G;AAE5G,MAAM,aAAa,GAAG,IAAA,gBAAS,EAAC,wBAAQ,CAAC,CAAA;AAEzC,MAAM,qBAAqB,GAAG;IAC5B,KAAK;IACL,gBAAgB;IAChB,OAAO;IACP,UAAU;IACV,QAAQ;IACR,YAAY;IACZ,iBAAiB;IACjB,oBAAoB;IACpB,eAAe;IACf,SAAS;IACT,SAAS;CACV,CAAA;AACD,0GAA0G;AAC1G,MAAM,aAAa,GAAG;IACpB,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY;IACvH,cAAc,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,eAAe,EAAE,uBAAuB,EAAE,QAAQ,EAAE,WAAW;IACxH,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,oBAAoB;IAC1H,gBAAgB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,WAAW,EAAE,WAAW;CACtF,CAAA;AACD,MAAM,QAAQ,GAAG,GAAG,CAAA;AACpB,MAAM,YAAY,GAAG,GAAG,CAAA;AACxB,MAAM,cAAc,GAAG,CAAC,CAAA;AACxB,MAAM,qBAAqB,GAAG,IAAK,CAAA;AAEnC,gGAAgG;AAChG,wFAAwF;AACxF,MAAM,iBAAiB,GAAG,OAAC,CAAC,MAAM,CAAC;IACjC,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACjC,kBAAkB,EAAE,OAAC;SAClB,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;SACxD,QAAQ,EAAE;SACV,QAAQ,CAAC,iJAAiJ,CAAC;IAC9J,KAAK,EAAE,OAAC;SACL,KAAK,CAAC,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,OAAO,EAAE,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,KAAK,CAAC,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SACxF,QAAQ,CAAC,wHAAwH,CAAC;CACtI,CAAC,CAAA;AAEF,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,MAAM,CAAC;IACnD,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CACxC,kVAAkV,CACnV;CACF,CAAC,CAAA;AAEF,MAAM,gBAAgB,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8EAA8E,CAAC,CAAA;AAE5J,+FAA+F;AAC/F,SAAS,sBAAsB,CAAC,KAAc;IAC5C,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACtE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAA;IACxD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAA;IAC5B,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAA;AACvG,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC7B,OAAO,KAAK,CAAC,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAA;AAChG,CAAC;AAED,SAAS,IAAI,CAAC,MAA+B,EAAE,MAAgB;IAC7D,MAAM,GAAG,GAA4B,EAAE,CAAA;IACvC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS;YAAE,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IAC7D,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAS,YAAY,CAAC,OAAgB;IACpC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,OAAoC,CAAA;IACvE,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAE,OAA+B,CAAC,KAAK,CAAC,EAAE,CAAC;QACpG,OAAQ,OAAgD,CAAC,KAAK,CAAA;IAChE,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,YAAoB,EAAE,YAAoB,EAAE,OAAwB;IACpG,MAAM,MAAM,GAAG,cAAI,CAAC,OAAO,CAAC,YAAY,EAAE,YAAY,CAAC,CAAA;IACvD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,cAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,cAAI,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,YAAY,EAAE,CAAC,CAAA;IAC7H,MAAM,aAAE,CAAC,KAAK,CAAC,cAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACzD,MAAM,MAAM,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;IACnF,MAAM,aAAE,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,CAAA;AACzD,CAAC;AAED,+GAA+G;AAC/G,KAAK,UAAU,cAAc,CAAC,IAAY,EAAE,MAAc;IACxD,MAAM,QAAQ,GAA8B;QAC1C,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACrD,CAAC,WAAW,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;KACzC,CAAA;IACD,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,QAAQ,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,MAAO,EAAE,CAAC,CAAA;YACpD,MAAM,IAAI,GAAG,MAAM,aAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAClC,OAAO,IAAI,CAAC,IAAI,CAAA;QAClB,CAAC;QAAC,WAAM,CAAC;YACP,4BAA4B;QAC9B,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAA;AACV,CAAC;AAED,yFAAyF;AACzF,SAAS,kBAAkB,CAAC,MAA+B;;IACzD,MAAM,GAAG,GAAmC,EAAE,CAAA;IAC9C,MAAM,QAAQ,GAA4B;QACxC,CAAC,OAAO,EAAE,YAAY,CAAC;QACvB,CAAC,OAAO,EAAE,MAAM,CAAC;QACjB,CAAC,aAAa,EAAE,MAAM,CAAC;QACvB,CAAC,cAAc,EAAE,QAAQ,CAAC;KAC3B,CAAA;IACD,KAAK,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,QAAQ,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;QAC7B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,SAAQ;QACnC,KAAK,MAAM,IAAI,IAAI,KAAkC,EAAE,CAAC;YACtD,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,WAAyC,CAAC,CAAC,CAAC,EAAE,CAAA;YAC1G,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;gBACrC,GAAG,CAAC,IAAI,CAAC;oBACP,OAAO;oBACP,IAAI,EAAE,MAAA,MAAA,IAAI,CAAC,UAAU,CAAC,mCAAI,IAAI,CAAC,IAAI,mCAAI,IAAI,CAAC,KAAK;oBACjD,MAAM,EAAE,IAAI,CAAC,GAAG;oBAChB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,GAAG,EAAE,UAAU,CAAC,GAAG;oBACnB,IAAI,EAAE,UAAU,CAAC,IAAI;oBACrB,IAAI,EAAE,UAAU,CAAC,IAAI;oBACrB,IAAI,EAAE,UAAU,CAAC,IAAI;iBACtB,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAE,MAAM,CAAC,UAAwC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC3G,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;QAChC,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAE,MAAM,CAAC,WAAyC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACpH,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAA;QACjI,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAQD,SAAgB,qBAAqB,CAAC,OAA+B;IACnE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,OAAO,CAAA;IAC/C,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAA;IAExC,MAAM,aAAa,GAAG,IAAA,SAAI,EAAC;QACzB,WAAW,EACT,wRAAwR;QAC1R,WAAW,EAAE,OAAC,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;YACrF,OAAO,EAAE,OAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;YACxD,MAAM,EAAE,OAAC;iBACN,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;iBAC1B,GAAG,CAAC,EAAE,CAAC;iBACP,QAAQ,EAAE;iBACV,QAAQ,CAAC,kCAAkC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACtH,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE;YACvD,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACjC,iBAAiB,EAAE,OAAC,CAAC,KAAK,CAAC,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;YAC/D,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;YACtC,aAAa,EAAE,OAAC,CAAC,KAAK,CAAC,CAAC,OAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;YAChE,UAAU,EAAE,gBAAgB;YAC5B,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yFAAyF,CAAC;SAC3I,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;;YACvB,MAAM,UAAU,GAAG,IAAA,yBAAiB,EAAC,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;YAC3E,MAAM,OAAO,GAAG,IAAA,2BAAmB,EAAC,KAAK,EAAE,IAAA,6CAAuB,EAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAA;YAC5F,MAAM,MAAM,GAAG,CAAA,MAAA,KAAK,CAAC,MAAM,0CAAE,MAAM,EAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAA;YACpG,MAAM,KAAK,GAAG,MAAA,KAAK,CAAC,KAAK,mCAAI,GAAG,CAAA;YAChC,IAAI,KAAgC,CAAA;YACpC,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;gBAC9B,4FAA4F;gBAC5F,MAAM,MAAM,GAAG,OAAO,KAAK,CAAC,iBAAiB,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAA;gBACxF,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO,CAAU,oBAAoB,EAAE;oBAClE,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAA,KAAK,CAAC,OAAO,mCAAI,KAAK,EAAE,aAAa,EAAE,MAAA,KAAK,CAAC,aAAa,mCAAI,CAAC,EAAE;iBACzI,CAAC,CAAA;gBACF,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;YAC/B,CAAC;iBAAM,CAAC;gBACN,MAAM,WAAW,GAAG,CAAC,SAAmB,EAAE,EAAE;;oBAC1C,OAAA,MAAM,CAAC,OAAO,CAAU,oBAAoB,EAAE;wBAC5C,MAAM,EAAE,MAAM;wBACd,IAAI,EAAE;4BACJ,IAAI,EAAE,KAAK,CAAC,IAAI;4BAChB,OAAO;4BACP,MAAM,EAAE,SAAS;4BACjB,KAAK;4BACL,UAAU,EAAE,KAAK,CAAC,UAAU;4BAC5B,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;4BAC1C,OAAO,EAAE,MAAA,KAAK,CAAC,OAAO,mCAAI,KAAK;4BAC/B,aAAa,EAAE,MAAA,KAAK,CAAC,aAAa,mCAAI,CAAC;4BACvC,UAAU;yBACX;qBACF,CAAC,CAAA;iBAAA,CAAA;gBACJ,IAAI,OAAgB,CAAA;gBACpB,IAAI,CAAC;oBACH,OAAO,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,CAAA;gBACrC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,sFAAsF;oBACtF,MAAM,OAAO,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAA;oBAC7C,IAAI,CAAC,OAAO;wBAAE,MAAM,KAAK,CAAA;oBACzB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;oBACzD,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;wBAAE,MAAM,KAAK,CAAA;oBAC9C,OAAO,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAA;gBACzE,CAAC;gBACD,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;YAC/B,CAAC;YACD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,kBAAkB,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YAC7H,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;YACpD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;YACpC,OAAO;gBACL,KAAK,EAAE,IAAI,CAAC,MAAM;gBAClB,KAAK,EAAE,IAAI;gBACX,cAAc,EAAE,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAA0B,CAAC,CAAC,CAAC,SAAS;gBACrF,UAAU,EAAE,UAAU,KAAK,UAAU,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,iBAAiB,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;gBAClK,cAAc,EAAE,OAAO;gBACvB,KAAK;aACN,CAAA;QACH,CAAC;KACF,CAAC,CAAA;IAEF,MAAM,YAAY,GAAG,IAAA,SAAI,EAAC;QACxB,WAAW,EAAE,0GAA0G;QACvH,WAAW,EAAE,OAAC,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;YACpC,OAAO,EAAE,OAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;YACxD,UAAU,EAAE,gBAAgB;SAC7B,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;;YACvB,MAAM,UAAU,GAAG,IAAA,yBAAiB,EAAC,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;YAC3E,MAAM,OAAO,GAAG,IAAA,2BAAmB,EAAC,KAAK,EAAE,IAAA,6CAAuB,EAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;YAC3F,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO,CAAqB,0BAA0B,EAAE;gBACnF,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE;aAChD,CAAC,CAAA;YACF,OAAO,EAAE,KAAK,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,mCAAI,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,CAAA;QAChE,CAAC;KACF,CAAC,CAAA;IAEF,MAAM,gBAAgB,GAAG,IAAA,SAAI,EAAC;QAC5B,WAAW,EACT,0RAA0R;QAC5R,WAAW,EAAE,OAAC,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;YACpC,OAAO,EAAE,OAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;YACxD,OAAO,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0LAA0L,CAAC;YAC3P,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAM,CAAC,CAAC,QAAQ,EAAE;YACrD,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE;YAC7C,UAAU,EAAE,gBAAgB;YAC5B,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;SAC9G,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;;YACvB,MAAM,UAAU,GAAG,IAAA,yBAAiB,EAAC,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;YAC3E,MAAM,OAAO,GAAG,IAAA,2BAAmB,EAAC,KAAK,EAAE,IAAA,6CAAuB,EAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAA;YAC7F,MAAM,OAAO,GAAG,IAAA,6CAAuB,EAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YACtD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO,CAA6D,4BAA4B,EAAE;gBAC7H,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE;aACnG,CAAC,CAAA;YACF,MAAM,KAAK,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,mCAAI,EAAE,CAAA;YAClC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,kBAAkB,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YAC7H,0EAA0E;YAC1E,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC7C,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,qBAAqB,EAAE,GAAG,CAAC,qBAAqB;gBAChD,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;gBACtC,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;gBACtC,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ;oBAC3D,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,SAAiD,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,CAAC,CAAC,EAAE,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,OAAO,mCAAI,CAAC,CAAC,CAAA,EAAA,CAAC,CAAC;oBACjI,CAAC,CAAC,SAAS;aACd,CAAC,CAAC,CAAA;YACH,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,mCAAI,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;QAClH,CAAC;KACF,CAAC,CAAA;IAEF,MAAM,SAAS,GAAG,IAAA,SAAI,EAAC;QACrB,WAAW,EACT,0OAA0O;QAC5O,WAAW,EAAE,OAAC,CAAC,MAAM,CAAC;YACpB,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,qCAAqC,CAAC;YAC9E,OAAO,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;YAC9H,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;SACrG,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;;YACvB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAA0B,eAAe,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;YAC3G,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,kBAAkB,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YAC9H,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,MAAA,KAAK,CAAC,OAAO,mCAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAA;YACpE,MAAM,GAAG,GAA4B;gBACnC,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,eAAe,EAAE,MAAM,CAAC,eAAe;gBACvC,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;gBAC7C,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAE,MAAM,CAAC,SAAuC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;aAC/H,CAAA;YACD,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;gBAAE,GAAG,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAA;YAC9E,KAAK,MAAM,OAAO,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,CAAU,EAAE,CAAC;gBAC/F,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;oBAAE,SAAQ;gBACnC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAE,MAAM,CAAC,OAAO,CAA+B,CAAC,CAAC,CAAC,EAAE,CAAA;gBAClG,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oBAChC,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAA;oBACzC,OAAO,IAAI,CAAA;gBACb,CAAC,CAAC,CAAA;YACJ,CAAC;YACD,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;gBAAE,GAAG,CAAC,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;YAC5E,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAA;QAC/B,CAAC;KACF,CAAC,CAAA;IAEF,wFAAwF;IACxF,8FAA8F;IAC9F,sCAAsC;IACtC,IAAI,UAAgD,CAAA;IACpD,MAAM,eAAe,GAAG,CAAC,UAAkC,EAA4B,EAAE;;QACvF,IAAI,CAAC,CAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,0CAAE,MAAM,CAAA;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAA;QAC9E,UAAU,aAAV,UAAU,cAAV,UAAU,IAAV,UAAU,GAAK,MAAM;aAClB,OAAO,CAAuD,4BAA4B,EAAE;YAC3F,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,OAAO,EAAE,IAAA,2BAAmB,EAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE;SAC3H,CAAC;aACD,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;;YAChB,MAAM,IAAI,GAAG,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,WAAC,OAAA,MAAA,GAAG,CAAC,GAAG,mCAAI,EAAE,CAAA,EAAA,CAAC,CAAA;YAC/D,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,EAAE,CAC/B,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YAC/H,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,oBAAoB,CAAC,EAAE,CAAA;QACrF,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACxB,UAAU,GAAG,SAAS,CAAA;YACtB,MAAM,KAAK,CAAA;QACb,CAAC,CAAC,EAAA;QACJ,OAAO,UAAU,CAAA;IACnB,CAAC,CAAA;IAED,MAAM,gBAAgB,GAAG,KAAK,EAAE,IAA6B,EAA2C,EAAE;QACxG,IAAI,CAAC;YACH,+EAA+E;YAC/E,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO,CAA2D,2BAA2B,EAAE;gBAC1H,MAAM,EAAE,MAAM;gBACd,IAAI;gBACJ,SAAS,EAAE,MAAO;aACnB,CAAC,CAAA;YACF,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QACjE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,uCAAmB,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBACjE,MAAM,IAAI,KAAK,CAAC,oFAAoF,KAAK,CAAC,OAAO,gEAAgE,CAAC,CAAA;YACpL,CAAC;YACD,IAAI,KAAK,YAAY,uCAAmB,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,sDAAsD,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC/I,MAAM,IAAI,KAAK,CAAC,yCAAyC,KAAK,CAAC,OAAO,wFAAwF,CAAC,CAAA;YACjK,CAAC;YACD,wFAAwF;YACxF,8EAA8E;YAC9E,IAAI,KAAK,YAAY,uCAAmB,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC,EAAE,CAAC;gBAC1F,MAAM,IAAI,KAAK,CACb,8CAA8C,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,OAAO,yCAAyC;oBACnH,mNAAmN,CACtN,CAAA;YACH,CAAC;YACD,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC,CAAA;IAED,MAAM,eAAe,GAAG,IAAA,SAAI,EAAC;QAC3B,WAAW,EACT,k9BAAk9B;QACp9B,WAAW,EAAE,OAAC,CAAC,MAAM,CAAC;YACpB,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;YAClC,UAAU,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4EAA4E,CAAC;YACvJ,OAAO,EAAE,OAAC;iBACP,KAAK,CAAC,OAAC,CAAC,IAAI,CAAC,sCAAgB,CAAC,CAAC;iBAC/B,GAAG,CAAC,CAAC,CAAC;iBACN,QAAQ,EAAE;iBACV,QAAQ,CAAC,oKAAoK,CAAC;YACjL,SAAS,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE;YAC9F,OAAO,EAAE,OAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;YACpH,KAAK,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE;YACjD,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;YACnD,QAAQ,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SACjC,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;;YACvB,MAAM,UAAU,GAAG,MAAA,KAAK,CAAC,UAAU,mCAAI,SAAS,CAAA;YAChD,MAAM,MAAM,GAAG,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,gBAAgB,CAAA;YAC5E,MAAM,SAAS,GAAG,MAAA,KAAK,CAAC,SAAS,mCAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;YACtF,MAAM,UAAU,GAAG,IAAA,yBAAiB,EAAC,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;YACtE,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,CAAA;YAChD,MAAM,QAAQ,GAAmJ,EAAE,CAAA;YACnK,MAAM,IAAI,GAAmC,EAAE,CAAA;YAC/C,MAAM,QAAQ,GAAY,EAAE,CAAA;YAC5B,IAAI,QAAQ,GAAG,CAAC,CAAA;YAChB,wFAAwF;YACxF,yFAAyF;YACzF,8EAA8E;YAC9E,KAAK,MAAM,KAAK,IAAI,IAAA,yCAAmB,EAAC,MAAA,KAAK,CAAC,OAAO,mCAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;gBACtE,MAAM,GAAG,GAAG,IAAA,8CAAwB,EAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;gBAC1D,MAAM,MAAM,GAAG,IAAA,4BAAoB,EAAC,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;gBAC7E,MAAM,KAAK,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,CAAC,OAAO,EAAE,CAAA;gBACzH,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;oBACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,yFAAyF,EAAE,CAAC,CAAA;oBAC/H,SAAQ;gBACV,CAAC;gBACD,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC;wBACrC,UAAU;wBACV,UAAU,EAAE,KAAK,CAAC,KAAK;wBACvB,SAAS;wBACT,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,MAAM,EAAE,CAAC;wBAC9D,KAAK,EAAE,UAAU;wBACjB,KAAK,EAAE,MAAA,KAAK,CAAC,KAAK,mCAAI,EAAE;wBACxB,OAAO,EAAE,MAAM,CAAC,OAAO;qBACxB,CAAC,CAAA;oBACF,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAA;oBACrB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;oBACpB,QAAQ,IAAI,CAAC,CAAA;gBACf,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;oBACzE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;oBACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;gBACtD,CAAC;YACH,CAAC;YACD,uFAAuF;YACvF,+EAA+E;YAC/E,IAAI,QAAQ,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAA;YAC5D,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,eAAC,OAAA,MAAM,CAAC,MAAA,CAAC,CAAC,MAAM,mCAAI,CAAC,CAAC,GAAG,MAAM,CAAC,MAAA,CAAC,CAAC,MAAM,mCAAI,CAAC,CAAC,CAAA,EAAA,CAAC,CAAA;YAClE,MAAM,OAAO,GAAmC,EAAE,CAAA;YAClD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC;gBAC9C,MAAM,MAAM,GAAG,CAAC,MAAA,GAAG,CAAC,OAAO,mCAAI,EAAE,CAA4B,CAAA;gBAC7D,MAAM,SAAS,GAAG,CAAC,MAAA,GAAG,CAAC,SAAS,mCAAI,EAAE,CAA6B,CAAA;gBACnE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAA;gBAC1E,MAAM,IAAI,GAAG,OAAO,MAAM,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAA;gBAC1F,MAAM,cAAc,GAAG,MAAM,CAAC,MAAA,MAAA,MAAA,MAAA,MAAM,CAAC,cAAc,mCAAI,MAAM,CAAC,oBAAoB,mCAAI,MAAM,CAAC,UAAU,mCAAI,GAAG,CAAC,GAAG,mCAAI,SAAS,CAAC,CAAA;gBAChI,MAAM,IAAI,GAAG,MAAM,CAAC,MAAA,MAAA,MAAA,MAAA,MAAA,MAAM,CAAC,IAAI,mCAAI,MAAM,CAAC,cAAc,mCAAI,MAAM,CAAC,UAAU,mCAAI,MAAM,CAAC,KAAK,mCAAI,GAAG,CAAC,GAAG,mCAAI,UAAU,CAAC,CAAA;gBACvH,IAAI,QAA4B,CAAA;gBAChC,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;oBAC3B,QAAQ,GAAG,aAAa,QAAQ,CAAC,cAAc,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAA;oBACxE,MAAM,kBAAkB,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;gBACxD,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC;oBACX,EAAE,EAAE,GAAG,CAAC,GAAG;oBACX,KAAK,EAAE,GAAG,CAAC,MAAM;oBACjB,KAAK,EAAE,GAAG,CAAC,MAAM;oBACjB,YAAY,EAAE,MAAM,CAAC,YAAY;oBACjC,cAAc;oBACd,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,UAAU,EAAE,MAAM,CAAC,UAAU;oBAC7B,aAAa,EAAE,MAAM,CAAC,aAAa;oBACnC,IAAI;oBACJ,UAAU,EAAE,MAAM,CAAC,UAAU;oBAC7B,aAAa,EAAE,MAAA,MAAM,CAAC,GAAG,mCAAI,MAAM,CAAC,aAAa;oBACjD,SAAS,EAAE,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,mCAAI,CAAC;oBAC5B,QAAQ;oBACR,UAAU,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;iBAC1F,CAAC,CAAA;YACJ,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,GAAG,YAAY,EAAE,QAAQ,EAAE,CAAA;QAC/F,CAAC;KACF,CAAC,CAAA;IAEF,MAAM,kBAAkB,GAAG,IAAA,SAAI,EAAC;QAC9B,WAAW,EACT,gTAAgT;QAClT,WAAW,EAAE,OAAC,CAAC,MAAM,CAAC;YACpB,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;YAChC,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;YAC9C,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;YACpC,WAAW,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;SACtE,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;;YACvB,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACxD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAA,KAAK,CAAC,cAAc,mCAAI,MAAM,CAAC,CAAA;YACvD,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAA,MAAA,KAAK,CAAC,IAAI,mCAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,mCAAI,YAAY,CAAC,CAAA;YACnF,MAAM,QAAQ,GAAG,oBAAoB,MAAM,IAAI,QAAQ,EAAE,CAAA;YACzD,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,YAAY,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;YACvE,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,MAAM,CAAA;YACpF,IAAI,QAA4B,CAAA;YAChC,IAAI,SAAS,GAAG,CAAC,CAAA;YACjB,IAAI,KAAK,IAAI,KAAK,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;gBACzC,QAAQ,GAAG,aAAa,MAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAA;gBACvE,MAAM,YAAY,GAAG,cAAI,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;gBACzD,MAAM,aAAE,CAAC,KAAK,CAAC,cAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;gBAC/D,SAAS,GAAG,MAAM,cAAc,CAAC,cAAI,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,YAAY,CAAC,CAAA;gBACpF,IAAI,SAAS,KAAK,CAAC;oBAAE,QAAQ,GAAG,SAAS,CAAA;YAC3C,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,QAAQ;gBACR,SAAS;gBACT,IAAI,EAAE,KAAK,IAAI,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,uFAAuF,CAAC,CAAC,CAAC,SAAS;aACrI,CAAA;QACH,CAAC;KACF,CAAC,CAAA;IAEF,MAAM,gBAAgB,GAAG,IAAA,SAAI,EAAC;QAC5B,WAAW,EAAE,uGAAuG;QACpH,WAAW,EAAE,OAAC,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAChC,OAAO,EAAE,OAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;YACxD,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE;YACvD,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;YAC1C,OAAO,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,sBAAsB,EAAE,yBAAyB,CAAC,CAAC,CAAC,QAAQ,EAAE;YAC7F,aAAa,EAAE,OAAC,CAAC,KAAK,CAAC,CAAC,OAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;SACjE,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;;YACvB,MAAM,OAAO,GAAG,IAAA,2BAAmB,EAAC,KAAK,EAAE,IAAA,6CAAuB,EAAC,KAAK,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAA;YAChG,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO,CAAwD,+BAA+B,EAAE;gBAC3H,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;gBAC3B,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,MAAA,KAAK,CAAC,KAAK,mCAAI,EAAE,EAAE,MAAM,EAAE,MAAA,KAAK,CAAC,MAAM,mCAAI,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,aAAa,EAAE,MAAA,KAAK,CAAC,aAAa,mCAAI,CAAC,CAAC,EAAE;aACzI,CAAC,CAAA;YACF,OAAO,EAAE,KAAK,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,mCAAI,CAAC,EAAE,KAAK,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,mCAAI,EAAE,EAAE,cAAc,EAAE,OAAO,EAAE,CAAA;QAC7F,CAAC;KACF,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,IAAA,SAAI,EAAC;QACpB,WAAW,EACT,yNAAyN;QAC3N,WAAW,EAAE,OAAC,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;YAChC,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;YAC7C,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;SAC5C,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;;YACvB,MAAM,MAAM,GAAG,cAAI,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;YACrD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,cAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,cAAI,CAAC,GAAG,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;YAC5G,MAAM,OAAO,GAAG,MAAM,aAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YACjD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YACjC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAA,KAAK,CAAC,SAAS,mCAAI,CAAC,CAAC,CAAA;YAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,MAAA,KAAK,CAAC,OAAO,mCAAI,KAAK,GAAG,EAAE,CAAC,CAAA;YAC/D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACpD,OAAO;gBACL,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,UAAU,EAAE,KAAK,CAAC,MAAM;gBACxB,SAAS,EAAE,KAAK;gBAChB,OAAO,EAAE,GAAG;gBACZ,IAAI,EAAE,KAAK,CAAC,MAAM,GAAG,qBAAqB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,qBAAqB,CAAC,sCAAsC,CAAC,CAAC,CAAC,KAAK;aACpI,CAAA;QACH,CAAC;KACF,CAAC,CAAA;IAEF,OAAO;QACL,cAAc,EAAE,aAAa;QAC7B,aAAa,EAAE,YAAY;QAC3B,iBAAiB,EAAE,gBAAgB;QACnC,UAAU,EAAE,SAAS;QACrB,gBAAgB,EAAE,eAAe;QACjC,mBAAmB,EAAE,kBAAkB;QACvC,iBAAiB,EAAE,gBAAgB;QACnC,SAAS,EAAE,QAAQ;KACpB,CAAA;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=filingramp-tools.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filingramp-tools.test.d.ts","sourceRoot":"","sources":["../../src/research/filingramp-tools.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const strict_1 = __importDefault(require("node:assert/strict"));
7
+ const node_test_1 = require("node:test");
8
+ const filingramp_client_1 = require("./filingramp-client");
9
+ const filingramp_tools_1 = require("./filingramp-tools");
10
+ function tools() {
11
+ return (0, filingramp_tools_1.createFilingRampTools)({
12
+ client: new filingramp_client_1.FilingRampClient({ baseUrl: 'https://example.test', authToken: 'test', industryData: false }),
13
+ workspaceDir: '/unused',
14
+ scope: { states: ['TX', 'AZ'], lines: ['04.0'] },
15
+ });
16
+ }
17
+ (0, node_test_1.describe)('research filing requests', () => {
18
+ for (const name of ['count_filings', 'summarize_filings']) {
19
+ (0, node_test_1.it)(`${name} sends plural filters and keeps singular summary groups`, async (t) => {
20
+ let body;
21
+ t.mock.method(globalThis, 'fetch', async (_url, init) => {
22
+ body = JSON.parse(String(init.body));
23
+ return Response.json(name === 'count_filings' ? { count: 12 } : { items: [{ key: { typeOfInsurance: '04.0' }, filings: 12 }] });
24
+ });
25
+ const result = await tools()[name].execute({
26
+ filters: [
27
+ { field: 'state', comparisonOperator: 'in', value: ['TX', 'AZ'] },
28
+ { field: 'typeOfInsurance', comparisonOperator: 'cn', value: ['04.0'] },
29
+ ],
30
+ ...(name === 'summarize_filings' ? { groupBy: ['typeOfInsurance'] } : {}),
31
+ }, { toolCallId: 'test', messages: [] });
32
+ strict_1.default.deepEqual(body === null || body === void 0 ? void 0 : body.filters, [
33
+ { field: 'states', comparisonOperator: 'in', value: ['TX', 'AZ'] },
34
+ { field: 'typeOfInsurances', comparisonOperator: 'cn', value: ['04.0'] },
35
+ ]);
36
+ if (name === 'summarize_filings')
37
+ strict_1.default.deepEqual(body === null || body === void 0 ? void 0 : body.groupBy, ['typeOfInsurance']);
38
+ strict_1.default.ok(result);
39
+ });
40
+ (0, node_test_1.it)(`${name} propagates validation failure instead of returning zero`, async (t) => {
41
+ t.mock.method(globalThis, 'fetch', async () => Response.json({ message: 'Invalid filter field' }, { status: 400 }));
42
+ await strict_1.default.rejects(async () => tools()[name].execute({}, { toolCallId: 'test', messages: [] }), (error) => error instanceof filingramp_client_1.FilingRampHttpError && error.status === 400);
43
+ });
44
+ }
45
+ (0, node_test_1.it)('search_documents sends one scoped request per index group with the exact line labels', async (t) => {
46
+ const calls = [];
47
+ t.mock.method(globalThis, 'fetch', async (url, init) => {
48
+ const body = JSON.parse(String(init.body));
49
+ calls.push({ url: String(url), body });
50
+ if (String(url).endsWith('/v2/search/filings/summary')) {
51
+ return Response.json({ items: [{ key: { typeOfInsurance: '04.0 Homeowners', subTypeOfInsurance: '04.0000 Homeowners Sub-type' }, filings: 3 }] });
52
+ }
53
+ return Response.json([{ _id: `${body.indexNames[0]}-hit`, _index: body.indexNames[0], _score: body.indexNames[0].startsWith('library') ? 2 : 1, _source: { trackingNumber: 'TRK-1', name: 'HO 3' } }]);
54
+ });
55
+ const result = (await tools().search_documents.execute({ query: 'water shut-off valve', indexes: ['filings', 'library_forms'], filters: [{ field: 'filingType', value: 'Form' }] }, { toolCallId: 'test', messages: [] }));
56
+ const searches = calls.filter((call) => call.url.endsWith('/v1/content-search/global'));
57
+ strict_1.default.equal(searches.length, 2);
58
+ strict_1.default.deepEqual(searches[0].body.indexNames, ['filings_keyword_index']);
59
+ strict_1.default.deepEqual(searches[0].body.filters, [
60
+ { field: 'states', comparisonOperator: 'in', value: ['TX', 'AZ'] },
61
+ { field: 'typeOfInsurance', comparisonOperator: 'in', value: ['04.0 Homeowners'] },
62
+ { field: 'filingTypes', comparisonOperator: 'in', value: ['Form'] },
63
+ ]);
64
+ strict_1.default.deepEqual(searches[1].body.indexNames, ['library_forms_keyword_index']);
65
+ strict_1.default.deepEqual(searches[1].body.filters, []);
66
+ strict_1.default.deepEqual(result.requests[1].unscoped, ['states', 'lines']);
67
+ strict_1.default.deepEqual(result.requests[1].ignoredFilters, ['filingType']);
68
+ strict_1.default.deepEqual(result.hits.map((hit) => hit.id), ['library_forms_keyword_index-hit', 'filings_keyword_index-hit']);
69
+ });
70
+ (0, node_test_1.it)('search_documents skips filing indexes when no filing in scope carries the scope lines', async (t) => {
71
+ var _a;
72
+ const urls = [];
73
+ t.mock.method(globalThis, 'fetch', async (url) => {
74
+ urls.push(String(url));
75
+ return Response.json({ items: [] });
76
+ });
77
+ const result = (await tools().search_documents.execute({ query: 'leak detection' }, { toolCallId: 'test', messages: [] }));
78
+ strict_1.default.deepEqual(result.hits, []);
79
+ strict_1.default.match((_a = result.requests[0].skipped) !== null && _a !== void 0 ? _a : '', /no filing in scope/);
80
+ strict_1.default.ok(!urls.some((url) => url.endsWith('/v1/content-search/global')));
81
+ });
82
+ (0, node_test_1.it)('search_documents reports a validation failure as a fix, not an outage', async (t) => {
83
+ t.mock.method(globalThis, 'fetch', async (url) => {
84
+ if (String(url).endsWith('/v2/search/filings/summary'))
85
+ return Response.json({ items: [{ key: { typeOfInsurance: '04.0 Homeowners' }, filings: 1 }] });
86
+ return Response.json({ message: '"body.filters[0].field" must be [resourceTypes]' }, { status: 400 });
87
+ });
88
+ await strict_1.default.rejects(async () => tools().search_documents.execute({ query: 'x' }, { toolCallId: 'test', messages: [] }), /Document search rejected the request: .*must be \[resourceTypes\].*Fix the filter/s);
89
+ });
90
+ (0, node_test_1.it)('search_documents turns an opaque FilingRamp failure into a fallback instruction', async (t) => {
91
+ t.mock.method(globalThis, 'fetch', async (url) => {
92
+ if (String(url).endsWith('/v2/search/filings/summary'))
93
+ return Response.json({ items: [{ key: { typeOfInsurance: '04.0 Homeowners' }, filings: 1 }] });
94
+ return Response.json({ message: 'An error occurred. We are looking into it.' }, { status: 400 });
95
+ });
96
+ await strict_1.default.rejects(async () => tools().search_documents.execute({ query: 'water shut-off valve' }, { toolCallId: 'test', messages: [] }), /Document search is unavailable \(FilingRamp 400: .*Do not retry.*get_filing and download_attachment/s);
97
+ });
98
+ });
99
+ //# sourceMappingURL=filingramp-tools.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filingramp-tools.test.js","sourceRoot":"","sources":["../../src/research/filingramp-tools.test.ts"],"names":[],"mappings":"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"}
@@ -5,9 +5,13 @@ export declare const RESEARCH_OUTPUT_FILES: {
5
5
  readonly evidence: "research/evidence.json";
6
6
  readonly notes: "research/notes.md";
7
7
  };
8
+ /** Directories the research profile guarantees exist in the workspace before the first turn. */
9
+ export declare const RESEARCH_WORKSPACE_DIRS: readonly ["research", "data", "data/text"];
8
10
  export declare function buildResearchSystemPrompt(options: {
9
11
  scope?: ResearchScope;
10
12
  industryData: boolean;
11
13
  tokenBudget?: number;
14
+ /** True when the workspace (files or conversation) was restored from a previous run of this session. */
15
+ restored?: boolean;
12
16
  }): string;
13
17
  //# sourceMappingURL=prompt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/research/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAG9C,eAAO,MAAM,qBAAqB;;;;;CAKxB,CAAA;AAEV,wBAAgB,yBAAyB,CAAC,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,aAAa,CAAC;IAAC,YAAY,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CA8BjI"}
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/research/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAG9C,eAAO,MAAM,qBAAqB;;;;;CAKxB,CAAA;AAEV,gGAAgG;AAChG,eAAO,MAAM,uBAAuB,4CAA6C,CAAA;AAEjF,wBAAgB,yBAAyB,CAAC,OAAO,EAAE;IACjD,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,YAAY,EAAE,OAAO,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,wGAAwG;IACxG,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,GAAG,MAAM,CAuCT"}