@try-works/dsh-tool-mode 0.5.48 → 0.5.50

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.
@@ -47,8 +47,8 @@
47
47
  "modelSizeMB": null,
48
48
  "appleOnly": false,
49
49
  "closedBeta": false,
50
- "verifiedRunnableOnWindows": false,
51
- "windowsSupport": "browser-only",
50
+ "verifiedRunnableOnWindows": true,
51
+ "windowsSupport": "onnxruntime-node",
52
52
  "npmPackage": "@desert-ant-labs/clear",
53
53
  "npmSubpath": "/native",
54
54
  "requiresRuntime": [],
@@ -58,17 +58,20 @@
58
58
  "hfRepo": "https://huggingface.co/desert-ant-labs/clear",
59
59
  "tool": {
60
60
  "name": "enhance_speech",
61
- "description": "Clean up a recording on device: remove noise and room echo and level the loudness to a podcast-ready 48 kHz.",
61
+ "description": "Denoise and dereverb a speech recording on device and return the enhanced 48 kHz mono WAV with honest coverage of the analysed audio.",
62
62
  "params": {
63
- "audio_path": "Absolute path to the input audio or video file.",
64
- "output_path": "Absolute path to write the enhanced audio to."
63
+ "audio_path": "Absolute path to the WAV file. Read from the caller's granted filesystem, never uploaded."
65
64
  },
66
- "returns": "The path of the enhanced audio file."
65
+ "returns": "Base64 48 kHz mono WAV, sample rate, duration and coverage."
67
66
  },
68
67
  "skill": {
69
68
  "name": "desert-ant-clear",
70
69
  "description": "Enhance noisy speech recordings on device with the Desert Ant Clear model.",
71
70
  "whenToUse": "Use when a recording needs denoising, dereverberation or loudness normalization before publication."
71
+ },
72
+ "provider": {
73
+ "extension": "@try-works/extension-clear-recipe",
74
+ "modelId": "clear"
72
75
  }
73
76
  },
74
77
  {
@@ -119,8 +122,8 @@
119
122
  "modelSizeMB": null,
120
123
  "appleOnly": false,
121
124
  "closedBeta": false,
122
- "verifiedRunnableOnWindows": false,
123
- "windowsSupport": "browser-only",
125
+ "verifiedRunnableOnWindows": true,
126
+ "windowsSupport": "onnxruntime-node",
124
127
  "npmPackage": "@desert-ant-labs/ear",
125
128
  "npmSubpath": "/native",
126
129
  "requiresRuntime": [],
@@ -129,17 +132,25 @@
129
132
  "docsUrl": "https://desertant.com/models/ear/",
130
133
  "hfRepo": "https://huggingface.co/desert-ant-labs/ear",
131
134
  "tool": {
132
- "name": "detect_spoken_language",
133
- "description": "Identify which language is being spoken in a recording, before transcription starts, across 102 languages.",
135
+ "name": "identify_language",
136
+ "description": "Identify the spoken language of an audio recording on device: the most likely language, its confidence, a reliability flag and the top candidates.",
134
137
  "params": {
135
- "audio_path": "Absolute path to the audio or video file."
138
+ "audio_path": "Absolute path to the WAV file. Read from the caller's granted filesystem, never uploaded.",
139
+ "windows": {
140
+ "description": "How many 30 second windows to listen to, spread across the recording and ranked by syllabic modulation. Defaults to 3.",
141
+ "type": "integer"
142
+ }
136
143
  },
137
- "returns": "The detected spoken language with a confidence and runner-up candidates."
144
+ "returns": "language, confidence, isReliable, ranked candidates and window timings."
138
145
  },
139
146
  "skill": {
140
147
  "name": "desert-ant-ear",
141
148
  "description": "Identify the spoken language of a recording on device with the Desert Ant Ear model.",
142
149
  "whenToUse": "Use to pick a transcription language or route audio before running speech recognition."
150
+ },
151
+ "provider": {
152
+ "extension": "@try-works/extension-ear-recipe",
153
+ "modelId": "ear"
143
154
  }
144
155
  },
145
156
  {
@@ -154,8 +165,8 @@
154
165
  "modelSizeMB": 10.2,
155
166
  "appleOnly": false,
156
167
  "closedBeta": false,
157
- "verifiedRunnableOnWindows": false,
158
- "windowsSupport": "browser-only",
168
+ "verifiedRunnableOnWindows": true,
169
+ "windowsSupport": "onnxruntime-node",
159
170
  "npmPackage": "@desert-ant-labs/emo",
160
171
  "npmSubpath": "/native",
161
172
  "requiresRuntime": [],
@@ -164,21 +175,25 @@
164
175
  "docsUrl": "https://desertant.com/models/emo/",
165
176
  "hfRepo": "https://huggingface.co/desert-ant-labs/emo",
166
177
  "tool": {
167
- "name": "suggest_emoji",
168
- "description": "Suggest emoji that fit a piece of text, in 22 languages, running entirely on device.",
178
+ "name": "suggest_emojis",
179
+ "description": "Suggest emojis for a piece of text on device: the top labels by probability with their confidences.",
169
180
  "params": {
170
- "text": "The text to suggest emoji for.",
181
+ "text": "The text to suggest emojis for, counted in Unicode code points, 1..1024. Empty or whitespace-only text is refused.",
171
182
  "limit": {
172
- "description": "Maximum number of suggestions to return (default 5).",
183
+ "description": "How many suggestions to return: the top labels by descending probability. Defaults to 5.",
173
184
  "type": "integer"
174
185
  }
175
186
  },
176
- "returns": "Ranked emoji suggestions with confidence scores."
187
+ "returns": "Top emoji labels by probability with confidences."
177
188
  },
178
189
  "skill": {
179
190
  "name": "desert-ant-emo",
180
191
  "description": "Suggest fitting emoji for text with the Desert Ant Emo model.",
181
192
  "whenToUse": "Use when writing release notes, commit summaries or UI copy that should carry emoji."
193
+ },
194
+ "provider": {
195
+ "extension": "@try-works/extension-emo-recipe",
196
+ "modelId": "emo"
182
197
  }
183
198
  },
184
199
  {
@@ -313,8 +328,8 @@
313
328
  "modelSizeMB": 9.2,
314
329
  "appleOnly": false,
315
330
  "closedBeta": false,
316
- "verifiedRunnableOnWindows": false,
317
- "windowsSupport": "browser-only",
331
+ "verifiedRunnableOnWindows": true,
332
+ "windowsSupport": "onnxruntime-node",
318
333
  "npmPackage": "@desert-ant-labs/moderator",
319
334
  "npmSubpath": "/native",
320
335
  "requiresRuntime": [],
@@ -323,20 +338,27 @@
323
338
  "docsUrl": "https://desertant.com/models/moderator/",
324
339
  "hfRepo": "https://huggingface.co/desert-ant-labs/moderator",
325
340
  "tool": {
326
- "name": "detect_nsfw",
327
- "description": "Check images for nudity or sexual content on device before they are uploaded or shown.",
341
+ "name": "classify_nsfw",
342
+ "description": "Check an image for nudity or sexual content on device: per-region scores, an NSFW decision at a threshold, and the policy and quality used.",
328
343
  "params": {
329
- "image_paths": {
330
- "description": "Absolute paths of the images to check.",
331
- "type": "string[]"
332
- }
344
+ "image_path": "Absolute path to the PNG file. Read from the caller's granted filesystem, never uploaded.",
345
+ "quality": "How many crops to score: fast = 1 center crop, balanced = 4 crops, accurate = 8 crops. Defaults to balanced.",
346
+ "threshold": {
347
+ "description": "Decision threshold; isNSFW is true when score >= threshold. Defaults to 0.5.",
348
+ "type": "number"
349
+ },
350
+ "policy": "standard counts all five heads; allowTopless counts all but nipples. Defaults to standard."
333
351
  },
334
- "returns": "A per-image NSFW verdict with score and labels."
352
+ "returns": "isNSFW, score, threshold, policy, quality, per-region scores and crops."
335
353
  },
336
354
  "skill": {
337
355
  "name": "desert-ant-moderator",
338
356
  "description": "Screen images for NSFW content on device with the Desert Ant Moderator model.",
339
357
  "whenToUse": "Use to gate user-supplied images before storing, publishing or sending them anywhere."
358
+ },
359
+ "provider": {
360
+ "extension": "@try-works/extension-moderator-recipe",
361
+ "modelId": "moderator"
340
362
  }
341
363
  },
342
364
  {
@@ -351,8 +373,8 @@
351
373
  "modelSizeMB": null,
352
374
  "appleOnly": false,
353
375
  "closedBeta": false,
354
- "verifiedRunnableOnWindows": false,
355
- "windowsSupport": "browser-only",
376
+ "verifiedRunnableOnWindows": true,
377
+ "windowsSupport": "native-node",
356
378
  "npmPackage": "@desert-ant-labs/redact",
357
379
  "npmSubpath": "/native",
358
380
  "requiresRuntime": [],
@@ -361,25 +383,21 @@
361
383
  "docsUrl": "https://desertant.com/models/redact/",
362
384
  "hfRepo": "https://huggingface.co/desert-ant-labs/redact",
363
385
  "tool": {
364
- "name": "redact_pii",
365
- "description": "Replace personal data (names, emails, phone numbers, addresses, card numbers and more) in text with stable placeholders, on device, before the text reaches any remote service.",
386
+ "name": "redact_text",
387
+ "description": "Detect PII and secrets in text as labelled UTF-16 spans, with honest coverage when the local window cap truncates a long document.",
366
388
  "params": {
367
- "text": "The text to redact.",
368
- "labels": {
369
- "description": "Optional list of entity labels to restrict redaction to, for example [\"EMAIL\", \"PHONE\"].",
370
- "type": "string[]"
371
- },
372
- "minimum_confidence": {
373
- "description": "Optional confidence floor between 0 and 1 (default 0.6).",
374
- "type": "number"
375
- }
389
+ "text": "The text to redact. Long documents are processed up to the local window cap; coverage reports truncation."
376
390
  },
377
- "returns": "The redacted text plus the placeholder map, so originals can be restored after a remote round trip."
391
+ "returns": "Labelled UTF-16 spans and coverage of the analysed text."
378
392
  },
379
393
  "skill": {
380
394
  "name": "desert-ant-redact",
381
395
  "description": "Strip personal data from text on device with the Desert Ant Redact model before sending it to any remote service.",
382
396
  "whenToUse": "Use before sending logs, transcripts, tickets or documents containing names, emails or numbers to a remote model or API."
397
+ },
398
+ "provider": {
399
+ "extension": "@try-works/extension-redact",
400
+ "modelId": "redact"
383
401
  }
384
402
  },
385
403
  {
@@ -430,8 +448,8 @@
430
448
  "modelSizeMB": null,
431
449
  "appleOnly": false,
432
450
  "closedBeta": false,
433
- "verifiedRunnableOnWindows": false,
434
- "windowsSupport": "browser-only",
451
+ "verifiedRunnableOnWindows": true,
452
+ "windowsSupport": "native-node",
435
453
  "npmPackage": "@desert-ant-labs/shapes",
436
454
  "npmSubpath": "/native",
437
455
  "requiresRuntime": [],
@@ -440,18 +458,25 @@
440
458
  "docsUrl": "https://desertant.com/models/shapes/",
441
459
  "hfRepo": "https://huggingface.co/desert-ant-labs/shapes",
442
460
  "tool": {
443
- "name": "recognize_shape",
444
- "description": "Turn a single hand-drawn stroke into a clean shape: rectangle, ellipse, triangle, star or line.",
461
+ "name": "shape_recognize",
462
+ "description": "Recognize a single hand-drawn stroke as one of the Shapes classes and return the ranked candidates with confidences.",
445
463
  "params": {
446
- "points": "The stroke as an array of [x, y] points in drawing order.",
447
- "closed": "Whether the stroke is a closed shape."
464
+ "points": "The stroke in drawing order as an array of [x, y] points (first stroke only).",
465
+ "closed": {
466
+ "description": "Whether the stroke was drawn closed; the fitted-geometry gates use it.",
467
+ "type": "boolean"
468
+ }
448
469
  },
449
- "returns": "The recognized shape with a confidence and runner-up candidates."
470
+ "returns": "The recognized shape, its confidence, the ranked candidates and rejected labels."
450
471
  },
451
472
  "skill": {
452
473
  "name": "desert-ant-shapes",
453
474
  "description": "Recognize hand-drawn strokes as clean shapes with the Desert Ant Shapes model.",
454
475
  "whenToUse": "Use in drawing or diagram tooling to snap an ink stroke to a geometric shape."
476
+ },
477
+ "provider": {
478
+ "extension": "@try-works/extension-shapes-recipe",
479
+ "modelId": "shapes"
455
480
  }
456
481
  },
457
482
  {
@@ -585,10 +610,10 @@
585
610
  "output": "[{ start, end, word }] filler spans to cut",
586
611
  "languages": null,
587
612
  "modelSizeMB": null,
588
- "appleOnly": true,
613
+ "appleOnly": false,
589
614
  "closedBeta": false,
590
- "verifiedRunnableOnWindows": false,
591
- "windowsSupport": "apple-only",
615
+ "verifiedRunnableOnWindows": true,
616
+ "windowsSupport": "onnxruntime-node",
592
617
  "npmPackage": null,
593
618
  "npmSubpath": null,
594
619
  "requiresRuntime": [],
@@ -598,16 +623,20 @@
598
623
  "hfRepo": "https://huggingface.co/desert-ant-labs/uhm",
599
624
  "tool": {
600
625
  "name": "detect_fillers",
601
- "description": "Find every um, uh and hmm in a recording with the exact span to cut.",
626
+ "description": "Find every uh, um, hmm and filler \"and\" in a recording on device and return the millisecond spans to cut, with honest coverage.",
602
627
  "params": {
603
- "audio_path": "Absolute path to the audio or video file."
628
+ "audio_path": "Absolute path to the audio to analyse. Read from the caller's granted filesystem, never uploaded."
604
629
  },
605
- "returns": "Filler spans with start and end times in seconds, ready to cut."
630
+ "returns": "Millisecond filler spans to cut, plus coverage."
606
631
  },
607
632
  "skill": {
608
633
  "name": "desert-ant-uhm",
609
634
  "description": "Detect filler words in speech on device with the Desert Ant Uhm model.",
610
635
  "whenToUse": "Use when editing spoken audio to remove hesitations and tighten a transcript."
636
+ },
637
+ "provider": {
638
+ "extension": "@try-works/extension-uhm-recipe",
639
+ "modelId": "uhm"
611
640
  }
612
641
  },
613
642
  {
package/client/index.js CHANGED
@@ -2233,12 +2233,11 @@ function createToolInsights(createElement, reactLib) {
2233
2233
  "name": "Clear",
2234
2234
  "summary": "On-device speech enhancement: denoise, dereverb and loudness-normalize to 48 kHz.",
2235
2235
  "package": "@desert-ant-labs/clear",
2236
- "extension": null,
2236
+ "extension": "@try-works/extension-clear-recipe",
2237
2237
  "capability": "audio.speech-enhancement",
2238
2238
  "sizeMB": null,
2239
2239
  "license": "source-available",
2240
- "runnable": false,
2241
- "reason": "Clear has no prebuilt native build for win32-x64: @desert-ant-labs/clear/native supports linux-x64, linux-arm64 and darwin-arm64 only."
2240
+ "runnable": true
2242
2241
  },
2243
2242
  {
2244
2243
  "id": "clips",
@@ -2257,24 +2256,22 @@ function createToolInsights(createElement, reactLib) {
2257
2256
  "name": "Ear",
2258
2257
  "summary": "On-device spoken language identification across 102 languages from a short audio stretch.",
2259
2258
  "package": "@desert-ant-labs/ear",
2260
- "extension": null,
2259
+ "extension": "@try-works/extension-ear-recipe",
2261
2260
  "capability": "audio.spoken-language-identification",
2262
2261
  "sizeMB": null,
2263
2262
  "license": "source-available",
2264
- "runnable": false,
2265
- "reason": "Ear has no prebuilt native build for win32-x64: @desert-ant-labs/ear/native supports linux-x64, linux-arm64 and darwin-arm64 only."
2263
+ "runnable": true
2266
2264
  },
2267
2265
  {
2268
2266
  "id": "emo",
2269
2267
  "name": "Emo",
2270
2268
  "summary": "Type a task or message and get the emoji that fit, in 22 languages, on the device.",
2271
2269
  "package": "@desert-ant-labs/emo",
2272
- "extension": null,
2270
+ "extension": "@try-works/extension-emo-recipe",
2273
2271
  "capability": "text.emoji-suggestion",
2274
2272
  "sizeMB": 10.2,
2275
2273
  "license": "source-available",
2276
- "runnable": false,
2277
- "reason": "Emo has no prebuilt native build for win32-x64: @desert-ant-labs/emo/native supports linux-x64, linux-arm64 and darwin-arm64 only."
2274
+ "runnable": true
2278
2275
  },
2279
2276
  {
2280
2277
  "id": "eye",
@@ -2317,24 +2314,22 @@ function createToolInsights(createElement, reactLib) {
2317
2314
  "name": "Moderator",
2318
2315
  "summary": "On-device NSFW detection that flags nudity before upload, trained only on licensed and synthetic data.",
2319
2316
  "package": "@desert-ant-labs/moderator",
2320
- "extension": null,
2317
+ "extension": "@try-works/extension-moderator-recipe",
2321
2318
  "capability": "image.nsfw-detection",
2322
2319
  "sizeMB": 9.2,
2323
2320
  "license": "source-available",
2324
- "runnable": false,
2325
- "reason": "Moderator has no prebuilt native build for win32-x64: @desert-ant-labs/moderator/native supports linux-x64, linux-arm64 and darwin-arm64 only."
2321
+ "runnable": true
2326
2322
  },
2327
2323
  {
2328
2324
  "id": "redact",
2329
2325
  "name": "Redact",
2330
2326
  "summary": "On-device redaction that strips personal data as you type, in 27 languages, with restore support.",
2331
2327
  "package": "@desert-ant-labs/redact",
2332
- "extension": null,
2328
+ "extension": "@try-works/extension-redact",
2333
2329
  "capability": "text.pii-redaction",
2334
2330
  "sizeMB": null,
2335
2331
  "license": "source-available",
2336
- "runnable": false,
2337
- "reason": "Redact has no prebuilt native build for win32-x64: @desert-ant-labs/redact/native supports linux-x64, linux-arm64 and darwin-arm64 only."
2332
+ "runnable": true
2338
2333
  },
2339
2334
  {
2340
2335
  "id": "schemer",
@@ -2353,12 +2348,11 @@ function createToolInsights(createElement, reactLib) {
2353
2348
  "name": "Shapes",
2354
2349
  "summary": "On-device shape recognition that turns one hand-drawn stroke into a rectangle, ellipse, triangle, star or line in under 10ms.",
2355
2350
  "package": "@desert-ant-labs/shapes",
2356
- "extension": null,
2351
+ "extension": "@try-works/extension-shapes-recipe",
2357
2352
  "capability": "stroke.shape-recognition",
2358
2353
  "sizeMB": null,
2359
2354
  "license": "source-available",
2360
- "runnable": false,
2361
- "reason": "Shapes has no prebuilt native build for win32-x64: @desert-ant-labs/shapes/native supports linux-x64, linux-arm64 and darwin-arm64 only."
2355
+ "runnable": true
2362
2356
  },
2363
2357
  {
2364
2358
  "id": "title",
@@ -2400,12 +2394,11 @@ function createToolInsights(createElement, reactLib) {
2400
2394
  "name": "Uhm",
2401
2395
  "summary": "On-device filler detection that marks every um, uh and hmm to within 20ms, an hour of audio in 12s.",
2402
2396
  "package": null,
2403
- "extension": null,
2397
+ "extension": "@try-works/extension-uhm-recipe",
2404
2398
  "capability": "audio.filler-detection",
2405
2399
  "sizeMB": null,
2406
2400
  "license": "source-available",
2407
- "runnable": false,
2408
- "reason": "Uhm is Apple-only (Core ML/MLX through the Swift package); there is no JavaScript SDK, so it cannot run in a Node process. Point `remote.endpoint` at a bridge on an Apple machine to reach it."
2401
+ "runnable": true
2409
2402
  },
2410
2403
  {
2411
2404
  "id": "voz",
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/lib/index.js CHANGED
@@ -1566,6 +1566,8 @@ export async function apply(ctx, config = {}) {
1566
1566
  const extensionMcpTools = new Map();
1567
1567
  /** DECL-08: sha256 of the installed recipe, keyed by caller-facing tool name. */
1568
1568
  const declarativeRecipeDigests = new Map();
1569
+ /** Tool names published by TOOL-MODE extensions: part of the DECL-07 owned surface. */
1570
+ const ownedExtensionToolNames = new Set();
1569
1571
  const exposeExtensionToolToMcp = (name, tool) => { extensionMcpTools.set(name, tool); };
1570
1572
  const withdrawExtensionToolFromMcp = (name) => { extensionMcpTools.delete(name); };
1571
1573
  /**
@@ -1924,12 +1926,6 @@ export async function apply(ctx, config = {}) {
1924
1926
  * lifecycle yet, so their existing capability verdict remains the readiness
1925
1927
  * source.
1926
1928
  */
1927
- const callableReadiness = new Set([
1928
- 'prepared-cold',
1929
- 'loading',
1930
- 'ready',
1931
- 'busy',
1932
- ]);
1933
1929
  const readinessOf = async (item) => {
1934
1930
  if (item.verdict.route !== 'extension')
1935
1931
  return 'ready';
@@ -2001,6 +1997,17 @@ export async function apply(ctx, config = {}) {
2001
1997
  if (entry.contract !== null && contractById.has(entry.contract)) {
2002
1998
  const binding = bindings.get(entry.contract);
2003
1999
  if (binding === undefined) {
2000
+ /**
2001
+ * A provider-bound model whose contract has no host binding is still served
2002
+ * by its extension, which owns the tool name. Record it and report success;
2003
+ * only a model with no owner is the "not the selected provider" case.
2004
+ */
2005
+ if (entry.provider !== undefined && extensionOwnsToolName(entry.tool.name)) {
2006
+ catalogueDeferred.add(entry.id);
2007
+ installed.set(entry.id, { entry, toolName: entry.tool.name, dispose: () => { } });
2008
+ notifyCatalogChange();
2009
+ return true;
2010
+ }
2004
2011
  // The model implements a contract but lost provider selection, or cannot
2005
2012
  // run. Report rather than register a second tool for the same contract.
2006
2013
  ctx.logger.info(`model-tools: ${entry.name} implements ${entry.contract} but is not the selected provider; `
@@ -2043,7 +2050,10 @@ export async function apply(ctx, config = {}) {
2043
2050
  catalogueDeferred.add(entry.id);
2044
2051
  ctx.logger.info(`model-tools: ${entry.name}'s tool ${entry.tool.name} is owned by an installed extension; `
2045
2052
  + 'the catalogue registration is deferred until the extension releases the name');
2046
- return false;
2053
+ // The extension serves the tool already: enabling the catalogue entry is a
2054
+ // success that records the model, never "cannot be installed here".
2055
+ toolName = entry.tool.name;
2056
+ dispose = () => { };
2047
2057
  }
2048
2058
  else {
2049
2059
  const registered = registerContractTool(ctx, binding, host);
@@ -2059,14 +2069,22 @@ export async function apply(ctx, config = {}) {
2059
2069
  });
2060
2070
  }
2061
2071
  }
2062
- else {
2063
- if (verdict.route === 'extension') {
2064
- const readiness = await readinessOf(item);
2065
- if (!callableReadiness.has(readiness)) {
2066
- ctx.logger.info(`model-tools: ${entry.name} is active but its provider reports ${readiness}; skipping ${entry.tool.name}`);
2067
- return false;
2068
- }
2072
+ else if (entry.provider !== undefined) {
2073
+ /**
2074
+ * PROVIDER-BOUND: the extension owns the tool name. When it is active the
2075
+ * catalogue joins that tool instead of registering a second one; when it is
2076
+ * not active there is no tool to join, so the entry is skipped rather than
2077
+ * replaced by a provider-bridge tool the MCP surface cannot export.
2078
+ */
2079
+ if (!extensionOwnsToolName(entry.tool.name)) {
2080
+ ctx.logger.info(`model-tools: ${entry.name}'s provider extension is not active; skipping ${entry.tool.name}`);
2081
+ return false;
2069
2082
  }
2083
+ catalogueDeferred.add(entry.id);
2084
+ toolName = entry.tool.name;
2085
+ dispose = () => { };
2086
+ }
2087
+ else {
2070
2088
  const adapter = createAdapter(entry, { route: verdict.route, ...transportOptions }, undefined, bridge);
2071
2089
  if (adapter === undefined) {
2072
2090
  // Runnable but no adapter yet: report rather than register a dead tool.
@@ -2168,6 +2186,10 @@ export async function apply(ctx, config = {}) {
2168
2186
  if (extensionOwnsToolName(item.entry.tool.name))
2169
2187
  continue;
2170
2188
  catalogueDeferred.delete(modelId);
2189
+ // A deferred model was recorded as served by the extension; drop that record
2190
+ // first or install() short-circuits on it and never registers the catalogue tool.
2191
+ if (installed.has(modelId))
2192
+ uninstall(modelId);
2171
2193
  ctx.logger.info(`model-tools: ${item.entry.name}'s tool ${item.entry.tool.name} is released; restoring the catalogue registration`);
2172
2194
  try {
2173
2195
  await install(item);
@@ -3283,7 +3305,23 @@ export async function apply(ctx, config = {}) {
3283
3305
  * I call?" got a list that disagreed with the registry.
3284
3306
  */
3285
3307
  const listed = new Set(tools.map(tool => tool.name));
3308
+ /**
3309
+ * Only tools THIS plugin serves: the registry it sees is the whole host
3310
+ * surface (browser, memory, schedule, other plugins), and DECL-07 is about
3311
+ * the Tool Mode surface, not every tool in the process. Standard contracts
3312
+ * the plugin serves, its own control tools, extension tools it published and
3313
+ * declarative recipe tools are the owned set.
3314
+ */
3315
+ const owned = new Set([
3316
+ ...STANDARD_CONTRACTS.map(contract => contract.toolName),
3317
+ 'tool_mode_list', 'tool_mode_describe', 'tool_mode_run', 'model_tools', 'model_tools_manage',
3318
+ 'decision_combine', 'decision_evaluate', 'decision_route',
3319
+ ...ownedExtensionToolNames,
3320
+ ...declarativeRecipeDigests.keys(),
3321
+ ]);
3286
3322
  for (const schema of ctx.tools.schemas()) {
3323
+ if (!owned.has(schema.name))
3324
+ continue;
3287
3325
  if (listed.has(schema.name))
3288
3326
  continue;
3289
3327
  if (permitted !== undefined && !permitted.has(schema.name))
@@ -4446,6 +4484,7 @@ export async function apply(ctx, config = {}) {
4446
4484
  // The owner map is maintained at the same boundary that publishes and withdraws
4447
4485
  // the tool, so the planning admission check never consults a stale owner.
4448
4486
  extensionToolOwners.set(tool.name, tool.ownerExtension);
4487
+ ownedExtensionToolNames.add(tool.name);
4449
4488
  exposeExtensionToolToMcp(tool.name, {
4450
4489
  description: declared.description ?? '',
4451
4490
  /**
@@ -4464,6 +4503,7 @@ export async function apply(ctx, config = {}) {
4464
4503
  });
4465
4504
  return () => {
4466
4505
  extensionToolOwners.delete(tool.name);
4506
+ ownedExtensionToolNames.delete(tool.name);
4467
4507
  withdrawExtensionToolFromMcp(tool.name);
4468
4508
  dispose();
4469
4509
  };
@@ -4523,6 +4563,7 @@ export async function apply(ctx, config = {}) {
4523
4563
  modelId: manifestImplementation?.modelId ?? contribution.implementationId,
4524
4564
  });
4525
4565
  extensionToolOwners.set(toolName, contribution.extensionId);
4566
+ ownedExtensionToolNames.add(toolName);
4526
4567
  exposeExtensionToolToMcp(toolName, {
4527
4568
  description: contract.description,
4528
4569
  inputSchema: contract.inputSchema,
@@ -4530,6 +4571,7 @@ export async function apply(ctx, config = {}) {
4530
4571
  });
4531
4572
  return () => {
4532
4573
  extensionToolOwners.delete(toolName);
4574
+ ownedExtensionToolNames.delete(toolName);
4533
4575
  withdrawExtensionToolFromMcp(toolName);
4534
4576
  registered.dispose();
4535
4577
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@try-works/dsh-tool-mode",
3
- "version": "0.5.48",
3
+ "version": "0.5.50",
4
4
  "description": "Install Desert Ant Labs on-device models as DSH tools and skills, with per-platform capability gating",
5
5
  "keywords": [
6
6
  "dsh",