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.
Files changed (221) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +189 -0
  3. package/dist/access-key-CkoHq3S8.d.cts +30 -0
  4. package/dist/access-key-CkoHq3S8.d.ts +30 -0
  5. package/dist/agent-sa-token-DD1Sb8P1.d.cts +14 -0
  6. package/dist/agent-sa-token-DD1Sb8P1.d.ts +14 -0
  7. package/dist/auth/index.cjs +36 -0
  8. package/dist/auth/index.cjs.map +1 -0
  9. package/dist/auth/index.d.cts +34 -0
  10. package/dist/auth/index.d.ts +34 -0
  11. package/dist/auth/index.js +36 -0
  12. package/dist/auth/index.js.map +1 -0
  13. package/dist/bound-credentials-C1fM0thh.d.cts +39 -0
  14. package/dist/bound-credentials-DqT64Q2s.d.ts +39 -0
  15. package/dist/chunk-2E5EWEDG.cjs +142 -0
  16. package/dist/chunk-2E5EWEDG.cjs.map +1 -0
  17. package/dist/chunk-55XZZRKO.js +220 -0
  18. package/dist/chunk-55XZZRKO.js.map +1 -0
  19. package/dist/chunk-5JXA7JPS.js +29 -0
  20. package/dist/chunk-5JXA7JPS.js.map +1 -0
  21. package/dist/chunk-5RKN46UU.cjs +139 -0
  22. package/dist/chunk-5RKN46UU.cjs.map +1 -0
  23. package/dist/chunk-5ZOLHQXO.js +296 -0
  24. package/dist/chunk-5ZOLHQXO.js.map +1 -0
  25. package/dist/chunk-7Y263YIW.js +298 -0
  26. package/dist/chunk-7Y263YIW.js.map +1 -0
  27. package/dist/chunk-A3PF2SPD.cjs +141 -0
  28. package/dist/chunk-A3PF2SPD.cjs.map +1 -0
  29. package/dist/chunk-A3WMLVJC.cjs +141 -0
  30. package/dist/chunk-A3WMLVJC.cjs.map +1 -0
  31. package/dist/chunk-BVZ7H2F5.cjs +582 -0
  32. package/dist/chunk-BVZ7H2F5.cjs.map +1 -0
  33. package/dist/chunk-EGUKJE3Z.cjs +24 -0
  34. package/dist/chunk-EGUKJE3Z.cjs.map +1 -0
  35. package/dist/chunk-EKXZKKJJ.js +24 -0
  36. package/dist/chunk-EKXZKKJJ.js.map +1 -0
  37. package/dist/chunk-GYLT23D3.js +110 -0
  38. package/dist/chunk-GYLT23D3.js.map +1 -0
  39. package/dist/chunk-IF7LMBXC.js +306 -0
  40. package/dist/chunk-IF7LMBXC.js.map +1 -0
  41. package/dist/chunk-IUCLCPVV.js +113 -0
  42. package/dist/chunk-IUCLCPVV.js.map +1 -0
  43. package/dist/chunk-JSP7ZROS.cjs +95 -0
  44. package/dist/chunk-JSP7ZROS.cjs.map +1 -0
  45. package/dist/chunk-JW62DVIC.js +238 -0
  46. package/dist/chunk-JW62DVIC.js.map +1 -0
  47. package/dist/chunk-K3TE7625.js +139 -0
  48. package/dist/chunk-K3TE7625.js.map +1 -0
  49. package/dist/chunk-LE5P3SJW.cjs +16 -0
  50. package/dist/chunk-LE5P3SJW.cjs.map +1 -0
  51. package/dist/chunk-LXHW6OT4.cjs +77 -0
  52. package/dist/chunk-LXHW6OT4.cjs.map +1 -0
  53. package/dist/chunk-MICRSJ6R.js +48 -0
  54. package/dist/chunk-MICRSJ6R.js.map +1 -0
  55. package/dist/chunk-MWAHO47B.cjs +220 -0
  56. package/dist/chunk-MWAHO47B.cjs.map +1 -0
  57. package/dist/chunk-MZ5UWGXS.js +95 -0
  58. package/dist/chunk-MZ5UWGXS.js.map +1 -0
  59. package/dist/chunk-NZL3VPJ2.js +16 -0
  60. package/dist/chunk-NZL3VPJ2.js.map +1 -0
  61. package/dist/chunk-PC4FM2RP.cjs +180 -0
  62. package/dist/chunk-PC4FM2RP.cjs.map +1 -0
  63. package/dist/chunk-PKYET77D.cjs +296 -0
  64. package/dist/chunk-PKYET77D.cjs.map +1 -0
  65. package/dist/chunk-PTJPB27L.js +31 -0
  66. package/dist/chunk-PTJPB27L.js.map +1 -0
  67. package/dist/chunk-QIZO3A4Y.cjs +306 -0
  68. package/dist/chunk-QIZO3A4Y.cjs.map +1 -0
  69. package/dist/chunk-RBAY4MO2.js +202 -0
  70. package/dist/chunk-RBAY4MO2.js.map +1 -0
  71. package/dist/chunk-RHY7Y43E.js +582 -0
  72. package/dist/chunk-RHY7Y43E.js.map +1 -0
  73. package/dist/chunk-RQRI6RCG.cjs +238 -0
  74. package/dist/chunk-RQRI6RCG.cjs.map +1 -0
  75. package/dist/chunk-RYXL25AI.js +141 -0
  76. package/dist/chunk-RYXL25AI.js.map +1 -0
  77. package/dist/chunk-RZNQGEGJ.cjs +113 -0
  78. package/dist/chunk-RZNQGEGJ.cjs.map +1 -0
  79. package/dist/chunk-S7PWSJNP.cjs +48 -0
  80. package/dist/chunk-S7PWSJNP.cjs.map +1 -0
  81. package/dist/chunk-TWEO5XVM.cjs +298 -0
  82. package/dist/chunk-TWEO5XVM.cjs.map +1 -0
  83. package/dist/chunk-UBP5CHU7.js +142 -0
  84. package/dist/chunk-UBP5CHU7.js.map +1 -0
  85. package/dist/chunk-ULJTQSLE.cjs +35 -0
  86. package/dist/chunk-ULJTQSLE.cjs.map +1 -0
  87. package/dist/chunk-UWPKFJYM.js +77 -0
  88. package/dist/chunk-UWPKFJYM.js.map +1 -0
  89. package/dist/chunk-WKZUYPDS.js +180 -0
  90. package/dist/chunk-WKZUYPDS.js.map +1 -0
  91. package/dist/chunk-YZP55W7S.cjs +29 -0
  92. package/dist/chunk-YZP55W7S.cjs.map +1 -0
  93. package/dist/chunk-ZELRQU4J.cjs +31 -0
  94. package/dist/chunk-ZELRQU4J.cjs.map +1 -0
  95. package/dist/chunk-ZLKYXRNM.js +141 -0
  96. package/dist/chunk-ZLKYXRNM.js.map +1 -0
  97. package/dist/chunk-ZLQ2IBTC.cjs +110 -0
  98. package/dist/chunk-ZLQ2IBTC.cjs.map +1 -0
  99. package/dist/chunk-ZTWLCHCO.cjs +202 -0
  100. package/dist/chunk-ZTWLCHCO.cjs.map +1 -0
  101. package/dist/chunk-ZWQBAJ5O.js +35 -0
  102. package/dist/chunk-ZWQBAJ5O.js.map +1 -0
  103. package/dist/client-DDU4-ygJ.d.cts +72 -0
  104. package/dist/client-pDzS7EZR.d.ts +72 -0
  105. package/dist/collaboration/index.cjs +44 -0
  106. package/dist/collaboration/index.cjs.map +1 -0
  107. package/dist/collaboration/index.d.cts +73 -0
  108. package/dist/collaboration/index.d.ts +73 -0
  109. package/dist/collaboration/index.js +44 -0
  110. package/dist/collaboration/index.js.map +1 -0
  111. package/dist/common-BSXkQfxI.d.cts +25 -0
  112. package/dist/common-BSXkQfxI.d.ts +25 -0
  113. package/dist/common-DRdI-75k.d.ts +8 -0
  114. package/dist/common-_vxreiEW.d.cts +8 -0
  115. package/dist/config-CMkmMtx1.d.cts +20 -0
  116. package/dist/config-CMkmMtx1.d.ts +20 -0
  117. package/dist/context-M9rOTifU.d.cts +12 -0
  118. package/dist/context-M9rOTifU.d.ts +12 -0
  119. package/dist/controller-DWs3Sy04.d.cts +9 -0
  120. package/dist/controller-DmI4L4sP.d.ts +9 -0
  121. package/dist/controlplane/index.cjs +13 -0
  122. package/dist/controlplane/index.cjs.map +1 -0
  123. package/dist/controlplane/index.d.cts +66 -0
  124. package/dist/controlplane/index.d.ts +66 -0
  125. package/dist/controlplane/index.js +13 -0
  126. package/dist/controlplane/index.js.map +1 -0
  127. package/dist/errors-BjGO6N10.d.ts +93 -0
  128. package/dist/errors-D9OtcR-o.d.cts +93 -0
  129. package/dist/event-converters-BIn8odqo.d.ts +38 -0
  130. package/dist/event-converters-Cn_NeGyQ.d.cts +38 -0
  131. package/dist/google-adk-model-N47R7GB2.js +208 -0
  132. package/dist/google-adk-model-N47R7GB2.js.map +1 -0
  133. package/dist/google-adk-model-PDBKY5YZ.cjs +208 -0
  134. package/dist/google-adk-model-PDBKY5YZ.cjs.map +1 -0
  135. package/dist/index.cjs +322 -0
  136. package/dist/index.cjs.map +1 -0
  137. package/dist/index.d.cts +78 -0
  138. package/dist/index.d.ts +78 -0
  139. package/dist/index.js +322 -0
  140. package/dist/index.js.map +1 -0
  141. package/dist/integrations/ai-sdk.cjs +15 -0
  142. package/dist/integrations/ai-sdk.cjs.map +1 -0
  143. package/dist/integrations/ai-sdk.d.cts +21 -0
  144. package/dist/integrations/ai-sdk.d.ts +21 -0
  145. package/dist/integrations/ai-sdk.js +15 -0
  146. package/dist/integrations/ai-sdk.js.map +1 -0
  147. package/dist/integrations/google-adk.cjs +90 -0
  148. package/dist/integrations/google-adk.cjs.map +1 -0
  149. package/dist/integrations/google-adk.d.cts +46 -0
  150. package/dist/integrations/google-adk.d.ts +46 -0
  151. package/dist/integrations/google-adk.js +90 -0
  152. package/dist/integrations/google-adk.js.map +1 -0
  153. package/dist/integrations/langchain.cjs +95 -0
  154. package/dist/integrations/langchain.cjs.map +1 -0
  155. package/dist/integrations/langchain.d.cts +52 -0
  156. package/dist/integrations/langchain.d.ts +52 -0
  157. package/dist/integrations/langchain.js +95 -0
  158. package/dist/integrations/langchain.js.map +1 -0
  159. package/dist/integrations/langgraph.cjs +30 -0
  160. package/dist/integrations/langgraph.cjs.map +1 -0
  161. package/dist/integrations/langgraph.d.cts +53 -0
  162. package/dist/integrations/langgraph.d.ts +53 -0
  163. package/dist/integrations/langgraph.js +30 -0
  164. package/dist/integrations/langgraph.js.map +1 -0
  165. package/dist/integrations/mastra.cjs +108 -0
  166. package/dist/integrations/mastra.cjs.map +1 -0
  167. package/dist/integrations/mastra.d.cts +47 -0
  168. package/dist/integrations/mastra.d.ts +47 -0
  169. package/dist/integrations/mastra.js +108 -0
  170. package/dist/integrations/mastra.js.map +1 -0
  171. package/dist/langchain-adapter-DFJdEX04.d.cts +47 -0
  172. package/dist/langchain-adapter-DJsyjm5V.d.ts +47 -0
  173. package/dist/langchain-provider-NF5GIDQV.cjs +227 -0
  174. package/dist/langchain-provider-NF5GIDQV.cjs.map +1 -0
  175. package/dist/langchain-provider-PHL4UWNF.js +227 -0
  176. package/dist/langchain-provider-PHL4UWNF.js.map +1 -0
  177. package/dist/loader-DrIQ37nm.d.ts +38 -0
  178. package/dist/loader-eWuJ2GSL.d.cts +38 -0
  179. package/dist/logging-C8GLLg1f.d.cts +9 -0
  180. package/dist/logging-C8GLLg1f.d.ts +9 -0
  181. package/dist/managed-CwLx9h4C.d.cts +32 -0
  182. package/dist/managed-D9eQK1ut.d.ts +32 -0
  183. package/dist/mcp/index.cjs +12 -0
  184. package/dist/mcp/index.cjs.map +1 -0
  185. package/dist/mcp/index.d.cts +62 -0
  186. package/dist/mcp/index.d.ts +62 -0
  187. package/dist/mcp/index.js +12 -0
  188. package/dist/mcp/index.js.map +1 -0
  189. package/dist/memory/index.cjs +12 -0
  190. package/dist/memory/index.cjs.map +1 -0
  191. package/dist/memory/index.d.cts +113 -0
  192. package/dist/memory/index.d.ts +113 -0
  193. package/dist/memory/index.js +12 -0
  194. package/dist/memory/index.js.map +1 -0
  195. package/dist/model/index.cjs +16 -0
  196. package/dist/model/index.cjs.map +1 -0
  197. package/dist/model/index.d.cts +129 -0
  198. package/dist/model/index.d.ts +129 -0
  199. package/dist/model/index.js +16 -0
  200. package/dist/model/index.js.map +1 -0
  201. package/dist/model-CkYHzHPk.d.cts +50 -0
  202. package/dist/model-CkYHzHPk.d.ts +50 -0
  203. package/dist/runtime/index.cjs +49 -0
  204. package/dist/runtime/index.cjs.map +1 -0
  205. package/dist/runtime/index.d.cts +73 -0
  206. package/dist/runtime/index.d.ts +73 -0
  207. package/dist/runtime/index.js +49 -0
  208. package/dist/runtime/index.js.map +1 -0
  209. package/dist/server/index.cjs +604 -0
  210. package/dist/server/index.cjs.map +1 -0
  211. package/dist/server/index.d.cts +69 -0
  212. package/dist/server/index.d.ts +69 -0
  213. package/dist/server/index.js +604 -0
  214. package/dist/server/index.js.map +1 -0
  215. package/dist/skill/index.cjs +14 -0
  216. package/dist/skill/index.cjs.map +1 -0
  217. package/dist/skill/index.d.cts +16 -0
  218. package/dist/skill/index.d.ts +16 -0
  219. package/dist/skill/index.js +14 -0
  220. package/dist/skill/index.js.map +1 -0
  221. package/package.json +292 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/zhuoguang/Documents/Code/collaborate/hiclaw/agentcore-sdk-nodejs/dist/server/index.cjs","../../src/server/app.ts","../../src/server/invoker.ts","../../src/server/openai.ts","../../src/server/sse.ts","../../src/server/agui.ts"],"names":["Hono"],"mappings":"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","file":"/Users/zhuoguang/Documents/Code/collaborate/hiclaw/agentcore-sdk-nodejs/dist/server/index.cjs","sourcesContent":[null,"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"]}
@@ -0,0 +1,69 @@
1
+ import * as hono_types from 'hono/types';
2
+ import { Hono } from 'hono';
3
+ import { L as Logger } from '../logging-C8GLLg1f.cjs';
4
+ import { R as RequestContext } from '../context-M9rOTifU.cjs';
5
+ import { a as AgentRequest, b as AgentResult, A as AgentEvent } from '../model-CkYHzHPk.cjs';
6
+ export { c as AgentOutput, d as AgentTool, E as EventType, M as Message, e as MessageRole, T as ToolCall } from '../model-CkYHzHPk.cjs';
7
+ import 'node:util';
8
+
9
+ type InvokeHandler = (request: AgentRequest, context: RequestContext) => AgentResult | Promise<AgentResult>;
10
+ declare class AgentInvoker {
11
+ private handler?;
12
+ readonly logger: Logger;
13
+ constructor(handler?: InvokeHandler | undefined, logger?: Logger);
14
+ get configured(): boolean;
15
+ setHandler(handler: InvokeHandler): void;
16
+ invokeStream(request: AgentRequest): AsyncGenerator<AgentEvent>;
17
+ invoke(request: AgentRequest): Promise<AgentEvent[]>;
18
+ }
19
+
20
+ /** Each protocol owns its routes; all protocols invoke the same application handler. */
21
+ interface ProtocolHandler {
22
+ readonly name: string;
23
+ routes(invoker: AgentInvoker): Hono;
24
+ }
25
+
26
+ interface AgentCoreServerOptions {
27
+ invoke?: InvokeHandler;
28
+ protocols?: ProtocolHandler[];
29
+ startup?: () => void | Promise<void>;
30
+ shutdown?: () => void | Promise<void>;
31
+ readiness?: () => boolean | Promise<boolean>;
32
+ logger?: Logger;
33
+ }
34
+ declare class AgentCoreServer {
35
+ private readonly options;
36
+ readonly app: Hono<hono_types.BlankEnv, hono_types.BlankSchema, "/">;
37
+ private readonly invoker;
38
+ private readonly logger;
39
+ private server?;
40
+ private starting?;
41
+ private stopping?;
42
+ constructor(options?: AgentCoreServerOptions);
43
+ invoke(handler: InvokeHandler): void;
44
+ start(options?: {
45
+ port?: number;
46
+ hostname?: string;
47
+ }): Promise<string>;
48
+ private listen;
49
+ /** Stop accepting traffic, drain requests, then release application resources. */
50
+ close(): Promise<void>;
51
+ private stop;
52
+ }
53
+
54
+ declare class OpenAIProtocolHandler implements ProtocolHandler {
55
+ readonly prefix: string;
56
+ readonly modelName: string;
57
+ readonly name = "openai_chat_completions";
58
+ constructor(prefix?: string, modelName?: string);
59
+ routes(invoker: AgentInvoker): Hono;
60
+ }
61
+
62
+ declare class AGUIProtocolHandler implements ProtocolHandler {
63
+ readonly prefix: string;
64
+ readonly name = "ag-ui";
65
+ constructor(prefix?: string);
66
+ routes(invoker: AgentInvoker): Hono;
67
+ }
68
+
69
+ export { AGUIProtocolHandler, AgentCoreServer, type AgentCoreServerOptions, AgentEvent, AgentInvoker, AgentRequest, AgentResult, type InvokeHandler, OpenAIProtocolHandler, type ProtocolHandler };
@@ -0,0 +1,69 @@
1
+ import * as hono_types from 'hono/types';
2
+ import { Hono } from 'hono';
3
+ import { L as Logger } from '../logging-C8GLLg1f.js';
4
+ import { R as RequestContext } from '../context-M9rOTifU.js';
5
+ import { a as AgentRequest, b as AgentResult, A as AgentEvent } from '../model-CkYHzHPk.js';
6
+ export { c as AgentOutput, d as AgentTool, E as EventType, M as Message, e as MessageRole, T as ToolCall } from '../model-CkYHzHPk.js';
7
+ import 'node:util';
8
+
9
+ type InvokeHandler = (request: AgentRequest, context: RequestContext) => AgentResult | Promise<AgentResult>;
10
+ declare class AgentInvoker {
11
+ private handler?;
12
+ readonly logger: Logger;
13
+ constructor(handler?: InvokeHandler | undefined, logger?: Logger);
14
+ get configured(): boolean;
15
+ setHandler(handler: InvokeHandler): void;
16
+ invokeStream(request: AgentRequest): AsyncGenerator<AgentEvent>;
17
+ invoke(request: AgentRequest): Promise<AgentEvent[]>;
18
+ }
19
+
20
+ /** Each protocol owns its routes; all protocols invoke the same application handler. */
21
+ interface ProtocolHandler {
22
+ readonly name: string;
23
+ routes(invoker: AgentInvoker): Hono;
24
+ }
25
+
26
+ interface AgentCoreServerOptions {
27
+ invoke?: InvokeHandler;
28
+ protocols?: ProtocolHandler[];
29
+ startup?: () => void | Promise<void>;
30
+ shutdown?: () => void | Promise<void>;
31
+ readiness?: () => boolean | Promise<boolean>;
32
+ logger?: Logger;
33
+ }
34
+ declare class AgentCoreServer {
35
+ private readonly options;
36
+ readonly app: Hono<hono_types.BlankEnv, hono_types.BlankSchema, "/">;
37
+ private readonly invoker;
38
+ private readonly logger;
39
+ private server?;
40
+ private starting?;
41
+ private stopping?;
42
+ constructor(options?: AgentCoreServerOptions);
43
+ invoke(handler: InvokeHandler): void;
44
+ start(options?: {
45
+ port?: number;
46
+ hostname?: string;
47
+ }): Promise<string>;
48
+ private listen;
49
+ /** Stop accepting traffic, drain requests, then release application resources. */
50
+ close(): Promise<void>;
51
+ private stop;
52
+ }
53
+
54
+ declare class OpenAIProtocolHandler implements ProtocolHandler {
55
+ readonly prefix: string;
56
+ readonly modelName: string;
57
+ readonly name = "openai_chat_completions";
58
+ constructor(prefix?: string, modelName?: string);
59
+ routes(invoker: AgentInvoker): Hono;
60
+ }
61
+
62
+ declare class AGUIProtocolHandler implements ProtocolHandler {
63
+ readonly prefix: string;
64
+ readonly name = "ag-ui";
65
+ constructor(prefix?: string);
66
+ routes(invoker: AgentInvoker): Hono;
67
+ }
68
+
69
+ export { AGUIProtocolHandler, AgentCoreServer, type AgentCoreServerOptions, AgentEvent, AgentInvoker, AgentRequest, AgentResult, type InvokeHandler, OpenAIProtocolHandler, type ProtocolHandler };