@mantra-ai/core 0.1.2 → 0.1.5

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 (56) hide show
  1. package/dist/analysis/block-filter.d.ts +20 -0
  2. package/dist/analysis/block-filter.d.ts.map +1 -0
  3. package/dist/analysis/block-filter.js +59 -0
  4. package/dist/analysis/block-filter.js.map +1 -0
  5. package/dist/analysis/extract-findings.d.ts +17 -0
  6. package/dist/analysis/extract-findings.d.ts.map +1 -0
  7. package/dist/analysis/extract-findings.js +79 -0
  8. package/dist/analysis/extract-findings.js.map +1 -0
  9. package/dist/analysis/generate-hypotheses.d.ts +16 -0
  10. package/dist/analysis/generate-hypotheses.d.ts.map +1 -0
  11. package/dist/analysis/generate-hypotheses.js +25 -0
  12. package/dist/analysis/generate-hypotheses.js.map +1 -0
  13. package/dist/analysis/index.d.ts +11 -0
  14. package/dist/analysis/index.d.ts.map +1 -0
  15. package/dist/analysis/index.js +6 -0
  16. package/dist/analysis/index.js.map +1 -0
  17. package/dist/analysis/prompts.d.ts +13 -0
  18. package/dist/analysis/prompts.d.ts.map +1 -0
  19. package/dist/analysis/prompts.js +140 -0
  20. package/dist/analysis/prompts.js.map +1 -0
  21. package/dist/analysis/schemas.d.ts +292 -0
  22. package/dist/analysis/schemas.d.ts.map +1 -0
  23. package/dist/analysis/schemas.js +99 -0
  24. package/dist/analysis/schemas.js.map +1 -0
  25. package/dist/analysis/types.d.ts +4 -0
  26. package/dist/analysis/types.d.ts.map +1 -0
  27. package/dist/analysis/types.js +2 -0
  28. package/dist/analysis/types.js.map +1 -0
  29. package/dist/index.d.ts +5 -0
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +4 -0
  32. package/dist/index.js.map +1 -1
  33. package/dist/normalization/pdf/normalize.d.ts.map +1 -1
  34. package/dist/normalization/pdf/normalize.js +17 -1
  35. package/dist/normalization/pdf/normalize.js.map +1 -1
  36. package/dist/types/work.d.ts +0 -8
  37. package/dist/types/work.d.ts.map +1 -1
  38. package/dist/types/work.js +0 -68
  39. package/dist/types/work.js.map +1 -1
  40. package/dist/works/export/paper-formats.d.ts +29 -0
  41. package/dist/works/export/paper-formats.d.ts.map +1 -0
  42. package/dist/works/export/paper-formats.js +109 -0
  43. package/dist/works/export/paper-formats.js.map +1 -0
  44. package/dist/works/util/paper-metadata.d.ts +56 -0
  45. package/dist/works/util/paper-metadata.d.ts.map +1 -0
  46. package/dist/works/util/paper-metadata.js +66 -0
  47. package/dist/works/util/paper-metadata.js.map +1 -0
  48. package/dist/works/util/retry.d.ts +25 -0
  49. package/dist/works/util/retry.d.ts.map +1 -0
  50. package/dist/works/util/retry.js +45 -0
  51. package/dist/works/util/retry.js.map +1 -0
  52. package/dist/works/util/zotero-parsers.d.ts +20 -0
  53. package/dist/works/util/zotero-parsers.d.ts.map +1 -0
  54. package/dist/works/util/zotero-parsers.js +48 -0
  55. package/dist/works/util/zotero-parsers.js.map +1 -0
  56. package/package.json +16 -1
@@ -259,72 +259,4 @@ export function createWorkObject(data, view = "short") {
259
259
  };
260
260
  return baseWork;
261
261
  }
262
- // Helper function to transform Prisma Work record to WorkCore
263
- export function transformPrismaWorkToWorkObject(prismaWork, options = {}) {
264
- const { includeVersions = true, // Always include versions
265
- // includeContributors = true, // Removed
266
- selectedVersion = null, // Selected version (or latest if none specified)
267
- versionsToInclude = [],
268
- // metadata, // Removed
269
- // result, // Removed - no longer needed with expand=all
270
- jobId, idempotencyKey, correlationId, } = options;
271
- const workObject = {
272
- public_id: prismaWork.publicId,
273
- title: prismaWork.title,
274
- abstract: prismaWork.abstract,
275
- ids: {
276
- doi: prismaWork.doi,
277
- pmid: prismaWork.pmid,
278
- pmcid: prismaWork.pmcid,
279
- arxiv_id: prismaWork.arxivId,
280
- biorxiv_id: prismaWork.biorxivId,
281
- medrxiv_id: prismaWork.medrxivId,
282
- openalex_id: prismaWork.openalexId,
283
- },
284
- landing_url: prismaWork.landingUrl,
285
- is_open_access: prismaWork.isOpenAccess,
286
- best_license: prismaWork.bestLicense,
287
- first_published_at: prismaWork.firstPublishedAt?.toISOString() || null,
288
- latest_released_at: prismaWork.latestReleasedAt?.toISOString() || null,
289
- created_at: prismaWork.createdAt.toISOString(),
290
- updated_at: prismaWork.updatedAt.toISOString(),
291
- versions: [], // Will be populated below
292
- // contributors: [], // Removed - contributors relation is commented out in schema
293
- _links: {
294
- self: `/v1/work/${prismaWork.publicId}`,
295
- versions: `/v1/work/${prismaWork.publicId}/versions`,
296
- // latest_version: prismaWork.latestVersionId ? `/v1/work/${prismaWork.publicId}/versions/latest` : undefined,
297
- },
298
- };
299
- // Always populate versions array with specified versions
300
- if (includeVersions && versionsToInclude && versionsToInclude.length > 0) {
301
- workObject.versions = versionsToInclude.map((version) => ({
302
- id: version.id,
303
- version_label: version.version_label,
304
- doi: version.doi,
305
- released_at: version.released_at,
306
- previous_version_id: version.previous_version_id,
307
- schema_version: version.schema_version,
308
- open_access: version.open_access,
309
- license: version.license,
310
- ingested: version.ingested,
311
- normalized: version.normalized,
312
- }));
313
- }
314
- else {
315
- // If no versions found, set empty array
316
- workObject.versions = [];
317
- }
318
- // Contributors removed - contributors relation is commented out in schema
319
- // if (includeContributors && prismaWork.contributors) {
320
- // workObject.contributors = prismaWork.contributors.map(
321
- // (contributor: any) => ({
322
- // agent_id: contributor.agentId,
323
- // role: contributor.role,
324
- // author_order: contributor.authorOrder,
325
- // })
326
- // );
327
- // }
328
- return workObject;
329
- }
330
262
  //# sourceMappingURL=work.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"work.js","sourceRoot":"","sources":["../../src/types/work.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,0BAA0B;AAC1B,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACrC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACtC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACvC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC1C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC5C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC5C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC9C,CAAC,CAAC;AAEH,mDAAmD;AACnD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACrC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACrD,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAChD,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACnC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACzC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAChC,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AAEH,8CAA8C;AAC9C,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACnC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC1C,CAAC,CAAC;AAEH,kFAAkF;AAClF,kDAAkD;AAClD,0BAA0B;AAC1B,sBAAsB;AACtB,0DAA0D;AAC1D,sCAAsC;AACtC,uCAAuC;AACvC,oCAAoC;AACpC,MAAM;AAEN,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,8CAA8C;IACxF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC5B,CAAC,CAAC;AAIH,oBAAoB;AACpB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,yCAAyC;CAC1C,CAAC,CAAC;AAEH,6FAA6F;AAC7F,+CAA+C;AAC/C,wBAAwB;AACxB,mDAAmD;AACnD,sCAAsC;AACtC,oCAAoC;AACpC,uCAAuC;AACvC,mCAAmC;AACnC,iCAAiC;AACjC,oCAAoC;AACpC,yCAAyC;AACzC,4CAA4C;AAC5C,kCAAkC;AAClC,oDAAoD;AACpD,6CAA6C;AAC7C,qCAAqC;AACrC,6CAA6C;AAC7C,MAAM;AAEN,qDAAqD;AACrD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,qDAAqD;IACrD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,qBAAqB;IAE5C,iBAAiB;IACjB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAE1C,uBAAuB;IACvB,GAAG,EAAE,aAAa;IAElB,kBAAkB;IAClB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC7C,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACtC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAE9C,uBAAuB;IACvB,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACpD,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAEpD,aAAa;IACb,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IAEtB,+BAA+B;IAC/B,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,wCAAwC;IAC9E,8GAA8G;IAE9G,yBAAyB;IACzB,MAAM,EAAE,eAAe;IAEvB,kDAAkD;IAClD,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAChC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9B,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9B,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC;AAEH,0EAA0E;AAC1E,+CAA+C;AAC/C,+EAA+E;AAC/E,qCAAqC;AACrC,EAAE;AACF,+EAA+E;AAC/E,yBAAyB;AACzB,MAAM;AAEN,sDAAsD;AACtD,MAAM,sBAAsB,GAAG,CAAC;KAC7B,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;CACtB,CAAC;KACD,QAAQ,EAAE,CAAC;AAEd,MAAM,CAAC,MAAM,kBAAkB,GAAG,cAAc,CAAC,MAAM,CAAC;IACtD,kEAAkE;IAClE,kGAAkG;IAClG,gFAAgF;IAChF,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAChC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9B,kBAAkB,EAAE,sBAAsB;IAC1C,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9B,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACjC,qBAAqB,EAAE,sBAAsB;CAC9C,CAAC,CAAC;AAEH,gDAAgD;AAEhD,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC;KACzC,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;IAC5B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACrB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;CAC/C,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC;KACrC,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACxB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE;IAC9B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;CACzB,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC;IACxC,2BAA2B;IAC3B,uBAAuB;CACxB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC;KACpC,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAChC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9B,kBAAkB,EAAE,sBAAsB;IAC1C,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9B,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACjC,qBAAqB,EAAE,sBAAsB;CAC9C,CAAC;KACD,MAAM,EAAE;KACR,QAAQ,EAAE,CAAC;AAEd,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC;KAC7B,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;CACtD,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC;KACvC,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;IAC9B,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,sBAAsB;IAC5B,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,EAAE;IACvC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CACzC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC;KACrC,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAC1B,KAAK,EAAE,eAAe;CACvB,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC;IACxC,yBAAyB;IACzB,uBAAuB;CACxB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC;KAC1C,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IAC5B,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,sBAAsB;IAC5B,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,EAAE;IACvC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CACzC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC;KACxC,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAC1B,KAAK,EAAE,eAAe;CACvB,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC;IAC3C,4BAA4B;IAC5B,0BAA0B;CAC3B,CAAC,CAAC;AAEH,MAAM,8BAA8B,GAAG,CAAC;KACrC,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAClD,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC;CACxC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC;KAC/C,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;IAC/B,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;IAC3B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;CACvB,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC;IAC7C,8BAA8B;IAC9B,iCAAiC;CAClC,CAAC,CAAC;AAMH,6BAA6B;AAC7B,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAC7D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AAEH,yDAAyD;AACzD,MAAM,CAAC,MAAM,mBAAmB,GAAG,cAAc,CAAC;AAClD,MAAM,CAAC,MAAM,kBAAkB,GAAG,kBAAkB,CAAC;AACrD,MAAM,CAAC,MAAM,sBAAsB,GAAG,cAAc,CAAC;AACrD,MAAM,CAAC,MAAM,qBAAqB,GAAG,kBAAkB,CAAC;AA8BxD,2DAA2D;AAC3D,MAAM,UAAU,gBAAgB,CAC9B,IAAuB,EACvB,OAAqB,OAAO;IAE5B,MAAM,QAAQ,GAAa;QACzB,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE;QAC/B,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;QACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI;QAC/B,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE;QACnB,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI;QACrC,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,KAAK;QAC5C,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI;QACvC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,IAAI,IAAI;QACnD,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,IAAI,IAAI;QACnD,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACvD,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACvD,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;QAC7B,oDAAoD;QACpD,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI;YACrB,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,EAAE;SACb;QACD,GAAG,IAAI;KACR,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,+BAA+B,CAC7C,UAAe,EACf,UAUI,EAAE;IAEN,MAAM,EACJ,eAAe,GAAG,IAAI,EAAE,0BAA0B;IAClD,yCAAyC;IACzC,eAAe,GAAG,IAAI,EAAE,iDAAiD;IACzE,iBAAiB,GAAG,EAAE;IACtB,uBAAuB;IACvB,wDAAwD;IACxD,KAAK,EACL,cAAc,EACd,aAAa,GACd,GAAG,OAAO,CAAC;IAEZ,MAAM,UAAU,GAAa;QAC3B,SAAS,EAAE,UAAU,CAAC,QAAQ;QAC9B,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,GAAG,EAAE;YACH,GAAG,EAAE,UAAU,CAAC,GAAG;YACnB,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,QAAQ,EAAE,UAAU,CAAC,OAAO;YAC5B,UAAU,EAAE,UAAU,CAAC,SAAS;YAChC,UAAU,EAAE,UAAU,CAAC,SAAS;YAChC,WAAW,EAAE,UAAU,CAAC,UAAU;SACnC;QACD,WAAW,EAAE,UAAU,CAAC,UAAU;QAClC,cAAc,EAAE,UAAU,CAAC,YAAY;QACvC,YAAY,EAAE,UAAU,CAAC,WAAW;QACpC,kBAAkB,EAAE,UAAU,CAAC,gBAAgB,EAAE,WAAW,EAAE,IAAI,IAAI;QACtE,kBAAkB,EAAE,UAAU,CAAC,gBAAgB,EAAE,WAAW,EAAE,IAAI,IAAI;QACtE,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,WAAW,EAAE;QAC9C,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,WAAW,EAAE;QAC9C,QAAQ,EAAE,EAAE,EAAE,0BAA0B;QACxC,kFAAkF;QAClF,MAAM,EAAE;YACN,IAAI,EAAE,YAAY,UAAU,CAAC,QAAQ,EAAE;YACvC,QAAQ,EAAE,YAAY,UAAU,CAAC,QAAQ,WAAW;YACpD,8GAA8G;SAC/G;KACF,CAAC;IAEF,yDAAyD;IACzD,IAAI,eAAe,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzE,UAAU,CAAC,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,OAAY,EAAE,EAAE,CAAC,CAAC;YAC7D,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;YAChD,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAC,CAAC,CAAC;IACN,CAAC;SAAM,CAAC;QACN,wCAAwC;QACxC,UAAU,CAAC,QAAQ,GAAG,EAAE,CAAC;IAC3B,CAAC;IAED,0EAA0E;IAC1E,wDAAwD;IACxD,2DAA2D;IAC3D,+BAA+B;IAC/B,uCAAuC;IACvC,gCAAgC;IAChC,+CAA+C;IAC/C,SAAS;IACT,OAAO;IACP,IAAI;IAEJ,OAAO,UAAU,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"work.js","sourceRoot":"","sources":["../../src/types/work.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Pure paper-format serializers for BibTeX, JSON, and CSV export.
3
+ * No store/database dependency — operates on a minimal input interface.
4
+ */
5
+ /**
6
+ * Minimal paper shape required by serializers.
7
+ * Structurally compatible with Paper from @drylab/store.
8
+ */
9
+ export interface ExportablePaper {
10
+ id: number | string;
11
+ title: string | null;
12
+ doi: string | null;
13
+ pmid: string | null;
14
+ pmcid: string | null;
15
+ arxivId: string | null;
16
+ journal: string | null;
17
+ publishedDate: string | null;
18
+ source: string;
19
+ license: string | null;
20
+ authorsJson?: string | null;
21
+ }
22
+ export declare function escapeLatex(s: string): string;
23
+ export declare function generateBibtexKey(paper: ExportablePaper, index: number): string;
24
+ export declare function paperToBibtex(paper: ExportablePaper, index: number): string;
25
+ export declare function paperToJsonObj(paper: ExportablePaper): Record<string, unknown>;
26
+ export declare function csvEscape(s: string | null): string;
27
+ export declare const CSV_HEADER = "id,title,doi,pmid,pmcid,arxivId,journal,publishedDate,source";
28
+ export declare function paperToCsv(paper: ExportablePaper): string;
29
+ //# sourceMappingURL=paper-formats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paper-formats.d.ts","sourceRoot":"","sources":["../../../src/works/export/paper-formats.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAID,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAI7C;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAmB/E;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CA4B3E;AAID,wBAAgB,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAa9E;AAID,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAMlD;AAED,eAAO,MAAM,UAAU,iEAAiE,CAAC;AAEzF,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAYzD"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Pure paper-format serializers for BibTeX, JSON, and CSV export.
3
+ * No store/database dependency — operates on a minimal input interface.
4
+ */
5
+ // ── LaTeX / BibTeX ──────────────────────────────────────────────────
6
+ export function escapeLatex(s) {
7
+ return s
8
+ .replace(/\\/g, "\\textbackslash{}")
9
+ .replace(/[&%$#_{}~^]/g, (ch) => `\\${ch}`);
10
+ }
11
+ export function generateBibtexKey(paper, index) {
12
+ let author = "unknown";
13
+ if (paper.authorsJson) {
14
+ try {
15
+ const authors = JSON.parse(paper.authorsJson);
16
+ const first = Array.isArray(authors) ? authors[0] : null;
17
+ if (typeof first === "string") {
18
+ author = first.split(/[\s,]+/)[0]?.toLowerCase() ?? "unknown";
19
+ }
20
+ else if (first?.family) {
21
+ author = first.family.toLowerCase();
22
+ }
23
+ else if (first?.name) {
24
+ author = first.name.split(/[\s,]+/)[0]?.toLowerCase() ?? "unknown";
25
+ }
26
+ }
27
+ catch {
28
+ // keep default
29
+ }
30
+ }
31
+ const year = paper.publishedDate?.slice(0, 4) ?? "nd";
32
+ return `${author}${year}_${index}`;
33
+ }
34
+ export function paperToBibtex(paper, index) {
35
+ const key = generateBibtexKey(paper, index);
36
+ const fields = [];
37
+ if (paper.title)
38
+ fields.push(` title = {${escapeLatex(paper.title)}}`);
39
+ if (paper.authorsJson) {
40
+ try {
41
+ const authors = JSON.parse(paper.authorsJson);
42
+ if (Array.isArray(authors)) {
43
+ const names = authors.map((a) => {
44
+ if (typeof a === "string")
45
+ return a;
46
+ if (a.family && a.given)
47
+ return `${a.family}, ${a.given}`;
48
+ return a.name ?? a.family ?? String(a);
49
+ });
50
+ fields.push(` author = {${escapeLatex(names.join(" and "))}}`);
51
+ }
52
+ }
53
+ catch {
54
+ // skip
55
+ }
56
+ }
57
+ if (paper.journal)
58
+ fields.push(` journal = {${escapeLatex(paper.journal)}}`);
59
+ if (paper.publishedDate)
60
+ fields.push(` year = {${paper.publishedDate.slice(0, 4)}}`);
61
+ if (paper.doi)
62
+ fields.push(` doi = {${paper.doi}}`);
63
+ if (paper.pmid)
64
+ fields.push(` pmid = {${paper.pmid}}`);
65
+ if (paper.pmcid)
66
+ fields.push(` pmcid = {${paper.pmcid}}`);
67
+ if (paper.arxivId)
68
+ fields.push(` eprint = {${paper.arxivId}}`);
69
+ return `@article{${key},\n${fields.join(",\n")}\n}`;
70
+ }
71
+ // ── JSON ────────────────────────────────────────────────────────────
72
+ export function paperToJsonObj(paper) {
73
+ return {
74
+ id: paper.id,
75
+ title: paper.title,
76
+ doi: paper.doi,
77
+ pmid: paper.pmid,
78
+ pmcid: paper.pmcid,
79
+ arxivId: paper.arxivId,
80
+ journal: paper.journal,
81
+ publishedDate: paper.publishedDate,
82
+ source: paper.source,
83
+ license: paper.license,
84
+ };
85
+ }
86
+ // ── CSV ─────────────────────────────────────────────────────────────
87
+ export function csvEscape(s) {
88
+ if (!s)
89
+ return "";
90
+ if (s.includes(",") || s.includes('"') || s.includes("\n")) {
91
+ return `"${s.replace(/"/g, '""')}"`;
92
+ }
93
+ return s;
94
+ }
95
+ export const CSV_HEADER = "id,title,doi,pmid,pmcid,arxivId,journal,publishedDate,source";
96
+ export function paperToCsv(paper) {
97
+ return [
98
+ paper.id,
99
+ csvEscape(paper.title),
100
+ csvEscape(paper.doi),
101
+ csvEscape(paper.pmid),
102
+ csvEscape(paper.pmcid),
103
+ csvEscape(paper.arxivId),
104
+ csvEscape(paper.journal),
105
+ csvEscape(paper.publishedDate),
106
+ csvEscape(paper.source),
107
+ ].join(",");
108
+ }
109
+ //# sourceMappingURL=paper-formats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paper-formats.js","sourceRoot":"","sources":["../../../src/works/export/paper-formats.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ import type { ActionsExternalType, CompleteIds } from "../types";
2
+ /**
3
+ * Metadata fields derived from CompleteIds for paper storage.
4
+ * Structurally compatible with PaperInsert from @drylab/store
5
+ * without creating a dependency on the store package.
6
+ */
7
+ export interface PaperMetadataFromIds {
8
+ doi: string | null;
9
+ pmid: string | null;
10
+ pmcid: string | null;
11
+ arxivId: string | null;
12
+ biorxivId: string | null;
13
+ medrxivId: string | null;
14
+ source: string;
15
+ title: string | null;
16
+ abstract: string | null;
17
+ publishedDate: string | null;
18
+ journal: string | null;
19
+ license: string | null;
20
+ }
21
+ /**
22
+ * Map resolved CompleteIds to flat paper metadata fields.
23
+ * Pure, side-effect-free mapping with null defaults.
24
+ */
25
+ export declare function paperMetadataFromIds(ids: CompleteIds): PaperMetadataFromIds;
26
+ /** Minimal shape for objects that carry paper identifier fields. */
27
+ export interface PaperIdentifierFields {
28
+ doi?: string | null;
29
+ pmid?: string | null;
30
+ pmcid?: string | null;
31
+ arxivId?: string | null;
32
+ }
33
+ /**
34
+ * Pick the best external identifier for re-resolution.
35
+ * Precedence: DOI → PMID → PMCID → arXiv ID.
36
+ */
37
+ export declare function pickResolvableId(paper: PaperIdentifierFields): {
38
+ idType: ActionsExternalType;
39
+ rawId: string;
40
+ } | null;
41
+ /** Canonical set of metadata fields compared during updates. */
42
+ declare const DIFF_FIELDS: readonly ["title", "doi", "pmid", "pmcid", "arxivId", "biorxivId", "medrxivId", "abstract", "journal", "publishedDate", "license", "source"];
43
+ /**
44
+ * Compare two paper records and return the list of changed metadata field names.
45
+ * Preserves field ordering for stable output.
46
+ */
47
+ export declare function diffPaperFields<T extends {
48
+ [K in typeof DIFF_FIELDS[number]]?: unknown;
49
+ }>(before: T, after: T): string[];
50
+ /**
51
+ * Build a normalized filename for a paper artifact.
52
+ * DOI slashes are replaced with underscores; falls back to paper_{id}.
53
+ */
54
+ export declare function paperFileName(doi: string | null | undefined, paperId: number | string): string;
55
+ export {};
56
+ //# sourceMappingURL=paper-metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paper-metadata.d.ts","sourceRoot":"","sources":["../../../src/works/util/paper-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEjE;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,WAAW,GAAG,oBAAoB,CAe3E;AAID,oEAAoE;AACpE,MAAM,WAAW,qBAAqB;IACpC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,qBAAqB,GAC3B;IAAE,MAAM,EAAE,mBAAmB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAMvD;AAID,gEAAgE;AAChE,QAAA,MAAM,WAAW,8IAGP,CAAC;AAEX;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS;KAAG,CAAC,IAAI,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO;CAAE,EACvF,MAAM,EAAE,CAAC,EACT,KAAK,EAAE,CAAC,GACP,MAAM,EAAE,CAQV;AAID;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC9B,OAAO,EAAE,MAAM,GAAG,MAAM,GACvB,MAAM,CAKR"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Map resolved CompleteIds to flat paper metadata fields.
3
+ * Pure, side-effect-free mapping with null defaults.
4
+ */
5
+ export function paperMetadataFromIds(ids) {
6
+ return {
7
+ doi: ids.doi ?? null,
8
+ pmid: ids.pmid ?? null,
9
+ pmcid: ids.pmcid ?? null,
10
+ arxivId: ids.arxivId ?? null,
11
+ biorxivId: ids.biorxivId ?? null,
12
+ medrxivId: ids.medrxivId ?? null,
13
+ source: ids.sourceKind ?? "other",
14
+ title: ids.title ?? null,
15
+ abstract: ids.abstract ?? null,
16
+ publishedDate: ids.firstPublishedAt ?? null,
17
+ journal: ids.journal ?? null,
18
+ license: ids.bestLicense ?? null,
19
+ };
20
+ }
21
+ /**
22
+ * Pick the best external identifier for re-resolution.
23
+ * Precedence: DOI → PMID → PMCID → arXiv ID.
24
+ */
25
+ export function pickResolvableId(paper) {
26
+ if (paper.doi)
27
+ return { idType: "doi", rawId: paper.doi };
28
+ if (paper.pmid)
29
+ return { idType: "pmid", rawId: paper.pmid };
30
+ if (paper.pmcid)
31
+ return { idType: "pmcid", rawId: paper.pmcid };
32
+ if (paper.arxivId)
33
+ return { idType: "arxivId", rawId: paper.arxivId };
34
+ return null;
35
+ }
36
+ // ── Metadata diff ───────────────────────────────────────────────────
37
+ /** Canonical set of metadata fields compared during updates. */
38
+ const DIFF_FIELDS = [
39
+ "title", "doi", "pmid", "pmcid", "arxivId", "biorxivId", "medrxivId",
40
+ "abstract", "journal", "publishedDate", "license", "source",
41
+ ];
42
+ /**
43
+ * Compare two paper records and return the list of changed metadata field names.
44
+ * Preserves field ordering for stable output.
45
+ */
46
+ export function diffPaperFields(before, after) {
47
+ const changed = [];
48
+ for (const key of DIFF_FIELDS) {
49
+ if (before[key] !== after[key]) {
50
+ changed.push(key);
51
+ }
52
+ }
53
+ return changed;
54
+ }
55
+ // ── Filename convention ─────────────────────────────────────────────
56
+ /**
57
+ * Build a normalized filename for a paper artifact.
58
+ * DOI slashes are replaced with underscores; falls back to paper_{id}.
59
+ */
60
+ export function paperFileName(doi, paperId) {
61
+ if (doi) {
62
+ return `${doi.replace(/\//g, "_")}.json`;
63
+ }
64
+ return `paper_${paperId}.json`;
65
+ }
66
+ //# sourceMappingURL=paper-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paper-metadata.js","sourceRoot":"","sources":["../../../src/works/util/paper-metadata.ts"],"names":[],"mappings":"AAsBA;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAgB;IACnD,OAAO;QACL,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,IAAI;QACpB,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI;QACtB,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,IAAI;QACxB,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,IAAI;QAC5B,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,IAAI;QAChC,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,IAAI;QAChC,MAAM,EAAE,GAAG,CAAC,UAAU,IAAI,OAAO;QACjC,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,IAAI;QACxB,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,IAAI;QAC9B,aAAa,EAAE,GAAG,CAAC,gBAAgB,IAAI,IAAI;QAC3C,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,IAAI;QAC5B,OAAO,EAAE,GAAG,CAAC,WAAW,IAAI,IAAI;KACjC,CAAC;AACJ,CAAC;AAYD;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAA4B;IAE5B,IAAI,KAAK,CAAC,GAAG;QAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;IAC1D,IAAI,KAAK,CAAC,IAAI;QAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7D,IAAI,KAAK,CAAC,KAAK;QAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;IAChE,IAAI,KAAK,CAAC,OAAO;QAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;IACtE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,uEAAuE;AAEvE,gEAAgE;AAChE,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW;IACpE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,QAAQ;CACnD,CAAC;AAEX;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAS,EACT,KAAQ;IAER,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,uEAAuE;AAEvE;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC3B,GAA8B,EAC9B,OAAwB;IAExB,IAAI,GAAG,EAAE,CAAC;QACR,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC;IAC3C,CAAC;IACD,OAAO,SAAS,OAAO,OAAO,CAAC;AACjC,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Generic async retry with exponential backoff.
3
+ * Not HTTP-specific — any async operation can use this.
4
+ */
5
+ export interface RetryOptions {
6
+ /** Maximum number of attempts (default: 3). */
7
+ maxAttempts?: number;
8
+ /** Base delay in ms before first retry (default: 1000). */
9
+ baseDelayMs?: number;
10
+ /**
11
+ * Predicate that returns true if an error is permanent and should not be retried.
12
+ * Defaults to matching common HTTP client-error patterns.
13
+ */
14
+ isPermanent?: (error: string) => boolean;
15
+ }
16
+ /**
17
+ * Check if an error message matches a permanent failure pattern.
18
+ */
19
+ export declare function isPermanentError(message: string, patterns?: RegExp[]): boolean;
20
+ /**
21
+ * Retry an async operation with exponential backoff.
22
+ * Does not retry on permanent failures.
23
+ */
24
+ export declare function withRetry<T>(fn: () => Promise<T>, opts?: RetryOptions): Promise<T>;
25
+ //# sourceMappingURL=retry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../../src/works/util/retry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,MAAM,WAAW,YAAY;IAC3B,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;CAC1C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,MAAM,EAA+B,GAC9C,OAAO,CAET;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,IAAI,CAAC,EAAE,YAAY,GAClB,OAAO,CAAC,CAAC,CAAC,CAuBZ"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Generic async retry with exponential backoff.
3
+ * Not HTTP-specific — any async operation can use this.
4
+ */
5
+ /** Patterns matching errors that should not be retried. */
6
+ const DEFAULT_PERMANENT_PATTERNS = [
7
+ /not found/i,
8
+ /invalid/i,
9
+ /400/,
10
+ /404/,
11
+ /422/,
12
+ ];
13
+ /**
14
+ * Check if an error message matches a permanent failure pattern.
15
+ */
16
+ export function isPermanentError(message, patterns = DEFAULT_PERMANENT_PATTERNS) {
17
+ return patterns.some((p) => p.test(message));
18
+ }
19
+ /**
20
+ * Retry an async operation with exponential backoff.
21
+ * Does not retry on permanent failures.
22
+ */
23
+ export async function withRetry(fn, opts) {
24
+ const maxAttempts = opts?.maxAttempts ?? 3;
25
+ const baseDelay = opts?.baseDelayMs ?? 1000;
26
+ const checkPermanent = opts?.isPermanent ?? ((msg) => isPermanentError(msg));
27
+ let lastError;
28
+ for (let attempt = 1; attempt <= maxAttempts; attempt++) {
29
+ try {
30
+ return await fn();
31
+ }
32
+ catch (e) {
33
+ lastError = e;
34
+ const message = e instanceof Error ? e.message : String(e);
35
+ if (checkPermanent(message))
36
+ throw e;
37
+ if (attempt === maxAttempts)
38
+ throw e;
39
+ const delay = baseDelay * Math.pow(2, attempt - 1);
40
+ await new Promise((r) => setTimeout(r, delay));
41
+ }
42
+ }
43
+ throw lastError;
44
+ }
45
+ //# sourceMappingURL=retry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../../src/works/util/retry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,2DAA2D;AAC3D,MAAM,0BAA0B,GAAG;IACjC,YAAY;IACZ,UAAU;IACV,KAAK;IACL,KAAK;IACL,KAAK;CACN,CAAC;AAcF;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAe,EACf,WAAqB,0BAA0B;IAE/C,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,EAAoB,EACpB,IAAmB;IAEnB,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,IAAI,EAAE,WAAW,IAAI,IAAI,CAAC;IAC5C,MAAM,cAAc,GAAG,IAAI,EAAE,WAAW,IAAI,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;IAErF,IAAI,SAAkB,CAAC;IAEvB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;QACxD,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,SAAS,GAAG,CAAC,CAAC;YACd,MAAM,OAAO,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAE3D,IAAI,cAAc,CAAC,OAAO,CAAC;gBAAE,MAAM,CAAC,CAAC;YACrC,IAAI,OAAO,KAAK,WAAW;gBAAE,MAAM,CAAC,CAAC;YAErC,MAAM,KAAK,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;YACnD,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,MAAM,SAAS,CAAC;AAClB,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Pure parsers for Zotero configuration files.
3
+ * No filesystem or database I/O — only string parsing.
4
+ */
5
+ export interface ZoteroProfile {
6
+ name: string;
7
+ path: string;
8
+ isRelative: boolean;
9
+ }
10
+ /**
11
+ * Parse a Zotero profiles.ini file into profile entries.
12
+ * Each entry has a name, path, and isRelative flag.
13
+ */
14
+ export declare function parseProfilesIni(content: string): ZoteroProfile[];
15
+ /**
16
+ * Parse a Zotero prefs.js file into a key-value map.
17
+ * Only extracts string-valued user_pref entries.
18
+ */
19
+ export declare function parsePrefsJs(content: string): Record<string, string>;
20
+ //# sourceMappingURL=zotero-parsers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zotero-parsers.d.ts","sourceRoot":"","sources":["../../../src/works/util/zotero-parsers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,EAAE,CAoBjE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAWpE"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Pure parsers for Zotero configuration files.
3
+ * No filesystem or database I/O — only string parsing.
4
+ */
5
+ /**
6
+ * Parse a Zotero profiles.ini file into profile entries.
7
+ * Each entry has a name, path, and isRelative flag.
8
+ */
9
+ export function parseProfilesIni(content) {
10
+ const profiles = [];
11
+ let current = {};
12
+ for (const line of content.split("\n")) {
13
+ const trimmed = line.trim();
14
+ if (trimmed.startsWith("[Profile")) {
15
+ if (current.path)
16
+ profiles.push(current);
17
+ current = {};
18
+ }
19
+ else if (trimmed.startsWith("Name=")) {
20
+ current.name = trimmed.slice("Name=".length);
21
+ }
22
+ else if (trimmed.startsWith("Path=")) {
23
+ current.path = trimmed.slice("Path=".length);
24
+ }
25
+ else if (trimmed.startsWith("IsRelative=")) {
26
+ current.isRelative = trimmed.slice("IsRelative=".length) === "1";
27
+ }
28
+ }
29
+ if (current.path)
30
+ profiles.push(current);
31
+ return profiles;
32
+ }
33
+ /**
34
+ * Parse a Zotero prefs.js file into a key-value map.
35
+ * Only extracts string-valued user_pref entries.
36
+ */
37
+ export function parsePrefsJs(content) {
38
+ const prefs = {};
39
+ const re = /^user_pref\("([^"]+)",\s*"([^"]*)"\);/;
40
+ for (const line of content.split("\n")) {
41
+ const m = line.match(re);
42
+ if (m) {
43
+ prefs[m[1]] = m[2];
44
+ }
45
+ }
46
+ return prefs;
47
+ }
48
+ //# sourceMappingURL=zotero-parsers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zotero-parsers.js","sourceRoot":"","sources":["../../../src/works/util/zotero-parsers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,IAAI,OAAO,GAA2B,EAAE,CAAC;IAEzC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACnC,IAAI,OAAO,CAAC,IAAI;gBAAE,QAAQ,CAAC,IAAI,CAAC,OAAwB,CAAC,CAAC;YAC1D,OAAO,GAAG,EAAE,CAAC;QACf,CAAC;aAAM,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACvC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC;aAAM,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACvC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC;aAAM,IAAI,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YAC7C,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC;QACnE,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,IAAI;QAAE,QAAQ,CAAC,IAAI,CAAC,OAAwB,CAAC,CAAC;IAE1D,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,MAAM,EAAE,GAAG,uCAAuC,CAAC;IAEnD,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACzB,IAAI,CAAC,EAAE,CAAC;YACN,KAAK,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;QACvB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mantra-ai/core",
3
- "version": "0.1.2",
3
+ "version": "0.1.5",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -34,10 +34,13 @@
34
34
  "./works/strategies/*": "./src/works/strategies/*.ts",
35
35
  "./works/adapters/*": "./src/works/adapters/*.ts",
36
36
  "./works/text/*": "./src/works/text/*.ts",
37
+ "./works/export/*": "./src/works/export/*.ts",
37
38
  "./works/util/*": "./src/works/util/*.ts",
38
39
  "./works/*": "./src/works/*.ts",
39
40
  "./sources/*": "./src/sources/*.ts",
40
41
  "./types/*": "./src/types/*.ts",
42
+ "./analysis": "./src/analysis/index.ts",
43
+ "./analysis/*": "./src/analysis/*.ts",
41
44
  "./*": "./src/*.ts"
42
45
  },
43
46
  "publishConfig": {
@@ -157,6 +160,10 @@
157
160
  "types": "./dist/works/text/*.d.ts",
158
161
  "import": "./dist/works/text/*.js"
159
162
  },
163
+ "./works/export/*": {
164
+ "types": "./dist/works/export/*.d.ts",
165
+ "import": "./dist/works/export/*.js"
166
+ },
160
167
  "./works/util/*": {
161
168
  "types": "./dist/works/util/*.d.ts",
162
169
  "import": "./dist/works/util/*.js"
@@ -173,6 +180,14 @@
173
180
  "types": "./dist/types/*.d.ts",
174
181
  "import": "./dist/types/*.js"
175
182
  },
183
+ "./analysis": {
184
+ "types": "./dist/analysis/index.d.ts",
185
+ "import": "./dist/analysis/index.js"
186
+ },
187
+ "./analysis/*": {
188
+ "types": "./dist/analysis/*.d.ts",
189
+ "import": "./dist/analysis/*.js"
190
+ },
176
191
  "./*": {
177
192
  "types": "./dist/*.d.ts",
178
193
  "import": "./dist/*.js"