@providerprotocol/ai 0.0.40 → 0.0.43

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 (30) hide show
  1. package/README.md +8 -1
  2. package/dist/chunk-JPM7MVDO.js +52 -0
  3. package/dist/chunk-JPM7MVDO.js.map +1 -0
  4. package/dist/{chunk-CWGTARDE.js → chunk-ODVES5EU.js} +3 -2
  5. package/dist/{chunk-CWGTARDE.js.map → chunk-ODVES5EU.js.map} +1 -1
  6. package/dist/{chunk-L6QWKFGE.js → chunk-PUKD2AV5.js} +11 -2
  7. package/dist/chunk-PUKD2AV5.js.map +1 -0
  8. package/dist/{chunk-KVUOTFYZ.js → chunk-SQ7ZUMKC.js} +3 -2
  9. package/dist/{chunk-KVUOTFYZ.js.map → chunk-SQ7ZUMKC.js.map} +1 -1
  10. package/dist/{chunk-ZMESKGUY.js → chunk-YVAS343Z.js} +2 -2
  11. package/dist/middleware/persistence/index.js +14 -7
  12. package/dist/middleware/persistence/index.js.map +1 -1
  13. package/dist/middleware/pubsub/index.d.ts +8 -1
  14. package/dist/middleware/pubsub/index.js.map +1 -1
  15. package/dist/middleware/pubsub/server/express/index.js +2 -2
  16. package/dist/middleware/pubsub/server/fastify/index.js +2 -2
  17. package/dist/middleware/pubsub/server/h3/index.d.ts +31 -20
  18. package/dist/middleware/pubsub/server/h3/index.js +6 -6
  19. package/dist/middleware/pubsub/server/index.d.ts +10 -3
  20. package/dist/middleware/pubsub/server/index.js +5 -5
  21. package/dist/middleware/pubsub/server/index.js.map +1 -1
  22. package/dist/middleware/pubsub/server/webapi/index.js +2 -2
  23. package/dist/openai/index.d.ts +1 -0
  24. package/dist/openai/index.js +2 -0
  25. package/dist/openai/index.js.map +1 -1
  26. package/package.json +7 -3
  27. package/dist/chunk-KBI45OXI.js +0 -31
  28. package/dist/chunk-KBI45OXI.js.map +0 -1
  29. package/dist/chunk-L6QWKFGE.js.map +0 -1
  30. /package/dist/{chunk-ZMESKGUY.js.map → chunk-YVAS343Z.js.map} +0 -0
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  webapi
3
- } from "../../../chunk-ZMESKGUY.js";
3
+ } from "../../../chunk-YVAS343Z.js";
4
4
  import {
5
5
  express
6
- } from "../../../chunk-KVUOTFYZ.js";
6
+ } from "../../../chunk-SQ7ZUMKC.js";
7
7
  import {
8
8
  h3
9
- } from "../../../chunk-KBI45OXI.js";
9
+ } from "../../../chunk-JPM7MVDO.js";
10
10
  import {
11
11
  fastify
12
- } from "../../../chunk-CWGTARDE.js";
13
- import "../../../chunk-L6QWKFGE.js";
12
+ } from "../../../chunk-ODVES5EU.js";
13
+ import "../../../chunk-PUKD2AV5.js";
14
14
  import "../../../chunk-ETBFOLQN.js";
15
15
 
16
16
  // src/middleware/pubsub/server/index.ts
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/middleware/pubsub/server/index.ts"],"sourcesContent":["/**\n * @fileoverview Framework adapters for pub-sub stream resumption.\n *\n * Provides framework-specific adapters for handling stream reconnections\n * with various server frameworks. The Web API adapter works with modern\n * frameworks like Bun, Deno, Next.js App Router, and Cloudflare Workers.\n * Additional adapters provide native integration for Express, Fastify, and H3/Nuxt.\n *\n * @module middleware/pubsub/server\n */\n\nimport { express } from './express.ts';\nimport { fastify } from './fastify.ts';\nimport { h3 } from './h3.ts';\nimport { webapi } from './webapi.ts';\n\nexport { express, fastify, h3, webapi };\nexport type { PubSubAdapter } from '../types.ts';\n\n/**\n * Server adapters namespace for pub-sub stream resumption.\n *\n * Contains framework-specific adapters for Web API, Express, Fastify, and H3.\n * Always guard with `adapter.exists()` to prevent duplicate generations on reconnect.\n *\n * @example Web API (Next.js App Router, Bun, Deno)\n * ```typescript\n * import { webapi } from '@providerprotocol/ai/middleware/pubsub/server';\n *\n * export async function POST(req: Request) {\n * const { messages, streamId } = await req.json();\n *\n * // Guard: prevent duplicate generations on reconnect\n * if (!await adapter.exists(streamId)) {\n * const model = llm({\n * model: anthropic('claude-sonnet-4-20250514'),\n * middleware: [pubsubMiddleware({ adapter, streamId })],\n * });\n * model.stream(messages).then(turn => saveToDatabase(turn));\n * }\n *\n * return new Response(webapi.createSubscriberStream(streamId, adapter), {\n * headers: { 'Content-Type': 'text/event-stream' },\n * });\n * }\n * ```\n *\n * @example Express\n * ```typescript\n * import { express } from '@providerprotocol/ai/middleware/pubsub/server';\n *\n * app.post('/api/ai', async (req, res) => {\n * const { messages, streamId } = req.body;\n *\n * // Guard: prevent duplicate generations on reconnect\n * if (!await adapter.exists(streamId)) {\n * const model = llm({\n * model: anthropic('claude-sonnet-4-20250514'),\n * middleware: [pubsubMiddleware({ adapter, streamId })],\n * });\n * model.stream(messages).then(turn => saveToDatabase(turn));\n * }\n *\n * express.streamSubscriber(streamId, adapter, res);\n * });\n * ```\n *\n * @example Fastify\n * ```typescript\n * import { fastify } from '@providerprotocol/ai/middleware/pubsub/server';\n *\n * app.post('/api/ai', async (request, reply) => {\n * const { messages, streamId } = request.body;\n *\n * // Guard: prevent duplicate generations on reconnect\n * if (!await adapter.exists(streamId)) {\n * const model = llm({\n * model: anthropic('claude-sonnet-4-20250514'),\n * middleware: [pubsubMiddleware({ adapter, streamId })],\n * });\n * model.stream(messages).then(turn => saveToDatabase(turn));\n * }\n *\n * return fastify.streamSubscriber(streamId, adapter, reply);\n * });\n * ```\n *\n * @example H3/Nuxt\n * ```typescript\n * import { h3 } from '@providerprotocol/ai/middleware/pubsub/server';\n *\n * export default defineEventHandler(async (event) => {\n * const { messages, streamId } = await readBody(event);\n *\n * // Guard: prevent duplicate generations on reconnect\n * if (!await adapter.exists(streamId)) {\n * const model = llm({\n * model: anthropic('claude-sonnet-4-20250514'),\n * middleware: [pubsubMiddleware({ adapter, streamId })],\n * });\n * model.stream(messages).then(turn => saveToDatabase(turn));\n * }\n *\n * return h3.streamSubscriber(streamId, adapter, event);\n * });\n * ```\n */\nexport const server = {\n /** Web API adapter (Bun, Deno, Next.js, Workers) */\n webapi,\n /** Express/Connect adapter */\n express,\n /** Fastify adapter */\n fastify,\n /** H3/Nitro/Nuxt adapter */\n h3,\n};\n"],"mappings":";;;;;;;;;;;;;;;;AA2GO,IAAM,SAAS;AAAA;AAAA,EAEpB;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../../src/middleware/pubsub/server/index.ts"],"sourcesContent":["/**\n * @fileoverview Framework adapters for pub-sub stream resumption.\n *\n * Provides framework-specific adapters for handling stream reconnections\n * with various server frameworks. The Web API adapter works with modern\n * frameworks like Bun, Deno, Next.js App Router, and Cloudflare Workers.\n * Additional adapters provide native integration for Express, Fastify, and H3/Nuxt.\n *\n * @module middleware/pubsub/server\n */\n\nimport { express } from './express.ts';\nimport { fastify } from './fastify.ts';\nimport { h3 } from './h3.ts';\nimport { webapi } from './webapi.ts';\n\nexport { express, fastify, h3, webapi };\nexport type { PubSubAdapter } from '../types.ts';\n\n/**\n * Server adapters namespace for pub-sub stream resumption.\n *\n * Contains framework-specific adapters for Web API, Express, Fastify, and H3.\n * Always guard with `adapter.exists()` to prevent duplicate generations on reconnect.\n *\n * @example Web API (Next.js App Router, Bun, Deno)\n * ```typescript\n * import { webapi } from '@providerprotocol/ai/middleware/pubsub/server';\n *\n * export async function POST(req: Request) {\n * const { messages, streamId } = await req.json();\n *\n * // Guard: prevent duplicate generations on reconnect\n * if (!await adapter.exists(streamId)) {\n * const model = llm({\n * model: anthropic('claude-sonnet-4-20250514'),\n * middleware: [pubsubMiddleware({ adapter, streamId })],\n * });\n * model.stream(messages).then(turn => saveToDatabase(turn));\n * }\n *\n * return new Response(webapi.createSubscriberStream(streamId, adapter), {\n * headers: { 'Content-Type': 'text/event-stream' },\n * });\n * }\n * ```\n *\n * @example Express\n * ```typescript\n * import { express } from '@providerprotocol/ai/middleware/pubsub/server';\n *\n * app.post('/api/ai', async (req, res) => {\n * const { messages, streamId } = req.body;\n *\n * // Guard: prevent duplicate generations on reconnect\n * if (!await adapter.exists(streamId)) {\n * const model = llm({\n * model: anthropic('claude-sonnet-4-20250514'),\n * middleware: [pubsubMiddleware({ adapter, streamId })],\n * });\n * model.stream(messages).then(turn => saveToDatabase(turn));\n * }\n *\n * express.streamSubscriber(streamId, adapter, res);\n * });\n * ```\n *\n * @example Fastify\n * ```typescript\n * import { fastify } from '@providerprotocol/ai/middleware/pubsub/server';\n *\n * app.post('/api/ai', async (request, reply) => {\n * const { messages, streamId } = request.body;\n *\n * // Guard: prevent duplicate generations on reconnect\n * if (!await adapter.exists(streamId)) {\n * const model = llm({\n * model: anthropic('claude-sonnet-4-20250514'),\n * middleware: [pubsubMiddleware({ adapter, streamId })],\n * });\n * model.stream(messages).then(turn => saveToDatabase(turn));\n * }\n *\n * return fastify.streamSubscriber(streamId, adapter, reply);\n * });\n * ```\n *\n * @example H3/Nuxt\n * ```typescript\n * import { sendStream, setHeader } from 'h3';\n * import { h3 } from '@providerprotocol/ai/middleware/pubsub/server';\n *\n * export default defineEventHandler(async (event) => {\n * const { messages, streamId } = await readBody(event);\n *\n * // Guard: prevent duplicate generations on reconnect\n * if (!await adapter.exists(streamId)) {\n * const model = llm({\n * model: anthropic('claude-sonnet-4-20250514'),\n * middleware: [pubsubMiddleware({ adapter, streamId })],\n * });\n * model.stream(messages).then(turn => saveToDatabase(turn));\n * }\n *\n * // Required: H3's sendStream does NOT set these headers\n * setHeader(event, 'Content-Type', 'text/event-stream');\n * setHeader(event, 'Cache-Control', 'no-cache');\n * setHeader(event, 'Connection', 'keep-alive');\n * setHeader(event, 'X-Accel-Buffering', 'no');\n *\n * return sendStream(event, h3.createSubscriberSSEStream(streamId, adapter));\n * });\n * ```\n */\nexport const server = {\n /** Web API adapter (Bun, Deno, Next.js, Workers) */\n webapi,\n /** Express/Connect adapter */\n express,\n /** Fastify adapter */\n fastify,\n /** H3/Nitro/Nuxt adapter */\n h3,\n};\n"],"mappings":";;;;;;;;;;;;;;;;AAkHO,IAAM,SAAS;AAAA;AAAA,EAEpB;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AACF;","names":[]}
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  createSubscriberStream,
3
3
  webapi
4
- } from "../../../../chunk-ZMESKGUY.js";
5
- import "../../../../chunk-L6QWKFGE.js";
4
+ } from "../../../../chunk-YVAS343Z.js";
5
+ import "../../../../chunk-PUKD2AV5.js";
6
6
  import "../../../../chunk-ETBFOLQN.js";
7
7
  export {
8
8
  createSubscriberStream,
@@ -703,6 +703,7 @@ declare function mcpTool(options: {
703
703
  allowed_tools?: string[] | {
704
704
  type: 'all';
705
705
  };
706
+ allowed_resources?: string[];
706
707
  headers?: Record<string, string>;
707
708
  require_approval?: 'always' | 'never' | {
708
709
  type: 'except';
@@ -1974,6 +1974,7 @@ function mcpTool(options) {
1974
1974
  url,
1975
1975
  name,
1976
1976
  allowed_tools: allowedTools,
1977
+ allowed_resources: allowedResources,
1977
1978
  headers,
1978
1979
  require_approval: requireApproval
1979
1980
  } = options;
@@ -1984,6 +1985,7 @@ function mcpTool(options) {
1984
1985
  url,
1985
1986
  name,
1986
1987
  ...allowedTools && { tool_configuration: { allowed_tools: allowedTools } },
1988
+ ...allowedResources && { allowed_resources: allowedResources },
1987
1989
  headers,
1988
1990
  require_approval: requireApproval
1989
1991
  }