@ggui-ai/mcp-server-handlers 0.5.0-rc.1 → 0.6.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.
- package/dist/blueprints/describe-data-contract-format.js +1 -1
- package/dist/blueprints/search-blueprints.js +14 -1
- package/dist/renders/blueprint-matcher.d.ts.map +1 -1
- package/dist/renders/blueprint-matcher.js +6 -3
- package/dist/renders/installed-blueprints-provider.d.ts +11 -6
- package/dist/renders/installed-blueprints-provider.d.ts.map +1 -1
- package/dist/renders/installed-blueprints-provider.js +0 -0
- package/package.json +7 -7
|
@@ -114,7 +114,7 @@ interface StreamEntry {
|
|
|
114
114
|
\`\`\`
|
|
115
115
|
|
|
116
116
|
In the source, declare with \`const stream = useStream<PayloadType>('channel')\`
|
|
117
|
-
and read latest as \`stream.latest\` or iterate \`stream.
|
|
117
|
+
and read latest as \`stream.latest\` or iterate \`stream.all\`.
|
|
118
118
|
|
|
119
119
|
## AgentCapabilitiesSpec entry
|
|
120
120
|
|
|
@@ -136,7 +136,20 @@ export function createSearchBlueprintsHandler(deps) {
|
|
|
136
136
|
* never surfaced with coerced labels.
|
|
137
137
|
*/
|
|
138
138
|
async function searchSemantic(deps, scope, query, limit) {
|
|
139
|
-
|
|
139
|
+
// An unavailable embedding provider (e.g. the local model failed its
|
|
140
|
+
// native load) must degrade to "no semantic hits", never fail the
|
|
141
|
+
// whole merged search — the manifest branch is embedding-independent
|
|
142
|
+
// by contract and its hits must survive. This branch races the
|
|
143
|
+
// manifest branch in a Promise.all, so a rejection here would
|
|
144
|
+
// otherwise discard the manifest's correct results (bit us 2026-08-04
|
|
145
|
+
// when a dual-sharp libvips collision broke the local embedder in CI).
|
|
146
|
+
let vector;
|
|
147
|
+
try {
|
|
148
|
+
vector = await deps.embedding.embed(query);
|
|
149
|
+
}
|
|
150
|
+
catch {
|
|
151
|
+
return [];
|
|
152
|
+
}
|
|
140
153
|
const raw = await deps.vectors.query(scope, vector, limit);
|
|
141
154
|
const hits = [];
|
|
142
155
|
for (const r of raw) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blueprint-matcher.d.ts","sourceRoot":"","sources":["../../src/renders/blueprint-matcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACvB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAML,KAAK,kBAAkB,EACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACtF,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAaxE,yEAAyE;AACzE,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,kFAAkF;IAClF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,qFAAqF;IACrF,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;CAChC;AAED,0CAA0C;AAC1C,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACnD;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,MAAM,oBAAoB,GAAG,iBAAiB,GAAG,kBAAkB,CAAC;AAE1E,oCAAoC;AACpC,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC;IACzC;;;;;;OAMG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC;IACzB;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,2BAA2B,CAAC;CAC5D;AAED,MAAM,WAAW,qBAAqB;IACpC,kEAAkE;IAClE,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC;IAC9B,sEAAsE;IACtE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,8EAA8E;IAC9E,8DAA8D;IAC9D,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,yFAAyF;IACzF,+EAA+E;IAC/E,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAcD;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,kBAAkB,EACxB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE;IACL,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CACvC,EACD,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,oBAAoB,CAAC,
|
|
1
|
+
{"version":3,"file":"blueprint-matcher.d.ts","sourceRoot":"","sources":["../../src/renders/blueprint-matcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACvB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAML,KAAK,kBAAkB,EACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACtF,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAaxE,yEAAyE;AACzE,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,kFAAkF;IAClF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,qFAAqF;IACrF,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;CAChC;AAED,0CAA0C;AAC1C,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACnD;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,MAAM,oBAAoB,GAAG,iBAAiB,GAAG,kBAAkB,CAAC;AAE1E,oCAAoC;AACpC,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC;IACzC;;;;;;OAMG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC;IACzB;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,2BAA2B,CAAC;CAC5D;AAED,MAAM,WAAW,qBAAqB;IACpC,kEAAkE;IAClE,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC;IAC9B,sEAAsE;IACtE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,8EAA8E;IAC9E,8DAA8D;IAC9D,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,yFAAyF;IACzF,+EAA+E;IAC/E,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAcD;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,kBAAkB,EACxB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE;IACL,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CACvC,EACD,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,oBAAoB,CAAC,CAiT/B"}
|
|
@@ -91,9 +91,12 @@ export async function matchBlueprint(deps, scope, query, options = {}) {
|
|
|
91
91
|
//
|
|
92
92
|
// If an installedBlueprints provider is wired, ensure marketplace-
|
|
93
93
|
// installed entries for this scope have been compiled + cached
|
|
94
|
-
// before we consult the registry.
|
|
95
|
-
//
|
|
96
|
-
//
|
|
94
|
+
// before we consult the registry. Every call re-runs discovery (a
|
|
95
|
+
// metadata-only read — entry ids + contracts, never compiled code)
|
|
96
|
+
// so install/uninstall is detected on the next match; the expensive
|
|
97
|
+
// compile + register walk runs only when the discovered set's
|
|
98
|
+
// signature changed since the last walk. Best-effort: a provider
|
|
99
|
+
// error never sinks the match.
|
|
97
100
|
if (deps.installedBlueprints) {
|
|
98
101
|
try {
|
|
99
102
|
const ensureArg = query.contract !== undefined
|
|
@@ -61,9 +61,12 @@ export type CompileResult = {
|
|
|
61
61
|
export interface CreateInstalledBlueprintsProviderOptions {
|
|
62
62
|
/**
|
|
63
63
|
* Yields the currently-discovered installed blueprints for the
|
|
64
|
-
* scope. Called
|
|
65
|
-
*
|
|
66
|
-
*
|
|
64
|
+
* scope. Called on EVERY ensureCached (the signature of the returned
|
|
65
|
+
* set gates the compile walk), so it MUST stay metadata-cheap —
|
|
66
|
+
* entry ids + contracts + intent, never compiled code (the `compile`
|
|
67
|
+
* callback owns fetching that, and only runs on signature change).
|
|
68
|
+
* Returning an empty array is fine — the provider records "ensured"
|
|
69
|
+
* and returns immediately.
|
|
67
70
|
*/
|
|
68
71
|
readonly installedBlueprints: (scope: string) => Promise<readonly InstalledBlueprintEntry[]> | readonly InstalledBlueprintEntry[];
|
|
69
72
|
/**
|
|
@@ -100,9 +103,11 @@ export interface InstalledBlueprintsProvider {
|
|
|
100
103
|
/**
|
|
101
104
|
* Ensure all installed blueprints for `scope` are present in the
|
|
102
105
|
* cache. Idempotent within a signature: every call re-reads the
|
|
103
|
-
* installed list
|
|
104
|
-
*
|
|
105
|
-
*
|
|
106
|
+
* installed list via the discovery callback — a metadata-only read
|
|
107
|
+
* (entry ids + contracts + intent prose; discovery MUST NOT haul
|
|
108
|
+
* compiled code, which only the `compile` callback fetches) — and
|
|
109
|
+
* skips the compile/install walk when the signature matches the
|
|
110
|
+
* previous walk. Signature change (install OR uninstall) triggers:
|
|
106
111
|
* - re-walk: compile + register every CURRENT entry (no-op for
|
|
107
112
|
* unchanged entries thanks to the underlying installToCache
|
|
108
113
|
* idempotency)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installed-blueprints-provider.d.ts","sourceRoot":"","sources":["../../src/renders/installed-blueprints-provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"installed-blueprints-provider.d.ts","sourceRoot":"","sources":["../../src/renders/installed-blueprints-provider.ts"],"names":[],"mappings":"AAiEA,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAKL,KAAK,qBAAqB,EAC3B,MAAM,yBAAyB,CAAC;AAkCjC;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAC;IACnD;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,EACT,gBAAgB,GAChB,iBAAiB,GACjB,eAAe,GACf,mBAAmB,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC5B;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC;AAEnD,MAAM,WAAW,wCAAwC;IACvD;;;;;;;;OAQG;IACH,QAAQ,CAAC,mBAAmB,EAAE,CAC5B,KAAK,EAAE,MAAM,KACV,OAAO,CAAC,SAAS,uBAAuB,EAAE,CAAC,GAAG,SAAS,uBAAuB,EAAE,CAAC;IACtF;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;IAC7E;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,4BAA4B,KAAK,IAAI,CAAC;IACjE;;;;;;OAMG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;;;;;;;;;;;;;;;;;;OAmBG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/E;;;;;;;;;;OAUG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;CACtC;AA6BD;;;;GAIG;AACH,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,wCAAwC,GAChD,2BAA2B,CA0S7B"}
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ggui-ai/mcp-server-handlers",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "MCP tool handler logic for the ggui protocol. Pure over @ggui-ai/mcp-server-core seams and consumed by @ggui-ai/mcp-server. Never imports AWS, HTTP transports, or CLI concerns.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ggui",
|
|
@@ -69,17 +69,17 @@
|
|
|
69
69
|
},
|
|
70
70
|
"dependencies": {
|
|
71
71
|
"zod": "^4.3.6",
|
|
72
|
-
"@ggui-ai/
|
|
73
|
-
"@ggui-ai/
|
|
74
|
-
"@ggui-ai/ui-
|
|
75
|
-
"@ggui-ai/
|
|
76
|
-
"@ggui-ai/
|
|
72
|
+
"@ggui-ai/protocol": "0.6.0",
|
|
73
|
+
"@ggui-ai/ui-gen": "0.6.0",
|
|
74
|
+
"@ggui-ai/ui-registry": "0.6.0",
|
|
75
|
+
"@ggui-ai/negotiator": "0.6.0",
|
|
76
|
+
"@ggui-ai/mcp-server-core": "0.6.0"
|
|
77
77
|
},
|
|
78
78
|
"devDependencies": {
|
|
79
79
|
"@types/node": "^22.0.0",
|
|
80
80
|
"typescript": "^5.0.0",
|
|
81
81
|
"vitest": "^3.2.6",
|
|
82
|
-
"@ggui-ai/protocol-conformance": "0.
|
|
82
|
+
"@ggui-ai/protocol-conformance": "0.6.0"
|
|
83
83
|
},
|
|
84
84
|
"repository": {
|
|
85
85
|
"type": "git",
|