@thenavidm/slipway 0.1.16 → 0.1.17
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/CHANGELOG.md +4 -0
- package/dist/search.js +3 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
What changed in Slipway, newest first.
|
|
4
4
|
|
|
5
|
+
## 0.1.17, 2026-10-05: what Google Photos needed
|
|
6
|
+
|
|
7
|
+
- **`which` reads an argument by its own words, not through a synonym.** Since 0.1.14 a tool's argument names count toward finding it, and a synonym reached them too. Google Photos says "photos" means media, so `get_media_item`, which takes a `media_item_id`, drew level with the photo picker for "let me choose photos" and was listed first. An argument now counts only for the words it is made of, so the picker is first again. Buffer's "schedule a post to a channel" still reads `channelId` and `schedulingType`, and the first answer to every task measured on the other servers is unchanged.
|
|
8
|
+
|
|
5
9
|
## 0.1.16, 2026-10-05: what Flodesk needed
|
|
6
10
|
|
|
7
11
|
- **`which` says a title once.** Each answer line printed a tool's title and then the first sentence of its description, and many descriptions open with the title itself: 24 of Flodesk's 32 tools, 10 of Firefly's 14, and nearly every tool on Beehiiv, Calendly and Circle. Where the sentence opens with the title's words, the line now prints the sentence alone. Flodesk's answer to `which add a subscriber to a segment` goes from 52 tokens to 36 and Firefly's to `which image model 5` from 90 to 77, and an agent carries that answer through each step after it. A description that adds something new still follows its title.
|
package/dist/search.js
CHANGED
|
@@ -94,12 +94,14 @@ export function searchTools(tools, query, limit = 10, synonyms = {}) {
|
|
|
94
94
|
const tags = tool.tags.flatMap(words);
|
|
95
95
|
const description = words(tool.description);
|
|
96
96
|
// What a tool takes says what it is for: `channelId` and `schedulingType` find the post tool for "schedule a post to a channel".
|
|
97
|
+
// Only the words themselves count there. Through a synonym, Google Photos' "photos" read as `media_item_id`
|
|
98
|
+
// and put get_media_item level with the picker for "let me choose photos".
|
|
97
99
|
const args = Object.keys(tool.jsonSchema.properties ?? {}).filter((key) => key !== "confirm").flatMap(words);
|
|
98
100
|
let score = 0;
|
|
99
101
|
let matched = 0;
|
|
100
102
|
for (const term of terms) {
|
|
101
103
|
// A term that is the tool's name is not a hint, it is the answer.
|
|
102
|
-
const got = (named(tool, term) ? 20 : 0) + hits(term, name, extra) * 5 + hits(term, title, extra) * 4 + hits(term, tags, extra) * 3 +
|
|
104
|
+
const got = (named(tool, term) ? 20 : 0) + hits(term, name, extra) * 5 + hits(term, title, extra) * 4 + hits(term, tags, extra) * 3 + exact(term, args) * 2 + hits(term, description, extra);
|
|
103
105
|
if (got > 0)
|
|
104
106
|
matched++;
|
|
105
107
|
score += got;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thenavidm/slipway",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.17",
|
|
4
4
|
"description": "Slipway, the TypeScript framework for MCP servers and agent-native CLIs. One tool definition ships an MCP server and a CLI, with write safety, typed results and release checks built in.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|