alibabacloud-agentcore-sdk 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/README.md +189 -0
- package/dist/access-key-CkoHq3S8.d.cts +30 -0
- package/dist/access-key-CkoHq3S8.d.ts +30 -0
- package/dist/agent-sa-token-DD1Sb8P1.d.cts +14 -0
- package/dist/agent-sa-token-DD1Sb8P1.d.ts +14 -0
- package/dist/auth/index.cjs +36 -0
- package/dist/auth/index.cjs.map +1 -0
- package/dist/auth/index.d.cts +34 -0
- package/dist/auth/index.d.ts +34 -0
- package/dist/auth/index.js +36 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/bound-credentials-C1fM0thh.d.cts +39 -0
- package/dist/bound-credentials-DqT64Q2s.d.ts +39 -0
- package/dist/chunk-2E5EWEDG.cjs +142 -0
- package/dist/chunk-2E5EWEDG.cjs.map +1 -0
- package/dist/chunk-55XZZRKO.js +220 -0
- package/dist/chunk-55XZZRKO.js.map +1 -0
- package/dist/chunk-5JXA7JPS.js +29 -0
- package/dist/chunk-5JXA7JPS.js.map +1 -0
- package/dist/chunk-5RKN46UU.cjs +139 -0
- package/dist/chunk-5RKN46UU.cjs.map +1 -0
- package/dist/chunk-5ZOLHQXO.js +296 -0
- package/dist/chunk-5ZOLHQXO.js.map +1 -0
- package/dist/chunk-7Y263YIW.js +298 -0
- package/dist/chunk-7Y263YIW.js.map +1 -0
- package/dist/chunk-A3PF2SPD.cjs +141 -0
- package/dist/chunk-A3PF2SPD.cjs.map +1 -0
- package/dist/chunk-A3WMLVJC.cjs +141 -0
- package/dist/chunk-A3WMLVJC.cjs.map +1 -0
- package/dist/chunk-BVZ7H2F5.cjs +582 -0
- package/dist/chunk-BVZ7H2F5.cjs.map +1 -0
- package/dist/chunk-EGUKJE3Z.cjs +24 -0
- package/dist/chunk-EGUKJE3Z.cjs.map +1 -0
- package/dist/chunk-EKXZKKJJ.js +24 -0
- package/dist/chunk-EKXZKKJJ.js.map +1 -0
- package/dist/chunk-GYLT23D3.js +110 -0
- package/dist/chunk-GYLT23D3.js.map +1 -0
- package/dist/chunk-IF7LMBXC.js +306 -0
- package/dist/chunk-IF7LMBXC.js.map +1 -0
- package/dist/chunk-IUCLCPVV.js +113 -0
- package/dist/chunk-IUCLCPVV.js.map +1 -0
- package/dist/chunk-JSP7ZROS.cjs +95 -0
- package/dist/chunk-JSP7ZROS.cjs.map +1 -0
- package/dist/chunk-JW62DVIC.js +238 -0
- package/dist/chunk-JW62DVIC.js.map +1 -0
- package/dist/chunk-K3TE7625.js +139 -0
- package/dist/chunk-K3TE7625.js.map +1 -0
- package/dist/chunk-LE5P3SJW.cjs +16 -0
- package/dist/chunk-LE5P3SJW.cjs.map +1 -0
- package/dist/chunk-LXHW6OT4.cjs +77 -0
- package/dist/chunk-LXHW6OT4.cjs.map +1 -0
- package/dist/chunk-MICRSJ6R.js +48 -0
- package/dist/chunk-MICRSJ6R.js.map +1 -0
- package/dist/chunk-MWAHO47B.cjs +220 -0
- package/dist/chunk-MWAHO47B.cjs.map +1 -0
- package/dist/chunk-MZ5UWGXS.js +95 -0
- package/dist/chunk-MZ5UWGXS.js.map +1 -0
- package/dist/chunk-NZL3VPJ2.js +16 -0
- package/dist/chunk-NZL3VPJ2.js.map +1 -0
- package/dist/chunk-PC4FM2RP.cjs +180 -0
- package/dist/chunk-PC4FM2RP.cjs.map +1 -0
- package/dist/chunk-PKYET77D.cjs +296 -0
- package/dist/chunk-PKYET77D.cjs.map +1 -0
- package/dist/chunk-PTJPB27L.js +31 -0
- package/dist/chunk-PTJPB27L.js.map +1 -0
- package/dist/chunk-QIZO3A4Y.cjs +306 -0
- package/dist/chunk-QIZO3A4Y.cjs.map +1 -0
- package/dist/chunk-RBAY4MO2.js +202 -0
- package/dist/chunk-RBAY4MO2.js.map +1 -0
- package/dist/chunk-RHY7Y43E.js +582 -0
- package/dist/chunk-RHY7Y43E.js.map +1 -0
- package/dist/chunk-RQRI6RCG.cjs +238 -0
- package/dist/chunk-RQRI6RCG.cjs.map +1 -0
- package/dist/chunk-RYXL25AI.js +141 -0
- package/dist/chunk-RYXL25AI.js.map +1 -0
- package/dist/chunk-RZNQGEGJ.cjs +113 -0
- package/dist/chunk-RZNQGEGJ.cjs.map +1 -0
- package/dist/chunk-S7PWSJNP.cjs +48 -0
- package/dist/chunk-S7PWSJNP.cjs.map +1 -0
- package/dist/chunk-TWEO5XVM.cjs +298 -0
- package/dist/chunk-TWEO5XVM.cjs.map +1 -0
- package/dist/chunk-UBP5CHU7.js +142 -0
- package/dist/chunk-UBP5CHU7.js.map +1 -0
- package/dist/chunk-ULJTQSLE.cjs +35 -0
- package/dist/chunk-ULJTQSLE.cjs.map +1 -0
- package/dist/chunk-UWPKFJYM.js +77 -0
- package/dist/chunk-UWPKFJYM.js.map +1 -0
- package/dist/chunk-WKZUYPDS.js +180 -0
- package/dist/chunk-WKZUYPDS.js.map +1 -0
- package/dist/chunk-YZP55W7S.cjs +29 -0
- package/dist/chunk-YZP55W7S.cjs.map +1 -0
- package/dist/chunk-ZELRQU4J.cjs +31 -0
- package/dist/chunk-ZELRQU4J.cjs.map +1 -0
- package/dist/chunk-ZLKYXRNM.js +141 -0
- package/dist/chunk-ZLKYXRNM.js.map +1 -0
- package/dist/chunk-ZLQ2IBTC.cjs +110 -0
- package/dist/chunk-ZLQ2IBTC.cjs.map +1 -0
- package/dist/chunk-ZTWLCHCO.cjs +202 -0
- package/dist/chunk-ZTWLCHCO.cjs.map +1 -0
- package/dist/chunk-ZWQBAJ5O.js +35 -0
- package/dist/chunk-ZWQBAJ5O.js.map +1 -0
- package/dist/client-DDU4-ygJ.d.cts +72 -0
- package/dist/client-pDzS7EZR.d.ts +72 -0
- package/dist/collaboration/index.cjs +44 -0
- package/dist/collaboration/index.cjs.map +1 -0
- package/dist/collaboration/index.d.cts +73 -0
- package/dist/collaboration/index.d.ts +73 -0
- package/dist/collaboration/index.js +44 -0
- package/dist/collaboration/index.js.map +1 -0
- package/dist/common-BSXkQfxI.d.cts +25 -0
- package/dist/common-BSXkQfxI.d.ts +25 -0
- package/dist/common-DRdI-75k.d.ts +8 -0
- package/dist/common-_vxreiEW.d.cts +8 -0
- package/dist/config-CMkmMtx1.d.cts +20 -0
- package/dist/config-CMkmMtx1.d.ts +20 -0
- package/dist/context-M9rOTifU.d.cts +12 -0
- package/dist/context-M9rOTifU.d.ts +12 -0
- package/dist/controller-DWs3Sy04.d.cts +9 -0
- package/dist/controller-DmI4L4sP.d.ts +9 -0
- package/dist/controlplane/index.cjs +13 -0
- package/dist/controlplane/index.cjs.map +1 -0
- package/dist/controlplane/index.d.cts +66 -0
- package/dist/controlplane/index.d.ts +66 -0
- package/dist/controlplane/index.js +13 -0
- package/dist/controlplane/index.js.map +1 -0
- package/dist/errors-BjGO6N10.d.ts +93 -0
- package/dist/errors-D9OtcR-o.d.cts +93 -0
- package/dist/event-converters-BIn8odqo.d.ts +38 -0
- package/dist/event-converters-Cn_NeGyQ.d.cts +38 -0
- package/dist/google-adk-model-N47R7GB2.js +208 -0
- package/dist/google-adk-model-N47R7GB2.js.map +1 -0
- package/dist/google-adk-model-PDBKY5YZ.cjs +208 -0
- package/dist/google-adk-model-PDBKY5YZ.cjs.map +1 -0
- package/dist/index.cjs +322 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +78 -0
- package/dist/index.d.ts +78 -0
- package/dist/index.js +322 -0
- package/dist/index.js.map +1 -0
- package/dist/integrations/ai-sdk.cjs +15 -0
- package/dist/integrations/ai-sdk.cjs.map +1 -0
- package/dist/integrations/ai-sdk.d.cts +21 -0
- package/dist/integrations/ai-sdk.d.ts +21 -0
- package/dist/integrations/ai-sdk.js +15 -0
- package/dist/integrations/ai-sdk.js.map +1 -0
- package/dist/integrations/google-adk.cjs +90 -0
- package/dist/integrations/google-adk.cjs.map +1 -0
- package/dist/integrations/google-adk.d.cts +46 -0
- package/dist/integrations/google-adk.d.ts +46 -0
- package/dist/integrations/google-adk.js +90 -0
- package/dist/integrations/google-adk.js.map +1 -0
- package/dist/integrations/langchain.cjs +95 -0
- package/dist/integrations/langchain.cjs.map +1 -0
- package/dist/integrations/langchain.d.cts +52 -0
- package/dist/integrations/langchain.d.ts +52 -0
- package/dist/integrations/langchain.js +95 -0
- package/dist/integrations/langchain.js.map +1 -0
- package/dist/integrations/langgraph.cjs +30 -0
- package/dist/integrations/langgraph.cjs.map +1 -0
- package/dist/integrations/langgraph.d.cts +53 -0
- package/dist/integrations/langgraph.d.ts +53 -0
- package/dist/integrations/langgraph.js +30 -0
- package/dist/integrations/langgraph.js.map +1 -0
- package/dist/integrations/mastra.cjs +108 -0
- package/dist/integrations/mastra.cjs.map +1 -0
- package/dist/integrations/mastra.d.cts +47 -0
- package/dist/integrations/mastra.d.ts +47 -0
- package/dist/integrations/mastra.js +108 -0
- package/dist/integrations/mastra.js.map +1 -0
- package/dist/langchain-adapter-DFJdEX04.d.cts +47 -0
- package/dist/langchain-adapter-DJsyjm5V.d.ts +47 -0
- package/dist/langchain-provider-NF5GIDQV.cjs +227 -0
- package/dist/langchain-provider-NF5GIDQV.cjs.map +1 -0
- package/dist/langchain-provider-PHL4UWNF.js +227 -0
- package/dist/langchain-provider-PHL4UWNF.js.map +1 -0
- package/dist/loader-DrIQ37nm.d.ts +38 -0
- package/dist/loader-eWuJ2GSL.d.cts +38 -0
- package/dist/logging-C8GLLg1f.d.cts +9 -0
- package/dist/logging-C8GLLg1f.d.ts +9 -0
- package/dist/managed-CwLx9h4C.d.cts +32 -0
- package/dist/managed-D9eQK1ut.d.ts +32 -0
- package/dist/mcp/index.cjs +12 -0
- package/dist/mcp/index.cjs.map +1 -0
- package/dist/mcp/index.d.cts +62 -0
- package/dist/mcp/index.d.ts +62 -0
- package/dist/mcp/index.js +12 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/memory/index.cjs +12 -0
- package/dist/memory/index.cjs.map +1 -0
- package/dist/memory/index.d.cts +113 -0
- package/dist/memory/index.d.ts +113 -0
- package/dist/memory/index.js +12 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/model/index.cjs +16 -0
- package/dist/model/index.cjs.map +1 -0
- package/dist/model/index.d.cts +129 -0
- package/dist/model/index.d.ts +129 -0
- package/dist/model/index.js +16 -0
- package/dist/model/index.js.map +1 -0
- package/dist/model-CkYHzHPk.d.cts +50 -0
- package/dist/model-CkYHzHPk.d.ts +50 -0
- package/dist/runtime/index.cjs +49 -0
- package/dist/runtime/index.cjs.map +1 -0
- package/dist/runtime/index.d.cts +73 -0
- package/dist/runtime/index.d.ts +73 -0
- package/dist/runtime/index.js +49 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/server/index.cjs +604 -0
- package/dist/server/index.cjs.map +1 -0
- package/dist/server/index.d.cts +69 -0
- package/dist/server/index.d.ts +69 -0
- package/dist/server/index.js +604 -0
- package/dist/server/index.js.map +1 -0
- package/dist/skill/index.cjs +14 -0
- package/dist/skill/index.cjs.map +1 -0
- package/dist/skill/index.d.cts +16 -0
- package/dist/skill/index.d.ts +16 -0
- package/dist/skill/index.js +14 -0
- package/dist/skill/index.js.map +1 -0
- package/package.json +292 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/server/app.ts","../../src/server/invoker.ts","../../src/server/openai.ts","../../src/server/sse.ts","../../src/server/agui.ts"],"sourcesContent":["import type { Server } from 'node:http';\nimport type { AddressInfo } from 'node:net';\nimport { Hono } from 'hono';\nimport { serve } from '@hono/node-server';\nimport { type Logger, nullLogger } from '../logging';\nimport { AgentInvoker, type InvokeHandler, failureFields } from './invoker';\nimport { OpenAIProtocolHandler } from './openai';\nimport { AGUIProtocolHandler } from './agui';\nimport type { ProtocolHandler } from './protocol';\n\nexport interface AgentCoreServerOptions {\n invoke?: InvokeHandler;\n protocols?: ProtocolHandler[];\n startup?: () => void | Promise<void>;\n shutdown?: () => void | Promise<void>;\n readiness?: () => boolean | Promise<boolean>;\n logger?: Logger;\n}\nexport class AgentCoreServer {\n readonly app = new Hono();\n private readonly invoker: AgentInvoker;\n private readonly logger: Logger;\n private server?: Server;\n private starting?: Promise<string>;\n private stopping?: Promise<void>;\n constructor(private readonly options: AgentCoreServerOptions = {}) {\n this.logger = options.logger ?? nullLogger;\n this.invoker = new AgentInvoker(options.invoke, this.logger);\n this.app.get('/healthz', c => c.json({ status: 'ok' }));\n this.app.get('/readyz', async c => {\n let ready = false;\n try { ready = options.readiness ? await options.readiness() : this.invoker.configured; }\n catch (error) { this.logger.warn('agentcore.server.readiness.failed', failureFields(error)); }\n return c.json({ ready }, ready ? 200 : 503);\n });\n for (const protocol of options.protocols ?? [new OpenAIProtocolHandler(), new AGUIProtocolHandler()]) {\n this.app.route('/', protocol.routes(this.invoker));\n }\n }\n invoke(handler: InvokeHandler): void { this.invoker.setHandler(handler); }\n\n start(options: { port?: number; hostname?: string } = {}): Promise<string> {\n if (this.stopping) return Promise.reject(new Error('AgentCore server is closed'));\n if (this.starting) return this.starting;\n this.starting = this.listen(options).catch(error => { this.starting = undefined; throw error; });\n return this.starting;\n }\n private async listen(options: { port?: number; hostname?: string }): Promise<string> {\n this.logger.info('agentcore.server.lifecycle.startup.started');\n let initialized = false;\n try {\n await this.options.startup?.();\n initialized = true;\n const address = await new Promise<AddressInfo>((resolve, reject) => {\n const server = serve({ fetch: this.app.fetch, port: options.port ?? 9000, hostname: options.hostname ?? '0.0.0.0' }, resolve) as Server;\n this.server = server;\n server.once('error', reject);\n });\n this.logger.info('agentcore.server.lifecycle.startup.succeeded', { port: address.port });\n return `http://${address.family === 'IPv6' ? `[${address.address}]` : address.address}:${address.port}`;\n } catch (error) {\n this.logger.error('agentcore.server.lifecycle.startup.failed', failureFields(error));\n this.server = undefined;\n // Successful application startup must be paired with cleanup if bind fails.\n if (initialized) {\n try { await this.options.shutdown?.(); }\n catch (cleanupError) { this.logger.error('agentcore.server.lifecycle.shutdown.failed', failureFields(cleanupError)); }\n }\n throw error;\n }\n }\n /** Stop accepting traffic, drain requests, then release application resources. */\n close(): Promise<void> {\n if (this.stopping) return this.stopping;\n this.stopping = this.stop();\n return this.stopping;\n }\n private async stop(): Promise<void> {\n await this.starting?.catch(() => undefined);\n if (!this.server?.listening) return;\n this.logger.info('agentcore.server.lifecycle.shutdown.started');\n await new Promise<void>((resolve, reject) => this.server!.close(error => error ? reject(error) : resolve()));\n try { await this.options.shutdown?.(); }\n catch (error) { this.logger.error('agentcore.server.lifecycle.shutdown.failed', failureFields(error)); throw error; }\n this.logger.info('agentcore.server.lifecycle.shutdown.succeeded');\n }\n}\n","import { AgentCoreError } from '../errors';\nimport { type Logger, nullLogger } from '../logging';\nimport { RequestContext, useContext } from '../runtime/context';\nimport { parseCollaborationContext, useCollaborationContext } from '../collaboration/context';\nimport { AgentEvent, EventType, type AgentRequest, type AgentResult, type AgentOutput } from './model';\n\nexport type InvokeHandler = (request: AgentRequest, context: RequestContext) => AgentResult | Promise<AgentResult>;\n\nexport class AgentInvoker {\n constructor(private handler?: InvokeHandler, readonly logger: Logger = nullLogger) {}\n get configured(): boolean { return this.handler !== undefined; }\n setHandler(handler: InvokeHandler): void { this.handler = handler; }\n\n async *invokeStream(request: AgentRequest): AsyncGenerator<AgentEvent> {\n if (!this.handler) throw new Error('AgentCore handler is not configured');\n const context = new RequestContext(Object.fromEntries(request.rawRequest.headers));\n const fields = { protocol: request.protocol, requestId: context.headers['x-request-id'],\n sessionId: context.headers['x-agentcore-session-id'] };\n this.logger.info('agentcore.server.invoke.started', fields);\n try {\n request.signal.throwIfAborted();\n const collaboration = parseCollaborationContext(context.headers);\n const run = <T>(callback: () => T) => useContext(context, () => useCollaborationContext(collaboration, callback));\n const result = await run(() => this.handler!(request, context));\n const iterator = iterate(result)[Symbol.asyncIterator]();\n try {\n for (;;) {\n request.signal.throwIfAborted();\n // Async generators run at next(), not at construction time.\n const item = await run(() => iterator.next());\n if (item.done) break;\n request.signal.throwIfAborted();\n const event = normalize(item.value);\n if (event) yield event;\n }\n } finally { await run(() => iterator.return?.(undefined)); }\n } catch (error) {\n if (request.signal.aborted) this.logger.info('agentcore.server.invoke.cancelled', fields);\n else this.logger.error('agentcore.server.invoke.failed', { ...fields, ...failureFields(error) });\n throw error;\n }\n this.logger.info('agentcore.server.invoke.succeeded', fields);\n }\n async invoke(request: AgentRequest): Promise<AgentEvent[]> {\n const events = [];\n for await (const event of this.invokeStream(request)) events.push(event);\n return events;\n }\n}\nasync function* iterate(result: AgentResult): AsyncGenerator<AgentOutput> {\n if (result != null && typeof result === 'object' && Symbol.asyncIterator in result) yield* result;\n else if (result != null && typeof result === 'object' && Symbol.iterator in result) yield* result;\n else yield result as AgentOutput;\n}\nfunction normalize(value: AgentOutput): AgentEvent | undefined {\n if (value == null || value === '') return;\n if (typeof value === 'string') return new AgentEvent(EventType.TEXT, { delta: value });\n if (!(value instanceof AgentEvent)) throw new TypeError('handler must return text, AgentEvent, or an event iterable');\n if (value.event !== EventType.TOOL_CALL) return value;\n const args = value.data.args ?? '';\n return new AgentEvent(EventType.TOOL_CALL_CHUNK, { id: value.data.id ?? '', name: value.data.name ?? '',\n args_delta: typeof args === 'string' ? args : JSON.stringify(args) });\n}\nexport function errorCode(error: unknown): string { return error instanceof AgentCoreError ? error.code : 'INTERNAL_ERROR'; }\nexport function failureFields(error: unknown) {\n return { code: errorCode(error), errorType: error instanceof Error ? error.name : typeof error,\n errorMessage: error instanceof Error ? error.message : String(error), stack: error instanceof Error ? error.stack : undefined };\n}\n","import { randomUUID } from 'node:crypto';\nimport { Hono } from 'hono';\nimport { AgentCoreError, ConfigError, ContextError } from '../errors';\nimport { AgentInvoker, errorCode, failureFields } from './invoker';\nimport { AgentEvent, EventType, type AgentRequest, type Message, type AgentTool } from './model';\nimport type { ProtocolHandler } from './protocol';\nimport { eventStream, sse } from './sse';\n\nexport class OpenAIProtocolHandler implements ProtocolHandler {\n readonly name = 'openai_chat_completions';\n constructor(readonly prefix = '/openai/v1', readonly modelName = 'agentcore') {}\n routes(invoker: AgentInvoker): Hono {\n const app = new Hono();\n app.get(`${this.prefix}/models`, c => c.json({ object: 'list', data: [{\n id: this.modelName, object: 'model', created: Math.floor(Date.now() / 1000), owned_by: 'agentcore',\n }] }));\n app.post(`${this.prefix}/chat/completions`, async c => {\n if (!invoker.configured) return c.json({ error: { message: 'handler is not configured', type: 'server_error' } }, 503);\n let request: AgentRequest;\n try { request = parseOpenAI(c.req.raw, await c.req.json()); }\n catch { return c.json({ error: { message: 'invalid request', type: 'invalid_request_error' } }, 400); }\n const model = text(request.rawPayload.model) || this.modelName;\n if (request.stream) return eventStream(c, signal => formatStream(invoker, { ...request, signal }, model));\n try {\n const state = new CompletionState();\n for (const event of await invoker.invoke(request)) {\n if (event.event === EventType.ERROR) throw new Error('agent reported an error');\n state.consume(event);\n }\n return c.json({ ...completion(model), object: 'chat.completion', choices: [{ index: 0,\n message: { role: 'assistant', content: state.content.join('') || null,\n ...(state.reasoning.length ? { reasoning_content: state.reasoning.join('') } : {}),\n ...(state.calls.size ? { tool_calls: [...state.calls.values()].map(({ id, name, args }) => ({\n id, type: 'function', function: { name, arguments: args },\n })) } : {}) }, finish_reason: state.finishReason,\n }] });\n } catch (error) {\n const invalid = error instanceof ConfigError || error instanceof ContextError;\n return c.json({ error: { message: error instanceof AgentCoreError ? error.message : 'handler failed',\n type: invalid ? 'invalid_request_error' : 'server_error', code: errorCode(error) } },\n invalid ? 400 : error instanceof AgentCoreError ? 502 : 500);\n }\n });\n return app;\n }\n}\n\nfunction parseOpenAI(rawRequest: Request, value: unknown): AgentRequest {\n const payload = object(value);\n if (!Array.isArray(payload.messages)) throw new Error('messages must be an array');\n const messages = payload.messages.map(value => {\n const item = object(value);\n if (!['developer', 'system', 'user', 'assistant', 'tool'].includes(String(item.role))) throw new Error('invalid role');\n let toolCalls: Message['toolCalls'];\n if (item.tool_calls != null) {\n if (!Array.isArray(item.tool_calls)) throw new Error('invalid tool_calls');\n toolCalls = item.tool_calls.map(value => {\n const call = object(value);\n if (!text(call.id)) throw new Error('tool id is required');\n return { id: call.id as string, type: text(call.type) || 'function', function: object(call.function) };\n });\n }\n return { role: item.role as Message['role'], content: item.content as Message['content'],\n id: text(item.id), name: text(item.name), toolCalls, toolCallId: text(item.tool_call_id) };\n });\n let tools: AgentTool[] | undefined;\n if (payload.tools != null) {\n if (!Array.isArray(payload.tools)) throw new Error('tools must be an array');\n tools = payload.tools.map(value => {\n const item = object(value), fn = object(item.function);\n if ((item.type ?? 'function') !== 'function' || !text(fn.name)) throw new Error('invalid function tool');\n if (fn.description !== undefined && typeof fn.description !== 'string') throw new Error('invalid description');\n return { name: fn.name as string, description: fn.description as string ?? '', parameters: object(fn.parameters ?? {}) };\n });\n }\n return { protocol: 'openai', messages, tools, stream: payload.stream === true,\n rawRequest, rawPayload: payload, signal: rawRequest.signal };\n}\nfunction object(value: unknown): Record<string, unknown> {\n if (!value || typeof value !== 'object' || Array.isArray(value)) throw new Error('object required');\n return value as Record<string, unknown>;\n}\nfunction text(value: unknown): string | undefined { return typeof value === 'string' && value.trim() ? value.trim() : undefined; }\nfunction completion(model: string) { return { id: `chatcmpl-${randomUUID()}`, created: Math.floor(Date.now() / 1000), model }; }\nclass CompletionState {\n readonly content: string[] = [];\n readonly reasoning: string[] = [];\n readonly calls = new Map<string, { id: string; index: number; name: string; args: string }>();\n get finishReason(): string { return this.calls.size ? 'tool_calls' : 'stop'; }\n consume(event: AgentEvent): Record<string, unknown>[] {\n const data = event.data;\n if (event.event === EventType.TEXT || event.event === EventType.REASONING) {\n if (typeof data.delta !== 'string' || !data.delta) return [];\n (event.event === EventType.TEXT ? this.content : this.reasoning).push(data.delta);\n return [{ [event.event === EventType.TEXT ? 'content' : 'reasoning_content']: data.delta }];\n }\n if (event.event !== EventType.TOOL_CALL_CHUNK || typeof data.id !== 'string' || !data.id) return [];\n const deltas: Record<string, unknown>[] = [];\n let call = this.calls.get(data.id);\n if (!call) {\n call = { id: data.id, index: this.calls.size, name: text(data.name) || '', args: '' };\n this.calls.set(call.id, call);\n deltas.push({ tool_calls: [{ index: call.index, id: call.id, type: 'function', function: { name: call.name, arguments: '' } }] });\n }\n if (text(data.name)) call.name = text(data.name)!;\n if (typeof data.args_delta === 'string' && data.args_delta) {\n call.args += data.args_delta;\n deltas.push({ tool_calls: [{ index: call.index, function: { arguments: data.args_delta } }] });\n }\n return deltas;\n }\n}\nasync function* formatStream(invoker: AgentInvoker, request: AgentRequest, model: string): AsyncGenerator<string> {\n const base = { ...completion(model), object: 'chat.completion.chunk' }, state = new CompletionState();\n const chunk = (delta: Record<string, unknown>, finishReason: string | null = null) => sse({ ...base,\n choices: [{ index: 0, delta, finish_reason: finishReason }] });\n yield chunk({ role: 'assistant' });\n let failed = false;\n try {\n for await (const event of invoker.invokeStream(request)) {\n if (event.event === EventType.ERROR) {\n yield sse({ error: { message: 'handler failed', type: 'server_error' } }); failed = true; break;\n }\n for (const delta of state.consume(event)) yield chunk(delta);\n }\n } catch (error) {\n if (request.signal.aborted) return;\n invoker.logger.error('agentcore.server.openai.stream.failed', { ...failureFields(error), requestId: request.rawRequest.headers.get('x-request-id') ?? undefined });\n yield sse({ error: { message: 'handler failed', type: 'server_error', code: errorCode(error) } }); failed = true;\n }\n if (!failed) yield chunk({}, state.finishReason);\n yield 'data: [DONE]\\n\\n';\n}\n","import type { Context } from 'hono';\nimport { streamSSE } from 'hono/streaming';\n\nexport const HEARTBEAT_INTERVAL_MS = 15_000;\nexport function sse(value: Record<string, unknown>): string { return `data: ${JSON.stringify(value)}\\n\\n`; }\n\n/** One pending pull, at most one buffered frame; heartbeats never pull ahead. */\nexport async function* withHeartbeat(source: AsyncIterable<string>): AsyncGenerator<string> {\n const iterator = source[Symbol.asyncIterator]();\n let pending = iterator.next();\n try {\n for (;;) {\n let timer: ReturnType<typeof setTimeout> | undefined;\n const heartbeat = Symbol();\n const tick = new Promise<typeof heartbeat>(resolve => { timer = setTimeout(() => resolve(heartbeat), HEARTBEAT_INTERVAL_MS); });\n let item;\n try { item = await Promise.race([pending, tick]); } finally { clearTimeout(timer); }\n if (item === heartbeat) { yield ': ping\\n\\n'; continue; }\n if (item.done) return;\n yield item.value;\n pending = iterator.next();\n }\n } finally { await iterator.return?.(); }\n}\n\nexport function eventStream(c: Context, producer: (signal: AbortSignal) => AsyncIterable<string>): Response {\n c.header('X-Accel-Buffering', 'no');\n return streamSSE(c, async stream => {\n const cancelled = new AbortController();\n stream.onAbort(() => cancelled.abort());\n const signal = AbortSignal.any([c.req.raw.signal, cancelled.signal]);\n try {\n for await (const frame of withHeartbeat(producer(signal))) {\n if (signal.aborted) break;\n await stream.write(frame);\n }\n } catch (error) { if (!signal.aborted) throw error; }\n });\n}\n","import { randomUUID } from 'node:crypto';\nimport { Hono } from 'hono';\nimport { RunAgentInputSchema } from '@ag-ui/core';\nimport { AgentInvoker, errorCode, failureFields } from './invoker';\nimport { AgentEvent, EventType, type AgentRequest, type Message } from './model';\nimport type { ProtocolHandler } from './protocol';\nimport { eventStream, sse } from './sse';\n\nexport class AGUIProtocolHandler implements ProtocolHandler {\n readonly name = 'ag-ui';\n constructor(readonly prefix = '/ag-ui/agent') {}\n routes(invoker: AgentInvoker): Hono {\n const app = new Hono();\n app.post(this.prefix, async c => {\n if (!invoker.configured) return c.json({ error: { code: 'HANDLER_NOT_CONFIGURED' } }, 503);\n let request: AgentRequest, threadId: string, runId: string;\n try {\n const payload = await c.req.json();\n const parsed = RunAgentInputSchema.parse(payload);\n threadId = parsed.threadId; runId = parsed.runId;\n const messages: Message[] = parsed.messages.map(message => ({\n role: message.role, id: message.id, name: 'name' in message ? message.name : undefined,\n content: 'content' in message ? message.content as Message['content'] : undefined,\n toolCalls: 'toolCalls' in message ? message.toolCalls : undefined,\n toolCallId: 'toolCallId' in message ? message.toolCallId : undefined,\n }));\n const tools = parsed.tools.map(tool => {\n if (!tool.parameters || typeof tool.parameters !== 'object' || Array.isArray(tool.parameters)) throw new Error('tool parameters must be an object');\n return { name: tool.name, description: tool.description, parameters: tool.parameters as Record<string, unknown> };\n });\n request = { protocol: 'agui', messages, tools, stream: true,\n rawRequest: c.req.raw, rawPayload: payload, signal: c.req.raw.signal };\n } catch {\n return eventStream(c, async function* () { yield sse({ type: 'RUN_ERROR', message: 'invalid request', code: 'INVALID_REQUEST' }); });\n }\n return eventStream(c, signal => formatStream(invoker, { ...request, signal }, threadId, runId));\n });\n return app;\n }\n}\n\nclass StreamState {\n textId?: string;\n reasoningId?: string;\n tools = new Set<string>();\n toolIds = new Set<string>();\n textIds = new Set<string>();\n reasoningIds = new Set<string>();\n finishIdentified(reasoning: boolean, messageId?: string): Record<string, unknown>[] {\n const active = reasoning ? this.reasoningIds : this.textIds;\n return (messageId === undefined ? [...active] : [messageId]).flatMap(id => {\n if (!active.delete(id)) return [];\n return reasoning ? [{ type: 'REASONING_MESSAGE_END', messageId: id }, { type: 'REASONING_END', messageId: id }]\n : [{ type: 'TEXT_MESSAGE_END', messageId: id }];\n });\n }\n finishText(): Record<string, unknown>[] {\n if (!this.textId) return [];\n const messageId = this.textId; this.textId = undefined;\n return [{ type: 'TEXT_MESSAGE_END', messageId }];\n }\n finishReasoning(): Record<string, unknown>[] {\n if (!this.reasoningId) return [];\n const messageId = this.reasoningId; this.reasoningId = undefined;\n return [{ type: 'REASONING_MESSAGE_END', messageId }, { type: 'REASONING_END', messageId }];\n }\n finishTool(toolCallId: string): Record<string, unknown>[] {\n return this.tools.delete(toolCallId) ? [{ type: 'TOOL_CALL_END', toolCallId }] : [];\n }\n finishTools(): Record<string, unknown>[] { return [...this.tools].flatMap(id => this.finishTool(id)); }\n consume(event: AgentEvent): Record<string, unknown>[] {\n const data = event.data;\n const identity = typeof data.message_id === 'string' ? data.message_id : undefined;\n if (event.event === EventType.TEXT_END) return [...(identity === undefined ? this.finishText() : []), ...this.finishIdentified(false, identity)];\n if (event.event === EventType.REASONING_END) return [...(identity === undefined ? this.finishReasoning() : []), ...this.finishIdentified(true, identity)];\n if (event.event === EventType.TEXT || event.event === EventType.REASONING) {\n const reasoning = event.event === EventType.REASONING;\n const events = [...(reasoning ? this.finishText() : this.finishReasoning()), ...this.finishTools()];\n if (identity) events.push(...(reasoning ? this.finishReasoning() : this.finishText()));\n const active = reasoning ? this.reasoningIds : this.textIds;\n let messageId = identity ?? (reasoning ? this.reasoningId : this.textId);\n if (identity ? !active.has(identity) : !messageId) {\n messageId ??= randomUUID();\n if (identity) active.add(identity);\n else if (reasoning) this.reasoningId = messageId;\n else this.textId = messageId;\n if (reasoning) {\n events.push({ type: 'REASONING_START', messageId });\n }\n events.push({ type: reasoning ? 'REASONING_MESSAGE_START' : 'TEXT_MESSAGE_START', messageId,\n role: reasoning ? 'reasoning' : 'assistant' });\n }\n if (typeof data.delta === 'string' && data.delta) events.push({\n type: reasoning ? 'REASONING_MESSAGE_CONTENT' : 'TEXT_MESSAGE_CONTENT', messageId, delta: data.delta,\n });\n return events;\n }\n if (event.event === EventType.TOOL_CALL_CHUNK || event.event === EventType.TOOL_RESULT) {\n if (typeof data.id !== 'string' || !data.id) return [];\n const toolCallId = data.id, events = [...this.finishText(), ...this.finishReasoning()];\n if (!this.toolIds.has(toolCallId)) {\n this.tools.add(toolCallId);\n this.toolIds.add(toolCallId);\n events.push({ type: 'TOOL_CALL_START', toolCallId, toolCallName: data.name ?? '' });\n }\n if (event.event === EventType.TOOL_CALL_CHUNK) {\n if (typeof data.args_delta === 'string' && data.args_delta) events.push({ type: 'TOOL_CALL_ARGS', toolCallId, delta: data.args_delta });\n } else {\n events.push(...this.finishTool(toolCallId));\n events.push({ type: 'TOOL_CALL_RESULT', toolCallId, messageId: `tool-result-${toolCallId}`, role: 'tool',\n content: typeof data.result === 'string' ? data.result : JSON.stringify(data.result ?? '') });\n }\n return events;\n }\n return [event.toJSON()];\n }\n}\nasync function* formatStream(invoker: AgentInvoker, request: AgentRequest, threadId: string, runId: string): AsyncGenerator<string> {\n const state = new StreamState();\n yield sse({ type: 'RUN_STARTED', threadId, runId });\n try {\n for await (const event of invoker.invokeStream(request)) {\n if (event.event === EventType.ERROR) {\n yield sse({ type: 'RUN_ERROR', message: event.data.message || 'agent failed', code: event.data.code }); return;\n }\n for (const encoded of state.consume(event)) yield sse(encoded);\n }\n } catch (error) {\n if (request.signal.aborted) return;\n invoker.logger.error('agentcore.server.agui.stream.failed', { ...failureFields(error), threadId, runId,\n requestId: request.rawRequest.headers.get('x-request-id') ?? undefined });\n yield sse({ type: 'RUN_ERROR', message: 'handler failed', code: errorCode(error) }); return;\n }\n for (const encoded of [...state.finishReasoning(), ...state.finishTools(), ...state.finishText(),\n ...state.finishIdentified(false), ...state.finishIdentified(true)]) yield sse(encoded);\n yield sse({ type: 'RUN_FINISHED', threadId, runId });\n}\n"],"mappings":"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","names":["Hono","value","randomUUID","Hono","Hono","formatStream","randomUUID","Hono"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
var _chunkA3WMLVJCcjs = require('../chunk-A3WMLVJC.cjs');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
var _chunkMWAHO47Bcjs = require('../chunk-MWAHO47B.cjs');
|
|
7
|
+
require('../chunk-EGUKJE3Z.cjs');
|
|
8
|
+
require('../chunk-LE5P3SJW.cjs');
|
|
9
|
+
require('../chunk-JSP7ZROS.cjs');
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
exports.Skills = _chunkMWAHO47Bcjs.Skills; exports.skillTools = _chunkA3WMLVJCcjs.skillTools;
|
|
14
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/zhuoguang/Documents/Code/collaborate/hiclaw/agentcore-sdk-nodejs/dist/skill/index.cjs"],"names":[],"mappings":"AAAA;AACE;AACF,yDAA8B;AAC9B;AACE;AACF,yDAA8B;AAC9B,iCAA8B;AAC9B,iCAA8B;AAC9B,iCAA8B;AAC9B;AACE;AACA;AACF,6FAAC","file":"/Users/zhuoguang/Documents/Code/collaborate/hiclaw/agentcore-sdk-nodejs/dist/skill/index.cjs"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { S as Skill } from '../loader-eWuJ2GSL.cjs';
|
|
2
|
+
export { b as SkillProvider, a as Skills, c as SkillsOptions } from '../loader-eWuJ2GSL.cjs';
|
|
3
|
+
import { T as Tool } from '../common-BSXkQfxI.cjs';
|
|
4
|
+
import { L as Logger } from '../logging-C8GLLg1f.cjs';
|
|
5
|
+
import '../controlplane/index.cjs';
|
|
6
|
+
import '../access-key-CkoHq3S8.cjs';
|
|
7
|
+
import 'node:util';
|
|
8
|
+
|
|
9
|
+
interface SkillToolsOptions {
|
|
10
|
+
commandApproval?: (command: string, cwd: string) => boolean | Promise<boolean>;
|
|
11
|
+
commandTimeoutSeconds?: number;
|
|
12
|
+
logger?: Logger;
|
|
13
|
+
}
|
|
14
|
+
declare function skillTools(skills: readonly Skill[], options?: SkillToolsOptions): Tool[];
|
|
15
|
+
|
|
16
|
+
export { Skill, type SkillToolsOptions, skillTools };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { S as Skill } from '../loader-DrIQ37nm.js';
|
|
2
|
+
export { b as SkillProvider, a as Skills, c as SkillsOptions } from '../loader-DrIQ37nm.js';
|
|
3
|
+
import { T as Tool } from '../common-BSXkQfxI.js';
|
|
4
|
+
import { L as Logger } from '../logging-C8GLLg1f.js';
|
|
5
|
+
import '../controlplane/index.js';
|
|
6
|
+
import '../access-key-CkoHq3S8.js';
|
|
7
|
+
import 'node:util';
|
|
8
|
+
|
|
9
|
+
interface SkillToolsOptions {
|
|
10
|
+
commandApproval?: (command: string, cwd: string) => boolean | Promise<boolean>;
|
|
11
|
+
commandTimeoutSeconds?: number;
|
|
12
|
+
logger?: Logger;
|
|
13
|
+
}
|
|
14
|
+
declare function skillTools(skills: readonly Skill[], options?: SkillToolsOptions): Tool[];
|
|
15
|
+
|
|
16
|
+
export { Skill, type SkillToolsOptions, skillTools };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import {
|
|
2
|
+
skillTools
|
|
3
|
+
} from "../chunk-ZLKYXRNM.js";
|
|
4
|
+
import {
|
|
5
|
+
Skills
|
|
6
|
+
} from "../chunk-55XZZRKO.js";
|
|
7
|
+
import "../chunk-EKXZKKJJ.js";
|
|
8
|
+
import "../chunk-NZL3VPJ2.js";
|
|
9
|
+
import "../chunk-MZ5UWGXS.js";
|
|
10
|
+
export {
|
|
11
|
+
Skills,
|
|
12
|
+
skillTools
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/package.json
ADDED
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "alibabacloud-agentcore-sdk",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "AgentCore runtime SDK for Node.js",
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"engines": {
|
|
8
|
+
"node": ">=20.3.0"
|
|
9
|
+
},
|
|
10
|
+
"main": "./dist/index.cjs",
|
|
11
|
+
"module": "./dist/index.js",
|
|
12
|
+
"types": "./dist/index.d.ts",
|
|
13
|
+
"typesVersions": {
|
|
14
|
+
"*": {
|
|
15
|
+
"collaboration": ["dist/collaboration/index.d.ts"],
|
|
16
|
+
"auth": [
|
|
17
|
+
"dist/auth/index.d.ts"
|
|
18
|
+
],
|
|
19
|
+
"controlplane": [
|
|
20
|
+
"dist/controlplane/index.d.ts"
|
|
21
|
+
],
|
|
22
|
+
"model": [
|
|
23
|
+
"dist/model/index.d.ts"
|
|
24
|
+
],
|
|
25
|
+
"mcp": [
|
|
26
|
+
"dist/mcp/index.d.ts"
|
|
27
|
+
],
|
|
28
|
+
"skill": [
|
|
29
|
+
"dist/skill/index.d.ts"
|
|
30
|
+
],
|
|
31
|
+
"memory": [
|
|
32
|
+
"dist/memory/index.d.ts"
|
|
33
|
+
],
|
|
34
|
+
"runtime": [
|
|
35
|
+
"dist/runtime/index.d.ts"
|
|
36
|
+
],
|
|
37
|
+
"server": [
|
|
38
|
+
"dist/server/index.d.ts"
|
|
39
|
+
],
|
|
40
|
+
"integrations/*": [
|
|
41
|
+
"dist/integrations/*.d.ts"
|
|
42
|
+
]
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"exports": {
|
|
46
|
+
"./collaboration": {
|
|
47
|
+
"import": { "types": "./dist/collaboration/index.d.ts", "default": "./dist/collaboration/index.js" },
|
|
48
|
+
"require": { "types": "./dist/collaboration/index.d.cts", "default": "./dist/collaboration/index.cjs" }
|
|
49
|
+
},
|
|
50
|
+
"./integrations/mastra": {
|
|
51
|
+
"import": { "types": "./dist/integrations/mastra.d.ts", "default": "./dist/integrations/mastra.js" },
|
|
52
|
+
"require": { "types": "./dist/integrations/mastra.d.cts", "default": "./dist/integrations/mastra.cjs" }
|
|
53
|
+
},
|
|
54
|
+
"./integrations/google-adk": {
|
|
55
|
+
"import": {
|
|
56
|
+
"types": "./dist/integrations/google-adk.d.ts",
|
|
57
|
+
"default": "./dist/integrations/google-adk.js"
|
|
58
|
+
},
|
|
59
|
+
"require": {
|
|
60
|
+
"types": "./dist/integrations/google-adk.d.cts",
|
|
61
|
+
"default": "./dist/integrations/google-adk.cjs"
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
".": {
|
|
65
|
+
"import": {
|
|
66
|
+
"types": "./dist/index.d.ts",
|
|
67
|
+
"default": "./dist/index.js"
|
|
68
|
+
},
|
|
69
|
+
"require": {
|
|
70
|
+
"types": "./dist/index.d.cts",
|
|
71
|
+
"default": "./dist/index.cjs"
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
"./auth": {
|
|
75
|
+
"import": {
|
|
76
|
+
"types": "./dist/auth/index.d.ts",
|
|
77
|
+
"default": "./dist/auth/index.js"
|
|
78
|
+
},
|
|
79
|
+
"require": {
|
|
80
|
+
"types": "./dist/auth/index.d.cts",
|
|
81
|
+
"default": "./dist/auth/index.cjs"
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
"./controlplane": {
|
|
85
|
+
"import": {
|
|
86
|
+
"types": "./dist/controlplane/index.d.ts",
|
|
87
|
+
"default": "./dist/controlplane/index.js"
|
|
88
|
+
},
|
|
89
|
+
"require": {
|
|
90
|
+
"types": "./dist/controlplane/index.d.cts",
|
|
91
|
+
"default": "./dist/controlplane/index.cjs"
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
"./model": {
|
|
95
|
+
"import": {
|
|
96
|
+
"types": "./dist/model/index.d.ts",
|
|
97
|
+
"default": "./dist/model/index.js"
|
|
98
|
+
},
|
|
99
|
+
"require": {
|
|
100
|
+
"types": "./dist/model/index.d.cts",
|
|
101
|
+
"default": "./dist/model/index.cjs"
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
"./mcp": {
|
|
105
|
+
"import": {
|
|
106
|
+
"types": "./dist/mcp/index.d.ts",
|
|
107
|
+
"default": "./dist/mcp/index.js"
|
|
108
|
+
},
|
|
109
|
+
"require": {
|
|
110
|
+
"types": "./dist/mcp/index.d.cts",
|
|
111
|
+
"default": "./dist/mcp/index.cjs"
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
"./skill": {
|
|
115
|
+
"import": {
|
|
116
|
+
"types": "./dist/skill/index.d.ts",
|
|
117
|
+
"default": "./dist/skill/index.js"
|
|
118
|
+
},
|
|
119
|
+
"require": {
|
|
120
|
+
"types": "./dist/skill/index.d.cts",
|
|
121
|
+
"default": "./dist/skill/index.cjs"
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
"./memory": {
|
|
125
|
+
"import": {
|
|
126
|
+
"types": "./dist/memory/index.d.ts",
|
|
127
|
+
"default": "./dist/memory/index.js"
|
|
128
|
+
},
|
|
129
|
+
"require": {
|
|
130
|
+
"types": "./dist/memory/index.d.cts",
|
|
131
|
+
"default": "./dist/memory/index.cjs"
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
"./integrations/langgraph": {
|
|
135
|
+
"import": {
|
|
136
|
+
"types": "./dist/integrations/langgraph.d.ts",
|
|
137
|
+
"default": "./dist/integrations/langgraph.js"
|
|
138
|
+
},
|
|
139
|
+
"require": {
|
|
140
|
+
"types": "./dist/integrations/langgraph.d.cts",
|
|
141
|
+
"default": "./dist/integrations/langgraph.cjs"
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
"./integrations/langchain": {
|
|
145
|
+
"import": {
|
|
146
|
+
"types": "./dist/integrations/langchain.d.ts",
|
|
147
|
+
"default": "./dist/integrations/langchain.js"
|
|
148
|
+
},
|
|
149
|
+
"require": {
|
|
150
|
+
"types": "./dist/integrations/langchain.d.cts",
|
|
151
|
+
"default": "./dist/integrations/langchain.cjs"
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
"./integrations/ai-sdk": {
|
|
155
|
+
"import": {
|
|
156
|
+
"types": "./dist/integrations/ai-sdk.d.ts",
|
|
157
|
+
"default": "./dist/integrations/ai-sdk.js"
|
|
158
|
+
},
|
|
159
|
+
"require": {
|
|
160
|
+
"types": "./dist/integrations/ai-sdk.d.cts",
|
|
161
|
+
"default": "./dist/integrations/ai-sdk.cjs"
|
|
162
|
+
}
|
|
163
|
+
},
|
|
164
|
+
"./server": {
|
|
165
|
+
"import": {
|
|
166
|
+
"types": "./dist/server/index.d.ts",
|
|
167
|
+
"default": "./dist/server/index.js"
|
|
168
|
+
},
|
|
169
|
+
"require": {
|
|
170
|
+
"types": "./dist/server/index.d.cts",
|
|
171
|
+
"default": "./dist/server/index.cjs"
|
|
172
|
+
}
|
|
173
|
+
},
|
|
174
|
+
"./runtime": {
|
|
175
|
+
"import": {
|
|
176
|
+
"types": "./dist/runtime/index.d.ts",
|
|
177
|
+
"default": "./dist/runtime/index.js"
|
|
178
|
+
},
|
|
179
|
+
"require": {
|
|
180
|
+
"types": "./dist/runtime/index.d.cts",
|
|
181
|
+
"default": "./dist/runtime/index.cjs"
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
},
|
|
185
|
+
"files": [
|
|
186
|
+
"dist",
|
|
187
|
+
"README.md"
|
|
188
|
+
],
|
|
189
|
+
"scripts": {
|
|
190
|
+
"build": "tsup",
|
|
191
|
+
"typecheck": "tsc --noEmit",
|
|
192
|
+
"test": "vitest run",
|
|
193
|
+
"test:package": "npm run build && node --test tests/package.test.cjs",
|
|
194
|
+
"prepack": "npm run typecheck && npm run build"
|
|
195
|
+
},
|
|
196
|
+
"dependencies": {
|
|
197
|
+
"@ag-ui/core": "^0.0.59",
|
|
198
|
+
"@alicloud/agentcore20260804": "1.2.1",
|
|
199
|
+
"@alicloud/agentidentitydata20251127": "^2.0.0",
|
|
200
|
+
"@alicloud/openapi-core": "^1.0.8",
|
|
201
|
+
"@anthropic-ai/sdk": "^0.124.0",
|
|
202
|
+
"@darabonba/typescript": "^1.0.0",
|
|
203
|
+
"@hono/node-server": "^2.1.1",
|
|
204
|
+
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
205
|
+
"hono": "^4.13.7",
|
|
206
|
+
"openai": "^6.15.0",
|
|
207
|
+
"yaml": "^2.8.1",
|
|
208
|
+
"yauzl": "^3.4.0"
|
|
209
|
+
},
|
|
210
|
+
"peerDependencies": {
|
|
211
|
+
"@mastra/core": "^1.64.0",
|
|
212
|
+
"@ai-sdk/anthropic": "^3.0.116",
|
|
213
|
+
"@ai-sdk/openai": "^3.0.109",
|
|
214
|
+
"@ai-sdk/openai-compatible": "^2.0.74",
|
|
215
|
+
"@ai-sdk/provider": "^3.0.15",
|
|
216
|
+
"@google/adk": "^2.0.0",
|
|
217
|
+
"@google/genai": "^2.21.0",
|
|
218
|
+
"@langchain/anthropic": "^1.5.9",
|
|
219
|
+
"@langchain/core": "^1.2.9",
|
|
220
|
+
"@langchain/langgraph": "^1.4.14",
|
|
221
|
+
"@langchain/openai": "^1.5.11",
|
|
222
|
+
"ai": "^6.0.277",
|
|
223
|
+
"langchain": "^1.5.10",
|
|
224
|
+
"zod": "^4.5.4"
|
|
225
|
+
},
|
|
226
|
+
"peerDependenciesMeta": {
|
|
227
|
+
"@mastra/core": { "optional": true },
|
|
228
|
+
"@google/genai": {
|
|
229
|
+
"optional": true
|
|
230
|
+
},
|
|
231
|
+
"@google/adk": {
|
|
232
|
+
"optional": true
|
|
233
|
+
},
|
|
234
|
+
"@langchain/openai": {
|
|
235
|
+
"optional": true
|
|
236
|
+
},
|
|
237
|
+
"@langchain/anthropic": {
|
|
238
|
+
"optional": true
|
|
239
|
+
},
|
|
240
|
+
"@ai-sdk/anthropic": {
|
|
241
|
+
"optional": true
|
|
242
|
+
},
|
|
243
|
+
"@ai-sdk/openai": {
|
|
244
|
+
"optional": true
|
|
245
|
+
},
|
|
246
|
+
"@ai-sdk/openai-compatible": {
|
|
247
|
+
"optional": true
|
|
248
|
+
},
|
|
249
|
+
"@ai-sdk/provider": {
|
|
250
|
+
"optional": true
|
|
251
|
+
},
|
|
252
|
+
"ai": {
|
|
253
|
+
"optional": true
|
|
254
|
+
},
|
|
255
|
+
"zod": {
|
|
256
|
+
"optional": true
|
|
257
|
+
},
|
|
258
|
+
"langchain": {
|
|
259
|
+
"optional": true
|
|
260
|
+
},
|
|
261
|
+
"@langchain/core": {
|
|
262
|
+
"optional": true
|
|
263
|
+
},
|
|
264
|
+
"@langchain/langgraph": {
|
|
265
|
+
"optional": true
|
|
266
|
+
}
|
|
267
|
+
},
|
|
268
|
+
"devDependencies": {
|
|
269
|
+
"@ai-sdk/google": "^3.0.121",
|
|
270
|
+
"@ai-sdk/anthropic": "^3.0.116",
|
|
271
|
+
"@ai-sdk/openai": "^3.0.109",
|
|
272
|
+
"@ai-sdk/openai-compatible": "^2.0.74",
|
|
273
|
+
"@ai-sdk/provider": "^3.0.15",
|
|
274
|
+
"@google/adk": "^2.0.0",
|
|
275
|
+
"@google/genai": "^2.21.0",
|
|
276
|
+
"@langchain/anthropic": "^1.5.9",
|
|
277
|
+
"@langchain/core": "^1.2.9",
|
|
278
|
+
"@langchain/langgraph": "^1.4.14",
|
|
279
|
+
"@langchain/openai": "^1.5.11",
|
|
280
|
+
"@mastra/core": "^1.64.0",
|
|
281
|
+
"@types/node": "^20.19.0",
|
|
282
|
+
"@types/yauzl": "^2.10.3",
|
|
283
|
+
"@types/yazl": "^3.3.1",
|
|
284
|
+
"ai": "^6.0.277",
|
|
285
|
+
"langchain": "^1.5.10",
|
|
286
|
+
"tsup": "^8.5.0",
|
|
287
|
+
"typescript": "^5.9.2",
|
|
288
|
+
"vitest": "^3.2.4",
|
|
289
|
+
"yazl": "^3.3.1",
|
|
290
|
+
"zod": "^4.5.4"
|
|
291
|
+
}
|
|
292
|
+
}
|