@mcpmesh/sdk 2.8.1 → 3.0.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.
Files changed (84) hide show
  1. package/dist/__tests__/agent-add-tool.spec.js +106 -0
  2. package/dist/__tests__/agent-add-tool.spec.js.map +1 -1
  3. package/dist/__tests__/claim-dispatcher-resume-cursor.test.d.ts +2 -0
  4. package/dist/__tests__/claim-dispatcher-resume-cursor.test.d.ts.map +1 -0
  5. package/dist/__tests__/claim-dispatcher-resume-cursor.test.js +145 -0
  6. package/dist/__tests__/claim-dispatcher-resume-cursor.test.js.map +1 -0
  7. package/dist/__tests__/direct-invoke-required.spec.d.ts +2 -0
  8. package/dist/__tests__/direct-invoke-required.spec.d.ts.map +1 -0
  9. package/dist/__tests__/direct-invoke-required.spec.js +209 -0
  10. package/dist/__tests__/direct-invoke-required.spec.js.map +1 -0
  11. package/dist/__tests__/service-view-types.spec.d.ts +2 -0
  12. package/dist/__tests__/service-view-types.spec.d.ts.map +1 -0
  13. package/dist/__tests__/service-view-types.spec.js +66 -0
  14. package/dist/__tests__/service-view-types.spec.js.map +1 -0
  15. package/dist/__tests__/service-view.spec.d.ts +2 -0
  16. package/dist/__tests__/service-view.spec.d.ts.map +1 -0
  17. package/dist/__tests__/service-view.spec.js +902 -0
  18. package/dist/__tests__/service-view.spec.js.map +1 -0
  19. package/dist/__tests__/superseded-signal.spec.d.ts +19 -0
  20. package/dist/__tests__/superseded-signal.spec.d.ts.map +1 -0
  21. package/dist/__tests__/superseded-signal.spec.js +222 -0
  22. package/dist/__tests__/superseded-signal.spec.js.map +1 -0
  23. package/dist/__tests__/worker-error-serde.spec.d.ts +2 -0
  24. package/dist/__tests__/worker-error-serde.spec.d.ts.map +1 -0
  25. package/dist/__tests__/worker-error-serde.spec.js +122 -0
  26. package/dist/__tests__/worker-error-serde.spec.js.map +1 -0
  27. package/dist/a2a/producer/mount.d.ts.map +1 -1
  28. package/dist/a2a/producer/mount.js +4 -0
  29. package/dist/a2a/producer/mount.js.map +1 -1
  30. package/dist/agent.d.ts +51 -3
  31. package/dist/agent.d.ts.map +1 -1
  32. package/dist/agent.js +435 -33
  33. package/dist/agent.js.map +1 -1
  34. package/dist/claim-dispatcher.d.ts +25 -1
  35. package/dist/claim-dispatcher.d.ts.map +1 -1
  36. package/dist/claim-dispatcher.js +51 -2
  37. package/dist/claim-dispatcher.js.map +1 -1
  38. package/dist/inbound-job-dispatch.d.ts +1 -1
  39. package/dist/inbound-job-dispatch.d.ts.map +1 -1
  40. package/dist/inbound-job-dispatch.js +8 -2
  41. package/dist/inbound-job-dispatch.js.map +1 -1
  42. package/dist/index.d.ts +6 -2
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +9 -2
  45. package/dist/index.js.map +1 -1
  46. package/dist/llm-provider.d.ts +14 -16
  47. package/dist/llm-provider.d.ts.map +1 -1
  48. package/dist/llm-provider.js +2 -4
  49. package/dist/llm-provider.js.map +1 -1
  50. package/dist/llm.d.ts +1 -2
  51. package/dist/llm.d.ts.map +1 -1
  52. package/dist/llm.js +1 -2
  53. package/dist/llm.js.map +1 -1
  54. package/dist/proxy.d.ts.map +1 -1
  55. package/dist/proxy.js +37 -0
  56. package/dist/proxy.js.map +1 -1
  57. package/dist/route.d.ts.map +1 -1
  58. package/dist/route.js +5 -0
  59. package/dist/route.js.map +1 -1
  60. package/dist/service-view.d.ts +245 -0
  61. package/dist/service-view.d.ts.map +1 -0
  62. package/dist/service-view.js +210 -0
  63. package/dist/service-view.js.map +1 -0
  64. package/dist/settle.d.ts +22 -0
  65. package/dist/settle.d.ts.map +1 -1
  66. package/dist/settle.js +51 -22
  67. package/dist/settle.js.map +1 -1
  68. package/dist/superseded.d.ts +70 -0
  69. package/dist/superseded.d.ts.map +1 -0
  70. package/dist/superseded.js +99 -0
  71. package/dist/superseded.js.map +1 -0
  72. package/dist/tool-worker-entry.js +1 -12
  73. package/dist/tool-worker-entry.js.map +1 -1
  74. package/dist/tool-worker-pool.d.ts.map +1 -1
  75. package/dist/tool-worker-pool.js +1 -12
  76. package/dist/tool-worker-pool.js.map +1 -1
  77. package/dist/types.d.ts +31 -1
  78. package/dist/types.d.ts.map +1 -1
  79. package/dist/types.js.map +1 -1
  80. package/dist/worker-error-serde.d.ts +40 -0
  81. package/dist/worker-error-serde.d.ts.map +1 -0
  82. package/dist/worker-error-serde.js +86 -0
  83. package/dist/worker-error-serde.js.map +1 -0
  84. package/package.json +2 -2
package/dist/agent.d.ts CHANGED
@@ -12,6 +12,7 @@ import type { FastMCP } from "fastmcp";
12
12
  import type { z } from "zod";
13
13
  import { type JsAgentHandle } from "@mcpmesh/core";
14
14
  import type { AgentConfig, ResolvedAgentConfig, MeshToolDef, McpMeshTool, LlmProviderConfig } from "./types.js";
15
+ import { type ServiceProducerMethod } from "./service-view.js";
15
16
  /**
16
17
  * Globally-set symbol that user agent code can check to detect whether it
17
18
  * is running inside a mesh tool-isolation worker. The mesh runtime sets
@@ -150,6 +151,34 @@ export declare class MeshAgent {
150
151
  * they will be injected positionally at runtime.
151
152
  */
152
153
  addTool<T extends z.ZodType>(def: MeshToolDef<T>): this;
154
+ /**
155
+ * RFC #1280 producer sugar: publish each entry of `methods` as an ordinary
156
+ * mesh tool with capability `prefix.<method>`, routed through the SAME
157
+ * `addTool` machinery (schemas, heartbeat, DI, duplicate handling all fall
158
+ * out). Entries are registered NAME-SORTED for deterministic registration.
159
+ *
160
+ * Each entry is either a bare execute function (shorthand) or an object
161
+ * `{ execute, parameters?, tags?, version?, description?, dependencies?, ... }`
162
+ * carrying any `addTool` passthrough (but NOT `name`/`capability` — those are
163
+ * derived). A method with no `parameters` gets a permissive passthrough schema.
164
+ *
165
+ * The prefix AND every derived capability are validated against the segment-
166
+ * wise dotted grammar (kept in lockstep with the Go registry validator —
167
+ * src/core/registry/validation.go). addTool applies the same grammar to its
168
+ * produced capability (#1293 item 6), so both surfaces validate a PRODUCED
169
+ * capability name before it reaches the registry; dependency capability names
170
+ * remain the registry's authority.
171
+ *
172
+ * @example
173
+ * ```typescript
174
+ * agent.addService("media", {
175
+ * caption: async (args) => ({ caption: `...${args.text}` }),
176
+ * thumbnail: { execute: async (args) => ({ url: "..." }), tags: ["fast"] },
177
+ * });
178
+ * // → tools/capabilities "media.caption" and "media.thumbnail"
179
+ * ```
180
+ */
181
+ addService(prefix: string, methods: Record<string, ServiceProducerMethod>): this;
153
182
  /**
154
183
  * Add an LLM provider to the agent.
155
184
  *
@@ -197,19 +226,38 @@ export declare class MeshAgent {
197
226
  * Build the positional dependency-slot array for one tool call, shared by
198
227
  * BOTH the inbound HTTP wrapper (wrappedExecute) and the claim-dispatch
199
228
  * path (the ClaimHandler for task:true tools). Centralising this keeps the
200
- * two slot-assembly sites identical:
229
+ * two slot-assembly sites identical. One entry per AUTHORED slot:
230
+ * - a service-view slot (RFC #1280) → a facade over its method edges
201
231
  * - the MeshJob slot (meshJobDepIndex) → a freshly-bound MeshJobSubmitter
202
- * - every other slot → resolvedDeps.get(`${toolName}:dep_${index}`) ?? null
232
+ * - every other slot → resolvedDeps.get(`${toolName}:dep_${edgeIndex}`) ?? null
233
+ *
234
+ * `depSlots` carries the slot→edge mapping (a `dep` slot owns one edge; a
235
+ * `view` slot owns a contiguous edge range). `edges` is the flat edge array;
236
+ * a slot's proxy/capability is read via its edge index.
203
237
  *
204
238
  * #1231: a typed dep slot can resolve at the registry yet never receive an
205
239
  * injected proxy, leaving the parameter null. Once the settle latch has
206
240
  * flipped (during settling the proxy may still land), warn ONCE per
207
241
  * tool+slot — the array is rebuilt per call, so a per-call warning would
208
- * spam. The warn-once dedupe keys on `${toolName}:dep_${index}` via the
242
+ * spam. The warn-once dedupe keys on `${toolName}:dep_${edgeIndex}` via the
209
243
  * module-level `_unwiredSlotWarned` Set, so a tool exercised via BOTH the
210
244
  * inbound and claim paths warns at most once total.
211
245
  */
212
246
  private _buildDepSlots;
247
+ /**
248
+ * RFC #1280: build the facade injected at a service-view slot. Each facade
249
+ * method reads its edge's CURRENT proxy from `resolvedDeps` at call time —
250
+ * rebinding-free: a `dependency_available`/`unavailable` event swapping the
251
+ * per-edge proxy is observed on the next call without rebuilding the facade.
252
+ *
253
+ * The `minAvailable` floor is enforced BEFORE delegation on every call: below
254
+ * the floor during the settling window (#1193) the method performs the same
255
+ * bounded, capability-keyed wait the injected-proxy path uses, recounts, then
256
+ * throws {@link MeshServiceUnavailableError}. An unresolved OPTIONAL method
257
+ * edge throws a `TypeError` — the same failure shape a directly-injected
258
+ * unresolved `McpMeshTool` (a null proxy) produces when called.
259
+ */
260
+ private _buildServiceViewFacade;
213
261
  private _getOrBuildA2AClient;
214
262
  /**
215
263
  * Convert Zod schema to JSON Schema.
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}