@superdoc-dev/sdk 1.0.0-alpha.25 → 1.0.0-alpha.27

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/tools.cjs CHANGED
@@ -292,24 +292,31 @@ async function chooseTools(input) {
292
292
  excluded.push({ toolName: tool.toolName, reason: 'force-excluded' });
293
293
  return false;
294
294
  });
295
- for (const forcedToolName of input.policy?.forceInclude ?? []) {
295
+ // Resolve forceInclude tools these are guaranteed slots exempt from budget trimming.
296
+ const forcedToolNames = new Set(input.policy?.forceInclude ?? []);
297
+ const forcedTools = [];
298
+ for (const forcedToolName of forcedToolNames) {
296
299
  const forced = indexByToolName.get(forcedToolName);
297
300
  if (!forced) {
298
301
  excluded.push({ toolName: forcedToolName, reason: 'not-in-profile' });
299
302
  continue;
300
303
  }
301
304
  candidates.push(forced);
305
+ forcedTools.push(forced);
302
306
  }
303
307
  candidates = [...new Map(candidates.map((tool) => [tool.toolName, tool])).values()];
304
- const selected = [];
308
+ // Start with forceInclude tools — they always occupy a slot.
309
+ const selected = [...forcedTools];
310
+ const selectedNames = new Set(selected.map((tool) => tool.toolName));
305
311
  const foundationalIds = new Set(policy.defaults.foundationalOperationIds);
306
- const foundational = candidates.filter((tool) => foundationalIds.has(tool.operationId));
312
+ const foundational = candidates.filter((tool) => foundationalIds.has(tool.operationId) && !selectedNames.has(tool.toolName));
307
313
  for (const tool of foundational) {
308
314
  if (selected.length >= minReadTools || selected.length >= maxTools)
309
315
  break;
310
316
  selected.push(tool);
317
+ selectedNames.add(tool.toolName);
311
318
  }
312
- const remaining = stableSortByPhasePriority(candidates.filter((tool) => !selected.some((entry) => entry.toolName === tool.toolName)), phasePolicy.priority);
319
+ const remaining = stableSortByPhasePriority(candidates.filter((tool) => !selectedNames.has(tool.toolName)), phasePolicy.priority);
313
320
  for (const tool of remaining) {
314
321
  if (selected.length >= maxTools) {
315
322
  excluded.push({ toolName: tool.toolName, reason: 'budget-trim' });
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
package/dist/tools.js CHANGED
@@ -288,24 +288,31 @@ export async function chooseTools(input) {
288
288
  excluded.push({ toolName: tool.toolName, reason: 'force-excluded' });
289
289
  return false;
290
290
  });
291
- for (const forcedToolName of input.policy?.forceInclude ?? []) {
291
+ // Resolve forceInclude tools these are guaranteed slots exempt from budget trimming.
292
+ const forcedToolNames = new Set(input.policy?.forceInclude ?? []);
293
+ const forcedTools = [];
294
+ for (const forcedToolName of forcedToolNames) {
292
295
  const forced = indexByToolName.get(forcedToolName);
293
296
  if (!forced) {
294
297
  excluded.push({ toolName: forcedToolName, reason: 'not-in-profile' });
295
298
  continue;
296
299
  }
297
300
  candidates.push(forced);
301
+ forcedTools.push(forced);
298
302
  }
299
303
  candidates = [...new Map(candidates.map((tool) => [tool.toolName, tool])).values()];
300
- const selected = [];
304
+ // Start with forceInclude tools — they always occupy a slot.
305
+ const selected = [...forcedTools];
306
+ const selectedNames = new Set(selected.map((tool) => tool.toolName));
301
307
  const foundationalIds = new Set(policy.defaults.foundationalOperationIds);
302
- const foundational = candidates.filter((tool) => foundationalIds.has(tool.operationId));
308
+ const foundational = candidates.filter((tool) => foundationalIds.has(tool.operationId) && !selectedNames.has(tool.toolName));
303
309
  for (const tool of foundational) {
304
310
  if (selected.length >= minReadTools || selected.length >= maxTools)
305
311
  break;
306
312
  selected.push(tool);
313
+ selectedNames.add(tool.toolName);
307
314
  }
308
- const remaining = stableSortByPhasePriority(candidates.filter((tool) => !selected.some((entry) => entry.toolName === tool.toolName)), phasePolicy.priority);
315
+ const remaining = stableSortByPhasePriority(candidates.filter((tool) => !selectedNames.has(tool.toolName)), phasePolicy.priority);
309
316
  for (const tool of remaining) {
310
317
  if (selected.length >= maxTools) {
311
318
  excluded.push({ toolName: tool.toolName, reason: 'budget-trim' });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@superdoc-dev/sdk",
3
- "version": "1.0.0-alpha.25",
3
+ "version": "1.0.0-alpha.27",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -18,26 +18,24 @@
18
18
  "skills",
19
19
  "tools"
20
20
  ],
21
- "scripts": {
22
- "build": "tsc && rollup -c rollup.cjs.config.mjs",
23
- "typecheck": "tsc --noEmit",
24
- "prepack": "rm -rf tools && cp -r ../../tools ./tools && rm -f ./tools/__init__.py",
25
- "postpack": "rm -rf tools && ln -s ../../tools tools"
26
- },
27
21
  "devDependencies": {
28
- "@types/bun": "catalog:",
29
- "@types/node": "catalog:",
30
- "rollup": "catalog:",
31
- "typescript": "catalog:"
22
+ "@types/bun": "^1.3.8",
23
+ "@types/node": "22.19.2",
24
+ "rollup": "^4.31.0",
25
+ "typescript": "^5.9.2"
32
26
  },
33
27
  "optionalDependencies": {
34
- "@superdoc-dev/sdk-darwin-arm64": "workspace:*",
35
- "@superdoc-dev/sdk-darwin-x64": "workspace:*",
36
- "@superdoc-dev/sdk-linux-x64": "workspace:*",
37
- "@superdoc-dev/sdk-linux-arm64": "workspace:*",
38
- "@superdoc-dev/sdk-windows-x64": "workspace:*"
28
+ "@superdoc-dev/sdk-darwin-arm64": "1.0.0-alpha.27",
29
+ "@superdoc-dev/sdk-darwin-x64": "1.0.0-alpha.27",
30
+ "@superdoc-dev/sdk-linux-x64": "1.0.0-alpha.27",
31
+ "@superdoc-dev/sdk-linux-arm64": "1.0.0-alpha.27",
32
+ "@superdoc-dev/sdk-windows-x64": "1.0.0-alpha.27"
39
33
  },
40
34
  "publishConfig": {
41
35
  "access": "public"
36
+ },
37
+ "scripts": {
38
+ "build": "tsc && rollup -c rollup.cjs.config.mjs",
39
+ "typecheck": "tsc --noEmit"
42
40
  }
43
- }
41
+ }