mcp-scraper 0.36.0 → 0.37.1

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 (53) hide show
  1. package/README.md +1 -1
  2. package/dist/bin/api-server.cjs +766 -168
  3. package/dist/bin/api-server.cjs.map +1 -1
  4. package/dist/bin/api-server.js +3 -3
  5. package/dist/bin/mcp-scraper-cli.cjs +1 -1
  6. package/dist/bin/mcp-scraper-cli.cjs.map +1 -1
  7. package/dist/bin/mcp-scraper-cli.js +1 -1
  8. package/dist/bin/mcp-scraper-install.cjs +1 -1
  9. package/dist/bin/mcp-scraper-install.cjs.map +1 -1
  10. package/dist/bin/mcp-scraper-install.js +1 -1
  11. package/dist/bin/mcp-stdio-server.cjs +52 -8
  12. package/dist/bin/mcp-stdio-server.cjs.map +1 -1
  13. package/dist/bin/mcp-stdio-server.js +5 -5
  14. package/dist/bin/paa-harvest.cjs.map +1 -1
  15. package/dist/bin/paa-harvest.js +3 -3
  16. package/dist/{chunk-5RULXBJ7.js → chunk-B3MI5FIW.js} +55 -11
  17. package/dist/{chunk-5RULXBJ7.js.map → chunk-B3MI5FIW.js.map} +1 -1
  18. package/dist/{chunk-IFYER7O4.js → chunk-CSCD2HNS.js} +132 -2
  19. package/dist/chunk-CSCD2HNS.js.map +1 -0
  20. package/dist/chunk-E3NW6YTY.js +7 -0
  21. package/dist/chunk-E3NW6YTY.js.map +1 -0
  22. package/dist/{chunk-D7LM5QZN.js → chunk-FSAXLDB3.js} +2 -2
  23. package/dist/{chunk-ANCGXUQJ.js → chunk-LOPKN3YL.js} +2 -2
  24. package/dist/{chunk-E5UEELA7.js → chunk-MA5JBAUZ.js} +2 -2
  25. package/dist/{chunk-AN3VQARU.js → chunk-PUJFYJXB.js} +2 -2
  26. package/dist/{chunk-4ZIJ3BKZ.js → chunk-PWPUKR5U.js} +4 -2
  27. package/dist/{chunk-4ZIJ3BKZ.js.map → chunk-PWPUKR5U.js.map} +1 -1
  28. package/dist/{chunk-O2MCWFXQ.js → chunk-Q35WZJJK.js} +3 -3
  29. package/dist/{db-N6MPVMEF.js → db-N3YECFWR.js} +6 -2
  30. package/dist/{extract-bundle-M4SDJG3V.js → extract-bundle-346R6MXD.js} +4 -4
  31. package/dist/index.cjs.map +1 -1
  32. package/dist/index.js +3 -3
  33. package/dist/{location-data-repository-Z4NQOU5Y.js → location-data-repository-O2VII3ON.js} +3 -3
  34. package/dist/{server-ZIGAFKOL.js → server-4MBQBJL7.js} +500 -99
  35. package/dist/server-4MBQBJL7.js.map +1 -0
  36. package/dist/{site-extract-repository-PGQZNW6V.js → site-extract-repository-I3VM6WXN.js} +4 -4
  37. package/dist/{worker-EBB6CTGW.js → worker-TTFXPPDK.js} +6 -6
  38. package/docs/mcp-tool-manifest.generated.json +182 -6
  39. package/package.json +2 -2
  40. package/dist/chunk-4HO66323.js +0 -7
  41. package/dist/chunk-4HO66323.js.map +0 -1
  42. package/dist/chunk-IFYER7O4.js.map +0 -1
  43. package/dist/server-ZIGAFKOL.js.map +0 -1
  44. /package/dist/{chunk-D7LM5QZN.js.map → chunk-FSAXLDB3.js.map} +0 -0
  45. /package/dist/{chunk-ANCGXUQJ.js.map → chunk-LOPKN3YL.js.map} +0 -0
  46. /package/dist/{chunk-E5UEELA7.js.map → chunk-MA5JBAUZ.js.map} +0 -0
  47. /package/dist/{chunk-AN3VQARU.js.map → chunk-PUJFYJXB.js.map} +0 -0
  48. /package/dist/{chunk-O2MCWFXQ.js.map → chunk-Q35WZJJK.js.map} +0 -0
  49. /package/dist/{db-N6MPVMEF.js.map → db-N3YECFWR.js.map} +0 -0
  50. /package/dist/{extract-bundle-M4SDJG3V.js.map → extract-bundle-346R6MXD.js.map} +0 -0
  51. /package/dist/{location-data-repository-Z4NQOU5Y.js.map → location-data-repository-O2VII3ON.js.map} +0 -0
  52. /package/dist/{site-extract-repository-PGQZNW6V.js.map → site-extract-repository-I3VM6WXN.js.map} +0 -0
  53. /package/dist/{worker-EBB6CTGW.js.map → worker-TTFXPPDK.js.map} +0 -0
@@ -1,14 +1,14 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  harvest
4
- } from "../chunk-ANCGXUQJ.js";
4
+ } from "../chunk-LOPKN3YL.js";
5
5
  import {
6
6
  browserServiceApiKey
7
- } from "../chunk-E5UEELA7.js";
7
+ } from "../chunk-MA5JBAUZ.js";
8
8
  import "../chunk-K443GQY5.js";
9
9
  import "../chunk-CB5C3BPB.js";
10
10
  import "../chunk-44HZLHDV.js";
11
- import "../chunk-IFYER7O4.js";
11
+ import "../chunk-CSCD2HNS.js";
12
12
 
13
13
  // src/cli.ts
14
14
  import { Command } from "commander";
@@ -15,17 +15,17 @@ import {
15
15
  browserServiceProfileSaveChanges,
16
16
  recordVendorUsage,
17
17
  vendorCostUsd
18
- } from "./chunk-E5UEELA7.js";
18
+ } from "./chunk-MA5JBAUZ.js";
19
19
  import {
20
20
  DEFAULT_MAPS_PROXY_MODE,
21
21
  DEFAULT_PROXY_MODE
22
22
  } from "./chunk-CB5C3BPB.js";
23
23
  import {
24
24
  PACKAGE_VERSION
25
- } from "./chunk-4HO66323.js";
25
+ } from "./chunk-E3NW6YTY.js";
26
26
  import {
27
27
  MC_PER_CREDIT
28
- } from "./chunk-4ZIJ3BKZ.js";
28
+ } from "./chunk-PWPUKR5U.js";
29
29
  import {
30
30
  sanitizeVendorName
31
31
  } from "./chunk-44HZLHDV.js";
@@ -9201,14 +9201,20 @@ var MemoryCaptureSchema = {
9201
9201
  content: z4.string().min(1),
9202
9202
  props: memoryCaptureTool_notePropsSchema,
9203
9203
  baseRevision: z4.number().optional(),
9204
- tagDecisions: z4.array(z4.object({ tag: z4.string().min(1), central: z4.boolean(), reusable: z4.boolean(), description: z4.string().optional() })).max(8).optional().describe("Required justification for any tag that does not already exist. Existing exact/alias/near tags are canonicalized automatically; a new tag is accepted only when its matching decision has central=true and reusable=true.")
9204
+ tagDecisions: z4.array(z4.object({ tag: z4.string().min(1), central: z4.boolean(), reusable: z4.boolean(), description: z4.string().optional(), acceptCanonical: z4.string().optional().describe("Reuse this existing tag instead of the proposed one, confirming a candidate returned by an earlier review. The proposed spelling is recorded as its alias.") })).max(8).optional().describe("Required justification for any tag that does not already exist. Tags resolve against the account's existing vocabulary; new tags require a one-line description.")
9205
9205
  },
9206
9206
  output: {
9207
9207
  ok: z4.boolean(),
9208
9208
  valid: z4.boolean().optional(),
9209
9209
  errors: z4.array(z4.string()).optional(),
9210
9210
  warnings: z4.array(z4.string()).optional(),
9211
- tagResolutions: z4.array(z4.object({ candidate: z4.string(), action: z4.enum(["reuse", "create", "omit"]), tag: z4.string().optional(), reason: z4.string() })).optional(),
9211
+ tagResolutions: z4.array(z4.object({
9212
+ candidate: z4.string(),
9213
+ action: z4.enum(["reuse", "review", "create", "omit"]),
9214
+ tag: z4.string().optional(),
9215
+ candidates: z4.array(z4.object({ tag: z4.string(), matchedVia: z4.string(), score: z4.number(), description: z4.string().nullable() })).optional(),
9216
+ reason: z4.string()
9217
+ })).optional(),
9212
9218
  note: z4.object({ path: z4.string(), title: z4.string(), updatedAt: z4.string(), revision: z4.number() }).optional(),
9213
9219
  indexed: z4.number().optional(),
9214
9220
  verified: z4.object({ contentBytes: z4.number(), propsPersisted: z4.boolean(), revision: z4.number() }).optional(),
@@ -9720,7 +9726,8 @@ var LibraryIngestSchema = {
9720
9726
  source: z4.string().min(1).describe("Provenance of the content, e.g. a URL or tool name. Must be non-empty."),
9721
9727
  capturedAt: z4.string().optional().describe("ISO-8601 capture timestamp. Optional; defaults to now. Also seeds the deterministic storage path."),
9722
9728
  summary: z4.string().optional().describe("Retrieval-ready source summary. Optional; a provenance summary is generated when omitted."),
9723
- tags: z4.array(z4.string()).max(8).optional().describe("Reviewed canonical tags. Existing tags should be resolved first; when omitted, deterministic source/topic tags are generated."),
9729
+ tags: z4.array(z4.string()).max(8).optional().describe("Reviewed canonical tags. Tags resolve against the account's existing vocabulary; new tags require a one-line description. When omitted, only deterministic source-provenance tags are recorded."),
9730
+ tagDescriptions: z4.record(z4.string()).optional().describe("One-line meaning for any supplied tag that is new to the account, keyed by tag."),
9724
9731
  related: z4.array(z4.string()).optional().describe("Reviewed same-vault Library note paths."),
9725
9732
  relatedVaultNotes: z4.array(z4.string()).optional().describe("Reviewed cross-vault references in Vault::path.md form."),
9726
9733
  localVaultPath: z4.string().optional().describe("Filesystem root to also mirror the item to. Optional; falls back to MEMORY_LOCAL_VAULT_ROOT env when set.")
@@ -9967,7 +9974,8 @@ var PutSchema = {
9967
9974
  title: z4.string().optional().describe("Optional human-readable title; defaults are derived from the path when omitted."),
9968
9975
  content: z4.string().min(1).describe("The full note body to store and index for semantic search. Must be non-empty."),
9969
9976
  props: putTool_notePropsSchema.optional().describe("Obsidian note primitives plus vault-specific template fields. On edits, supplied fields patch the stored props instead of replacing the whole object; pass an empty array to deliberately clear a link list. Type/domain/folder also steer routing when no vault is given."),
9970
- baseRevision: z4.number().optional().describe("Revision the edit is based on (from a prior get/put). When provided, the write only applies if the note is still at this revision; otherwise it is rejected as a conflict instead of silently overwriting a concurrent edit. Omit for last-write-wins (fine for solo notes).")
9977
+ baseRevision: z4.number().optional().describe("Revision the edit is based on (from a prior get/put). When provided, the write only applies if the note is still at this revision; otherwise it is rejected as a conflict instead of silently overwriting a concurrent edit. Omit for last-write-wins (fine for solo notes)."),
9978
+ tagDescriptions: z4.record(z4.string()).optional().describe("One-line meaning for any tag in props.tags that is new to the account, keyed by tag. Tags resolve against the account's existing vocabulary; new tags require a one-line description.")
9971
9979
  },
9972
9980
  output: {
9973
9981
  ok: z4.boolean().describe("True when the note was stored; false on auth/scope error, empty content, or a revision conflict."),
@@ -10646,16 +10654,51 @@ var ListTagsSchema = {
10646
10654
  },
10647
10655
  annotations: { title: "List Memory Tags", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false }
10648
10656
  };
10657
+ var MergeTagsSchema = {
10658
+ id: "merge-memory-tags",
10659
+ upstreamName: "mergeTagsTool",
10660
+ description: 'Collapse a duplicate tag into the canonical one across the whole account: every note using "from" is retagged to "into", "from" is recorded as an alias of "into", and the duplicate is removed from the vocabulary. Use when list-memory-tags shows two spellings of one concept. Irreversible; requires write scope.',
10661
+ input: {
10662
+ from: z4.string().min(1).describe("The duplicate tag to retire."),
10663
+ into: z4.string().min(1).describe('The canonical tag to keep. Every note using "from" is retagged to this.')
10664
+ },
10665
+ output: {
10666
+ ok: z4.boolean(),
10667
+ from: z4.string().optional(),
10668
+ into: z4.string().optional(),
10669
+ notesRetagged: z4.number().optional(),
10670
+ aliases: z4.array(z4.string()).optional(),
10671
+ descriptionCopied: z4.boolean().optional(),
10672
+ error: z4.string().optional()
10673
+ },
10674
+ annotations: { title: "Merge Memory Tags", readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false }
10675
+ };
10649
10676
  var ResolveTagsSchema = {
10650
10677
  id: "resolve-memory-tags",
10651
10678
  upstreamName: "resolveTagsTool",
10652
- description: "Resolve proposed concepts against the live tag vocabulary. Always inspect the complete vocabulary with list-memory-tags first. Returns reuse, create, or omit; a new tag is appropriate only when no equivalent exists and the concept is central and reusable.",
10679
+ description: "Resolve proposed concepts against the live tag vocabulary. Always inspect the complete vocabulary with list-memory-tags first. Returns reuse, review, create, or omit: spelling and singular/plural variants resolve to the canonical tag silently, while close and semantically related tags come back as ranked candidates for you to choose from. A new tag is appropriate only when no equivalent exists and the concept is central and reusable.",
10653
10680
  input: {
10654
- candidates: z4.array(z4.object({ tag: z4.string().min(1), central: z4.boolean().optional(), reusable: z4.boolean().optional(), description: z4.string().optional() })).min(1).max(20)
10681
+ candidates: z4.array(z4.object({ tag: z4.string().min(1), central: z4.boolean().optional(), reusable: z4.boolean().optional(), description: z4.string().optional() })).min(1).max(20),
10682
+ accept: z4.record(z4.string()).optional().describe("Confirm a candidate returned by an earlier review, as {proposedTag: canonicalTag}. The proposed spelling is recorded as an alias of the canonical tag so the same judgement is never re-litigated.")
10655
10683
  },
10656
10684
  output: {
10657
10685
  ok: z4.boolean(),
10658
- resolutions: z4.array(z4.object({ candidate: z4.string(), normalized: z4.string(), action: z4.enum(["reuse", "create", "omit"]), tag: z4.string().optional(), matchedBy: z4.enum(["exact", "alias", "near"]).optional(), score: z4.number().optional(), reason: z4.string() })).optional(),
10686
+ resolutions: z4.array(z4.object({
10687
+ candidate: z4.string(),
10688
+ normalized: z4.string(),
10689
+ action: z4.enum(["reuse", "review", "create", "omit"]),
10690
+ tag: z4.string().optional(),
10691
+ matchedBy: z4.enum(["exact", "alias", "near"]).optional(),
10692
+ matchedVia: z4.enum(["key", "alias", "stem", "trigram", "embedding"]).optional(),
10693
+ score: z4.number().optional(),
10694
+ candidates: z4.array(z4.object({
10695
+ tag: z4.string(),
10696
+ matchedVia: z4.enum(["key", "alias", "stem", "trigram", "embedding"]),
10697
+ score: z4.number(),
10698
+ description: z4.string().nullable()
10699
+ })).optional().describe("Ranked existing tags to choose from when action is review. Nothing is merged automatically."),
10700
+ reason: z4.string()
10701
+ })).optional(),
10659
10702
  error: z4.string().optional()
10660
10703
  },
10661
10704
  annotations: { title: "Resolve Memory Tags", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false }
@@ -11038,6 +11081,7 @@ var MEMORY_TOOL_SCHEMAS = [
11038
11081
  ListTablesSchema,
11039
11082
  QueryTableSchema,
11040
11083
  ListTagsSchema,
11084
+ MergeTagsSchema,
11041
11085
  ResolveTagsSchema,
11042
11086
  UpsertTagSchema,
11043
11087
  AddVaultSchema,
@@ -11103,4 +11147,4 @@ export {
11103
11147
  MEMORY_TOOL_SCHEMAS,
11104
11148
  registerMemoryMcpTools
11105
11149
  };
11106
- //# sourceMappingURL=chunk-5RULXBJ7.js.map
11150
+ //# sourceMappingURL=chunk-B3MI5FIW.js.map