@jcode.labs/ragmir 4.2.2 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (197) hide show
  1. package/README.md +67 -160
  2. package/dist/chunking.d.ts +1 -1
  3. package/dist/chunking.d.ts.map +1 -1
  4. package/dist/chunking.js +17 -1
  5. package/dist/chunking.js.map +1 -1
  6. package/dist/cli-entry.js +1 -1
  7. package/dist/cli-entry.js.map +1 -1
  8. package/dist/cli-fast.d.ts +1 -3
  9. package/dist/cli-fast.d.ts.map +1 -1
  10. package/dist/cli-fast.js +2 -104
  11. package/dist/cli-fast.js.map +1 -1
  12. package/dist/cli-options.d.ts +0 -37
  13. package/dist/cli-options.d.ts.map +1 -1
  14. package/dist/cli-options.js +0 -53
  15. package/dist/cli-options.js.map +1 -1
  16. package/dist/cli.js +9 -701
  17. package/dist/cli.js.map +1 -1
  18. package/dist/client.d.ts +1 -3
  19. package/dist/client.d.ts.map +1 -1
  20. package/dist/client.js +7 -36
  21. package/dist/client.js.map +1 -1
  22. package/dist/config-migration.d.ts +6 -0
  23. package/dist/config-migration.d.ts.map +1 -0
  24. package/dist/config-migration.js +31 -0
  25. package/dist/config-migration.js.map +1 -0
  26. package/dist/config.d.ts +2 -0
  27. package/dist/config.d.ts.map +1 -1
  28. package/dist/config.js +17 -65
  29. package/dist/config.js.map +1 -1
  30. package/dist/context-resources.d.ts.map +1 -1
  31. package/dist/context-resources.js +2 -14
  32. package/dist/context-resources.js.map +1 -1
  33. package/dist/defaults.d.ts +0 -3
  34. package/dist/defaults.d.ts.map +1 -1
  35. package/dist/defaults.js +0 -13
  36. package/dist/defaults.js.map +1 -1
  37. package/dist/destroy.d.ts.map +1 -1
  38. package/dist/destroy.js +0 -2
  39. package/dist/destroy.js.map +1 -1
  40. package/dist/doctor.d.ts.map +1 -1
  41. package/dist/doctor.js +1 -9
  42. package/dist/doctor.js.map +1 -1
  43. package/dist/document-structure.js.map +1 -1
  44. package/dist/embeddings.d.ts.map +1 -1
  45. package/dist/embeddings.js +9 -1
  46. package/dist/embeddings.js.map +1 -1
  47. package/dist/errors.d.ts +1 -1
  48. package/dist/errors.d.ts.map +1 -1
  49. package/dist/errors.js.map +1 -1
  50. package/dist/evaluate.d.ts.map +1 -1
  51. package/dist/evaluate.js +0 -7
  52. package/dist/evaluate.js.map +1 -1
  53. package/dist/files.js.map +1 -1
  54. package/dist/generation-retention.js.map +1 -1
  55. package/dist/gitignore.js.map +1 -1
  56. package/dist/index-diagnostics.js +1 -1
  57. package/dist/index-diagnostics.js.map +1 -1
  58. package/dist/index-policy.d.ts.map +1 -1
  59. package/dist/index-policy.js +3 -4
  60. package/dist/index-policy.js.map +1 -1
  61. package/dist/index-write-lock.js.map +1 -1
  62. package/dist/index.d.ts +4 -15
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +2 -8
  65. package/dist/index.js.map +1 -1
  66. package/dist/ingest.d.ts.map +1 -1
  67. package/dist/ingest.js +3 -18
  68. package/dist/ingest.js.map +1 -1
  69. package/dist/ingestion-metrics.d.ts +1 -1
  70. package/dist/ingestion-metrics.d.ts.map +1 -1
  71. package/dist/ingestion-metrics.js +0 -1
  72. package/dist/ingestion-metrics.js.map +1 -1
  73. package/dist/ingestion-state.d.ts +1 -2
  74. package/dist/ingestion-state.d.ts.map +1 -1
  75. package/dist/ingestion-state.js +0 -2
  76. package/dist/ingestion-state.js.map +1 -1
  77. package/dist/lexical-scoring.d.ts +13 -0
  78. package/dist/lexical-scoring.d.ts.map +1 -0
  79. package/dist/lexical-scoring.js +35 -0
  80. package/dist/lexical-scoring.js.map +1 -0
  81. package/dist/mcp-output.d.ts +4 -31
  82. package/dist/mcp-output.d.ts.map +1 -1
  83. package/dist/mcp-output.js +4 -123
  84. package/dist/mcp-output.js.map +1 -1
  85. package/dist/mcp-summaries.d.ts +1 -12
  86. package/dist/mcp-summaries.d.ts.map +1 -1
  87. package/dist/mcp-summaries.js +0 -112
  88. package/dist/mcp-summaries.js.map +1 -1
  89. package/dist/mcp.d.ts +1 -5
  90. package/dist/mcp.d.ts.map +1 -1
  91. package/dist/mcp.js +22 -329
  92. package/dist/mcp.js.map +1 -1
  93. package/dist/ocr.d.ts +0 -1
  94. package/dist/ocr.d.ts.map +1 -1
  95. package/dist/ocr.js +0 -4
  96. package/dist/ocr.js.map +1 -1
  97. package/dist/parsing.js +13 -0
  98. package/dist/parsing.js.map +1 -1
  99. package/dist/preview.d.ts.map +1 -1
  100. package/dist/preview.js +2 -5
  101. package/dist/preview.js.map +1 -1
  102. package/dist/query-sanitizer.d.ts +2 -1
  103. package/dist/query-sanitizer.d.ts.map +1 -1
  104. package/dist/query-sanitizer.js +9 -127
  105. package/dist/query-sanitizer.js.map +1 -1
  106. package/dist/query.d.ts +1 -3
  107. package/dist/query.d.ts.map +1 -1
  108. package/dist/query.js +95 -71
  109. package/dist/query.js.map +1 -1
  110. package/dist/ranking.d.ts +1 -1
  111. package/dist/ranking.d.ts.map +1 -1
  112. package/dist/ranking.js +52 -41
  113. package/dist/ranking.js.map +1 -1
  114. package/dist/runtime-info.js.map +1 -1
  115. package/dist/search-output.d.ts +3 -0
  116. package/dist/search-output.d.ts.map +1 -0
  117. package/dist/search-output.js +26 -0
  118. package/dist/search-output.js.map +1 -0
  119. package/dist/security.d.ts.map +1 -1
  120. package/dist/security.js +5 -37
  121. package/dist/security.js.map +1 -1
  122. package/dist/setup-prompt.d.ts +1 -1
  123. package/dist/setup-prompt.d.ts.map +1 -1
  124. package/dist/setup-prompt.js +22 -25
  125. package/dist/setup-prompt.js.map +1 -1
  126. package/dist/setup.js +1 -1
  127. package/dist/setup.js.map +1 -1
  128. package/dist/skill.d.ts +1 -4
  129. package/dist/skill.d.ts.map +1 -1
  130. package/dist/skill.js +3 -71
  131. package/dist/skill.js.map +1 -1
  132. package/dist/storage-maintenance.js.map +1 -1
  133. package/dist/store.js +9 -1
  134. package/dist/store.js.map +1 -1
  135. package/dist/types.d.ts +19 -156
  136. package/dist/types.d.ts.map +1 -1
  137. package/dist/upgrade.d.ts +3 -2
  138. package/dist/upgrade.d.ts.map +1 -1
  139. package/dist/upgrade.js +20 -2
  140. package/dist/upgrade.js.map +1 -1
  141. package/dist/vector-index.js.map +1 -1
  142. package/dist/version.d.ts +1 -1
  143. package/dist/version.js +1 -1
  144. package/dist/workload.js.map +1 -1
  145. package/examples/document-evidence-benchmark/.ragmir/config.json +0 -9
  146. package/examples/document-evidence-benchmark/README.md +5 -3
  147. package/examples/document-evidence-benchmark/raw/rfp/security-questionnaire.md +1 -1
  148. package/examples/library-api-demo/README.md +17 -8
  149. package/examples/library-api-demo/run.mjs +6 -6
  150. package/examples/sovereign-rag-demo/.ragmir/config.json +3 -10
  151. package/examples/sovereign-rag-demo/README.md +21 -12
  152. package/package.json +21 -30
  153. package/skills/ragmir/SKILL.md +67 -199
  154. package/dist/access-log.d.ts +0 -30
  155. package/dist/access-log.d.ts.map +0 -1
  156. package/dist/access-log.js +0 -415
  157. package/dist/access-log.js.map +0 -1
  158. package/dist/cli-stdin.d.ts +0 -3
  159. package/dist/cli-stdin.d.ts.map +0 -1
  160. package/dist/cli-stdin.js +0 -15
  161. package/dist/cli-stdin.js.map +0 -1
  162. package/dist/portable-entry.d.ts +0 -5
  163. package/dist/portable-entry.d.ts.map +0 -1
  164. package/dist/portable-entry.js +0 -337
  165. package/dist/portable-entry.js.map +0 -1
  166. package/dist/portable.d.ts +0 -89
  167. package/dist/portable.d.ts.map +0 -1
  168. package/dist/portable.js +0 -1290
  169. package/dist/portable.js.map +0 -1
  170. package/dist/prompt-routing.d.ts +0 -12
  171. package/dist/prompt-routing.d.ts.map +0 -1
  172. package/dist/prompt-routing.js +0 -150
  173. package/dist/prompt-routing.js.map +0 -1
  174. package/dist/redaction.d.ts +0 -12
  175. package/dist/redaction.d.ts.map +0 -1
  176. package/dist/redaction.js +0 -253
  177. package/dist/redaction.js.map +0 -1
  178. package/dist/research.d.ts +0 -21
  179. package/dist/research.d.ts.map +0 -1
  180. package/dist/research.js +0 -667
  181. package/dist/research.js.map +0 -1
  182. package/dist/team-diagnostics.d.ts +0 -119
  183. package/dist/team-diagnostics.d.ts.map +0 -1
  184. package/dist/team-diagnostics.js +0 -515
  185. package/dist/team-diagnostics.js.map +0 -1
  186. package/dist/team-sync.d.ts +0 -49
  187. package/dist/team-sync.d.ts.map +0 -1
  188. package/dist/team-sync.js +0 -436
  189. package/dist/team-sync.js.map +0 -1
  190. package/skills/ragmir-audio-summary/SKILL.md +0 -80
  191. package/skills/ragmir-audio-summary/forge-voice.sh +0 -150
  192. package/skills/ragmir-audio-summary/listening-style.md +0 -92
  193. package/skills/ragmir-audio-summary/narration-templates.md +0 -162
  194. package/skills/ragmir-audio-summary/split-lines.py +0 -14
  195. package/skills/ragmir-audio-summary/xtts-voice.py +0 -46
  196. package/skills/ragmir-legal-dossier/SKILL.md +0 -143
  197. package/skills/ragmir-markdown-report/SKILL.md +0 -110
@@ -1,415 +0,0 @@
1
- import { createHmac, randomBytes } from "node:crypto";
2
- import { existsSync } from "node:fs";
3
- import { appendFile, readFile, stat, writeFile } from "node:fs/promises";
4
- import path from "node:path";
5
- import { loadConfig } from "./config.js";
6
- import { operationSignal, throwIfAborted } from "./operation.js";
7
- import { ensurePrivateDirectory, hardenPrivateFile } from "./permissions.js";
8
- const ACCESS_LOG_ACTIONS = [
9
- "ingest",
10
- "search",
11
- "ask",
12
- "research",
13
- "evaluate",
14
- "destroy-index",
15
- ];
16
- const ACCESS_LOG_ACTION_SET = new Set(ACCESS_LOG_ACTIONS);
17
- const MCP_OUTPUT_TOOLS = [
18
- "ragmir_search",
19
- "ragmir_ask",
20
- "ragmir_research",
21
- "ragmir_expand",
22
- ];
23
- const MCP_OUTPUT_TOOL_SET = new Set(MCP_OUTPUT_TOOLS);
24
- const DEFAULT_USAGE_REPORT_DAYS = 7;
25
- export const MAX_USAGE_REPORT_DAYS = 3_650;
26
- const MILLISECONDS_PER_DAY = 24 * 60 * 60 * 1000;
27
- /**
28
- * Soft cap above which the access log is trimmed to its most recent lines.
29
- * Keeps the file bounded so long-lived installations (MCP server) do not grow
30
- * it without limit, and so usage reports do not load an unbounded file.
31
- */
32
- const MAX_ACCESS_LOG_BYTES = 10 * 1024 * 1024;
33
- /** Number of most recent lines retained when the log exceeds the byte cap. */
34
- const TRIMMED_ACCESS_LOG_LINES = 50_000;
35
- const ACCESS_LOG_SALT_FILE = ".ragmir-access-log.salt";
36
- export const MAX_ACCESS_LOG_PENDING_EVENTS = 1_024;
37
- const ACCESS_LOG_WRITE_BATCH_SIZE = 64;
38
- const accessLogWriters = new Map();
39
- const accessLogSalts = new Map();
40
- export function recordAccess(config, event) {
41
- if (!config.accessLog) {
42
- return Promise.resolve();
43
- }
44
- return enqueueAccessLogLine(config.accessLogPath, async () => JSON.stringify(await toLogLine(config, event)));
45
- }
46
- export function recordMcpOutput(config, event) {
47
- if (!config.accessLog) {
48
- return Promise.resolve();
49
- }
50
- return enqueueAccessLogLine(config.accessLogPath, async () => JSON.stringify({
51
- timestamp: new Date().toISOString(),
52
- kind: "mcp-output",
53
- tool: event.tool,
54
- retrievedBytes: event.retrievedBytes,
55
- returnedBytes: event.returnedBytes,
56
- compacted: event.compacted,
57
- truncated: event.truncated,
58
- }));
59
- }
60
- export async function flushAccessLog(config) {
61
- const state = accessLogWriters.get(config.accessLogPath);
62
- if (!state) {
63
- return emptyAccessLogWriterMetrics();
64
- }
65
- while (state.active || state.pending.length > 0) {
66
- startAccessLogWriter(config.accessLogPath, state);
67
- if (state.active) {
68
- await state.active;
69
- }
70
- }
71
- return accessLogWriterMetrics(config);
72
- }
73
- export function accessLogWriterMetrics(config) {
74
- const state = accessLogWriters.get(config.accessLogPath);
75
- return state
76
- ? {
77
- pendingEvents: state.pending.length,
78
- inFlightEvents: state.inFlightEvents,
79
- writtenEvents: state.writtenEvents,
80
- droppedEvents: state.droppedEvents,
81
- }
82
- : emptyAccessLogWriterMetrics();
83
- }
84
- function enqueueAccessLogLine(accessLogPath, render) {
85
- const state = accessLogWriters.get(accessLogPath) ?? {
86
- pending: [],
87
- active: null,
88
- inFlightEvents: 0,
89
- writtenEvents: 0,
90
- droppedEvents: 0,
91
- };
92
- accessLogWriters.set(accessLogPath, state);
93
- if (state.pending.length >= MAX_ACCESS_LOG_PENDING_EVENTS) {
94
- state.droppedEvents += 1;
95
- return Promise.resolve();
96
- }
97
- return new Promise((settle) => {
98
- state.pending.push({ render, settle });
99
- startAccessLogWriter(accessLogPath, state);
100
- });
101
- }
102
- function startAccessLogWriter(accessLogPath, state) {
103
- if (state.active || state.pending.length === 0) {
104
- return;
105
- }
106
- const batch = state.pending.splice(0, ACCESS_LOG_WRITE_BATCH_SIZE);
107
- state.inFlightEvents = batch.length;
108
- const active = writeAccessLogBatch(accessLogPath, batch)
109
- .then(() => {
110
- state.writtenEvents += batch.length;
111
- })
112
- .catch(() => {
113
- state.droppedEvents += batch.length;
114
- })
115
- .finally(() => {
116
- for (const entry of batch) {
117
- entry.settle();
118
- }
119
- state.inFlightEvents = 0;
120
- state.active = null;
121
- startAccessLogWriter(accessLogPath, state);
122
- });
123
- state.active = active;
124
- }
125
- async function writeAccessLogBatch(accessLogPath, batch) {
126
- await ensurePrivateDirectory(path.dirname(accessLogPath));
127
- await trimAccessLogIfNeeded(accessLogPath);
128
- const lines = await Promise.all(batch.map((entry) => entry.render()));
129
- await appendFile(accessLogPath, `${lines.join("\n")}\n`, {
130
- encoding: "utf8",
131
- mode: 0o600,
132
- });
133
- await hardenPrivateFile(accessLogPath);
134
- }
135
- function emptyAccessLogWriterMetrics() {
136
- return {
137
- pendingEvents: 0,
138
- inFlightEvents: 0,
139
- writtenEvents: 0,
140
- droppedEvents: 0,
141
- };
142
- }
143
- async function trimAccessLogIfNeeded(accessLogPath) {
144
- let size = 0;
145
- try {
146
- size = (await stat(accessLogPath)).size;
147
- }
148
- catch (error) {
149
- if (isNodeError(error) && error.code === "ENOENT") {
150
- return;
151
- }
152
- throw error;
153
- }
154
- if (size <= MAX_ACCESS_LOG_BYTES) {
155
- return;
156
- }
157
- const content = await readFile(accessLogPath, "utf8");
158
- const lines = content.split("\n").filter((line) => line.length > 0);
159
- const kept = lines.slice(Math.max(0, lines.length - TRIMMED_ACCESS_LOG_LINES));
160
- await writeFile(accessLogPath, `${kept.join("\n")}\n`, "utf8");
161
- }
162
- function isNodeError(error) {
163
- return error instanceof Error && "code" in error;
164
- }
165
- export async function accessLogUsageReport(options = {}) {
166
- const signal = operationSignal(options);
167
- throwIfAborted(signal);
168
- const config = await loadConfig(String(options.cwd ?? process.cwd()));
169
- return accessLogUsageReportWithConfig(config, options);
170
- }
171
- export async function accessLogUsageReportWithConfig(config, options = {}) {
172
- const signal = operationSignal(options);
173
- throwIfAborted(signal);
174
- await flushAccessLog(config);
175
- throwIfAborted(signal);
176
- const days = normalizeUsageReportDays(options.days);
177
- const until = new Date();
178
- const since = new Date(until.getTime() - days * MILLISECONDS_PER_DAY);
179
- const eventsByAction = emptyEventsByAction();
180
- const queryHashes = new Set();
181
- const resultCountsByAction = emptyResultCountsByAction();
182
- let totalEvents = 0;
183
- let invalidLines = 0;
184
- let resultCountTotal = 0;
185
- let resultCountEvents = 0;
186
- let mcpOutputResponses = 0;
187
- let mcpRetrievedBytes = 0;
188
- let mcpReturnedBytes = 0;
189
- let compactedResponses = 0;
190
- let truncatedResponses = 0;
191
- let lastEventAt = null;
192
- if (existsSync(config.accessLogPath)) {
193
- let content;
194
- try {
195
- content = await readFile(config.accessLogPath, { encoding: "utf8", signal });
196
- }
197
- catch (error) {
198
- throwIfAborted(signal);
199
- throw error;
200
- }
201
- throwIfAborted(signal);
202
- const lines = content.split(/\r?\n/u).filter(Boolean);
203
- for (const line of lines) {
204
- throwIfAborted(signal);
205
- const event = parseAccessLogLine(line);
206
- if (!event) {
207
- invalidLines += 1;
208
- continue;
209
- }
210
- const timestamp = Date.parse(event.timestamp);
211
- if (!Number.isFinite(timestamp) ||
212
- timestamp < since.getTime() ||
213
- timestamp > until.getTime()) {
214
- continue;
215
- }
216
- totalEvents += 1;
217
- if (isMcpOutputLogLine(event)) {
218
- mcpOutputResponses += 1;
219
- mcpRetrievedBytes += event.retrievedBytes;
220
- mcpReturnedBytes += event.returnedBytes;
221
- compactedResponses += event.compacted ? 1 : 0;
222
- truncatedResponses += event.truncated ? 1 : 0;
223
- if (lastEventAt === null || event.timestamp > lastEventAt) {
224
- lastEventAt = event.timestamp;
225
- }
226
- continue;
227
- }
228
- eventsByAction[event.action] += 1;
229
- if (event.queryHash) {
230
- queryHashes.add(event.queryHash);
231
- }
232
- if (typeof event.resultCount === "number") {
233
- resultCountTotal += event.resultCount;
234
- resultCountEvents += 1;
235
- resultCountsByAction[event.action].total += event.resultCount;
236
- resultCountsByAction[event.action].events += 1;
237
- }
238
- if (lastEventAt === null || event.timestamp > lastEventAt) {
239
- lastEventAt = event.timestamp;
240
- }
241
- }
242
- }
243
- throwIfAborted(signal);
244
- return {
245
- accessLogEnabled: config.accessLog,
246
- since: since.toISOString(),
247
- until: until.toISOString(),
248
- totalEvents,
249
- invalidLines,
250
- eventsByAction,
251
- uniqueQueryHashes: queryHashes.size,
252
- averageResultCount: resultCountEvents === 0 ? null : resultCountTotal / resultCountEvents,
253
- averageResultCountByAction: averageResultCounts(resultCountsByAction),
254
- mcpOutput: {
255
- responses: mcpOutputResponses,
256
- retrievedBytes: mcpRetrievedBytes,
257
- returnedBytes: mcpReturnedBytes,
258
- savedBytes: mcpRetrievedBytes - mcpReturnedBytes,
259
- reductionRatio: mcpRetrievedBytes === 0 ? null : 1 - mcpReturnedBytes / mcpRetrievedBytes,
260
- compactedResponses,
261
- truncatedResponses,
262
- },
263
- lastEventAt,
264
- };
265
- }
266
- function emptyResultCountsByAction() {
267
- return {
268
- ingest: { total: 0, events: 0 },
269
- search: { total: 0, events: 0 },
270
- ask: { total: 0, events: 0 },
271
- research: { total: 0, events: 0 },
272
- evaluate: { total: 0, events: 0 },
273
- "destroy-index": { total: 0, events: 0 },
274
- };
275
- }
276
- function averageResultCounts(stats) {
277
- return {
278
- ingest: averageResultCount(stats.ingest),
279
- search: averageResultCount(stats.search),
280
- ask: averageResultCount(stats.ask),
281
- research: averageResultCount(stats.research),
282
- evaluate: averageResultCount(stats.evaluate),
283
- "destroy-index": averageResultCount(stats["destroy-index"]),
284
- };
285
- }
286
- function averageResultCount(stats) {
287
- return stats.events === 0 ? null : stats.total / stats.events;
288
- }
289
- async function toLogLine(config, event) {
290
- return {
291
- timestamp: new Date().toISOString(),
292
- action: event.action,
293
- queryHash: event.query ? await hashQuery(config, event.query) : undefined,
294
- topK: event.topK,
295
- resultCount: event.resultCount,
296
- redactions: event.redactions,
297
- };
298
- }
299
- async function hashQuery(config, query) {
300
- const salt = await accessLogSalt(config);
301
- return createHmac("sha256", salt).update(query).digest("hex");
302
- }
303
- async function accessLogSalt(config) {
304
- const saltPath = path.join(path.dirname(config.accessLogPath), ACCESS_LOG_SALT_FILE);
305
- const cached = accessLogSalts.get(saltPath);
306
- if (cached) {
307
- return cached;
308
- }
309
- const loading = loadAccessLogSalt(saltPath);
310
- accessLogSalts.set(saltPath, loading);
311
- try {
312
- return await loading;
313
- }
314
- catch (error) {
315
- if (accessLogSalts.get(saltPath) === loading) {
316
- accessLogSalts.delete(saltPath);
317
- }
318
- throw error;
319
- }
320
- }
321
- async function loadAccessLogSalt(saltPath) {
322
- try {
323
- return await readFile(saltPath);
324
- }
325
- catch (error) {
326
- if (!isNodeError(error) || error.code !== "ENOENT") {
327
- throw error;
328
- }
329
- }
330
- const salt = randomBytes(32);
331
- try {
332
- await writeFile(saltPath, salt, { flag: "wx", mode: 0o600 });
333
- await hardenPrivateFile(saltPath);
334
- return salt;
335
- }
336
- catch (error) {
337
- if (isNodeError(error) && error.code === "EEXIST") {
338
- return readFile(saltPath);
339
- }
340
- throw error;
341
- }
342
- }
343
- function emptyEventsByAction() {
344
- return {
345
- ingest: 0,
346
- search: 0,
347
- ask: 0,
348
- research: 0,
349
- evaluate: 0,
350
- "destroy-index": 0,
351
- };
352
- }
353
- function normalizeUsageReportDays(days) {
354
- if (days === undefined) {
355
- return DEFAULT_USAGE_REPORT_DAYS;
356
- }
357
- if (!Number.isSafeInteger(days) || days <= 0 || days > MAX_USAGE_REPORT_DAYS) {
358
- throw new Error(`usage-report days must be an integer between 1 and ${MAX_USAGE_REPORT_DAYS}.`);
359
- }
360
- return days;
361
- }
362
- function parseAccessLogLine(line) {
363
- try {
364
- const parsed = JSON.parse(line);
365
- if (isAccessLogLine(parsed) || isMcpOutputLogLine(parsed)) {
366
- return parsed;
367
- }
368
- return null;
369
- }
370
- catch {
371
- return null;
372
- }
373
- }
374
- function isMcpOutputLogLine(value) {
375
- return (typeof value === "object" &&
376
- value !== null &&
377
- hasTimestamp(value) &&
378
- "kind" in value &&
379
- value.kind === "mcp-output" &&
380
- "tool" in value &&
381
- typeof value.tool === "string" &&
382
- MCP_OUTPUT_TOOL_SET.has(value.tool) &&
383
- hasNonNegativeNumber(value, "retrievedBytes") &&
384
- hasNonNegativeNumber(value, "returnedBytes") &&
385
- hasBoolean(value, "compacted") &&
386
- hasBoolean(value, "truncated"));
387
- }
388
- function isAccessLogLine(value) {
389
- return (typeof value === "object" &&
390
- value !== null &&
391
- hasTimestamp(value) &&
392
- hasAction(value) &&
393
- hasOptionalQueryHash(value) &&
394
- hasOptionalResultCount(value));
395
- }
396
- function hasTimestamp(value) {
397
- return "timestamp" in value && typeof value.timestamp === "string";
398
- }
399
- function hasAction(value) {
400
- return ("action" in value && typeof value.action === "string" && ACCESS_LOG_ACTION_SET.has(value.action));
401
- }
402
- function hasOptionalQueryHash(value) {
403
- return !("queryHash" in value) || typeof value.queryHash === "string";
404
- }
405
- function hasOptionalResultCount(value) {
406
- return !("resultCount" in value) || typeof value.resultCount === "number";
407
- }
408
- function hasNonNegativeNumber(value, key) {
409
- const field = Reflect.get(value, key);
410
- return typeof field === "number" && Number.isFinite(field) && field >= 0;
411
- }
412
- function hasBoolean(value, key) {
413
- return typeof Reflect.get(value, key) === "boolean";
414
- }
415
- //# sourceMappingURL=access-log.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"access-log.js","sourceRoot":"","sources":["../src/access-log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACxE,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAChE,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAiD5E,MAAM,kBAAkB,GAAsB;IAC5C,QAAQ;IACR,QAAQ;IACR,KAAK;IACL,UAAU;IACV,UAAU;IACV,eAAe;CAChB,CAAA;AACD,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAS,kBAAkB,CAAC,CAAA;AACjE,MAAM,gBAAgB,GAAoB;IACxC,eAAe;IACf,YAAY;IACZ,iBAAiB;IACjB,eAAe;CAChB,CAAA;AACD,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAS,gBAAgB,CAAC,CAAA;AAC7D,MAAM,yBAAyB,GAAG,CAAC,CAAA;AACnC,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAA;AAC1C,MAAM,oBAAoB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;AAChD;;;;GAIG;AACH,MAAM,oBAAoB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAA;AAC7C,8EAA8E;AAC9E,MAAM,wBAAwB,GAAG,MAAM,CAAA;AACvC,MAAM,oBAAoB,GAAG,yBAAyB,CAAA;AACtD,MAAM,CAAC,MAAM,6BAA6B,GAAG,KAAK,CAAA;AAClD,MAAM,2BAA2B,GAAG,EAAE,CAAA;AAsBtC,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAgC,CAAA;AAChE,MAAM,cAAc,GAAG,IAAI,GAAG,EAA2B,CAAA;AAEzD,MAAM,UAAU,YAAY,CAAC,MAAc,EAAE,KAAqB;IAChE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACtB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC1B,CAAC;IACD,OAAO,oBAAoB,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE,CAC3D,IAAI,CAAC,SAAS,CAAC,MAAM,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAC/C,CAAA;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,KAAwB;IACtE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACtB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC1B,CAAC;IACD,OAAO,oBAAoB,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE,CAC3D,IAAI,CAAC,SAAS,CAAC;QACb,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;KACA,CAAC,CAC9B,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAc;IACjD,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;IACxD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,2BAA2B,EAAE,CAAA;IACtC,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,oBAAoB,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;QACjD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,KAAK,CAAC,MAAM,CAAA;QACpB,CAAC;IACH,CAAC;IACD,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAA;AACvC,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAc;IACnD,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;IACxD,OAAO,KAAK;QACV,CAAC,CAAC;YACE,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM;YACnC,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,aAAa,EAAE,KAAK,CAAC,aAAa;SACnC;QACH,CAAC,CAAC,2BAA2B,EAAE,CAAA;AACnC,CAAC;AAED,SAAS,oBAAoB,CAAC,aAAqB,EAAE,MAA6B;IAChF,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI;QACnD,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,IAAI;QACZ,cAAc,EAAE,CAAC;QACjB,aAAa,EAAE,CAAC;QAChB,aAAa,EAAE,CAAC;KACjB,CAAA;IACD,gBAAgB,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;IAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,6BAA6B,EAAE,CAAC;QAC1D,KAAK,CAAC,aAAa,IAAI,CAAC,CAAA;QACxB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC1B,CAAC;IACD,OAAO,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QAC5B,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;QACtC,oBAAoB,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;IAC5C,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,aAAqB,EAAE,KAA2B;IAC9E,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/C,OAAM;IACR,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,2BAA2B,CAAC,CAAA;IAClE,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC,MAAM,CAAA;IACnC,MAAM,MAAM,GAAG,mBAAmB,CAAC,aAAa,EAAE,KAAK,CAAC;SACrD,IAAI,CAAC,GAAG,EAAE;QACT,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,MAAM,CAAA;IACrC,CAAC,CAAC;SACD,KAAK,CAAC,GAAG,EAAE;QACV,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,MAAM,CAAA;IACrC,CAAC,CAAC;SACD,OAAO,CAAC,GAAG,EAAE;QACZ,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;YAC1B,KAAK,CAAC,MAAM,EAAE,CAAA;QAChB,CAAC;QACD,KAAK,CAAC,cAAc,GAAG,CAAC,CAAA;QACxB,KAAK,CAAC,MAAM,GAAG,IAAI,CAAA;QACnB,oBAAoB,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;IAC5C,CAAC,CAAC,CAAA;IACJ,KAAK,CAAC,MAAM,GAAG,MAAM,CAAA;AACvB,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,aAAqB,EACrB,KAA6B;IAE7B,MAAM,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAA;IACzD,MAAM,qBAAqB,CAAC,aAAa,CAAC,CAAA;IAC1C,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IACrE,MAAM,UAAU,CAAC,aAAa,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QACvD,QAAQ,EAAE,MAAM;QAChB,IAAI,EAAE,KAAK;KACZ,CAAC,CAAA;IACF,MAAM,iBAAiB,CAAC,aAAa,CAAC,CAAA;AACxC,CAAC;AAED,SAAS,2BAA2B;IAClC,OAAO;QACL,aAAa,EAAE,CAAC;QAChB,cAAc,EAAE,CAAC;QACjB,aAAa,EAAE,CAAC;QAChB,aAAa,EAAE,CAAC;KACjB,CAAA;AACH,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,aAAqB;IACxD,IAAI,IAAI,GAAG,CAAC,CAAA;IACZ,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAA;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAClD,OAAM;QACR,CAAC;QACD,MAAM,KAAK,CAAA;IACb,CAAC;IAED,IAAI,IAAI,IAAI,oBAAoB,EAAE,CAAC;QACjC,OAAM;IACR,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;IACrD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IACnE,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,wBAAwB,CAAC,CAAC,CAAA;IAC9E,MAAM,SAAS,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;AAChE,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,CAAA;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,UAAiC,EAAE;IAEnC,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;IACvC,cAAc,CAAC,MAAM,CAAC,CAAA;IACtB,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;IACrE,OAAO,8BAA8B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AACxD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,MAAc,EACd,UAAiC,EAAE;IAEnC,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;IACvC,cAAc,CAAC,MAAM,CAAC,CAAA;IACtB,MAAM,cAAc,CAAC,MAAM,CAAC,CAAA;IAC5B,cAAc,CAAC,MAAM,CAAC,CAAA;IACtB,MAAM,IAAI,GAAG,wBAAwB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACnD,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAA;IACxB,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,oBAAoB,CAAC,CAAA;IACrE,MAAM,cAAc,GAAG,mBAAmB,EAAE,CAAA;IAC5C,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAA;IACrC,MAAM,oBAAoB,GAAG,yBAAyB,EAAE,CAAA;IACxD,IAAI,WAAW,GAAG,CAAC,CAAA;IACnB,IAAI,YAAY,GAAG,CAAC,CAAA;IACpB,IAAI,gBAAgB,GAAG,CAAC,CAAA;IACxB,IAAI,iBAAiB,GAAG,CAAC,CAAA;IACzB,IAAI,kBAAkB,GAAG,CAAC,CAAA;IAC1B,IAAI,iBAAiB,GAAG,CAAC,CAAA;IACzB,IAAI,gBAAgB,GAAG,CAAC,CAAA;IACxB,IAAI,kBAAkB,GAAG,CAAC,CAAA;IAC1B,IAAI,kBAAkB,GAAG,CAAC,CAAA;IAC1B,IAAI,WAAW,GAAkB,IAAI,CAAA;IAErC,IAAI,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QACrC,IAAI,OAAe,CAAA;QACnB,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;QAC9E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,cAAc,CAAC,MAAM,CAAC,CAAA;YACtB,MAAM,KAAK,CAAA;QACb,CAAC;QACD,cAAc,CAAC,MAAM,CAAC,CAAA;QACtB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACrD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,cAAc,CAAC,MAAM,CAAC,CAAA;YACtB,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAA;YACtC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,YAAY,IAAI,CAAC,CAAA;gBACjB,SAAQ;YACV,CAAC;YACD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;YAC7C,IACE,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAC3B,SAAS,GAAG,KAAK,CAAC,OAAO,EAAE;gBAC3B,SAAS,GAAG,KAAK,CAAC,OAAO,EAAE,EAC3B,CAAC;gBACD,SAAQ;YACV,CAAC;YACD,WAAW,IAAI,CAAC,CAAA;YAChB,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9B,kBAAkB,IAAI,CAAC,CAAA;gBACvB,iBAAiB,IAAI,KAAK,CAAC,cAAc,CAAA;gBACzC,gBAAgB,IAAI,KAAK,CAAC,aAAa,CAAA;gBACvC,kBAAkB,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBAC7C,kBAAkB,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBAC7C,IAAI,WAAW,KAAK,IAAI,IAAI,KAAK,CAAC,SAAS,GAAG,WAAW,EAAE,CAAC;oBAC1D,WAAW,GAAG,KAAK,CAAC,SAAS,CAAA;gBAC/B,CAAC;gBACD,SAAQ;YACV,CAAC;YACD,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACjC,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACpB,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;YAClC,CAAC;YACD,IAAI,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;gBAC1C,gBAAgB,IAAI,KAAK,CAAC,WAAW,CAAA;gBACrC,iBAAiB,IAAI,CAAC,CAAA;gBACtB,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,CAAA;gBAC7D,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,IAAI,CAAC,CAAA;YAChD,CAAC;YACD,IAAI,WAAW,KAAK,IAAI,IAAI,KAAK,CAAC,SAAS,GAAG,WAAW,EAAE,CAAC;gBAC1D,WAAW,GAAG,KAAK,CAAC,SAAS,CAAA;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAED,cAAc,CAAC,MAAM,CAAC,CAAA;IACtB,OAAO;QACL,gBAAgB,EAAE,MAAM,CAAC,SAAS;QAClC,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE;QAC1B,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE;QAC1B,WAAW;QACX,YAAY;QACZ,cAAc;QACd,iBAAiB,EAAE,WAAW,CAAC,IAAI;QACnC,kBAAkB,EAAE,iBAAiB,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,GAAG,iBAAiB;QACzF,0BAA0B,EAAE,mBAAmB,CAAC,oBAAoB,CAAC;QACrE,SAAS,EAAE;YACT,SAAS,EAAE,kBAAkB;YAC7B,cAAc,EAAE,iBAAiB;YACjC,aAAa,EAAE,gBAAgB;YAC/B,UAAU,EAAE,iBAAiB,GAAG,gBAAgB;YAChD,cAAc,EAAE,iBAAiB,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,gBAAgB,GAAG,iBAAiB;YACzF,kBAAkB;YAClB,kBAAkB;SACnB;QACD,WAAW;KACZ,CAAA;AACH,CAAC;AAED,SAAS,yBAAyB;IAChC,OAAO;QACL,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;QAC/B,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;QAC/B,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;QAC5B,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;QACjC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;QACjC,eAAe,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;KACzC,CAAA;AACH,CAAC;AAED,SAAS,mBAAmB,CAC1B,KAAgD;IAEhD,OAAO;QACL,MAAM,EAAE,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC;QACxC,MAAM,EAAE,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC;QACxC,GAAG,EAAE,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC;QAClC,QAAQ,EAAE,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC5C,QAAQ,EAAE,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC5C,eAAe,EAAE,kBAAkB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;KAC5D,CAAA;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAuB;IACjD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAA;AAC/D,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,MAAc,EAAE,KAAqB;IAC5D,OAAO;QACL,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;QACzE,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,UAAU,EAAE,KAAK,CAAC,UAAU;KAC7B,CAAA;AACH,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,MAAc,EAAE,KAAa;IACpD,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,CAAA;IACxC,OAAO,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC/D,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,MAAc;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,oBAAoB,CAAC,CAAA;IACpF,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC3C,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAA;IACf,CAAC;IACD,MAAM,OAAO,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IAC3C,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IACrC,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAA;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,OAAO,EAAE,CAAC;YAC7C,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QACjC,CAAC;QACD,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,QAAgB;IAC/C,IAAI,CAAC;QACH,OAAO,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACnD,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,WAAW,CAAC,EAAE,CAAC,CAAA;IAC5B,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QAC5D,MAAM,iBAAiB,CAAC,QAAQ,CAAC,CAAA;QACjC,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAClD,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAC3B,CAAC;QACD,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB;IAC1B,OAAO;QACL,MAAM,EAAE,CAAC;QACT,MAAM,EAAE,CAAC;QACT,GAAG,EAAE,CAAC;QACN,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,CAAC;QACX,eAAe,EAAE,CAAC;KACnB,CAAA;AACH,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAwB;IACxD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,yBAAyB,CAAA;IAClC,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,GAAG,qBAAqB,EAAE,CAAC;QAC7E,MAAM,IAAI,KAAK,CAAC,sDAAsD,qBAAqB,GAAG,CAAC,CAAA;IACjG,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY;IACtC,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACxC,IAAI,eAAe,CAAC,MAAM,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1D,OAAO,MAAM,CAAA;QACf,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,YAAY,CAAC,KAAK,CAAC;QACnB,MAAM,IAAI,KAAK;QACf,KAAK,CAAC,IAAI,KAAK,YAAY;QAC3B,MAAM,IAAI,KAAK;QACf,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;QAC9B,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;QACnC,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,CAAC;QAC7C,oBAAoB,CAAC,KAAK,EAAE,eAAe,CAAC;QAC5C,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC;QAC9B,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,CAC/B,CAAA;AACH,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,YAAY,CAAC,KAAK,CAAC;QACnB,SAAS,CAAC,KAAK,CAAC;QAChB,oBAAoB,CAAC,KAAK,CAAC;QAC3B,sBAAsB,CAAC,KAAK,CAAC,CAC9B,CAAA;AACH,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,WAAW,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAA;AACpE,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,CACL,QAAQ,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CACjG,CAAA;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAa;IACzC,OAAO,CAAC,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAA;AACvE,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAa;IAC3C,OAAO,CAAC,CAAC,aAAa,IAAI,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAA;AAC3E,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAa,EAAE,GAAW;IACtD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;AAC1E,CAAC;AAED,SAAS,UAAU,CAAC,KAAa,EAAE,GAAW;IAC5C,OAAO,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,SAAS,CAAA;AACrD,CAAC"}
@@ -1,3 +0,0 @@
1
- export declare const DEFAULT_CLI_STDIN_MAX_BYTES: number;
2
- export declare function readBoundedStdin(input: AsyncIterable<string | Uint8Array>, maxBytes?: number): Promise<string>;
3
- //# sourceMappingURL=cli-stdin.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli-stdin.d.ts","sourceRoot":"","sources":["../src/cli-stdin.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,2BAA2B,QAAY,CAAA;AAEpD,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,aAAa,CAAC,MAAM,GAAG,UAAU,CAAC,EACzC,QAAQ,SAA8B,GACrC,OAAO,CAAC,MAAM,CAAC,CAcjB"}
package/dist/cli-stdin.js DELETED
@@ -1,15 +0,0 @@
1
- export const DEFAULT_CLI_STDIN_MAX_BYTES = 64 * 1024;
2
- export async function readBoundedStdin(input, maxBytes = DEFAULT_CLI_STDIN_MAX_BYTES) {
3
- const chunks = [];
4
- let totalBytes = 0;
5
- for await (const chunk of input) {
6
- const buffer = Buffer.from(chunk);
7
- totalBytes += buffer.byteLength;
8
- if (totalBytes > maxBytes) {
9
- throw new Error(`Standard input exceeds the ${maxBytes}-byte CLI limit.`);
10
- }
11
- chunks.push(buffer);
12
- }
13
- return Buffer.concat(chunks, totalBytes).toString("utf8");
14
- }
15
- //# sourceMappingURL=cli-stdin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli-stdin.js","sourceRoot":"","sources":["../src/cli-stdin.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,GAAG,IAAI,CAAA;AAEpD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,KAAyC,EACzC,QAAQ,GAAG,2BAA2B;IAEtC,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,IAAI,UAAU,GAAG,CAAC,CAAA;IAElB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACjC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAA;QAC/B,IAAI,UAAU,GAAG,QAAQ,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,kBAAkB,CAAC,CAAA;QAC3E,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACrB,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;AAC3D,CAAC"}
@@ -1,5 +0,0 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- export declare function runPortableCli(argv?: string[]): Promise<void>;
3
- export declare function servePortableMcp(cwd?: string): Promise<void>;
4
- export declare function createPortableMcpServer(cwd?: string): McpServer;
5
- //# sourceMappingURL=portable-entry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"portable-entry.d.ts","sourceRoot":"","sources":["../src/portable-entry.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AA0CnE,wBAAsB,cAAc,CAAC,IAAI,WAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsDhF;AAeD,wBAAsB,gBAAgB,CAAC,GAAG,SAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAG1E;AAED,wBAAgB,uBAAuB,CAAC,GAAG,SAAiB,GAAG,SAAS,CA0GvE"}