-
Notifications
You must be signed in to change notification settings - Fork 4
feat(deps): Upgrade to @modelcontextprotocol/sdk version 1.23 and Zod to v4 #90
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
WalkthroughMigrates the codebase toward Zod v4: replaces JSONSchema7 with a Zod v4 JsonSchema alias and toJsonSchema, tightens many z.record() keys to require string keys, converts z.function() signatures to input/output tuple form, broadens Zod constraints to ZodType, and updates ZodError usage from .errors to .issues. Changes
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Areas to review closely:
Possibly related PRs
Poem
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro 📒 Files selected for processing (5)
🚧 Files skipped from review as they are similar to previous changes (5)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 10
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
libs/adapters/src/openapi/openapi.tool.ts (1)
78-92: Specify return type and handle non-object schemas correctly.The function has two type safety issues:
Bare
z.ZodObjectviolates strict typing: In Zod v4,ZodObjectrequires generic parameters. Usez.ZodObject<z.ZodRawShape>or better yet, returnz.ZodTypeAnysinceconvertJsonSchemaToZodcan produce any Zod type (string, number, array, etc.), not just objects.Unsafe cast masks runtime bugs: Line 88's double cast (
as unknown as z.ZodObject) coerces non-object schemas intoZodObject, but line 28 then calls.shapewhich may not exist or behave incorrectly on non-object types. If the JSON Schema converts to a primitive type (e.g.,z.string()), this will fail.The function should either:
- Return
z.ZodTypeAnyand update callers to handle all Zod types, or- Validate that the conversion produces a
ZodObjectand throw a specific error if notfunction getZodSchemaFromJsonSchema(jsonSchema: JsonSchema, toolName: string): z.ZodTypeAny { if (typeof jsonSchema !== 'object' || jsonSchema === null) { return z.object({}).passthrough(); } try { const zodSchema = convertJsonSchemaToZod(jsonSchema); if (typeof zodSchema?.parse !== 'function') { throw new Error('Conversion did not produce a valid Zod schema.'); } return zodSchema; // Return as-is without unsafe cast } catch (err: unknown) { console.error(`Failed to generate Zod schema for '${toolName}':`, err); return z.object({}).passthrough(); } }Then update line 28 to handle all types:
inputSchema: zodSchema instanceof z.ZodObject ? zodSchema.shape : {},
♻️ Duplicate comments (1)
libs/sdk/src/common/decorators/front-mcp.decorator.ts (1)
14-35: Use MCP-specific error classes instead of generic Error.Similar to
plugin.decorator.ts, this file uses genericErrorclasses for validation errors. According to the coding guidelines, files inlibs/sdk/src/**/*.tsshould use specific MCP error classes with error codes fromMCP_ERROR_CODES.Based on learnings, use specific MCP error classes with error codes from MCP_ERROR_CODES instead of generic Error classes.
🧹 Nitpick comments (15)
libs/sdk/src/utils/types.utils.ts (1)
1-17: Zod v4 migration forInferlooks correct; consider type‑only import forZodType.The switch from
ZodTypeAnytoZodTypekeeps theInferbehavior while aligning with Zod v4 and avoiding theany-ish alias, which is good for stricter typing inlibs/sdk. To tighten things further and avoid an unnecessary runtime symbol, you could change the import to:import { z } from 'zod'; import type { ZodType } from 'zod';Functionally equivalent, but slightly cleaner for bundling and matches the “types as types” convention. As per coding guidelines for strict TS typing in
libs/sdk/src/**/*.ts.libs/sdk/src/front-mcp/front-mcp.providers.ts (1)
14-22: Type the HTTP defaults and confirm behavior change vs. previous server defaultsDefining
DEFAULT_HTTP_OPTIONSand usingconfig.http ?? DEFAULT_HTTP_OPTIONSimproves robustness whenconfig.httpis missing; however:
Behavioral change: Previously,
FrontMcpServerInstancereceivedconfig.httpdirectly (likelyundefinedwhen not configured), so its own internal defaults applied. Now, you’re forcing{ port: 3000, entryPath: '/mcp' }whenconfig.httpis undefined. Please confirm:
- These values match the prior internal defaults of
FrontMcpServerInstance, or- This intentional change is documented in the SDK docs (under
docs/draft/docs/**) since it effectively alters default runtime behavior inlibs/sdk.Type-safety for defaults: To keep
DEFAULT_HTTP_OPTIONSin sync with the server’s constructor type, consider tying it directly to the constructor parameter type instead of a bare object literal:-const DEFAULT_HTTP_OPTIONS = { port: 3000, entryPath: '/mcp' }; +const DEFAULT_HTTP_OPTIONS: ConstructorParameters<typeof FrontMcpServerInstance>[0] = { + port: 3000, + entryPath: '/mcp', +};This ensures you’ll get a compile-time error if the HTTP options shape changes.
libs/sdk/src/flows/flow.registry.ts (1)
79-89: Avoid relying on broad type assertion inrunFlowif possibleThe new
as Promise<FlowOutputOf<Name> | undefined>assertion is type‑only and keeps runtime behavior unchanged, but it hides any mismatch betweenFlowInstance.run’s actual return type andFlowOutputOf<Name>. If feasible, consider tightening typings so this method doesn’t need an assertion—for example by:
- Ensuring
FlowInstanceis generic on the specificFlowNameand thatthis.instancesis typed accordingly (soflow.run(...)is inferred asPromise<FlowOutputOf<Name> | undefined>), or- Updating
FlowInstance.run’s signature to returnPromise<FlowOutputOf<FlowName> | undefined>in a way that composes correctly withFlowOutputOf<Name>here.If those changes are non‑trivial right now, the current cast is acceptable but worth revisiting to keep the SDK’s public typing as sound as possible.
libs/sdk/src/common/decorators/front-mcp.decorator.ts (1)
13-35: Capture error.format() once for consistency and performance.Unlike the refactoring in
plugin.decorator.ts(line 12), this code still callserror.format()multiple times (lines 13, 18, 27). For consistency and to avoid repeated computations, consider capturing the result once at the beginning like in the other decorator.Apply this diff to capture
error.format()once:const { error, data: metadata } = frontMcpMetadataSchema.safeParse(providedMetadata); if (error) { + const formatted = error.format(); - if (error.format().apps) { + if (formatted.apps) { throw new Error( - `Invalid metadata provided to @FrontMcp { apps: [?] }: \n${JSON.stringify(error.format().apps, null, 2)}`, + `Invalid metadata provided to @FrontMcp { apps: [?] }: \n${JSON.stringify(formatted.apps, null, 2)}`, ); } - if (error.format().providers) { + if (formatted.providers) { throw new Error( `Invalid metadata provided to @FrontMcp { providers: [?] }: \n${JSON.stringify( - error.format().providers, + formatted.providers, null, 2, )}`, ); } - const loggingFormat = error.format()['logging'] as Record<string, unknown> | undefined; + const loggingFormat = formatted['logging'] as Record<string, unknown> | undefined; if (loggingFormat?.['transports']) {libs/sdk/src/common/schemas/annotated-class.schema.ts (2)
27-48: Provider schema refactor looks correct; consider tightening thectorcheckThe new early-return and null-guarded control flow correctly covers:
- direct class providers (function + metadata),
useValueobjects via their.constructormetadata, anduseFactoryproviders validated byfrontMcpProviderMetadataSchema.For extra robustness, you could ensure
.constructoris actually a function before passing it toReflect.hasMetadata:- const ctor = (useValue as Record<string, unknown>)['constructor']; - if (ctor && Reflect.hasMetadata(FrontMcpProviderTokens.type, ctor as object)) { + const ctor = (useValue as Record<string, unknown>)['constructor']; + if (typeof ctor === 'function' && Reflect.hasMetadata(FrontMcpProviderTokens.type, ctor)) {Same idea applies to the analogous blocks below.
50-71: Deduplicate repeated annotated schema logic and centralize the record shape
annotatedFrontMcpAuthProvidersSchema,annotatedFrontMcpPluginsSchema, andannotatedFrontMcpAdaptersSchemaall repeat the same object‑inspection pattern (Record<string, unknown>,useValue/useFactoryhandling, metadata checks) with only tokens + metadata schemas differing.Consider extracting a small helper like:
function makeAnnotatedProviderLikeSchema( token: unknown, metadataSchema: z.ZodTypeAny, message: string, ) { return z.custom<Type>( (v): v is Type => { // shared function/useValue/useFactory logic here }, { message }, ); }and using a shared, named record type instead of inline
Record<string, unknown>, to align with the guideline about centralizing record type definitions inlibs/sdk/src/common/records/.As per coding guidelines, centralizing these record definitions will keep schemas consistent and easier to maintain.
Also applies to: 73-94, 96-117
libs/sdk/src/common/schemas/http-output.schema.ts (1)
35-37: Correct Zod v4 migration, but the value type has redundant nesting.The explicit key type is correct for Zod v4. However, the value union has redundant
z.string()- the inner unionz.union([z.string(), z.array(z.string())])already covers the string case.Consider simplifying:
export const HttpHeaders = z - .record(z.string(), z.union([z.string(), z.union([z.string(), z.array(z.string())])])) + .record(z.string(), z.union([z.string(), z.array(z.string())])) .default({});libs/sdk/src/auth/flows/oauth.authorize.flow.ts (1)
75-84: Verify custom error message options on Zod literals
codeChallengeMethodSchemaandresponseTypeSchemanow pass{ message: '...' }as the options object toz.literal(). Zod v4 changed how custom messages are configured, and it’s not obvious thatmessagehere will actually control the final error text.I’d recommend:
- Add a small test that fails these fields and asserts the emitted messages, and
- If the messages don’t match, switch to a pattern that’s confirmed to work in v4 (e.g., an explicit
.refine()/.superRefine()or a schema-levelerrorMap), rather than relying on the options object.libs/sdk/src/auth/session/transport-session.types.ts (1)
316-324: Record key typing tightened to string – aligns Zod schemas with TS typesUpdating:
metatoz.record(z.string(), z.unknown()).optional(), andtokenstoz.record(z.string(), encryptedBlobSchema).optional()brings the Zod schemas in line with the corresponding
Record<string, ...>TypeScript interfaces and clarifies key types. This is a safe, non‑breaking improvement.If you find yourself repeating
z.record(z.string(), ...)across multiple SDK modules, consider centralizing a shared “string-keyed record” schema helper underlibs/sdk/src/common/records/for consistency, as per the shared records guideline. Based on learnings, ...Also applies to: 326-332
libs/plugins/src/codecall/codecall.plugin.ts (1)
67-72: Bracket vs dot property access forincludeToolsUsing
parsedOptions['includeTools']here is functionally equivalent toparsedOptions.includeTools. Unless this is working around a specific typing constraint onCodeCallPluginOptionsInput/CodeCallPluginOptions, the dot form is a bit clearer:- includeTools: parsedOptions['includeTools'], + includeTools: parsedOptions.includeTools,If the bracket form is needed to satisfy the type system (e.g., indexed access on a looser options type), consider adding a brief comment explaining why.
libs/sdk/src/transport/adapters/transport.streamable-http.adapter.ts (1)
7-7: Streamable HTTP sendElicitRequest correctly generalized; consider wrapping JSON-schema conversionThe
T extends ZodTypeconstraint and import look correct and keep this adapter aligned withLocalTransportAdapterandTypedElicitResult<T>. The behavior ofsendElicitRequestis unchanged.To reduce reliance on
requestedSchema as any, consider introducing a small helper (e.g.,toJsonSchemaFromZod(schema: ZodType)) that encapsulates thezod-to-json-schemacall and its typing in one place, then use it here and in the SSE adapter. This keeps theanyusage localized and easier to adjust if the library’s typings change.Also applies to: 51-76
libs/sdk/src/transport/adapters/transport.sse.adapter.ts (1)
6-6: SSE sendElicitRequest generalized to ZodType in line with other transportsThe
T extends ZodTypeconstraint and new import correctly align this adapter withLocalTransportAdapterandTypedElicitResult<T>, without changing runtime behavior.As in the streamable HTTP adapter, consider wrapping the
zodToJsonSchema(requestedSchema as any)call in a shared helper that takes aZodTypeand returns a typed JSON Schema, so theanycast is centralized and easier to maintain.Also applies to: 51-76
libs/adapters/src/openapi/openapi.tool.ts (1)
6-10: Import placement after type alias is unconventional.The import on line 10 appears after the type alias definition (lines 8-9). While syntactically valid, this breaks the conventional import-first organization and may confuse readers or linters.
Consider moving all imports together at the top:
import { z } from 'zod'; import { tool } from '@frontmcp/sdk'; import { convertJsonSchemaToZod } from 'json-schema-to-zod-v3'; import type { McpOpenAPITool } from 'mcp-from-openapi'; import type { OpenApiAdapterOptions } from './openapi.types'; import type { JSONSchema } from 'zod/v4/core'; +import { buildRequest, applyAdditionalHeaders, parseResponse } from './openapi.utils'; +import { resolveToolSecurity } from './openapi.security'; /** JSON Schema type from Zod v4 */ type JsonSchema = JSONSchema.JSONSchema; -import { buildRequest, applyAdditionalHeaders, parseResponse } from './openapi.utils'; -import { resolveToolSecurity } from './openapi.security';libs/mcp-from-openapi/src/parameter-resolver.ts (1)
377-391: Consider narrowingParameterInfo.schematype for stricter type safety.The union
SchemaObject | ReferenceObject | JsonSchemaprovides flexibility but may lead to runtime type confusion. SincetoJsonSchemais called inbuildParameterSchemaanyway, consider standardizing inputs earlier.This is a minor suggestion that can be deferred if the current approach serves the codebase well.
libs/mcp-from-openapi/src/schema-builder.ts (1)
83-98: Remove redundant condition in for...in loop.The condition
if (key in obj)on line 91 is always true within afor...inloop since the loop only iterates over properties that exist in the object. This check can be safely removed to simplify the code.Apply this diff:
for (const key in obj) { - if (key in obj) { - const value = obj[key]; - if (value && typeof value === 'object') { - this.removeRefsRecursive(value); - } + const value = obj[key]; + if (value && typeof value === 'object') { + this.removeRefsRecursive(value); } }
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
yarn.lockis excluded by!**/yarn.lock,!**/*.lock
📒 Files selected for processing (59)
apps/demo/src/apps/crm/tools/activities-list.tool.ts(1 hunks)apps/demo/src/apps/crm/tools/activities-log.tool.ts(1 hunks)apps/demo/src/apps/crm/tools/activities-stats.tool.ts(1 hunks)libs/adapters/package.json(1 hunks)libs/adapters/src/openapi/openapi.tool.ts(5 hunks)libs/cli/src/templates/3rd-party-integration/src/mcp-http-types.ts(4 hunks)libs/enclave/src/adapters/worker-pool/protocol.ts(1 hunks)libs/mcp-from-openapi/package.json(1 hunks)libs/mcp-from-openapi/src/index.ts(2 hunks)libs/mcp-from-openapi/src/parameter-resolver.ts(14 hunks)libs/mcp-from-openapi/src/response-builder.ts(5 hunks)libs/mcp-from-openapi/src/schema-builder.ts(22 hunks)libs/mcp-from-openapi/src/types.ts(4 hunks)libs/plugins/src/codecall/codecall.plugin.ts(1 hunks)libs/plugins/src/codecall/codecall.types.ts(7 hunks)libs/plugins/src/codecall/tools/describe.schema.ts(1 hunks)libs/plugins/src/codecall/tools/describe.tool.ts(6 hunks)libs/plugins/src/codecall/tools/invoke.schema.ts(1 hunks)libs/plugins/src/codecall/utils/describe.utils.ts(13 hunks)libs/sdk/package.json(1 hunks)libs/sdk/src/auth/authorization/authorization.types.ts(2 hunks)libs/sdk/src/auth/flows/oauth.authorize.flow.ts(2 hunks)libs/sdk/src/auth/flows/session.verify.flow.ts(1 hunks)libs/sdk/src/auth/session/transport-session.types.ts(1 hunks)libs/sdk/src/common/decorators/front-mcp.decorator.ts(2 hunks)libs/sdk/src/common/decorators/plugin.decorator.ts(2 hunks)libs/sdk/src/common/decorators/tool.decorator.ts(4 hunks)libs/sdk/src/common/flow/flow.utils.ts(1 hunks)libs/sdk/src/common/interfaces/flow.interface.ts(4 hunks)libs/sdk/src/common/interfaces/internal/primary-auth-provider.interface.ts(1 hunks)libs/sdk/src/common/metadata/front-mcp.metadata.ts(1 hunks)libs/sdk/src/common/metadata/tool.metadata.ts(4 hunks)libs/sdk/src/common/schemas/annotated-class.schema.ts(1 hunks)libs/sdk/src/common/schemas/http-output.schema.ts(3 hunks)libs/sdk/src/common/types/options/auth.options.ts(4 hunks)libs/sdk/src/flows/flow.registry.ts(1 hunks)libs/sdk/src/front-mcp/front-mcp.providers.ts(2 hunks)libs/sdk/src/logger/logger.registry.ts(2 hunks)libs/sdk/src/prompt/flows/get-prompt.flow.ts(3 hunks)libs/sdk/src/prompt/flows/prompts-list.flow.ts(1 hunks)libs/sdk/src/resource/flows/read-resource.flow.ts(2 hunks)libs/sdk/src/resource/flows/resource-templates-list.flow.ts(1 hunks)libs/sdk/src/resource/flows/resources-list.flow.ts(1 hunks)libs/sdk/src/tool/flows/call-tool.flow.ts(2 hunks)libs/sdk/src/tool/flows/tools-list.flow.ts(1 hunks)libs/sdk/src/transport/adapters/transport.local.adapter.ts(2 hunks)libs/sdk/src/transport/adapters/transport.sse.adapter.ts(2 hunks)libs/sdk/src/transport/adapters/transport.streamable-http.adapter.ts(2 hunks)libs/sdk/src/transport/mcp-handlers/mcp-handlers.types.ts(2 hunks)libs/sdk/src/transport/transport.types.ts(2 hunks)libs/sdk/src/utils/types.utils.ts(1 hunks)libs/testing/package.json(1 hunks)libs/ui/package.json(1 hunks)libs/ui/src/components/button.schema.ts(1 hunks)libs/ui/src/components/card.schema.ts(1 hunks)libs/ui/src/components/form.schema.ts(3 hunks)libs/ui/src/components/table.schema.ts(1 hunks)libs/ui/src/validation/wrapper.ts(1 hunks)package.json(1 hunks)
🧰 Additional context used
📓 Path-based instructions (10)
**/*.{ts,tsx}
📄 CodeRabbit inference engine (CLAUDE.md)
**/*.{ts,tsx}: Use strict type checking in TypeScript - avoidanytypes without strong justification, preferunknownfor generic type defaults
Useunknowninstead ofanyfor generic type parameters with no constraint or default fallback
Use type parameters with constraints instead of unconstrained generic types
Avoid non-null assertions (!) - throw specific errors with proper error handling instead
Use clean, descriptive names for all exports, types, classes, functions, and properties
Files:
libs/sdk/src/prompt/flows/prompts-list.flow.tslibs/sdk/src/utils/types.utils.tslibs/sdk/src/resource/flows/resource-templates-list.flow.tslibs/sdk/src/transport/adapters/transport.sse.adapter.tsapps/demo/src/apps/crm/tools/activities-log.tool.tslibs/mcp-from-openapi/src/index.tsapps/demo/src/apps/crm/tools/activities-list.tool.tslibs/sdk/src/transport/transport.types.tslibs/sdk/src/resource/flows/read-resource.flow.tslibs/sdk/src/auth/flows/session.verify.flow.tslibs/sdk/src/tool/flows/call-tool.flow.tslibs/plugins/src/codecall/tools/invoke.schema.tslibs/sdk/src/auth/authorization/authorization.types.tslibs/plugins/src/codecall/codecall.plugin.tslibs/sdk/src/flows/flow.registry.tslibs/ui/src/components/card.schema.tslibs/sdk/src/resource/flows/resources-list.flow.tslibs/sdk/src/common/decorators/plugin.decorator.tslibs/ui/src/components/form.schema.tslibs/mcp-from-openapi/src/types.tslibs/ui/src/components/table.schema.tslibs/mcp-from-openapi/src/parameter-resolver.tslibs/sdk/src/transport/adapters/transport.streamable-http.adapter.tslibs/ui/src/validation/wrapper.tslibs/sdk/src/common/decorators/front-mcp.decorator.tslibs/sdk/src/transport/mcp-handlers/mcp-handlers.types.tslibs/sdk/src/common/metadata/front-mcp.metadata.tslibs/sdk/src/common/schemas/http-output.schema.tslibs/ui/src/components/button.schema.tslibs/sdk/src/tool/flows/tools-list.flow.tslibs/plugins/src/codecall/codecall.types.tslibs/plugins/src/codecall/utils/describe.utils.tslibs/sdk/src/transport/adapters/transport.local.adapter.tslibs/cli/src/templates/3rd-party-integration/src/mcp-http-types.tslibs/sdk/src/logger/logger.registry.tslibs/sdk/src/front-mcp/front-mcp.providers.tslibs/sdk/src/common/flow/flow.utils.tsapps/demo/src/apps/crm/tools/activities-stats.tool.tslibs/plugins/src/codecall/tools/describe.schema.tslibs/sdk/src/common/types/options/auth.options.tslibs/sdk/src/common/interfaces/internal/primary-auth-provider.interface.tslibs/sdk/src/auth/flows/oauth.authorize.flow.tslibs/sdk/src/common/decorators/tool.decorator.tslibs/sdk/src/common/metadata/tool.metadata.tslibs/sdk/src/common/schemas/annotated-class.schema.tslibs/adapters/src/openapi/openapi.tool.tslibs/plugins/src/codecall/tools/describe.tool.tslibs/enclave/src/adapters/worker-pool/protocol.tslibs/mcp-from-openapi/src/response-builder.tslibs/sdk/src/common/interfaces/flow.interface.tslibs/sdk/src/auth/session/transport-session.types.tslibs/sdk/src/prompt/flows/get-prompt.flow.tslibs/mcp-from-openapi/src/schema-builder.ts
libs/sdk/src/**/*.ts
📄 CodeRabbit inference engine (CLAUDE.md)
libs/sdk/src/**/*.ts: MCP response types must use typed protocol definitions (GetPromptResult, ReadResourceResult) instead ofunknownfor SDK methods
Use specific MCP error classes with error codes from MCP_ERROR_CODES instead of generic Error classes
Validate hook flows match entry types and fail fast with InvalidHookFlowError for unsupported flows
Centralize record type definitions in libs/sdk/src/common/records/ instead of module-specific files
Use changeScope property name instead of scope for event properties to avoid confusion with Scope class
Validate URIs per RFC 3986 using isValidMcpUri refinement in Zod schemas at metadata level
Create shared base classes (ExecutionContextBase) for common execution context functionality across different context types
Do not mutate rawInput in flows - use state.set() for flow state management instead
Files:
libs/sdk/src/prompt/flows/prompts-list.flow.tslibs/sdk/src/utils/types.utils.tslibs/sdk/src/resource/flows/resource-templates-list.flow.tslibs/sdk/src/transport/adapters/transport.sse.adapter.tslibs/sdk/src/transport/transport.types.tslibs/sdk/src/resource/flows/read-resource.flow.tslibs/sdk/src/auth/flows/session.verify.flow.tslibs/sdk/src/tool/flows/call-tool.flow.tslibs/sdk/src/auth/authorization/authorization.types.tslibs/sdk/src/flows/flow.registry.tslibs/sdk/src/resource/flows/resources-list.flow.tslibs/sdk/src/common/decorators/plugin.decorator.tslibs/sdk/src/transport/adapters/transport.streamable-http.adapter.tslibs/sdk/src/common/decorators/front-mcp.decorator.tslibs/sdk/src/transport/mcp-handlers/mcp-handlers.types.tslibs/sdk/src/common/metadata/front-mcp.metadata.tslibs/sdk/src/common/schemas/http-output.schema.tslibs/sdk/src/tool/flows/tools-list.flow.tslibs/sdk/src/transport/adapters/transport.local.adapter.tslibs/sdk/src/logger/logger.registry.tslibs/sdk/src/front-mcp/front-mcp.providers.tslibs/sdk/src/common/flow/flow.utils.tslibs/sdk/src/common/types/options/auth.options.tslibs/sdk/src/common/interfaces/internal/primary-auth-provider.interface.tslibs/sdk/src/auth/flows/oauth.authorize.flow.tslibs/sdk/src/common/decorators/tool.decorator.tslibs/sdk/src/common/metadata/tool.metadata.tslibs/sdk/src/common/schemas/annotated-class.schema.tslibs/sdk/src/common/interfaces/flow.interface.tslibs/sdk/src/auth/session/transport-session.types.tslibs/sdk/src/prompt/flows/get-prompt.flow.ts
libs/**
⚙️ CodeRabbit configuration file
libs/**: Contains publishable SDK libraries. Review for API correctness, breaking changes, and consistency with docs. When public APIs change, ensure there is a matching docs/draft/docs/** update (not direct edits under docs/docs/**).
Files:
libs/sdk/src/prompt/flows/prompts-list.flow.tslibs/sdk/src/utils/types.utils.tslibs/sdk/package.jsonlibs/sdk/src/resource/flows/resource-templates-list.flow.tslibs/testing/package.jsonlibs/mcp-from-openapi/package.jsonlibs/sdk/src/transport/adapters/transport.sse.adapter.tslibs/ui/package.jsonlibs/mcp-from-openapi/src/index.tslibs/sdk/src/transport/transport.types.tslibs/sdk/src/resource/flows/read-resource.flow.tslibs/adapters/package.jsonlibs/sdk/src/auth/flows/session.verify.flow.tslibs/sdk/src/tool/flows/call-tool.flow.tslibs/plugins/src/codecall/tools/invoke.schema.tslibs/sdk/src/auth/authorization/authorization.types.tslibs/plugins/src/codecall/codecall.plugin.tslibs/sdk/src/flows/flow.registry.tslibs/ui/src/components/card.schema.tslibs/sdk/src/resource/flows/resources-list.flow.tslibs/sdk/src/common/decorators/plugin.decorator.tslibs/ui/src/components/form.schema.tslibs/mcp-from-openapi/src/types.tslibs/ui/src/components/table.schema.tslibs/mcp-from-openapi/src/parameter-resolver.tslibs/sdk/src/transport/adapters/transport.streamable-http.adapter.tslibs/ui/src/validation/wrapper.tslibs/sdk/src/common/decorators/front-mcp.decorator.tslibs/sdk/src/transport/mcp-handlers/mcp-handlers.types.tslibs/sdk/src/common/metadata/front-mcp.metadata.tslibs/sdk/src/common/schemas/http-output.schema.tslibs/ui/src/components/button.schema.tslibs/sdk/src/tool/flows/tools-list.flow.tslibs/plugins/src/codecall/codecall.types.tslibs/plugins/src/codecall/utils/describe.utils.tslibs/sdk/src/transport/adapters/transport.local.adapter.tslibs/cli/src/templates/3rd-party-integration/src/mcp-http-types.tslibs/sdk/src/logger/logger.registry.tslibs/sdk/src/front-mcp/front-mcp.providers.tslibs/sdk/src/common/flow/flow.utils.tslibs/plugins/src/codecall/tools/describe.schema.tslibs/sdk/src/common/types/options/auth.options.tslibs/sdk/src/common/interfaces/internal/primary-auth-provider.interface.tslibs/sdk/src/auth/flows/oauth.authorize.flow.tslibs/sdk/src/common/decorators/tool.decorator.tslibs/sdk/src/common/metadata/tool.metadata.tslibs/sdk/src/common/schemas/annotated-class.schema.tslibs/adapters/src/openapi/openapi.tool.tslibs/plugins/src/codecall/tools/describe.tool.tslibs/enclave/src/adapters/worker-pool/protocol.tslibs/mcp-from-openapi/src/response-builder.tslibs/sdk/src/common/interfaces/flow.interface.tslibs/sdk/src/auth/session/transport-session.types.tslibs/sdk/src/prompt/flows/get-prompt.flow.tslibs/mcp-from-openapi/src/schema-builder.ts
apps/demo/**
⚙️ CodeRabbit configuration file
apps/demo/**: apps/demo directory contains a demo application for testing purposes. It can be used as a reference for SDK usage examples.
Files:
apps/demo/src/apps/crm/tools/activities-log.tool.tsapps/demo/src/apps/crm/tools/activities-list.tool.tsapps/demo/src/apps/crm/tools/activities-stats.tool.ts
**/{libs,apps}/**/src/index.ts
📄 CodeRabbit inference engine (CLAUDE.md)
**/{libs,apps}/**/src/index.ts: Export everything users need from barrel files (index.ts), without legacy aliases or deprecated names
Do not add backwards compatibility exports or aliases (legacy exports) in new libraries
Files:
libs/mcp-from-openapi/src/index.ts
libs/ui/src/components/**/*.schema.ts
📄 CodeRabbit inference engine (libs/ui/CLAUDE.md)
libs/ui/src/components/**/*.schema.ts: Every component must have a Zod schema with.strict()mode to reject unknown properties
Use consistent enum naming for variants ('primary', 'secondary', 'outline', 'ghost', 'danger', 'success') and sizes ('xs', 'sm', 'md', 'lg', 'xl')
Use HTMX schema with strict mode including get, post, put, delete, target, swap, and trigger properties
Files:
libs/ui/src/components/card.schema.tslibs/ui/src/components/form.schema.tslibs/ui/src/components/table.schema.tslibs/ui/src/components/button.schema.ts
libs/ui/src/components/**/*.ts
📄 CodeRabbit inference engine (libs/ui/CLAUDE.md)
libs/ui/src/components/**/*.ts: Validate component options usingvalidateOptions()helper and return error box on validation failure
Add JSDoc examples with @example tags showing basic usage and options patterns for all components
Use pure HTML string generation without React/Vue/JSX - components return HTML strings only
Files:
libs/ui/src/components/card.schema.tslibs/ui/src/components/form.schema.tslibs/ui/src/components/table.schema.tslibs/ui/src/components/button.schema.ts
libs/ui/src/**/*.ts
📄 CodeRabbit inference engine (libs/ui/CLAUDE.md)
libs/ui/src/**/*.ts: Always useescapeHtml()utility for all user-provided content to prevent XSS vulnerabilities
Hard-code CDN URLs only in theme presets; always reference theme.cdn configuration in component code
Files:
libs/ui/src/components/card.schema.tslibs/ui/src/components/form.schema.tslibs/ui/src/components/table.schema.tslibs/ui/src/validation/wrapper.tslibs/ui/src/components/button.schema.ts
libs/ui/src/components/**
📄 CodeRabbit inference engine (libs/ui/CLAUDE.md)
Organize components into schema.ts (definitions) and implementation .ts files with matching names
Files:
libs/ui/src/components/card.schema.tslibs/ui/src/components/form.schema.tslibs/ui/src/components/table.schema.tslibs/ui/src/components/button.schema.ts
libs/adapters/src/**/*.ts
📄 CodeRabbit inference engine (CLAUDE.md)
Do not hardcode capabilities in adapters - use registry.getCapabilities() for dynamic capability exposure
Files:
libs/adapters/src/openapi/openapi.tool.ts
🧠 Learnings (18)
📚 Learning: 2025-11-26T17:22:58.085Z
Learnt from: CR
Repo: agentfront/frontmcp PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-26T17:22:58.085Z
Learning: Applies to libs/sdk/src/**/*.ts : Do not mutate rawInput in flows - use state.set() for flow state management instead
Applied to files:
libs/sdk/src/prompt/flows/prompts-list.flow.tslibs/sdk/src/resource/flows/resource-templates-list.flow.tslibs/sdk/src/resource/flows/read-resource.flow.tslibs/sdk/src/auth/flows/session.verify.flow.tslibs/sdk/src/tool/flows/call-tool.flow.tslibs/sdk/src/flows/flow.registry.tslibs/sdk/src/tool/flows/tools-list.flow.tslibs/sdk/src/common/flow/flow.utils.tslibs/sdk/src/common/interfaces/flow.interface.tslibs/sdk/src/prompt/flows/get-prompt.flow.ts
📚 Learning: 2025-11-26T15:23:04.965Z
Learnt from: CR
Repo: agentfront/frontmcp PR: 0
File: libs/ui/CLAUDE.md:0-0
Timestamp: 2025-11-26T15:23:04.965Z
Learning: Applies to libs/ui/src/components/**/*.schema.ts : Every component must have a Zod schema with `.strict()` mode to reject unknown properties
Applied to files:
libs/sdk/src/utils/types.utils.tslibs/mcp-from-openapi/package.jsonlibs/ui/package.jsonlibs/plugins/src/codecall/tools/invoke.schema.tslibs/sdk/src/auth/authorization/authorization.types.tslibs/ui/src/components/card.schema.tslibs/ui/src/components/form.schema.tslibs/mcp-from-openapi/src/types.tslibs/ui/src/components/table.schema.tslibs/mcp-from-openapi/src/parameter-resolver.tslibs/sdk/src/transport/mcp-handlers/mcp-handlers.types.tslibs/ui/src/components/button.schema.tslibs/plugins/src/codecall/utils/describe.utils.tslibs/cli/src/templates/3rd-party-integration/src/mcp-http-types.tslibs/plugins/src/codecall/tools/describe.schema.tslibs/sdk/src/auth/flows/oauth.authorize.flow.tslibs/sdk/src/common/decorators/tool.decorator.tslibs/sdk/src/common/metadata/tool.metadata.tslibs/sdk/src/common/schemas/annotated-class.schema.tslibs/adapters/src/openapi/openapi.tool.tslibs/plugins/src/codecall/tools/describe.tool.tslibs/mcp-from-openapi/src/response-builder.tslibs/mcp-from-openapi/src/schema-builder.ts
📚 Learning: 2025-11-26T17:22:58.085Z
Learnt from: CR
Repo: agentfront/frontmcp PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-26T17:22:58.085Z
Learning: Applies to libs/sdk/src/**/*.ts : Centralize record type definitions in libs/sdk/src/common/records/ instead of module-specific files
Applied to files:
libs/sdk/src/utils/types.utils.tsapps/demo/src/apps/crm/tools/activities-log.tool.tslibs/sdk/src/transport/transport.types.tslibs/sdk/src/auth/authorization/authorization.types.tslibs/ui/src/components/card.schema.tslibs/ui/src/components/form.schema.tslibs/mcp-from-openapi/src/types.tslibs/sdk/src/common/schemas/http-output.schema.tslibs/plugins/src/codecall/utils/describe.utils.tslibs/cli/src/templates/3rd-party-integration/src/mcp-http-types.tsapps/demo/src/apps/crm/tools/activities-stats.tool.tslibs/plugins/src/codecall/tools/describe.schema.tslibs/sdk/src/common/metadata/tool.metadata.tslibs/sdk/src/auth/session/transport-session.types.ts
📚 Learning: 2025-11-26T17:22:58.085Z
Learnt from: CR
Repo: agentfront/frontmcp PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-26T17:22:58.085Z
Learning: Applies to libs/sdk/src/**/*.ts : Validate hook flows match entry types and fail fast with InvalidHookFlowError for unsupported flows
Applied to files:
libs/sdk/src/resource/flows/resource-templates-list.flow.tslibs/sdk/src/tool/flows/call-tool.flow.tslibs/sdk/src/tool/flows/tools-list.flow.tslibs/sdk/src/auth/flows/oauth.authorize.flow.tslibs/sdk/src/common/interfaces/flow.interface.tslibs/sdk/src/prompt/flows/get-prompt.flow.ts
📚 Learning: 2025-11-26T17:22:58.085Z
Learnt from: CR
Repo: agentfront/frontmcp PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-26T17:22:58.085Z
Learning: Applies to libs/sdk/src/**/*.ts : Use specific MCP error classes with error codes from MCP_ERROR_CODES instead of generic Error classes
Applied to files:
libs/mcp-from-openapi/src/index.tslibs/sdk/src/common/decorators/plugin.decorator.tslibs/mcp-from-openapi/src/types.tslibs/sdk/src/common/decorators/front-mcp.decorator.tslibs/sdk/src/transport/mcp-handlers/mcp-handlers.types.tslibs/sdk/src/common/metadata/front-mcp.metadata.tslibs/cli/src/templates/3rd-party-integration/src/mcp-http-types.tslibs/mcp-from-openapi/src/response-builder.tslibs/mcp-from-openapi/src/schema-builder.ts
📚 Learning: 2025-11-26T17:22:58.085Z
Learnt from: CR
Repo: agentfront/frontmcp PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-26T17:22:58.085Z
Learning: Applies to **/{libs,apps}/**/src/index.ts : Export everything users need from barrel files (index.ts), without legacy aliases or deprecated names
Applied to files:
libs/mcp-from-openapi/src/index.ts
📚 Learning: 2025-11-26T17:22:58.085Z
Learnt from: CR
Repo: agentfront/frontmcp PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-26T17:22:58.085Z
Learning: Applies to libs/sdk/src/**/*.ts : MCP response types must use typed protocol definitions (GetPromptResult, ReadResourceResult) instead of `unknown` for SDK methods
Applied to files:
libs/sdk/src/transport/transport.types.tslibs/sdk/src/auth/authorization/authorization.types.tslibs/mcp-from-openapi/src/types.tslibs/sdk/src/transport/mcp-handlers/mcp-handlers.types.tslibs/sdk/src/common/metadata/front-mcp.metadata.tslibs/sdk/src/transport/adapters/transport.local.adapter.tslibs/cli/src/templates/3rd-party-integration/src/mcp-http-types.tslibs/plugins/src/codecall/tools/describe.schema.tslibs/sdk/src/common/schemas/annotated-class.schema.tslibs/mcp-from-openapi/src/response-builder.tslibs/sdk/src/prompt/flows/get-prompt.flow.tslibs/mcp-from-openapi/src/schema-builder.ts
📚 Learning: 2025-11-26T17:22:58.085Z
Learnt from: CR
Repo: agentfront/frontmcp PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-26T17:22:58.085Z
Learning: Applies to **/*.{ts,tsx} : Use type parameters with constraints instead of unconstrained generic types
Applied to files:
libs/sdk/src/transport/transport.types.ts
📚 Learning: 2025-11-26T17:22:58.085Z
Learnt from: CR
Repo: agentfront/frontmcp PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-26T17:22:58.085Z
Learning: Applies to libs/adapters/src/**/*.ts : Do not hardcode capabilities in adapters - use registry.getCapabilities() for dynamic capability exposure
Applied to files:
libs/adapters/package.json
📚 Learning: 2025-11-05T15:00:47.800Z
Learnt from: frontegg-david
Repo: agentfront/frontmcp PR: 11
File: libs/core/src/auth/jwks/jwks.service.ts:62-0
Timestamp: 2025-11-05T15:00:47.800Z
Learning: In the FrontMCP codebase (libs/core/src/auth/jwks/jwks.service.ts), the verifyGatewayToken method intentionally skips signature verification when running in development-only no-auth mode, using decodeJwtPayloadSafe instead of jwtVerify. This is a deliberate design for local development convenience and should not be flagged as a security issue when the PR or code context indicates development/no-auth mode.
Applied to files:
libs/sdk/src/auth/flows/session.verify.flow.ts
📚 Learning: 2025-11-26T17:22:58.085Z
Learnt from: CR
Repo: agentfront/frontmcp PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-26T17:22:58.085Z
Learning: Applies to libs/sdk/src/**/*.ts : Validate URIs per RFC 3986 using isValidMcpUri refinement in Zod schemas at metadata level
Applied to files:
libs/sdk/src/auth/authorization/authorization.types.tslibs/ui/src/components/card.schema.tslibs/ui/src/components/form.schema.tslibs/mcp-from-openapi/src/types.tslibs/mcp-from-openapi/src/parameter-resolver.tslibs/sdk/src/transport/mcp-handlers/mcp-handlers.types.tslibs/sdk/src/common/metadata/front-mcp.metadata.tslibs/cli/src/templates/3rd-party-integration/src/mcp-http-types.tslibs/sdk/src/common/metadata/tool.metadata.tslibs/sdk/src/common/schemas/annotated-class.schema.tslibs/adapters/src/openapi/openapi.tool.tslibs/mcp-from-openapi/src/schema-builder.ts
📚 Learning: 2025-11-26T15:23:04.965Z
Learnt from: CR
Repo: agentfront/frontmcp PR: 0
File: libs/ui/CLAUDE.md:0-0
Timestamp: 2025-11-26T15:23:04.965Z
Learning: Applies to libs/ui/src/components/**/*.schema.ts : Use HTMX schema with strict mode including get, post, put, delete, target, swap, and trigger properties
Applied to files:
libs/sdk/src/auth/authorization/authorization.types.tslibs/ui/src/components/card.schema.tslibs/ui/src/components/form.schema.tslibs/ui/src/components/table.schema.tslibs/mcp-from-openapi/src/parameter-resolver.tslibs/sdk/src/common/schemas/http-output.schema.tslibs/ui/src/components/button.schema.tslibs/plugins/src/codecall/utils/describe.utils.tslibs/cli/src/templates/3rd-party-integration/src/mcp-http-types.ts
📚 Learning: 2025-11-26T15:23:04.965Z
Learnt from: CR
Repo: agentfront/frontmcp PR: 0
File: libs/ui/CLAUDE.md:0-0
Timestamp: 2025-11-26T15:23:04.965Z
Learning: Applies to libs/ui/src/components/**/*.schema.ts : Use consistent enum naming for variants ('primary', 'secondary', 'outline', 'ghost', 'danger', 'success') and sizes ('xs', 'sm', 'md', 'lg', 'xl')
Applied to files:
libs/ui/src/components/card.schema.tslibs/ui/src/components/form.schema.tslibs/ui/src/components/button.schema.tslibs/plugins/src/codecall/utils/describe.utils.ts
📚 Learning: 2025-11-26T15:23:04.965Z
Learnt from: CR
Repo: agentfront/frontmcp PR: 0
File: libs/ui/CLAUDE.md:0-0
Timestamp: 2025-11-26T15:23:04.965Z
Learning: Applies to libs/ui/src/components/** : Organize components into schema.ts (definitions) and implementation .ts files with matching names
Applied to files:
libs/ui/src/components/card.schema.tslibs/ui/src/components/form.schema.tslibs/ui/src/components/button.schema.tslibs/plugins/src/codecall/utils/describe.utils.tslibs/plugins/src/codecall/tools/describe.tool.ts
📚 Learning: 2025-11-26T15:23:04.965Z
Learnt from: CR
Repo: agentfront/frontmcp PR: 0
File: libs/ui/CLAUDE.md:0-0
Timestamp: 2025-11-26T15:23:04.965Z
Learning: Applies to libs/ui/src/components/**/*.ts : Validate component options using `validateOptions()` helper and return error box on validation failure
Applied to files:
libs/ui/src/components/card.schema.tslibs/ui/src/components/form.schema.tslibs/ui/src/validation/wrapper.ts
📚 Learning: 2025-11-26T15:23:04.965Z
Learnt from: CR
Repo: agentfront/frontmcp PR: 0
File: libs/ui/CLAUDE.md:0-0
Timestamp: 2025-11-26T15:23:04.965Z
Learning: Applies to libs/ui/src/components/**/*.test.ts : Write validation tests covering invalid variant/options, unknown properties, and valid option acceptance
Applied to files:
libs/ui/src/components/card.schema.tslibs/ui/src/components/form.schema.tslibs/ui/src/validation/wrapper.ts
📚 Learning: 2025-11-26T15:23:04.965Z
Learnt from: CR
Repo: agentfront/frontmcp PR: 0
File: libs/ui/CLAUDE.md:0-0
Timestamp: 2025-11-26T15:23:04.965Z
Learning: Use Zod schema validation for all component inputs as a core validation strategy
Applied to files:
libs/ui/src/components/form.schema.tslibs/sdk/src/common/metadata/tool.metadata.ts
📚 Learning: 2025-11-26T17:22:58.085Z
Learnt from: CR
Repo: agentfront/frontmcp PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-26T17:22:58.085Z
Learning: Applies to **/*.{ts,tsx} : Use strict type checking in TypeScript - avoid `any` types without strong justification, prefer `unknown` for generic type defaults
Applied to files:
libs/ui/src/components/form.schema.ts
🧬 Code graph analysis (17)
libs/sdk/src/prompt/flows/prompts-list.flow.ts (2)
libs/sdk/src/errors/index.ts (1)
InvalidInputError(10-10)libs/sdk/src/errors/mcp.error.ts (1)
InvalidInputError(223-240)
libs/sdk/src/resource/flows/resource-templates-list.flow.ts (2)
libs/sdk/src/errors/index.ts (1)
InvalidInputError(10-10)libs/sdk/src/errors/mcp.error.ts (1)
InvalidInputError(223-240)
libs/sdk/src/transport/transport.types.ts (1)
libs/sdk/src/utils/types.utils.ts (1)
Infer(17-17)
libs/sdk/src/resource/flows/read-resource.flow.ts (2)
libs/sdk/src/errors/index.ts (1)
InvalidInputError(10-10)libs/sdk/src/errors/mcp.error.ts (1)
InvalidInputError(223-240)
libs/sdk/src/tool/flows/call-tool.flow.ts (2)
libs/sdk/src/errors/index.ts (1)
InvalidInputError(10-10)libs/sdk/src/errors/mcp.error.ts (1)
InvalidInputError(223-240)
libs/sdk/src/flows/flow.registry.ts (1)
libs/sdk/src/common/interfaces/flow.interface.ts (2)
FlowInputOf(8-8)FlowOutputOf(9-9)
libs/sdk/src/resource/flows/resources-list.flow.ts (2)
libs/sdk/src/errors/index.ts (1)
InvalidInputError(10-10)libs/sdk/src/errors/mcp.error.ts (1)
InvalidInputError(223-240)
libs/mcp-from-openapi/src/types.ts (2)
libs/mcp-from-openapi/src/index.ts (4)
toJsonSchema(74-74)SchemaObject(55-55)ReferenceObject(49-49)isReferenceObject(74-74)libs/plugins/src/codecall/tools/describe.tool.ts (1)
toJsonSchema(101-149)
libs/mcp-from-openapi/src/parameter-resolver.ts (1)
libs/mcp-from-openapi/src/types.ts (5)
ParameterLocation(25-25)ParameterObject(34-34)toJsonSchema(67-152)SchemaObject(53-53)ReferenceObject(45-45)
libs/sdk/src/common/decorators/front-mcp.decorator.ts (1)
libs/sdk/src/common/metadata/front-mcp.metadata.ts (2)
FrontMcpMetadata(83-83)frontMcpMetadataSchema(85-85)
libs/sdk/src/common/metadata/front-mcp.metadata.ts (1)
libs/sdk/src/common/types/options/logging.options.ts (1)
loggingOptionsSchema(35-40)
libs/plugins/src/codecall/utils/describe.utils.ts (1)
libs/cli/src/templates/3rd-party-integration/src/tools/example.list.ts (1)
inputSchema(12-17)
libs/cli/src/templates/3rd-party-integration/src/mcp-http-types.ts (1)
libs/sdk/src/common/schemas/http-output.schema.ts (1)
HttpOutput(251-251)
libs/sdk/src/front-mcp/front-mcp.providers.ts (1)
libs/sdk/src/common/metadata/front-mcp.metadata.ts (1)
FrontMcpConfigType(90-90)
libs/sdk/src/common/flow/flow.utils.ts (2)
libs/sdk/src/errors/index.ts (2)
InvalidInputError(10-10)InvalidMethodError(12-12)libs/sdk/src/errors/mcp.error.ts (2)
InvalidInputError(223-240)InvalidMethodError(269-273)
libs/sdk/src/common/interfaces/internal/primary-auth-provider.interface.ts (1)
libs/sdk/src/common/types/options/auth.options.ts (1)
TransportConfig(648-648)
libs/sdk/src/prompt/flows/get-prompt.flow.ts (1)
libs/sdk/src/errors/mcp.error.ts (1)
InvalidInputError(223-240)
🪛 GitHub Actions: On Push
libs/ui/package.json
[error] 41-41: The 'tslib' package is not used by 'ui' project. @nx/dependency-checks
package.json
[error] 41-41: The 'tslib' package is not used by 'ui' project. @nx/dependency-checks
Summary by CodeRabbit
Chores
Refactor
✏️ Tip: You can customize this high-level summary in your review settings.