@creeperhost/modlens-mcp 1.6.19 → 1.6.21

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 (108) hide show
  1. package/ATTRIBUTION.md +8 -1
  2. package/README.md +82 -5
  3. package/RUNTIME.md +262 -0
  4. package/TESTING.md +8 -0
  5. package/dist/cli.js +28 -8
  6. package/dist/cli.js.map +1 -1
  7. package/dist/hosted-mod-license.d.ts +36 -0
  8. package/dist/hosted-mod-license.d.ts.map +1 -0
  9. package/dist/hosted-mod-license.js +65 -0
  10. package/dist/hosted-mod-license.js.map +1 -0
  11. package/dist/hosted-policy.d.ts +32 -0
  12. package/dist/hosted-policy.d.ts.map +1 -0
  13. package/dist/hosted-policy.js +257 -0
  14. package/dist/hosted-policy.js.map +1 -0
  15. package/dist/launcher.js +104 -89
  16. package/dist/launcher.js.map +1 -1
  17. package/dist/license-notices.d.ts +8 -0
  18. package/dist/license-notices.d.ts.map +1 -0
  19. package/dist/license-notices.js +10 -0
  20. package/dist/license-notices.js.map +1 -0
  21. package/dist/license-source-references.d.ts +12 -0
  22. package/dist/license-source-references.d.ts.map +1 -0
  23. package/dist/license-source-references.js +18 -0
  24. package/dist/license-source-references.js.map +1 -0
  25. package/dist/license-templates.d.ts +6 -0
  26. package/dist/license-templates.d.ts.map +1 -0
  27. package/dist/license-templates.js +55 -0
  28. package/dist/license-templates.js.map +1 -0
  29. package/dist/local-mod.d.ts +31 -0
  30. package/dist/local-mod.d.ts.map +1 -0
  31. package/dist/local-mod.js +71 -0
  32. package/dist/local-mod.js.map +1 -0
  33. package/dist/mod-license.d.ts +53 -0
  34. package/dist/mod-license.d.ts.map +1 -0
  35. package/dist/mod-license.js +617 -0
  36. package/dist/mod-license.js.map +1 -0
  37. package/dist/primer-catalog.d.ts +15 -0
  38. package/dist/primer-catalog.d.ts.map +1 -0
  39. package/dist/primer-catalog.js +43 -0
  40. package/dist/primer-catalog.js.map +1 -0
  41. package/dist/primer-content.d.ts +7 -0
  42. package/dist/primer-content.d.ts.map +1 -0
  43. package/dist/primer-content.js +185 -0
  44. package/dist/primer-content.js.map +1 -0
  45. package/dist/runtime/cli.d.ts +2 -0
  46. package/dist/runtime/cli.d.ts.map +1 -0
  47. package/dist/runtime/cli.js +163 -0
  48. package/dist/runtime/cli.js.map +1 -0
  49. package/dist/runtime/companion.d.ts +32 -0
  50. package/dist/runtime/companion.d.ts.map +1 -0
  51. package/dist/runtime/companion.js +135 -0
  52. package/dist/runtime/companion.js.map +1 -0
  53. package/dist/runtime/guidance.d.ts +73 -0
  54. package/dist/runtime/guidance.d.ts.map +1 -0
  55. package/dist/runtime/guidance.js +40 -0
  56. package/dist/runtime/guidance.js.map +1 -0
  57. package/dist/runtime/hub.d.ts +150 -0
  58. package/dist/runtime/hub.d.ts.map +1 -0
  59. package/dist/runtime/hub.js +561 -0
  60. package/dist/runtime/hub.js.map +1 -0
  61. package/dist/runtime/modlens-agent.jar +0 -0
  62. package/dist/runtime/protocol.d.ts +202 -0
  63. package/dist/runtime/protocol.d.ts.map +1 -0
  64. package/dist/runtime/protocol.js +91 -0
  65. package/dist/runtime/protocol.js.map +1 -0
  66. package/dist/runtime/requests.d.ts +367 -0
  67. package/dist/runtime/requests.d.ts.map +1 -0
  68. package/dist/runtime/requests.js +57 -0
  69. package/dist/runtime/requests.js.map +1 -0
  70. package/dist/server.js +141 -45
  71. package/dist/server.js.map +1 -1
  72. package/dist/setup.js +9 -4
  73. package/dist/setup.js.map +1 -1
  74. package/dist/tools/primers.d.ts +133 -22
  75. package/dist/tools/primers.d.ts.map +1 -1
  76. package/dist/tools/primers.js +391 -386
  77. package/dist/tools/primers.js.map +1 -1
  78. package/dist/tools/project.d.ts +11 -7
  79. package/dist/tools/project.d.ts.map +1 -1
  80. package/dist/tools/project.js +45 -3
  81. package/dist/tools/project.js.map +1 -1
  82. package/dist/tools/report-issue.d.ts +77 -0
  83. package/dist/tools/report-issue.d.ts.map +1 -0
  84. package/dist/tools/report-issue.js +92 -0
  85. package/dist/tools/report-issue.js.map +1 -0
  86. package/dist/tools/runtime.d.ts +6 -0
  87. package/dist/tools/runtime.d.ts.map +1 -0
  88. package/dist/tools/runtime.js +18 -0
  89. package/dist/tools/runtime.js.map +1 -0
  90. package/dist/tools/source.d.ts +1 -1
  91. package/dist/tools/source.d.ts.map +1 -1
  92. package/dist/tools/source.js +5 -1
  93. package/dist/tools/source.js.map +1 -1
  94. package/package.json +8 -1
  95. package/scripts/build-runtime-agent.mjs +64 -0
  96. package/scripts/fixtures/mod-license-corpus.json +154 -0
  97. package/scripts/gradle/modlens-runtime.init.gradle +17 -0
  98. package/scripts/runtime-test-client.mjs +36 -0
  99. package/scripts/test-hosted-policy.mjs +123 -0
  100. package/scripts/test-mod-licenses-live.mjs +86 -0
  101. package/scripts/test-package.mjs +141 -5
  102. package/scripts/test-primers-live.mjs +93 -0
  103. package/scripts/test-project-http.mjs +46 -3
  104. package/scripts/test-runtime-gradle.mjs +107 -0
  105. package/scripts/test-runtime-minecraft.mjs +190 -0
  106. package/scripts/test-runtime-native.mjs +120 -0
  107. package/scripts/test-runtime-remote.mjs +209 -0
  108. package/scripts/update-license-templates.mjs +14 -0
@@ -1,8 +1,24 @@
1
- declare const DEFAULT_PRIMER_HOSTS: string[];
2
- /** Exported for use in setup wizard. */
3
- export { DEFAULT_PRIMER_HOSTS };
4
- /** Ingest one or more primers into the database. */
5
- export declare function ingestPrimer(entries: {
1
+ import type { Prisma } from "@prisma/client";
2
+ export { DEFAULT_PRIMER_HOSTS } from "../primer-content.js";
3
+ type VersionRange = {
4
+ fromVersion: string;
5
+ toVersion: string;
6
+ fromDataVersion: number | null;
7
+ toDataVersion: number | null;
8
+ };
9
+ declare const summarySelect: {
10
+ id: true;
11
+ fromVersion: true;
12
+ toVersion: true;
13
+ fromDataVersion: true;
14
+ toDataVersion: true;
15
+ modloader: true;
16
+ title: true;
17
+ summary: true;
18
+ url: true;
19
+ tags: true;
20
+ };
21
+ export interface PrimerInput {
6
22
  fromVersion: string;
7
23
  toVersion: string;
8
24
  modloader?: string;
@@ -13,24 +29,119 @@ export declare function ingestPrimer(entries: {
13
29
  tags?: string[];
14
30
  source?: string;
15
31
  fetchContent?: boolean;
16
- }[]): Promise<object>;
17
- /** Get a single primer by ID. */
18
- export declare function getPrimer(id: number): Promise<object>;
19
- /**
20
- * Get primers for a version range.
21
- * Returns all primers where the primer's version range overlaps with [fromVersion, toVersion].
22
- * If both data versions are resolvable, uses numeric comparison.
23
- * Otherwise falls back to exact string match on fromVersion/toVersion.
24
- */
25
- export declare function getPrimersByVersionRange(fromVersion: string, toVersion: string, modloader?: string): Promise<object>;
26
- /** Search primers using full-text search on title, summary, and content. */
27
- export declare function searchPrimers(query: string, modloader?: string, fromVersion?: string, toVersion?: string, limit?: number): Promise<object>;
28
- /** List all primers with optional filters. */
29
- export declare function listPrimers(modloader?: string, limit?: number): Promise<object>;
30
- /** Delete a primer by ID. */
32
+ }
33
+ /** A requested fetch must succeed before the entry is written. */
34
+ export declare function ingestPrimer(entries: PrimerInput[]): Promise<{
35
+ ingested: number;
36
+ failed: number;
37
+ primers: {
38
+ id: number;
39
+ title: string;
40
+ fromVersion: string;
41
+ toVersion: string;
42
+ contentStatus: string;
43
+ }[];
44
+ errors: {
45
+ url: string;
46
+ error: string;
47
+ }[];
48
+ }>;
49
+ export interface GetPrimerOptions {
50
+ fetchContent?: boolean;
51
+ refresh?: boolean;
52
+ startLine?: number;
53
+ maxLines?: number;
54
+ }
55
+ /** Return cached Markdown, fetching it if missing. Pagination never truncates the stored guide. */
56
+ export declare function getPrimer(id: number, options?: GetPrimerOptions): Promise<object>;
57
+ export interface PrimerRangeOptions {
58
+ includeContent?: boolean;
59
+ fetchContent?: boolean;
60
+ maxChars?: number;
61
+ cursor?: string;
62
+ }
63
+ type PrimerSummary = Omit<Prisma.PrimerGetPayload<{
64
+ select: typeof summarySelect;
65
+ }>, "tags"> & {
66
+ tags: string[];
67
+ };
68
+ type PrimerRangeResult = {
69
+ queryRange: VersionRange;
70
+ count: number;
71
+ primers: PrimerSummary[];
72
+ };
73
+ type BundledPrimer = PrimerSummary & {
74
+ content: string | null;
75
+ contentStatus: "ready" | "missing" | "fetch_failed";
76
+ startOffset: number;
77
+ endOffset: number;
78
+ totalChars: number;
79
+ truncated: boolean;
80
+ error?: string;
81
+ };
82
+ type BundledPrimerRange = Omit<PrimerRangeResult, "primers"> & {
83
+ primers: BundledPrimer[];
84
+ failed: number;
85
+ missing: number;
86
+ contentChars: number;
87
+ maxChars: number;
88
+ truncated: boolean;
89
+ nextCursor: string | null;
90
+ };
91
+ /** Each transition strictly overlaps the requested migration; loader queries also include vanilla changes. */
92
+ export declare function getPrimersByVersionRange(fromVersion: string, toVersion: string, modloader: string | undefined, options: PrimerRangeOptions & {
93
+ includeContent: true;
94
+ }): Promise<BundledPrimerRange>;
95
+ export declare function getPrimersByVersionRange(fromVersion: string, toVersion: string, modloader?: string, options?: PrimerRangeOptions): Promise<PrimerRangeResult | BundledPrimerRange>;
96
+ export declare function searchPrimers(query: string, modloader?: string, fromVersion?: string, toVersion?: string, limit?: number): Promise<{
97
+ query: string;
98
+ count: number;
99
+ primers: (Omit<{
100
+ id: number;
101
+ modloader: string;
102
+ url: string;
103
+ tags: string[];
104
+ title: string;
105
+ summary: string | null;
106
+ fromVersion: string;
107
+ toVersion: string;
108
+ fromDataVersion: number | null;
109
+ toDataVersion: number | null;
110
+ }, "tags"> & {
111
+ tags: string[];
112
+ })[];
113
+ }>;
114
+ export declare function listPrimers(modloader?: string, limit?: number): Promise<{
115
+ count: number;
116
+ primers: (Omit<{
117
+ id: number;
118
+ modloader: string;
119
+ url: string;
120
+ tags: string[];
121
+ title: string;
122
+ summary: string | null;
123
+ fromVersion: string;
124
+ toVersion: string;
125
+ fromDataVersion: number | null;
126
+ toDataVersion: number | null;
127
+ }, "tags"> & {
128
+ tags: string[];
129
+ })[];
130
+ }>;
31
131
  export declare function deletePrimer(id: number): Promise<object>;
32
- /** Populate the primers table with known NeoForge/Forge/Fabric migration guides. */
33
- export declare function seedDefaultPrimers(): Promise<object>;
132
+ /** Populate the corrected catalogue, fetch missing bodies, and report individual failures for retry. */
133
+ export declare function seedDefaultPrimers(fetchContent?: boolean): Promise<{
134
+ ingested: number;
135
+ ready: number;
136
+ failed: number;
137
+ primers: {
138
+ id: number;
139
+ title: string;
140
+ url: string;
141
+ contentStatus: string;
142
+ error?: string;
143
+ }[];
144
+ }>;
34
145
  export declare function semanticSearchPrimers(query: string, limit?: number): Promise<object>;
35
146
  export declare function backfillPrimerEmbeddings(): Promise<object>;
36
147
  //# sourceMappingURL=primers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"primers.d.ts","sourceRoot":"","sources":["../../src/tools/primers.ts"],"names":[],"mappings":"AAqBA,QAAA,MAAM,oBAAoB,UAazB,CAAC;AA6BF,wCAAwC;AACxC,OAAO,EAAE,oBAAoB,EAAE,CAAC;AA+DhC,oDAAoD;AACpD,wBAAsB,YAAY,CAAC,OAAO,EAAE;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA6DpB;AAED,iCAAiC;AACjC,wBAAsB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAK3D;AAED;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAC1C,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,CAqDjB;AAED,4EAA4E;AAC5E,wBAAsB,aAAa,CAC/B,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,EAClB,KAAK,SAAK,GACX,OAAO,CAAC,MAAM,CAAC,CA6CjB;AAED,8CAA8C;AAC9C,wBAAsB,WAAW,CAC7B,SAAS,CAAC,EAAE,MAAM,EAClB,KAAK,SAAK,GACX,OAAO,CAAC,MAAM,CAAC,CAiBjB;AAED,6BAA6B;AAC7B,wBAAsB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAG9D;AAsGD,oFAAoF;AACpF,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,CAE1D;AAkBD,wBAAsB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAgBtF;AAID,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,MAAM,CAAC,CAiBhE"}
1
+ {"version":3,"file":"primers.d.ts","sourceRoot":"","sources":["../../src/tools/primers.ts"],"names":[],"mappings":"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"}