@cuylabs/agent-core 0.11.0 → 0.13.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 (58) hide show
  1. package/dist/{chunk-GFTW23FV.js → chunk-BGG2HVIR.js} +4 -2
  2. package/dist/{chunk-TOTDGK3P.js → chunk-CSR75JVC.js} +4 -5
  3. package/dist/{chunk-ICZ66572.js → chunk-CZ5XOVDV.js} +40 -9
  4. package/dist/{chunk-2O4MCSQS.js → chunk-FYC33XFI.js} +31 -10
  5. package/dist/{chunk-WBPOZ7CL.js → chunk-HNEI7JVE.js} +114 -38
  6. package/dist/{chunk-SPILYYDF.js → chunk-I7EJGKUP.js} +79 -7
  7. package/dist/{chunk-SSFBF3US.js → chunk-JPBFAQNS.js} +7 -12
  8. package/dist/{chunk-5FMSGQVX.js → chunk-JZRLCTSD.js} +8 -2
  9. package/dist/{chunk-V4RFNEET.js → chunk-MLTJHUVG.js} +34 -16
  10. package/dist/{chunk-QAL3OMI3.js → chunk-MO3N6M32.js} +4 -1
  11. package/dist/{chunk-CMYN2RCB.js → chunk-NWQUZWLT.js} +13 -7
  12. package/dist/{chunk-MXAP4UG6.js → chunk-QJV5XPPS.js} +238 -86
  13. package/dist/{chunk-T4UIX5D7.js → chunk-S6AKEPAX.js} +9 -3
  14. package/dist/{chunk-N3VX7FEE.js → chunk-STDJYXYK.js} +1 -4
  15. package/dist/{chunk-6HZBHFOL.js → chunk-TPZ37IWI.js} +10 -1
  16. package/dist/{chunk-NDZWXCBZ.js → chunk-TZ4VA4VX.js} +33 -11
  17. package/dist/chunk-US7S4FYW.js +610 -0
  18. package/dist/{chunk-RN6WZEUF.js → chunk-WI5JFEAI.js} +71 -36
  19. package/dist/{chunk-5NVVNXPQ.js → chunk-ZKEC7MFQ.js} +5 -30
  20. package/dist/dispatch/index.d.ts +5 -3
  21. package/dist/dispatch/index.js +3 -3
  22. package/dist/execution/index.d.ts +6 -4
  23. package/dist/execution/index.js +7 -7
  24. package/dist/index.d.ts +8 -5
  25. package/dist/index.js +119 -116
  26. package/dist/inference/errors/index.js +1 -1
  27. package/dist/inference/index.d.ts +6 -4
  28. package/dist/inference/index.js +6 -6
  29. package/dist/{instance-DzPiv6EK.d.ts → instance-N5VhcNT2.d.ts} +45 -7
  30. package/dist/logger/index.js +1 -1
  31. package/dist/mcp/index.d.ts +116 -3
  32. package/dist/mcp/index.js +6 -2
  33. package/dist/middleware/index.d.ts +5 -3
  34. package/dist/middleware/index.js +3 -3
  35. package/dist/{model-messages-CJfwfzGe.d.ts → model-messages-DnsiSiZj.d.ts} +1 -1
  36. package/dist/models/index.js +2 -2
  37. package/dist/models/reasoning/index.js +2 -2
  38. package/dist/plugin/index.d.ts +4 -2
  39. package/dist/plugin/index.js +1 -1
  40. package/dist/profiles/index.d.ts +4 -2
  41. package/dist/profiles/index.js +1 -1
  42. package/dist/prompt/index.d.ts +5 -3
  43. package/dist/prompt/index.js +2 -2
  44. package/dist/safety/index.d.ts +5 -3
  45. package/dist/safety/index.js +1 -1
  46. package/dist/skill/index.d.ts +5 -3
  47. package/dist/skill/index.js +2 -2
  48. package/dist/storage/index.d.ts +5 -3
  49. package/dist/storage/index.js +1 -1
  50. package/dist/subagents/index.d.ts +4 -2
  51. package/dist/subagents/index.js +4 -4
  52. package/dist/team/index.d.ts +5 -3
  53. package/dist/team/index.js +1 -1
  54. package/dist/tool/index.d.ts +5 -3
  55. package/dist/tool/index.js +2 -2
  56. package/dist/{types-Bj_J8u_W.d.ts → types-DMjoFKKv.d.ts} +55 -7
  57. package/package.json +1 -6
  58. package/dist/chunk-ROTGCYDW.js +0 -221
@@ -1,7 +1,95 @@
1
- import { M as MCPConfig, a as MCPManager, R as RemoteTransportConfig, d as StdioTransportConfig } from '../types-Bj_J8u_W.js';
2
- export { H as HttpTransportConfig, b as MCPServerConfig, c as MCPServerStatus, S as SseTransportConfig } from '../types-Bj_J8u_W.js';
1
+ import { M as MCPConfig, a as MCPManager, R as RemoteTransportConfig, g as StdioTransportConfig } from '../types-DMjoFKKv.js';
2
+ export { H as HttpTransportConfig, b as MCPPromptInfo, c as MCPResourceInfo, d as MCPResourceTemplateInfo, e as MCPServerConfig, f as MCPServerStatus, S as SseTransportConfig } from '../types-DMjoFKKv.js';
3
+ import { OAuthClientProvider } from '@modelcontextprotocol/sdk/client/auth.js';
4
+ import { OAuthClientMetadata, OAuthClientInformation, OAuthTokens } from '@modelcontextprotocol/sdk/shared/auth.js';
5
+ import '@modelcontextprotocol/sdk/types.js';
3
6
  import 'ai';
4
7
 
8
+ /**
9
+ * Options for {@linkcode ClientCredentialsProvider}.
10
+ */
11
+ interface ClientCredentialsOptions {
12
+ /**
13
+ * OAuth `client_id`.
14
+ */
15
+ clientId: string;
16
+ /**
17
+ * OAuth `client_secret`.
18
+ */
19
+ clientSecret: string;
20
+ /**
21
+ * The token endpoint URL.
22
+ * Required because machine-to-machine flows don't go through OAuth discovery
23
+ * (there is no user redirect that would trigger `/.well-known` lookups).
24
+ *
25
+ * @example "https://auth.example.com/oauth/token"
26
+ * @example "https://login.microsoftonline.com/<tenant>/oauth2/v2.0/token"
27
+ */
28
+ tokenUrl: string;
29
+ /**
30
+ * Space-separated OAuth scopes to request.
31
+ */
32
+ scope?: string;
33
+ /**
34
+ * Seconds before token expiry at which a proactive refresh is triggered.
35
+ * @default 60
36
+ */
37
+ expiryBufferSeconds?: number;
38
+ }
39
+ /**
40
+ * OAuth `client_credentials` provider for machine-to-machine MCP authentication.
41
+ *
42
+ * Implements {@linkcode OAuthClientProvider} from the official MCP TypeScript
43
+ * SDK so it can be passed directly to `httpServer()` / `sseServer()` as
44
+ * `authProvider`.
45
+ *
46
+ * Unlike user-interactive OAuth flows, this provider proactively fetches a
47
+ * bearer token via the `client_credentials` grant before any request is made,
48
+ * so the MCP transport's `Authorization` header is always populated.
49
+ * Token expiry is tracked and a new token is fetched automatically before the
50
+ * old one expires (controlled by {@linkcode ClientCredentialsOptions.expiryBufferSeconds}).
51
+ *
52
+ * @example
53
+ * ```ts
54
+ * import { serviceAccountServer } from "@cuylabs/agent-core/mcp";
55
+ *
56
+ * const mcpManager = createMCPManager({
57
+ * myServer: serviceAccountServer("https://my-mcp.example.com", {
58
+ * clientId: "my-service-account",
59
+ * clientSecret: process.env.CLIENT_SECRET!,
60
+ * tokenUrl: "https://auth.example.com/oauth/token",
61
+ * scope: "mcp:read",
62
+ * }),
63
+ * });
64
+ * ```
65
+ *
66
+ * @example Static API key (no OAuth needed — use headers instead)
67
+ * ```ts
68
+ * httpServer("https://my-mcp.example.com", {
69
+ * headers: { Authorization: `Bearer ${process.env.API_KEY}` },
70
+ * });
71
+ * ```
72
+ */
73
+ declare class ClientCredentialsProvider implements OAuthClientProvider {
74
+ private _tokens?;
75
+ private _expiresAt?;
76
+ private readonly _options;
77
+ constructor(options: ClientCredentialsOptions);
78
+ get redirectUrl(): undefined;
79
+ get clientMetadata(): OAuthClientMetadata;
80
+ clientInformation(): OAuthClientInformation;
81
+ saveClientInformation(): void;
82
+ tokens(): Promise<OAuthTokens | undefined>;
83
+ saveTokens(tokens: OAuthTokens): Promise<void>;
84
+ redirectToAuthorization(_authorizationUrl: URL): never;
85
+ saveCodeVerifier(): void;
86
+ codeVerifier(): never;
87
+ prepareTokenRequest(scope?: string): URLSearchParams;
88
+ addClientAuthentication(headers: Headers): void;
89
+ invalidateCredentials(scope: "all" | "client" | "tokens" | "verifier"): void;
90
+ private _fetchTokens;
91
+ }
92
+
5
93
  /**
6
94
  * Create an MCP manager for connecting to multiple MCP servers.
7
95
  */
@@ -18,5 +106,30 @@ declare function httpServer(url: string, options?: Omit<RemoteTransportConfig, "
18
106
  * Helper to create an SSE server config.
19
107
  */
20
108
  declare function sseServer(url: string, options?: Omit<RemoteTransportConfig, "transport" | "url">): RemoteTransportConfig;
109
+ /**
110
+ * Helper to create an HTTP server config authenticated with the OAuth
111
+ * `client_credentials` grant (machine-to-machine / service account).
112
+ *
113
+ * This uses agent-core's convenience `ClientCredentialsProvider`, which
114
+ * proactively fetches a bearer token from an explicit token endpoint before
115
+ * the first request. The official MCP SDK transport still owns the underlying
116
+ * auth orchestration and transport behavior.
117
+ *
118
+ * @example
119
+ * ```ts
120
+ * createMCPManager({
121
+ * myServer: serviceAccountServer(
122
+ * "https://my-mcp.example.com",
123
+ * {
124
+ * clientId: "svc-account-id",
125
+ * clientSecret: process.env.CLIENT_SECRET!,
126
+ * tokenUrl: "https://auth.example.com/oauth/token",
127
+ * scope: "mcp:read",
128
+ * }
129
+ * ),
130
+ * });
131
+ * ```
132
+ */
133
+ declare function serviceAccountServer(url: string, credentials: ClientCredentialsOptions, options?: Omit<RemoteTransportConfig, "transport" | "url" | "authProvider">): RemoteTransportConfig;
21
134
 
22
- export { MCPConfig, MCPManager, RemoteTransportConfig, StdioTransportConfig, createMCPManager, httpServer, sseServer, stdioServer };
135
+ export { type ClientCredentialsOptions, ClientCredentialsProvider, MCPConfig, MCPManager, RemoteTransportConfig, StdioTransportConfig, createMCPManager, httpServer, serviceAccountServer, sseServer, stdioServer };
package/dist/mcp/index.js CHANGED
@@ -1,13 +1,17 @@
1
1
  import {
2
+ ClientCredentialsProvider,
2
3
  createMCPManager,
3
4
  httpServer,
5
+ serviceAccountServer,
4
6
  sseServer,
5
7
  stdioServer
6
- } from "../chunk-ROTGCYDW.js";
7
- import "../chunk-T4UIX5D7.js";
8
+ } from "../chunk-US7S4FYW.js";
9
+ import "../chunk-S6AKEPAX.js";
8
10
  export {
11
+ ClientCredentialsProvider,
9
12
  createMCPManager,
10
13
  httpServer,
14
+ serviceAccountServer,
11
15
  sseServer,
12
16
  stdioServer
13
17
  };
@@ -1,11 +1,13 @@
1
- import { bR as OtelMiddlewareConfig, L as AgentMiddleware, de as TelemetryConfig, df as TelemetryConfigResult } from '../instance-DzPiv6EK.js';
2
- export { N as AgentModelHooks, ac as ApprovalAgentMiddleware, al as ApprovalMiddlewareConfig, as as BlockedModelCall, au as ChatLifecycleContext, b as MiddlewareRunner, d as ModelCallContext, bK as ModelCallInput, bL as ModelCallOutput, dh as ToolCallDecision, di as ToolCallOutput, dz as approvalMiddleware, dM as isApprovalMiddleware, dN as isBlockedModelCall } from '../instance-DzPiv6EK.js';
1
+ import { bR as OtelMiddlewareConfig, L as AgentMiddleware, de as TelemetryConfig, df as TelemetryConfigResult } from '../instance-N5VhcNT2.js';
2
+ export { N as AgentModelHooks, ac as ApprovalAgentMiddleware, al as ApprovalMiddlewareConfig, as as BlockedModelCall, au as ChatLifecycleContext, b as MiddlewareRunner, d as ModelCallContext, bK as ModelCallInput, bL as ModelCallOutput, dh as ToolCallDecision, di as ToolCallOutput, dz as approvalMiddleware, dM as isApprovalMiddleware, dN as isBlockedModelCall } from '../instance-N5VhcNT2.js';
3
3
  import '../types-C_LCeYNg.js';
4
4
  import 'ai';
5
5
  import '../types-RSCv7nQ4.js';
6
6
  import 'zod';
7
7
  import '../types-CQaXbRsS.js';
8
- import '../types-Bj_J8u_W.js';
8
+ import '../types-DMjoFKKv.js';
9
+ import '@modelcontextprotocol/sdk/client/auth.js';
10
+ import '@modelcontextprotocol/sdk/types.js';
9
11
  import '@ai-sdk/provider-utils';
10
12
  import '../sandbox/index.js';
11
13
  import '../llm-error-D93FNNLY.js';
@@ -5,14 +5,14 @@ import {
5
5
  isApprovalMiddleware,
6
6
  otelMiddleware,
7
7
  promptCacheMiddleware
8
- } from "../chunk-NDZWXCBZ.js";
8
+ } from "../chunk-TZ4VA4VX.js";
9
9
  import {
10
10
  isBlockedModelCall
11
11
  } from "../chunk-CJI7PVS2.js";
12
12
  import "../chunk-I6PKJ7XQ.js";
13
- import "../chunk-V4RFNEET.js";
13
+ import "../chunk-MLTJHUVG.js";
14
14
  import "../chunk-FII65CN7.js";
15
- import "../chunk-T4UIX5D7.js";
15
+ import "../chunk-S6AKEPAX.js";
16
16
  export {
17
17
  MiddlewareRunner,
18
18
  approvalMiddleware,
@@ -1,5 +1,5 @@
1
1
  import { ModelMessage } from 'ai';
2
- import { M as Message } from './instance-DzPiv6EK.js';
2
+ import { M as Message } from './instance-N5VhcNT2.js';
3
3
 
4
4
  /**
5
5
  * Convert framework messages into Vercel AI SDK model messages.
@@ -28,7 +28,7 @@ import {
28
28
  shouldIncludeReasoningSummary,
29
29
  supportsReasoning,
30
30
  supportsReasoningSync
31
- } from "../chunk-RN6WZEUF.js";
31
+ } from "../chunk-WI5JFEAI.js";
32
32
  import {
33
33
  DEFAULT_RESOLVER_OPTIONS,
34
34
  PatternCapabilitySource,
@@ -42,7 +42,7 @@ import {
42
42
  inferProvider,
43
43
  likelySupportsReasoning
44
44
  } from "../chunk-I6PKJ7XQ.js";
45
- import "../chunk-T4UIX5D7.js";
45
+ import "../chunk-S6AKEPAX.js";
46
46
  export {
47
47
  CacheCapabilitySource,
48
48
  CapabilityCache,
@@ -17,9 +17,9 @@ import {
17
17
  shouldIncludeReasoningSummary,
18
18
  supportsReasoning,
19
19
  supportsReasoningSync
20
- } from "../../chunk-RN6WZEUF.js";
20
+ } from "../../chunk-WI5JFEAI.js";
21
21
  import "../../chunk-I6PKJ7XQ.js";
22
- import "../../chunk-T4UIX5D7.js";
22
+ import "../../chunk-S6AKEPAX.js";
23
23
  export {
24
24
  EXTENDED_LEVELS,
25
25
  FIXED_LEVELS,
@@ -1,11 +1,13 @@
1
- import { T as Tool, L as AgentMiddleware, c5 as PromptSection } from '../instance-DzPiv6EK.js';
1
+ import { T as Tool, L as AgentMiddleware, c5 as PromptSection } from '../instance-N5VhcNT2.js';
2
2
  import { ZodType } from 'zod';
3
3
  import { Jiti } from 'jiti';
4
4
  import '../types-C_LCeYNg.js';
5
5
  import 'ai';
6
6
  import '../types-RSCv7nQ4.js';
7
7
  import '../types-CQaXbRsS.js';
8
- import '../types-Bj_J8u_W.js';
8
+ import '../types-DMjoFKKv.js';
9
+ import '@modelcontextprotocol/sdk/client/auth.js';
10
+ import '@modelcontextprotocol/sdk/types.js';
9
11
  import '@ai-sdk/provider-utils';
10
12
  import '../sandbox/index.js';
11
13
  import '../llm-error-D93FNNLY.js';
@@ -13,7 +13,7 @@ import {
13
13
  resetFrameworkAliases,
14
14
  resetPluginLoader,
15
15
  resolveFrameworkAliases
16
- } from "../chunk-QAL3OMI3.js";
16
+ } from "../chunk-MO3N6M32.js";
17
17
  export {
18
18
  LayeredSettings,
19
19
  NullSettings,
@@ -1,10 +1,12 @@
1
- import { T as Tool, c2 as Profile, aa as AppliedProfile } from '../instance-DzPiv6EK.js';
1
+ import { T as Tool, c2 as Profile, aa as AppliedProfile } from '../instance-N5VhcNT2.js';
2
2
  import '../types-C_LCeYNg.js';
3
3
  import 'ai';
4
4
  import '../types-RSCv7nQ4.js';
5
5
  import 'zod';
6
6
  import '../types-CQaXbRsS.js';
7
- import '../types-Bj_J8u_W.js';
7
+ import '../types-DMjoFKKv.js';
8
+ import '@modelcontextprotocol/sdk/client/auth.js';
9
+ import '@modelcontextprotocol/sdk/types.js';
8
10
  import '@ai-sdk/provider-utils';
9
11
  import '../sandbox/index.js';
10
12
  import '../llm-error-D93FNNLY.js';
@@ -13,7 +13,7 @@ import {
13
13
  quick,
14
14
  review,
15
15
  watch
16
- } from "../chunk-6HZBHFOL.js";
16
+ } from "../chunk-TPZ37IWI.js";
17
17
  export {
18
18
  Profiles,
19
19
  applyProfile,
@@ -1,11 +1,13 @@
1
- import { bM as ModelFamily, b6 as EnvironmentInfo, bq as InstructionFile } from '../instance-DzPiv6EK.js';
2
- export { c3 as PromptBuildContext, P as PromptBuilder, c4 as PromptConfig, c5 as PromptSection, cq as SkillConfig, dG as createPromptBuilder } from '../instance-DzPiv6EK.js';
1
+ import { bM as ModelFamily, b6 as EnvironmentInfo, bq as InstructionFile } from '../instance-N5VhcNT2.js';
2
+ export { c3 as PromptBuildContext, P as PromptBuilder, c4 as PromptConfig, c5 as PromptSection, cq as SkillConfig, dG as createPromptBuilder } from '../instance-N5VhcNT2.js';
3
3
  import { LanguageModel } from 'ai';
4
4
  import '../types-C_LCeYNg.js';
5
5
  import '../types-RSCv7nQ4.js';
6
6
  import 'zod';
7
7
  import '../types-CQaXbRsS.js';
8
- import '../types-Bj_J8u_W.js';
8
+ import '../types-DMjoFKKv.js';
9
+ import '@modelcontextprotocol/sdk/client/auth.js';
10
+ import '@modelcontextprotocol/sdk/types.js';
9
11
  import '@ai-sdk/provider-utils';
10
12
  import '../sandbox/index.js';
11
13
  import '../llm-error-D93FNNLY.js';
@@ -19,8 +19,8 @@ import {
19
19
  getTemplate,
20
20
  loadGlobalInstructions,
21
21
  summarizeEnvironment
22
- } from "../chunk-GFTW23FV.js";
23
- import "../chunk-SPILYYDF.js";
22
+ } from "../chunk-BGG2HVIR.js";
23
+ import "../chunk-I7EJGKUP.js";
24
24
  import "../chunk-I6PKJ7XQ.js";
25
25
  export {
26
26
  DEFAULT_INSTRUCTION_PATTERNS,
@@ -1,11 +1,13 @@
1
- import { c9 as RiskLevel, ap as ApprovalRule, an as ApprovalRequest, aq as ApprovalRuleContext, ca as RuleSource, ae as ApprovalCascadePolicy, am as ApprovalRememberScope, ah as ApprovalDecision, af as ApprovalConfig } from '../instance-DzPiv6EK.js';
2
- export { ab as ApprovalAction, ad as ApprovalCascadeMode, ag as ApprovalCorrection, ai as ApprovalEvaluation, ak as ApprovalHandler, ao as ApprovalResolution, dE as createApprovalHandler } from '../instance-DzPiv6EK.js';
1
+ import { c9 as RiskLevel, ap as ApprovalRule, an as ApprovalRequest, aq as ApprovalRuleContext, ca as RuleSource, ae as ApprovalCascadePolicy, am as ApprovalRememberScope, ah as ApprovalDecision, af as ApprovalConfig } from '../instance-N5VhcNT2.js';
2
+ export { ab as ApprovalAction, ad as ApprovalCascadeMode, ag as ApprovalCorrection, ai as ApprovalEvaluation, ak as ApprovalHandler, ao as ApprovalResolution, dE as createApprovalHandler } from '../instance-N5VhcNT2.js';
3
3
  import '../types-C_LCeYNg.js';
4
4
  import 'ai';
5
5
  import '../types-RSCv7nQ4.js';
6
6
  import 'zod';
7
7
  import '../types-CQaXbRsS.js';
8
- import '../types-Bj_J8u_W.js';
8
+ import '../types-DMjoFKKv.js';
9
+ import '@modelcontextprotocol/sdk/client/auth.js';
10
+ import '@modelcontextprotocol/sdk/types.js';
9
11
  import '@ai-sdk/provider-utils';
10
12
  import '../sandbox/index.js';
11
13
  import '../llm-error-D93FNNLY.js';
@@ -27,7 +27,7 @@ import {
27
27
  normalizeRememberScopes,
28
28
  selectRememberScope,
29
29
  shouldCascadeApprovalDecision
30
- } from "../chunk-V4RFNEET.js";
30
+ } from "../chunk-MLTJHUVG.js";
31
31
  import {
32
32
  describeApprovalOperation,
33
33
  extractApprovalPatterns,
@@ -1,11 +1,13 @@
1
- import { cy as SkillScope, cz as SkillSource, cu as SkillMetadata, cx as SkillResourceType, cw as SkillResource, cr as SkillContent, cq as SkillConfig, ct as SkillDiscoveryResult, cv as SkillRegistry, T as Tool } from '../instance-DzPiv6EK.js';
2
- export { c7 as RemoteSkillEntry, c8 as RemoteSkillIndex, cs as SkillDiscoveryError, cA as SkillSourceType, dH as createSkillRegistry, dJ as emptySkillRegistry } from '../instance-DzPiv6EK.js';
1
+ import { cy as SkillScope, cz as SkillSource, cu as SkillMetadata, cx as SkillResourceType, cw as SkillResource, cr as SkillContent, cq as SkillConfig, ct as SkillDiscoveryResult, cv as SkillRegistry, T as Tool } from '../instance-N5VhcNT2.js';
2
+ export { c7 as RemoteSkillEntry, c8 as RemoteSkillIndex, cs as SkillDiscoveryError, cA as SkillSourceType, dH as createSkillRegistry, dJ as emptySkillRegistry } from '../instance-N5VhcNT2.js';
3
3
  import '../types-C_LCeYNg.js';
4
4
  import 'ai';
5
5
  import '../types-RSCv7nQ4.js';
6
6
  import 'zod';
7
7
  import '../types-CQaXbRsS.js';
8
- import '../types-Bj_J8u_W.js';
8
+ import '../types-DMjoFKKv.js';
9
+ import '@modelcontextprotocol/sdk/client/auth.js';
10
+ import '@modelcontextprotocol/sdk/types.js';
9
11
  import '@ai-sdk/provider-utils';
10
12
  import '../sandbox/index.js';
11
13
  import '../llm-error-D93FNNLY.js';
@@ -2,7 +2,7 @@ import {
2
2
  createSkillResourceTool,
3
3
  createSkillTool,
4
4
  createSkillTools
5
- } from "../chunk-TOTDGK3P.js";
5
+ } from "../chunk-CSR75JVC.js";
6
6
  import {
7
7
  DEFAULT_EXTERNAL_DIRS,
8
8
  DEFAULT_MAX_SCAN_DEPTH,
@@ -17,7 +17,7 @@ import {
17
17
  loadSkillContent,
18
18
  loadSkillMetadata,
19
19
  parseFrontmatter
20
- } from "../chunk-SPILYYDF.js";
20
+ } from "../chunk-I7EJGKUP.js";
21
21
  import "../chunk-Q742PSH3.js";
22
22
  export {
23
23
  DEFAULT_EXTERNAL_DIRS,
@@ -1,11 +1,13 @@
1
- import { b8 as FileEntry, ci as SessionEntry, M as Message, bB as MessageEntry, bJ as MetadataEntry, cf as SerializedMessage, ck as SessionInfo, cl as SessionStorage, cj as SessionHeader, S as SessionManager } from '../instance-DzPiv6EK.js';
2
- export { at as BranchEntry, ay as CompactionEntry, aA as ConfigChangeEntry, aG as CreateSessionOptions, b5 as EntryBase, ce as STORAGE_VERSION, ch as SessionContext } from '../instance-DzPiv6EK.js';
1
+ import { b8 as FileEntry, ci as SessionEntry, M as Message, bB as MessageEntry, bJ as MetadataEntry, cf as SerializedMessage, ck as SessionInfo, cl as SessionStorage, cj as SessionHeader, S as SessionManager } from '../instance-N5VhcNT2.js';
2
+ export { at as BranchEntry, ay as CompactionEntry, aA as ConfigChangeEntry, aG as CreateSessionOptions, b5 as EntryBase, ce as STORAGE_VERSION, ch as SessionContext } from '../instance-N5VhcNT2.js';
3
3
  import { L as Logger } from '../types-RSCv7nQ4.js';
4
4
  import '../types-C_LCeYNg.js';
5
5
  import 'ai';
6
6
  import 'zod';
7
7
  import '../types-CQaXbRsS.js';
8
- import '../types-Bj_J8u_W.js';
8
+ import '../types-DMjoFKKv.js';
9
+ import '@modelcontextprotocol/sdk/client/auth.js';
10
+ import '@modelcontextprotocol/sdk/types.js';
9
11
  import '@ai-sdk/provider-utils';
10
12
  import '../sandbox/index.js';
11
13
  import '../llm-error-D93FNNLY.js';
@@ -22,7 +22,7 @@ import {
22
22
  serializeMessage,
23
23
  toJSONL,
24
24
  toJSONLBatch
25
- } from "../chunk-ICZ66572.js";
25
+ } from "../chunk-CZ5XOVDV.js";
26
26
  export {
27
27
  FileStorage,
28
28
  MemoryStorage,
@@ -1,10 +1,12 @@
1
- import { aT as DispatchRole, aS as DispatchResult, br as LocalDispatchRuntimeOptions, B as Agent, T as Tool, aU as DispatchRuntime, c2 as Profile } from '../instance-DzPiv6EK.js';
1
+ import { aT as DispatchRole, aS as DispatchResult, br as LocalDispatchRuntimeOptions, B as Agent, T as Tool, aU as DispatchRuntime, c2 as Profile } from '../instance-N5VhcNT2.js';
2
2
  import '../types-C_LCeYNg.js';
3
3
  import 'ai';
4
4
  import '../types-RSCv7nQ4.js';
5
5
  import 'zod';
6
6
  import '../types-CQaXbRsS.js';
7
- import '../types-Bj_J8u_W.js';
7
+ import '../types-DMjoFKKv.js';
8
+ import '@modelcontextprotocol/sdk/client/auth.js';
9
+ import '@modelcontextprotocol/sdk/types.js';
8
10
  import '@ai-sdk/provider-utils';
9
11
  import '../sandbox/index.js';
10
12
  import '../llm-error-D93FNNLY.js';
@@ -34,11 +34,11 @@ import {
34
34
  parseSubAgentRoleFrontmatter,
35
35
  parseSubAgentToolSpec,
36
36
  toSubAgentRole
37
- } from "../chunk-2O4MCSQS.js";
38
- import "../chunk-6HZBHFOL.js";
39
- import "../chunk-SSFBF3US.js";
37
+ } from "../chunk-FYC33XFI.js";
38
+ import "../chunk-TPZ37IWI.js";
39
+ import "../chunk-JPBFAQNS.js";
40
40
  import "../chunk-Q742PSH3.js";
41
- import "../chunk-ICZ66572.js";
41
+ import "../chunk-CZ5XOVDV.js";
42
42
  export {
43
43
  DEFAULT_SUBAGENT_CONCURRENCY,
44
44
  DEFAULT_SUBAGENT_DEPTH,
@@ -1,11 +1,13 @@
1
- import { aB as CoordinatorNotification, cS as TaskCompletion, dg as TokenUsage, A as AgentEvent, dT as CoordinatorCtx, B as Agent, bw as MemberRuntime, cP as TaskBoard, bs as Mailbox, cW as TaskDispatchMode, bV as PermissionHandler, d4 as TeamCoordinatorConfig, cX as TaskExecutor, d5 as TeamEvent, d6 as TeamMember, c6 as QueueTaskInput, dd as TeamTask, d7 as TeamMessage, d9 as TeamPlan, cL as SynthesisResult, da as TeamSnapshot, c_ as TaskListFilter, bF as MessageListFilter, c1 as PreparedExternalTask, c$ as TaskResult, d1 as TaskTransition, bx as MemberStats, by as MemberStatus, L as AgentMiddleware, dh as ToolCallDecision } from '../instance-DzPiv6EK.js';
2
- export { aC as CoordinatorNotificationKind, aD as CoordinatorRoundEvent, b7 as ExternalTaskControl, b9 as GuidancePayload, bl as IdleNotificationPayload, bm as InMemoryMailboxStore, bn as InMemoryTaskBoardStore, bt as MailboxStore, bu as MailboxSubscriber, bv as MemberRegisteredEvent, bz as MemberStatusChangedEvent, bD as MessageInput, bE as MessageKind, bG as MessagePayload, bI as MessageSentEvent, bO as NotificationPriority, bU as PermissionForwardedEvent, bW as PermissionRequestPayload, bX as PermissionResolvedEvent, bY as PermissionResponsePayload, bZ as PlanCreatedEvent, b_ as PlannedTask, cm as ShutdownRequestPayload, cn as ShutdownRequestedEvent, co as ShutdownResolvedEvent, cp as ShutdownResponsePayload, cK as SynthesisCompleteEvent, cN as TERMINAL_STATUSES, cO as TaskAbortedEvent, cQ as TaskBoardStore, cR as TaskCompletedEvent, cT as TaskConflictError, cU as TaskCreateInput, cV as TaskCreatedEvent, cY as TaskExecutorInput, cZ as TaskFailedEvent, d0 as TaskStatus, d2 as TaskTransitionEvent, d3 as TaskTransitionReason, d8 as TeamNotificationEvent, db as TeamStartedEvent, dc as TeamStoppedEvent, dw as WorkerReportPayload, dA as buildCoordinatorNotificationEvent } from '../instance-DzPiv6EK.js';
1
+ import { aB as CoordinatorNotification, cS as TaskCompletion, dg as TokenUsage, A as AgentEvent, dT as CoordinatorCtx, B as Agent, bw as MemberRuntime, cP as TaskBoard, bs as Mailbox, cW as TaskDispatchMode, bV as PermissionHandler, d4 as TeamCoordinatorConfig, cX as TaskExecutor, d5 as TeamEvent, d6 as TeamMember, c6 as QueueTaskInput, dd as TeamTask, d7 as TeamMessage, d9 as TeamPlan, cL as SynthesisResult, da as TeamSnapshot, c_ as TaskListFilter, bF as MessageListFilter, c1 as PreparedExternalTask, c$ as TaskResult, d1 as TaskTransition, bx as MemberStats, by as MemberStatus, L as AgentMiddleware, dh as ToolCallDecision } from '../instance-N5VhcNT2.js';
2
+ export { aC as CoordinatorNotificationKind, aD as CoordinatorRoundEvent, b7 as ExternalTaskControl, b9 as GuidancePayload, bl as IdleNotificationPayload, bm as InMemoryMailboxStore, bn as InMemoryTaskBoardStore, bt as MailboxStore, bu as MailboxSubscriber, bv as MemberRegisteredEvent, bz as MemberStatusChangedEvent, bD as MessageInput, bE as MessageKind, bG as MessagePayload, bI as MessageSentEvent, bO as NotificationPriority, bU as PermissionForwardedEvent, bW as PermissionRequestPayload, bX as PermissionResolvedEvent, bY as PermissionResponsePayload, bZ as PlanCreatedEvent, b_ as PlannedTask, cm as ShutdownRequestPayload, cn as ShutdownRequestedEvent, co as ShutdownResolvedEvent, cp as ShutdownResponsePayload, cK as SynthesisCompleteEvent, cN as TERMINAL_STATUSES, cO as TaskAbortedEvent, cQ as TaskBoardStore, cR as TaskCompletedEvent, cT as TaskConflictError, cU as TaskCreateInput, cV as TaskCreatedEvent, cY as TaskExecutorInput, cZ as TaskFailedEvent, d0 as TaskStatus, d2 as TaskTransitionEvent, d3 as TaskTransitionReason, d8 as TeamNotificationEvent, db as TeamStartedEvent, dc as TeamStoppedEvent, dw as WorkerReportPayload, dA as buildCoordinatorNotificationEvent } from '../instance-N5VhcNT2.js';
3
3
  import { R as ReasoningLevel } from '../types-CQaXbRsS.js';
4
4
  import '../types-C_LCeYNg.js';
5
5
  import 'ai';
6
6
  import '../types-RSCv7nQ4.js';
7
7
  import 'zod';
8
- import '../types-Bj_J8u_W.js';
8
+ import '../types-DMjoFKKv.js';
9
+ import '@modelcontextprotocol/sdk/client/auth.js';
10
+ import '@modelcontextprotocol/sdk/types.js';
9
11
  import '@ai-sdk/provider-utils';
10
12
  import '../sandbox/index.js';
11
13
  import '../llm-error-D93FNNLY.js';
@@ -16,7 +16,7 @@ import {
16
16
  formatCoordinatorTaskNotifications,
17
17
  formatCoordinatorWorkerReports,
18
18
  teamPermissionPolicy
19
- } from "../chunk-MXAP4UG6.js";
19
+ } from "../chunk-QJV5XPPS.js";
20
20
  import "../chunk-SZ2XBPTW.js";
21
21
  import "../chunk-Q742PSH3.js";
22
22
  import "../chunk-FII65CN7.js";
@@ -1,5 +1,5 @@
1
- import { dq as ToolReplayPolicy, F as FileOperationMeta, bN as NormalizedToolReplayPolicy, T as Tool, H as HumanInputController, a as TurnTrackerContext, b as MiddlewareRunner, A as AgentEvent, dn as ToolMetadata, dj as ToolCapabilities } from '../instance-DzPiv6EK.js';
2
- export { az as CompatibleSchema, bo as InferSchemaOutput, bp as InputCheckResult, dL as getRequiredToolHost, dR as resolveCapability } from '../instance-DzPiv6EK.js';
1
+ import { dq as ToolReplayPolicy, F as FileOperationMeta, bN as NormalizedToolReplayPolicy, T as Tool, H as HumanInputController, a as TurnTrackerContext, b as MiddlewareRunner, A as AgentEvent, dn as ToolMetadata, dj as ToolCapabilities } from '../instance-N5VhcNT2.js';
2
+ export { az as CompatibleSchema, bo as InferSchemaOutput, bp as InputCheckResult, dL as getRequiredToolHost, dR as resolveCapability } from '../instance-N5VhcNT2.js';
3
3
  import { T as ToolHost } from '../types-C_LCeYNg.js';
4
4
  export { D as DirEntry, E as ExecOptions, a as ExecResult, F as FileStat } from '../types-C_LCeYNg.js';
5
5
  export { ToolHostProvider, ToolHostProviderSummary, ToolHostRegistry, defaultToolHostRegistry, localHost } from './host/index.js';
@@ -7,7 +7,9 @@ import 'ai';
7
7
  import '../types-RSCv7nQ4.js';
8
8
  import 'zod';
9
9
  import '../types-CQaXbRsS.js';
10
- import '../types-Bj_J8u_W.js';
10
+ import '../types-DMjoFKKv.js';
11
+ import '@modelcontextprotocol/sdk/client/auth.js';
12
+ import '@modelcontextprotocol/sdk/types.js';
11
13
  import '@ai-sdk/provider-utils';
12
14
  import '../sandbox/index.js';
13
15
  import '../llm-error-D93FNNLY.js';
@@ -17,8 +17,8 @@ import {
17
17
  } from "../chunk-Q742PSH3.js";
18
18
  import {
19
19
  executeAgentToolCall
20
- } from "../chunk-5NVVNXPQ.js";
21
- import "../chunk-V4RFNEET.js";
20
+ } from "../chunk-ZKEC7MFQ.js";
21
+ import "../chunk-MLTJHUVG.js";
22
22
  import {
23
23
  getRequiredToolHost,
24
24
  resolveCapability
@@ -1,3 +1,5 @@
1
+ import { OAuthClientProvider } from '@modelcontextprotocol/sdk/client/auth.js';
2
+ import { Resource, ResourceTemplate, ReadResourceResult, Prompt, GetPromptResult, ClientCapabilities } from '@modelcontextprotocol/sdk/types.js';
1
3
  import { Tool } from 'ai';
2
4
 
3
5
  /**
@@ -23,7 +25,7 @@ interface StdioTransportConfig {
23
25
  /**
24
26
  * HTTP/SSE transport configuration for remote MCP servers.
25
27
  *
26
- * Supports all options from the AI SDK's `MCPTransportConfig` so that
28
+ * Supports the official MCP TypeScript SDK client transport options so that
27
29
  * agents can leverage OAuth, custom fetch, and redirect control.
28
30
  */
29
31
  interface RemoteTransportConfig {
@@ -34,10 +36,18 @@ interface RemoteTransportConfig {
34
36
  headers?: Record<string, string>;
35
37
  /**
36
38
  * OAuth client provider for authenticated MCP servers.
37
- * Pass an `OAuthClientProvider` from `@ai-sdk/mcp` when the server
38
- * requires OAuth authentication.
39
+ *
40
+ * Pass an `OAuthClientProvider` from the official MCP TypeScript SDK for
41
+ * user-interactive OAuth flows, or a {@linkcode ClientCredentialsProvider}
42
+ * from `@cuylabs/agent-core/mcp` for machine-to-machine (service account)
43
+ * auth with an explicit token endpoint.
44
+ *
45
+ * For static API keys or gateway-managed tokens, prefer `headers` instead:
46
+ * ```ts
47
+ * headers: { Authorization: `Bearer ${process.env.API_KEY}` }
48
+ * ```
39
49
  */
40
- authProvider?: any;
50
+ authProvider?: OAuthClientProvider;
41
51
  /**
42
52
  * How HTTP redirects are handled.
43
53
  * - `'follow'` — follow automatically
@@ -75,9 +85,9 @@ type MCPServerConfig = (StdioTransportConfig | RemoteTransportConfig) & {
75
85
  name?: string;
76
86
  /**
77
87
  * Client capabilities to advertise during MCP initialization.
78
- * Enables features like elicitation when the server supports them.
88
+ * Enables MCP-native features like elicitation when the server supports them.
79
89
  */
80
- capabilities?: Record<string, unknown>;
90
+ capabilities?: ClientCapabilities;
81
91
  /**
82
92
  * Callback for uncaught transport errors.
83
93
  */
@@ -103,6 +113,24 @@ type MCPServerStatus = {
103
113
  } | {
104
114
  status: "disabled";
105
115
  };
116
+ /**
117
+ * Aggregated resource metadata with the originating server name attached.
118
+ */
119
+ interface MCPResourceInfo extends Resource {
120
+ server: string;
121
+ }
122
+ /**
123
+ * Aggregated resource template metadata with the originating server name attached.
124
+ */
125
+ interface MCPResourceTemplateInfo extends ResourceTemplate {
126
+ server: string;
127
+ }
128
+ /**
129
+ * Aggregated prompt metadata with the originating server name attached.
130
+ */
131
+ interface MCPPromptInfo extends Prompt {
132
+ server: string;
133
+ }
106
134
  /**
107
135
  * MCP manager - handles connections to multiple MCP servers.
108
136
  */
@@ -115,6 +143,26 @@ interface MCPManager {
115
143
  * Get all tools from connected servers, ready for AI SDK use.
116
144
  */
117
145
  getTools(): Promise<Record<string, Tool>>;
146
+ /**
147
+ * List resources from all connected servers.
148
+ */
149
+ listResources(): Promise<MCPResourceInfo[]>;
150
+ /**
151
+ * List resource templates from all connected servers.
152
+ */
153
+ listResourceTemplates(): Promise<MCPResourceTemplateInfo[]>;
154
+ /**
155
+ * Read a resource from a specific connected server.
156
+ */
157
+ readResource(serverName: string, uri: string): Promise<ReadResourceResult>;
158
+ /**
159
+ * List prompts from all connected servers.
160
+ */
161
+ listPrompts(): Promise<MCPPromptInfo[]>;
162
+ /**
163
+ * Get a prompt from a specific connected server.
164
+ */
165
+ getPrompt(serverName: string, name: string, args?: Record<string, string>): Promise<GetPromptResult>;
118
166
  /**
119
167
  * Get status of a specific server.
120
168
  */
@@ -133,4 +181,4 @@ interface MCPManager {
133
181
  isConnected(): boolean;
134
182
  }
135
183
 
136
- export type { HttpTransportConfig as H, MCPConfig as M, RemoteTransportConfig as R, SseTransportConfig as S, MCPManager as a, MCPServerConfig as b, MCPServerStatus as c, StdioTransportConfig as d };
184
+ export type { HttpTransportConfig as H, MCPConfig as M, RemoteTransportConfig as R, SseTransportConfig as S, MCPManager as a, MCPPromptInfo as b, MCPResourceInfo as c, MCPResourceTemplateInfo as d, MCPServerConfig as e, MCPServerStatus as f, StdioTransportConfig as g };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cuylabs/agent-core",
3
- "version": "0.11.0",
3
+ "version": "0.13.0",
4
4
  "description": "Embeddable AI agent infrastructure — execution, sessions, tools, skills, dispatch, tracing",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -134,7 +134,6 @@
134
134
  "@ai-sdk/google": "^3.0.0",
135
135
  "@ai-sdk/google-vertex": "^4.0.0",
136
136
  "@ai-sdk/groq": "^3.0.0",
137
- "@ai-sdk/mcp": "^1.0.0",
138
137
  "@ai-sdk/mistral": "^3.0.0",
139
138
  "@ai-sdk/openai": "^3.0.0",
140
139
  "@ai-sdk/openai-compatible": "^2.0.0",
@@ -171,9 +170,6 @@
171
170
  "@ai-sdk/groq": {
172
171
  "optional": true
173
172
  },
174
- "@ai-sdk/mcp": {
175
- "optional": true
176
- },
177
173
  "@ai-sdk/mistral": {
178
174
  "optional": true
179
175
  },
@@ -206,7 +202,6 @@
206
202
  "@ai-sdk/google": "^3.0.30",
207
203
  "@ai-sdk/google-vertex": "^4.0.80",
208
204
  "@ai-sdk/groq": "^3.0.29",
209
- "@ai-sdk/mcp": "^1.0.19",
210
205
  "@ai-sdk/mistral": "^3.0.24",
211
206
  "@ai-sdk/openai": "^3.0.25",
212
207
  "@ai-sdk/openai-compatible": "^2.0.30",