@h-ear/mcp-server 1.0.0-dev.202604170202 → 1.0.0-dev.202604170349
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.
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +2 -0
- package/dist/server.js.map +1 -1
- package/dist/tools/classify-audio.d.ts.map +1 -1
- package/dist/tools/classify-audio.js +64 -14
- package/dist/tools/classify-audio.js.map +1 -1
- package/dist/tools/get-upload-status.d.ts +3 -0
- package/dist/tools/get-upload-status.d.ts.map +1 -0
- package/dist/tools/get-upload-status.js +21 -0
- package/dist/tools/get-upload-status.js.map +1 -0
- package/dist/upload-tracker.d.ts +31 -0
- package/dist/upload-tracker.d.ts.map +1 -0
- package/dist/upload-tracker.js +34 -0
- package/dist/upload-tracker.js.map +1 -0
- package/package.json +1 -1
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIpE,OAAO,EAAE,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIpE,OAAO,EAAE,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAsB/D,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,aAAa,CAAA;CAAE,CAmC/F"}
|
package/dist/server.js
CHANGED
|
@@ -24,6 +24,7 @@ import { registerUpdateWebhook } from './tools/update-webhook.js';
|
|
|
24
24
|
import { registerDeleteWebhook } from './tools/delete-webhook.js';
|
|
25
25
|
import { registerPingWebhook } from './tools/ping-webhook.js';
|
|
26
26
|
import { registerListWebhookDeliveries } from './tools/list-webhook-deliveries.js';
|
|
27
|
+
import { registerGetUploadStatus } from './tools/get-upload-status.js';
|
|
27
28
|
import { registerApiStatus } from './resources/api-status.js';
|
|
28
29
|
import { registerClassifyAudioPrompt } from './prompts/classify-audio.js';
|
|
29
30
|
export function createServer(config) {
|
|
@@ -47,6 +48,7 @@ export function createServer(config) {
|
|
|
47
48
|
registerDeleteWebhook(server, client);
|
|
48
49
|
registerPingWebhook(server, client);
|
|
49
50
|
registerListWebhookDeliveries(server, client);
|
|
51
|
+
registerGetUploadStatus(server);
|
|
50
52
|
// Resources
|
|
51
53
|
registerApiStatus(server, client, config);
|
|
52
54
|
// Prompts
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classify-audio.d.ts","sourceRoot":"","sources":["../../src/tools/classify-audio.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EACH,KAAK,aAAa,EAErB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"classify-audio.d.ts","sourceRoot":"","sources":["../../src/tools/classify-audio.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EACH,KAAK,aAAa,EAErB,MAAM,aAAa,CAAC;AA0CrB,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CAsNpF"}
|
|
@@ -5,6 +5,7 @@ import { createHash } from 'crypto';
|
|
|
5
5
|
import { pipeline } from 'stream/promises';
|
|
6
6
|
import { HearApiError, HEAR_API, getAudioDuration, } from '@h-ear/core';
|
|
7
7
|
import { createProgressReporter } from '../progress.js';
|
|
8
|
+
import { trackerStart, trackerUpdate } from '../upload-tracker.js';
|
|
8
9
|
async function hashFile(filePath) {
|
|
9
10
|
const hash = createHash('sha256');
|
|
10
11
|
await pipeline(createReadStream(filePath, { highWaterMark: 1024 * 1024 }), hash);
|
|
@@ -126,18 +127,20 @@ export function registerClassifyAudio(server, client) {
|
|
|
126
127
|
const result = await client.pollJob(accepted.requestId, onProgress);
|
|
127
128
|
return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
|
|
128
129
|
}
|
|
129
|
-
// Large file: byte-slice upload.
|
|
130
|
+
// Large file: byte-slice upload. Head returns fast; tail runs in background to fit
|
|
131
|
+
// the MCP client tool-call wall budget. AI agent polls getUploadStatus(uploadSessionId)
|
|
132
|
+
// until status='complete', then uses the returned requestId with getJob.
|
|
130
133
|
const fileSize = stat.size;
|
|
131
|
-
const
|
|
132
|
-
const
|
|
133
|
-
onProgress(`Large file (${fileSizeMB.toFixed(1)}MB) — uploading in ${
|
|
134
|
+
const sliceSize = HEAR_API.MAX_FILE_SIZE_BYTES;
|
|
135
|
+
const totalSlices = Math.ceil(fileSize / sliceSize);
|
|
136
|
+
onProgress(`Large file (${fileSizeMB.toFixed(1)}MB) — uploading in ${totalSlices} byte slices`);
|
|
134
137
|
const chunks = [];
|
|
135
|
-
for (let i = 0; i <
|
|
136
|
-
const offset = i *
|
|
137
|
-
const length = Math.min(
|
|
138
|
+
for (let i = 0; i < totalSlices; i++) {
|
|
139
|
+
const offset = i * sliceSize;
|
|
140
|
+
const length = Math.min(sliceSize, fileSize - offset);
|
|
138
141
|
chunks.push({ filePath: params.filePath, offset, length, index: i });
|
|
139
142
|
}
|
|
140
|
-
const
|
|
143
|
+
const sliceOptions = {
|
|
141
144
|
threshold: params.threshold,
|
|
142
145
|
filterMinDurationSeconds: params.filterMinDurationSeconds,
|
|
143
146
|
callbackUrl: params.callbackUrl,
|
|
@@ -145,13 +148,60 @@ export function registerClassifyAudio(server, client) {
|
|
|
145
148
|
latitude: params.latitude,
|
|
146
149
|
longitude: params.longitude,
|
|
147
150
|
...clientMetadata,
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
|
|
151
|
+
};
|
|
152
|
+
// Wait-for-result: caller explicitly opts into the long blocking call (rare on stdio).
|
|
153
|
+
if (waitForResult) {
|
|
154
|
+
const accepted = await client.submitClassifyChunked(chunks, basename(params.filePath), sliceOptions, onProgress);
|
|
155
|
+
onProgress(`Polling job ${accepted.requestId}`);
|
|
156
|
+
const result = await client.pollJob(accepted.requestId, onProgress);
|
|
157
|
+
return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
|
|
158
|
+
}
|
|
159
|
+
// Fire-and-return: head sync (one HTTP RTT), tail in background.
|
|
160
|
+
const head = await client.submitChunkUploadHead(chunks[0], basename(params.filePath), sliceOptions,
|
|
161
|
+
/*isFinal*/ totalSlices === 1, totalSlices, onProgress);
|
|
162
|
+
// Single-slice case: head was also final, requestId already returned.
|
|
163
|
+
if (totalSlices === 1) {
|
|
164
|
+
return { content: [{ type: 'text', text: JSON.stringify(head, null, 2) }] };
|
|
151
165
|
}
|
|
152
|
-
|
|
153
|
-
const
|
|
154
|
-
|
|
166
|
+
const headResult = head;
|
|
167
|
+
const startedAt = new Date().toISOString();
|
|
168
|
+
trackerStart({
|
|
169
|
+
uploadSessionId: headResult.uploadSessionId,
|
|
170
|
+
fileName: basename(params.filePath),
|
|
171
|
+
totalSlices,
|
|
172
|
+
slicesUploaded: headResult.chunksReceived,
|
|
173
|
+
totalBytes: headResult.totalBytes,
|
|
174
|
+
startedAt,
|
|
175
|
+
status: 'uploading',
|
|
176
|
+
});
|
|
177
|
+
// Background: upload remaining slices. Process stays alive between MCP tool calls.
|
|
178
|
+
void client.submitChunkUploadTail(headResult.uploadSessionId, chunks.slice(1), basename(params.filePath), headResult.chunksReceived, totalSlices, (msg) => {
|
|
179
|
+
// Best-effort: bump slicesUploaded each time the tail logs a slice ack.
|
|
180
|
+
const m = /server confirmed (\d+) slices/.exec(msg);
|
|
181
|
+
if (m) {
|
|
182
|
+
trackerUpdate(headResult.uploadSessionId, { slicesUploaded: parseInt(m[1], 10) });
|
|
183
|
+
}
|
|
184
|
+
process.stderr.write(`[h-ear-mcp] ${msg}\n`);
|
|
185
|
+
}).then((accepted) => {
|
|
186
|
+
trackerUpdate(headResult.uploadSessionId, {
|
|
187
|
+
status: 'complete',
|
|
188
|
+
slicesUploaded: totalSlices,
|
|
189
|
+
requestId: accepted.requestId,
|
|
190
|
+
});
|
|
191
|
+
}).catch((err) => {
|
|
192
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
193
|
+
trackerUpdate(headResult.uploadSessionId, { status: 'failed', error: msg });
|
|
194
|
+
process.stderr.write(`[h-ear-mcp] background upload failed for session ${headResult.uploadSessionId}: ${msg}\n`);
|
|
195
|
+
});
|
|
196
|
+
return { content: [{ type: 'text', text: JSON.stringify({
|
|
197
|
+
status: 'uploading',
|
|
198
|
+
uploadSessionId: headResult.uploadSessionId,
|
|
199
|
+
totalSlices,
|
|
200
|
+
slicesUploaded: headResult.chunksReceived,
|
|
201
|
+
totalBytes: headResult.totalBytes,
|
|
202
|
+
fileName: basename(params.filePath),
|
|
203
|
+
message: `Upload started in background. Poll getUploadStatus('${headResult.uploadSessionId}') until status='complete', then use the returned requestId with getJob.`,
|
|
204
|
+
}, null, 2) }] };
|
|
155
205
|
}
|
|
156
206
|
catch (error) {
|
|
157
207
|
// POLL_TIMEOUT: job is still processing server-side (large file / chunk-by-requeue).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classify-audio.js","sourceRoot":"","sources":["../../src/tools/classify-audio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAc,MAAM,IAAI,CAAC;AACtF,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EAEH,YAAY,EAAE,QAAQ,EAAE,gBAAgB,GAC3C,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAExD,KAAK,UAAU,QAAQ,CAAC,QAAgB;IACpC,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IACjF,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;;;;;;GAWG;AACH,KAAK,UAAU,mBAAmB,CAAC,QAAgB,EAAE,QAAe;IAChE,MAAM,GAAG,GAA6B;QAClC,kBAAkB,EAAE,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE;QAChD,gBAAgB,EAAE,QAAQ,CAAC,QAAQ,CAAC;KACvC,CAAC;IACF,IAAI,CAAC;QACD,GAAG,CAAC,QAAQ,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACL,wCAAwC;IAC5C,CAAC;IACD,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC1C,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACb,GAAG,CAAC,sBAAsB,GAAG,MAAM,CAAC;IACxC,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED,MAAM,OAAO,GAAG,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtD,MAAM,KAAK,GAAG,QAAQ,CAAC,mBAAmB,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;AAE3D,MAAM,UAAU,qBAAqB,CAAC,MAAiB,EAAE,MAAqB;IAC1E,MAAM,CAAC,IAAI,CACP,eAAe,EACf,+KAA+K,OAAO,gBAAgB,KAAK,kNAAkN,EAC7Z;QACI,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aAC1B,QAAQ,CAAC,qMAAqM,CAAC;QACpN,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;aAC3B,QAAQ,CAAC,2BAA2B,CAAC;QAC1C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;aAC3C,QAAQ,CAAC,6EAA6E,CAAC;QAC5F,wBAAwB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;aAC5D,QAAQ,CAAC,2CAA2C,CAAC;QAC1D,aAAa,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;aAChC,QAAQ,CAAC,8IAA8I,CAAC;QAC7J,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;aACnC,QAAQ,CAAC,2LAA2L,CAAC;QAC1M,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aAChC,QAAQ,CAAC,oFAAoF,CAAC;QACnG,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;aAC3C,QAAQ,CAAC,uGAAuG,CAAC;QACtH,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;aAC9C,QAAQ,CAAC,yGAAyG,CAAC;KAC3H,EACD,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,EAC3F,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;QACpB,IAAI,CAAC;YACD,MAAM,EAAE,UAAU,EAAE,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;YACrD,wEAAwE;YACxE,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,KAAK,IAAI,IAAI,MAAM,CAAC,aAAa,KAAK,MAAM,CAAC;YAEvF,wDAAwD;YACxD,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,EAAE,CAAC;gBACvE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,+DAA+D,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAC1I,CAAC;YAED,kFAAkF;YAClF,IAAI,CAAC;gBACD,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACzB,CAAC;YAAC,OAAO,OAAO,EAAE,CAAC;gBACf,IAAI,OAAO,YAAY,YAAY,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,GAAG,IAAI,OAAO,CAAC,IAAI,KAAK,iBAAiB,CAAC,EAAE,CAAC;oBACpG,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,0BAA0B,OAAO,CAAC,OAAO,2DAA2D,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gBAC/K,CAAC;gBACD,+EAA+E;YACnF,CAAC;YAED,kCAAkC;YAClC,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;gBACb,MAAM,cAAc,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,wBAAwB,EAAE,MAAM,CAAC,wBAAwB,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;gBACnQ,IAAI,MAAM,CAAC,WAAW,IAAI,CAAC,aAAa,EAAE,CAAC;oBACvC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;oBAC7D,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC7F,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;gBACjE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YAC3F,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACnB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,iCAAiC,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAC5G,CAAC;YAED,kCAAkC;YAClC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC/B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,0BAA0B,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACtH,CAAC;YACD,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YAClF,IAAI,CAAE,QAAQ,CAAC,iBAAuC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,8BAA8B,GAAG,gBAAgB,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACrI,CAAC;YAED,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACvC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;YAE7C,mFAAmF;YACnF,MAAM,cAAc,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAExE,4FAA4F;YAC5F,iDAAiD;YACjD,MAAM,QAAQ,GAAG,cAAc,CAAC,sBAAsB,IAAI,CAAC,CAAC;YAC5D,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,mBAAmB,IAAI,QAAQ,IAAI,QAAQ,CAAC,oBAAoB,EAAE,CAAC;gBACzF,UAAU,CAAC,WAAW,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBAChF,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACjD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;oBACpF,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,wBAAwB,EAAE,MAAM,CAAC,wBAAwB;oBACzD,WAAW,EAAE,MAAM,CAAC,WAAW;oBAC/B,cAAc,EAAE,MAAM,CAAC,cAAc;oBACrC,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,GAAG,cAAc;iBACpB,CAAC,CAAC;gBACH,IAAI,MAAM,CAAC,WAAW,IAAI,CAAC,aAAa,EAAE,CAAC;oBACvC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC7F,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;gBACpE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YAC3F,CAAC;YAED,2FAA2F;YAC3F,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;YAC3B,MAAM,SAAS,GAAG,QAAQ,CAAC,mBAAmB,CAAC;YAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC;YAEpD,UAAU,CAAC,eAAe,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,sBAAsB,WAAW,SAAS,CAAC,CAAC;YAE3F,MAAM,MAAM,GAAkB,EAAE,CAAC;YACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnC,MAAM,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;gBAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,GAAG,MAAM,CAAC,CAAC;gBACtD,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YACzE,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAC/C,MAAM,EACN,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EACzB;gBACI,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,wBAAwB,EAAE,MAAM,CAAC,wBAAwB;gBACzD,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,GAAG,cAAc;aACpB,EACD,UAAU,CACb,CAAC;YAEF,IAAI,MAAM,CAAC,WAAW,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YAC7F,CAAC;YACD,UAAU,CAAC,eAAe,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YACpE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QAC3F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,qFAAqF;YACrF,uEAAuE;YACvE,IAAI,KAAK,YAAY,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACpF,MAAM,MAAM,GAAG;oBACX,MAAM,EAAE,YAAY;oBACpB,KAAK,EAAE,KAAK,CAAC,SAAS;oBACtB,OAAO,EAAE,8CAA8C,KAAK,CAAC,SAAS,oCAAoC;oBAC1G,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC;iBAC9D,CAAC;gBACF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YAC3F,CAAC;YACD,oGAAoG;YACpG,IAAI,KAAK,YAAY,YAAY,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,cAAc,IAAI,KAAK,CAAC,IAAI,KAAK,4BAA4B,CAAC,EAAE,CAAC;gBACrI,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,0BAA0B,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACpH,CAAC;YACD,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACnE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,0BAA0B,GAAG,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC1G,CAAC;IACL,CAAC,CACJ,CAAC;AACN,CAAC"}
|
|
1
|
+
{"version":3,"file":"classify-audio.js","sourceRoot":"","sources":["../../src/tools/classify-audio.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-upload-status.d.ts","sourceRoot":"","sources":["../../src/tools/get-upload-status.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAuB/D"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { trackerGet } from '../upload-tracker.js';
|
|
3
|
+
export function registerGetUploadStatus(server) {
|
|
4
|
+
server.tool('getUploadStatus', 'Check the status of an in-flight byte-slice upload started by classifyAudio in fire-and-return mode. Returns slice progress, and once status is "complete", a requestId you can pass to getJob. State lives in the MCP server process — if the process restarted since the upload started, the session will not be found.', {
|
|
5
|
+
uploadSessionId: z.string().min(1)
|
|
6
|
+
.describe('The uploadSessionId returned by classifyAudio for large files.'),
|
|
7
|
+
}, { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false }, async (params) => {
|
|
8
|
+
const state = trackerGet(params.uploadSessionId);
|
|
9
|
+
if (!state) {
|
|
10
|
+
return {
|
|
11
|
+
content: [{
|
|
12
|
+
type: 'text',
|
|
13
|
+
text: `No upload session found in this MCP process for ${params.uploadSessionId}. The MCP server may have restarted, or the session may have been started by a different process. The server-side session itself may still be live (10-min TTL) — try listJobs to see if the upload completed.`,
|
|
14
|
+
}],
|
|
15
|
+
isError: true,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
return { content: [{ type: 'text', text: JSON.stringify(state, null, 2) }] };
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=get-upload-status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-upload-status.js","sourceRoot":"","sources":["../../src/tools/get-upload-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,UAAU,uBAAuB,CAAC,MAAiB;IACrD,MAAM,CAAC,IAAI,CACP,iBAAiB,EACjB,2TAA2T,EAC3T;QACI,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;aAC7B,QAAQ,CAAC,gEAAgE,CAAC;KAClF,EACD,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,EAC1F,KAAK,EAAE,MAAM,EAAE,EAAE;QACb,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO;gBACH,OAAO,EAAE,CAAC;wBACN,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,mDAAmD,MAAM,CAAC,eAAe,gNAAgN;qBAClS,CAAC;gBACF,OAAO,EAAE,IAAI;aAChB,CAAC;QACN,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC1F,CAAC,CACJ,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-memory tracker for in-flight byte-slice uploads on the MCP stdio server.
|
|
3
|
+
*
|
|
4
|
+
* Why this exists: `classifyAudio` returns immediately after slice 0 to stay
|
|
5
|
+
* within the MCP client's tool-call wall budget. The tail upload (slices 1..N)
|
|
6
|
+
* runs in the background of the same Node process. AI agents poll
|
|
7
|
+
* `getUploadStatus(uploadSessionId)` to learn when the tail has produced a
|
|
8
|
+
* `requestId` they can pass to `getJob`.
|
|
9
|
+
*
|
|
10
|
+
* Lifetime: lives in the singleton MCP server process between tool calls.
|
|
11
|
+
* Lost on process restart — same blast radius as today's in-flight promise.
|
|
12
|
+
*/
|
|
13
|
+
export type UploadState = {
|
|
14
|
+
uploadSessionId: string;
|
|
15
|
+
fileName: string;
|
|
16
|
+
totalSlices: number;
|
|
17
|
+
slicesUploaded: number;
|
|
18
|
+
totalBytes: number;
|
|
19
|
+
startedAt: string;
|
|
20
|
+
lastUpdatedAt: string;
|
|
21
|
+
status: 'uploading' | 'complete' | 'failed';
|
|
22
|
+
requestId?: string;
|
|
23
|
+
error?: string;
|
|
24
|
+
};
|
|
25
|
+
export declare function trackerStart(state: Omit<UploadState, 'lastUpdatedAt'>): void;
|
|
26
|
+
export declare function trackerUpdate(uploadSessionId: string, patch: Partial<UploadState>): void;
|
|
27
|
+
export declare function trackerGet(uploadSessionId: string): UploadState | undefined;
|
|
28
|
+
export declare function trackerSize(): number;
|
|
29
|
+
/** Test-only: clear the tracker between cases. */
|
|
30
|
+
export declare function trackerReset(): void;
|
|
31
|
+
//# sourceMappingURL=upload-tracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upload-tracker.d.ts","sourceRoot":"","sources":["../src/upload-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,MAAM,WAAW,GAAG;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,WAAW,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAIF,wBAAgB,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,GAAG,IAAI,CAE5E;AAED,wBAAgB,aAAa,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAIxF;AAED,wBAAgB,UAAU,CAAC,eAAe,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAE3E;AAED,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED,kDAAkD;AAClD,wBAAgB,YAAY,IAAI,IAAI,CAEnC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-memory tracker for in-flight byte-slice uploads on the MCP stdio server.
|
|
3
|
+
*
|
|
4
|
+
* Why this exists: `classifyAudio` returns immediately after slice 0 to stay
|
|
5
|
+
* within the MCP client's tool-call wall budget. The tail upload (slices 1..N)
|
|
6
|
+
* runs in the background of the same Node process. AI agents poll
|
|
7
|
+
* `getUploadStatus(uploadSessionId)` to learn when the tail has produced a
|
|
8
|
+
* `requestId` they can pass to `getJob`.
|
|
9
|
+
*
|
|
10
|
+
* Lifetime: lives in the singleton MCP server process between tool calls.
|
|
11
|
+
* Lost on process restart — same blast radius as today's in-flight promise.
|
|
12
|
+
*/
|
|
13
|
+
const tracker = new Map();
|
|
14
|
+
export function trackerStart(state) {
|
|
15
|
+
tracker.set(state.uploadSessionId, { ...state, lastUpdatedAt: state.startedAt });
|
|
16
|
+
}
|
|
17
|
+
export function trackerUpdate(uploadSessionId, patch) {
|
|
18
|
+
const existing = tracker.get(uploadSessionId);
|
|
19
|
+
if (!existing) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
tracker.set(uploadSessionId, { ...existing, ...patch, lastUpdatedAt: new Date().toISOString() });
|
|
23
|
+
}
|
|
24
|
+
export function trackerGet(uploadSessionId) {
|
|
25
|
+
return tracker.get(uploadSessionId);
|
|
26
|
+
}
|
|
27
|
+
export function trackerSize() {
|
|
28
|
+
return tracker.size;
|
|
29
|
+
}
|
|
30
|
+
/** Test-only: clear the tracker between cases. */
|
|
31
|
+
export function trackerReset() {
|
|
32
|
+
tracker.clear();
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=upload-tracker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upload-tracker.js","sourceRoot":"","sources":["../src/upload-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAeH,MAAM,OAAO,GAAG,IAAI,GAAG,EAAuB,CAAC;AAE/C,MAAM,UAAU,YAAY,CAAC,KAAyC;IAClE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,GAAG,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;AACrF,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,eAAuB,EAAE,KAA2B;IAC9E,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC9C,IAAI,CAAC,QAAQ,EAAE,CAAC;QAAC,OAAO;IAAC,CAAC;IAC1B,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,EAAE,GAAG,QAAQ,EAAE,GAAG,KAAK,EAAE,aAAa,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AACrG,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,eAAuB;IAC9C,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,WAAW;IACvB,OAAO,OAAO,CAAC,IAAI,CAAC;AACxB,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,YAAY;IACxB,OAAO,CAAC,KAAK,EAAE,CAAC;AACpB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@h-ear/mcp-server",
|
|
3
|
-
"version": "1.0.0-dev.
|
|
3
|
+
"version": "1.0.0-dev.202604170349",
|
|
4
4
|
"mcpName": "io.github.badajoz95/h-ear",
|
|
5
5
|
"description": "MCP server for the H-ear World audio classification API — connect Claude, ChatGPT, and other AI agents to 521+ sound classes",
|
|
6
6
|
"type": "module",
|