webdaemon 25.2.0 → 25.5.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.
@@ -3,12 +3,35 @@ import { type ChatToolCall, type ToolResult } from './McpAgentTools.ts';
3
3
  import { type McpContext } from './McpServer.ts';
4
4
  import type { McpCapabilityToken } from './McpToolAuthorization.ts';
5
5
  import type { YamlContent } from './YamlContent.ts';
6
+ /**
7
+ * A party whose tools this chat may draw on. `tools` is an optional allow-list
8
+ * of tool names (from that provider's catalog) to expose; omit it to expose all
9
+ * of the provider's tools.
10
+ */
11
+ export interface ToolProviderSpec {
12
+ party: string;
13
+ tools?: string[];
14
+ /**
15
+ * Scope to claim in the token used to reach this provider's tools. Defaults to
16
+ * the agent's `targetScope`. Set a narrower scope for a cross-party provider
17
+ * that only grants the caller a subset (claiming an ungranted capability is
18
+ * rejected wholesale by the provider).
19
+ */
20
+ scope?: string;
21
+ }
6
22
  export interface GenerativeChatAgentOptions {
7
23
  targetScope: string;
8
24
  defaultSystemPrompt: string;
9
25
  defaultTemperature?: number;
10
26
  maxToolRounds?: number;
11
27
  mcpPath?: string;
28
+ /**
29
+ * Resolves the set of parties whose tools this chat may use. Returning
30
+ * undefined (or an empty list) keeps the default single-party behavior: all of
31
+ * the target party's own tools. The same initiator forward context is applied
32
+ * to every provider, so each authorizes the tool call as the counterparty.
33
+ */
34
+ resolveToolProviders?: (targetParty: string, forward: ForwardContext) => Promise<ToolProviderSpec[] | undefined>;
12
35
  }
13
36
  export interface GenerativeChatMessage {
14
37
  role?: string;
@@ -16,6 +39,16 @@ export interface GenerativeChatMessage {
16
39
  toolCalls?: ChatToolCall[];
17
40
  toolResults?: ToolResult[];
18
41
  }
42
+ /**
43
+ * Identity to forward to the target party so it authorizes tool/memory use as
44
+ * the connecting counterparty (not the agent). `oauthContext` carries an OAuth
45
+ * client; `counterpartyContext` carries a signed-token peer as `{counterparty,
46
+ * src}`. The target intersects whichever is present with the agent's own grants.
47
+ */
48
+ interface ForwardContext {
49
+ oauthContext: string | null;
50
+ counterpartyContext: string | null;
51
+ }
19
52
  export interface GenerativeChatRenderEvent {
20
53
  role: 'user' | 'assistant' | 'tool' | 'tool-result';
21
54
  content: string;
@@ -42,4 +75,5 @@ export declare class GenerativeChatAgent {
42
75
  answer: string;
43
76
  }>;
44
77
  }
78
+ export {};
45
79
  //# sourceMappingURL=GenerativeChatAgent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GenerativeChatAgent.d.ts","sourceRoot":"","sources":["../../../ts/GenerativeChatAgent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAEL,KAAK,YAAY,EAGjB,KAAK,UAAU,EAChB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAGL,KAAK,UAAU,EAIhB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAGnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAUnD,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,MAAM,CAAA;IACnB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,YAAY,EAAE,CAAA;IAC1B,WAAW,CAAC,EAAE,UAAU,EAAE,CAAA;CAC3B;AA4BD,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,GAAG,aAAa,CAAA;IACnD,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,gCAAgC;IAC/C,MAAM,EAAE,yBAAyB,EAAE,CAAA;IACnC,eAAe,CAAC,EAAE,YAAY,EAAE,CAAA;CACjC;AAED,MAAM,WAAW,wBAAyB,SAAQ,UAAU;IAC1D,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB,KAAK,EAAE,KAAK,GAAG,kBAAkB,GAAG,IAAI,CAAA;IACxC,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,qBAAa,mBAAmB;;gBAWlB,OAAO,EAAE,0BAA0B;IAwBzC,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IA4C5C,SAAS,CACb,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAslB/B"}
1
+ {"version":3,"file":"GenerativeChatAgent.d.ts","sourceRoot":"","sources":["../../../ts/GenerativeChatAgent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAGL,KAAK,YAAY,EAKjB,KAAK,UAAU,EAChB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAGL,KAAK,UAAU,EAIhB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAGnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAWnD;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,MAAM,CAAA;IACnB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,CACrB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,cAAc,KACpB,OAAO,CAAC,gBAAgB,EAAE,GAAG,SAAS,CAAC,CAAA;CAC7C;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,YAAY,EAAE,CAAA;IAC1B,WAAW,CAAC,EAAE,UAAU,EAAE,CAAA;CAC3B;AAED;;;;;GAKG;AACH,UAAU,cAAc;IACtB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAA;CACnC;AA4BD,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,GAAG,aAAa,CAAA;IACnD,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,gCAAgC;IAC/C,MAAM,EAAE,yBAAyB,EAAE,CAAA;IACnC,eAAe,CAAC,EAAE,YAAY,EAAE,CAAA;CACjC;AAED,MAAM,WAAW,wBAAyB,SAAQ,UAAU;IAC1D,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB,KAAK,EAAE,KAAK,GAAG,kBAAkB,GAAG,IAAI,CAAA;IACxC,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,qBAAa,mBAAmB;;gBAYlB,OAAO,EAAE,0BAA0B;IAyBzC,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IA4C5C,SAAS,CACb,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CA6qB/B"}
@@ -54,5 +54,63 @@ export declare class AgentToolRuntime {
54
54
  executeToolCalls(toolCalls: ChatToolCall[]): Promise<ToolResult[]>;
55
55
  executeToolCall(call: ChatToolCall): Promise<string>;
56
56
  }
57
+ /**
58
+ * The subset of an {@link AgentToolRuntime} that a chat session uses: refresh
59
+ * the catalog, list tools for the model, and execute a tool call. Implemented
60
+ * by both the single-party {@link AgentToolRuntime} and the multi-party
61
+ * {@link AggregateToolRuntime}, so a session can hold either transparently.
62
+ */
63
+ export interface SessionToolRuntime {
64
+ refreshCatalog(): Promise<void>;
65
+ chatTools(options?: {
66
+ clientTools?: ClientToolDescriptor[];
67
+ }): Array<ChatToolDescriptor | ClientToolDescriptor>;
68
+ executeToolCall(call: ChatToolCall): Promise<string>;
69
+ }
70
+ /** One tool provider's runtime plus an optional allow-list of tool names. */
71
+ export interface ToolProviderRuntime {
72
+ /** Stable key used to namespace colliding tool names (e.g. the party host). */
73
+ key: string;
74
+ runtime: SessionToolRuntime;
75
+ /** Tool names exposed to chats; undefined means all of the provider's tools. */
76
+ allowedTools?: Set<string>;
77
+ }
78
+ /**
79
+ * Aggregates the tool runtimes of several providers into one runtime. Only
80
+ * allowed tools are exposed; when the same tool name occurs on more than one
81
+ * provider it is namespaced (`<index>__<name>`) so the model can address each,
82
+ * and execution is routed back to the owning provider's runtime under the bare
83
+ * name.
84
+ *
85
+ * Each provider runtime carries its own request context (e.g. a forwarded chat
86
+ * initiator), so execution authorizes against that context on each provider.
87
+ */
88
+ export declare class AggregateToolRuntime implements SessionToolRuntime {
89
+ #private;
90
+ constructor(providers: ToolProviderRuntime[]);
91
+ refreshCatalog(): Promise<void>;
92
+ chatTools(options?: {
93
+ clientTools?: ClientToolDescriptor[];
94
+ }): Array<ChatToolDescriptor | ClientToolDescriptor>;
95
+ executeToolCall(call: ChatToolCall): Promise<string>;
96
+ }
97
+ /**
98
+ * A {@link SessionToolRuntime} backed by another party's MCP gateway
99
+ * (`/mcp/rpc`), spoken over JSON-RPC. Used for cross-party tool providers: the
100
+ * caller mints a signed token and forwards the chat initiator's context, and the
101
+ * remote gateway returns the grant-filtered catalog and runs the tool. Only MCP
102
+ * tools are surfaced this way (no platform memory tools).
103
+ */
104
+ export declare class GatewayToolRuntime implements SessionToolRuntime {
105
+ #private;
106
+ constructor(options: {
107
+ postRpc: (body: JSONRecord) => Promise<JSONRecord>;
108
+ });
109
+ refreshCatalog(): Promise<void>;
110
+ chatTools(options?: {
111
+ clientTools?: ClientToolDescriptor[];
112
+ }): Array<ChatToolDescriptor | ClientToolDescriptor>;
113
+ executeToolCall(call: ChatToolCall): Promise<string>;
114
+ }
57
115
  export declare function toChatTool(entry: ToolCatalogEntry): ChatToolDescriptor | null;
58
116
  //# sourceMappingURL=McpAgentTools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"McpAgentTools.d.ts","sourceRoot":"","sources":["../../../ts/McpAgentTools.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEhD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,UAAU,CAAA;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,UAAU,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,QAAQ,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,UAAU,CAAA;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,UAAU,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,QAAQ,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,UAAU,CAAA;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE;QACL,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,WAAW,CAAC,EAAE,UAAU,CAAA;KACzB,CAAA;IACD,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;IAClE,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;CACtE;AAED,qBAAa,gBAAgB;;gBAOf,OAAO,EAAE,uBAAuB;IAK5C,IAAI,WAAW,IAAI,gBAAgB,EAAE,CAEpC;IAEK,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAKrC,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAWhC,SAAS,CAAC,OAAO,GAAE;QACjB,WAAW,CAAC,EAAE,oBAAoB,EAAE,CAAA;KAChC,GAAG,KAAK,CAAC,kBAAkB,GAAG,oBAAoB,CAAC;IAOnD,gBAAgB,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAqBlE,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;CAmC3D;AAED,wBAAgB,UAAU,CACxB,KAAK,EAAE,gBAAgB,GACtB,kBAAkB,GAAG,IAAI,CAS3B"}
1
+ {"version":3,"file":"McpAgentTools.d.ts","sourceRoot":"","sources":["../../../ts/McpAgentTools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -13,7 +13,7 @@
13
13
  "files": [
14
14
  "dist"
15
15
  ],
16
- "version": "25.2.0",
16
+ "version": "25.5.0",
17
17
  "description": "Web Daemon",
18
18
  "module": "./dist/index.js",
19
19
  "keywords": [