noumen 0.1.0 → 0.3.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 (127) hide show
  1. package/README.md +846 -51
  2. package/dist/a2a/index.d.ts +148 -0
  3. package/dist/a2a/index.js +579 -0
  4. package/dist/a2a/index.js.map +1 -0
  5. package/dist/acp/index.d.ts +129 -0
  6. package/dist/acp/index.js +498 -0
  7. package/dist/acp/index.js.map +1 -0
  8. package/dist/agent-1nFVUP9E.d.ts +1332 -0
  9. package/dist/cache-DsRqxx6v.d.ts +38 -0
  10. package/dist/chunk-3HEYCV26.js +10 -0
  11. package/dist/chunk-3HEYCV26.js.map +1 -0
  12. package/dist/chunk-3SK5GCI6.js +75 -0
  13. package/dist/chunk-3SK5GCI6.js.map +1 -0
  14. package/dist/chunk-42PHHZUA.js +132 -0
  15. package/dist/chunk-42PHHZUA.js.map +1 -0
  16. package/dist/chunk-4HW6LN6D.js +10365 -0
  17. package/dist/chunk-4HW6LN6D.js.map +1 -0
  18. package/dist/chunk-4SQA2UCV.js +26 -0
  19. package/dist/chunk-4SQA2UCV.js.map +1 -0
  20. package/dist/chunk-5GEX6ZSB.js +179 -0
  21. package/dist/chunk-5GEX6ZSB.js.map +1 -0
  22. package/dist/chunk-5JN4SPI7.js +94 -0
  23. package/dist/chunk-5JN4SPI7.js.map +1 -0
  24. package/dist/chunk-AMYIJSAZ.js +57 -0
  25. package/dist/chunk-AMYIJSAZ.js.map +1 -0
  26. package/dist/chunk-BZSFUEWM.js +43 -0
  27. package/dist/chunk-BZSFUEWM.js.map +1 -0
  28. package/dist/chunk-CS6WNDCF.js +171 -0
  29. package/dist/chunk-CS6WNDCF.js.map +1 -0
  30. package/dist/chunk-D43BWEZA.js +346 -0
  31. package/dist/chunk-D43BWEZA.js.map +1 -0
  32. package/dist/chunk-DGUM43GV.js +11 -0
  33. package/dist/chunk-DGUM43GV.js.map +1 -0
  34. package/dist/chunk-EKOGVTBT.js +472 -0
  35. package/dist/chunk-EKOGVTBT.js.map +1 -0
  36. package/dist/chunk-HEQQQGK5.js +131 -0
  37. package/dist/chunk-HEQQQGK5.js.map +1 -0
  38. package/dist/chunk-HL6JCRZJ.js +3112 -0
  39. package/dist/chunk-HL6JCRZJ.js.map +1 -0
  40. package/dist/chunk-JACGEMTF.js +43 -0
  41. package/dist/chunk-JACGEMTF.js.map +1 -0
  42. package/dist/chunk-JX7CLUCV.js +21 -0
  43. package/dist/chunk-JX7CLUCV.js.map +1 -0
  44. package/dist/chunk-KXDB56YW.js +39 -0
  45. package/dist/chunk-KXDB56YW.js.map +1 -0
  46. package/dist/chunk-L3L3FG5T.js +16 -0
  47. package/dist/chunk-L3L3FG5T.js.map +1 -0
  48. package/dist/chunk-OGXNFXFA.js +196 -0
  49. package/dist/chunk-OGXNFXFA.js.map +1 -0
  50. package/dist/chunk-UVSSQBDY.js +192 -0
  51. package/dist/chunk-UVSSQBDY.js.map +1 -0
  52. package/dist/chunk-Y45R3PQL.js +684 -0
  53. package/dist/chunk-Y45R3PQL.js.map +1 -0
  54. package/dist/cli/index.d.ts +1 -0
  55. package/dist/cli/index.js +874 -0
  56. package/dist/cli/index.js.map +1 -0
  57. package/dist/client/index.d.ts +64 -0
  58. package/dist/client/index.js +409 -0
  59. package/dist/client/index.js.map +1 -0
  60. package/dist/client-CRRO2376.js +10 -0
  61. package/dist/client-CRRO2376.js.map +1 -0
  62. package/dist/headless-FFU2DESQ.js +142 -0
  63. package/dist/headless-FFU2DESQ.js.map +1 -0
  64. package/dist/history-snip-64GYP4ZL.js +12 -0
  65. package/dist/history-snip-64GYP4ZL.js.map +1 -0
  66. package/dist/index.d.ts +1459 -422
  67. package/dist/index.js +398 -1757
  68. package/dist/index.js.map +1 -1
  69. package/dist/jsonrpc/index.d.ts +54 -0
  70. package/dist/jsonrpc/index.js +34 -0
  71. package/dist/jsonrpc/index.js.map +1 -0
  72. package/dist/lsp/index.d.ts +36 -0
  73. package/dist/lsp/index.js +16 -0
  74. package/dist/lsp/index.js.map +1 -0
  75. package/dist/lsp-PS3BWIHC.js +8 -0
  76. package/dist/lsp-PS3BWIHC.js.map +1 -0
  77. package/dist/manager-DLXK63XC.js +8 -0
  78. package/dist/manager-DLXK63XC.js.map +1 -0
  79. package/dist/mcp/index.d.ts +111 -0
  80. package/dist/mcp/index.js +105 -0
  81. package/dist/mcp/index.js.map +1 -0
  82. package/dist/mcp-auth-AEI2R4ZC.js +9 -0
  83. package/dist/mcp-auth-AEI2R4ZC.js.map +1 -0
  84. package/dist/provider-factory-KCLIF34X.js +20 -0
  85. package/dist/provider-factory-KCLIF34X.js.map +1 -0
  86. package/dist/providers/anthropic.d.ts +19 -0
  87. package/dist/providers/anthropic.js +35 -0
  88. package/dist/providers/anthropic.js.map +1 -0
  89. package/dist/providers/bedrock.d.ts +39 -0
  90. package/dist/providers/bedrock.js +56 -0
  91. package/dist/providers/bedrock.js.map +1 -0
  92. package/dist/providers/gemini.d.ts +17 -0
  93. package/dist/providers/gemini.js +262 -0
  94. package/dist/providers/gemini.js.map +1 -0
  95. package/dist/providers/ollama.d.ts +13 -0
  96. package/dist/providers/ollama.js +20 -0
  97. package/dist/providers/ollama.js.map +1 -0
  98. package/dist/providers/openai.d.ts +21 -0
  99. package/dist/providers/openai.js +9 -0
  100. package/dist/providers/openai.js.map +1 -0
  101. package/dist/providers/openrouter.d.ts +16 -0
  102. package/dist/providers/openrouter.js +24 -0
  103. package/dist/providers/openrouter.js.map +1 -0
  104. package/dist/providers/vertex.d.ts +42 -0
  105. package/dist/providers/vertex.js +67 -0
  106. package/dist/providers/vertex.js.map +1 -0
  107. package/dist/render-GRN4ZSSW.js +14 -0
  108. package/dist/render-GRN4ZSSW.js.map +1 -0
  109. package/dist/resolve-4JA2BBDA.js +14 -0
  110. package/dist/resolve-4JA2BBDA.js.map +1 -0
  111. package/dist/server/index.d.ts +143 -0
  112. package/dist/server/index.js +695 -0
  113. package/dist/server/index.js.map +1 -0
  114. package/dist/server-CHMxuWKq.d.ts +96 -0
  115. package/dist/spinner-OJNR6NFO.js +8 -0
  116. package/dist/spinner-OJNR6NFO.js.map +1 -0
  117. package/dist/types-2kTLUCnD.d.ts +107 -0
  118. package/dist/types-CD0rUKKT.d.ts +109 -0
  119. package/dist/types-LrU4LRmX.d.ts +575 -0
  120. package/dist/types-NIyVwQ4h.d.ts +109 -0
  121. package/dist/types-QwfylltH.d.ts +71 -0
  122. package/dist/types-RPKUTu1k.d.ts +645 -0
  123. package/dist/uuid-RVN2T26F.js +8 -0
  124. package/dist/uuid-RVN2T26F.js.map +1 -0
  125. package/dist/zod-7YXKWYMC.js +12 -0
  126. package/dist/zod-7YXKWYMC.js.map +1 -0
  127. package/package.json +141 -7
@@ -0,0 +1,20 @@
1
+ import {
2
+ OpenAIProvider
3
+ } from "../chunk-CS6WNDCF.js";
4
+ import "../chunk-L3L3FG5T.js";
5
+ import "../chunk-DGUM43GV.js";
6
+
7
+ // src/providers/ollama.ts
8
+ var OllamaProvider = class extends OpenAIProvider {
9
+ constructor(opts = {}) {
10
+ super({
11
+ baseURL: opts.baseURL ?? "http://localhost:11434/v1",
12
+ model: opts.model ?? "qwen2.5-coder:32b",
13
+ compatMode: true
14
+ });
15
+ }
16
+ };
17
+ export {
18
+ OllamaProvider
19
+ };
20
+ //# sourceMappingURL=ollama.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/providers/ollama.ts"],"sourcesContent":["import { OpenAIProvider } from \"./openai.js\";\n\nexport interface OllamaProviderOptions {\n /** Ollama server URL. Defaults to http://localhost:11434/v1. */\n baseURL?: string;\n model?: string;\n}\n\nexport class OllamaProvider extends OpenAIProvider {\n constructor(opts: OllamaProviderOptions = {}) {\n super({\n baseURL: opts.baseURL ?? \"http://localhost:11434/v1\",\n model: opts.model ?? \"qwen2.5-coder:32b\",\n compatMode: true,\n });\n }\n}\n"],"mappings":";;;;;;;AAQO,IAAM,iBAAN,cAA6B,eAAe;AAAA,EACjD,YAAY,OAA8B,CAAC,GAAG;AAC5C,UAAM;AAAA,MACJ,SAAS,KAAK,WAAW;AAAA,MACzB,OAAO,KAAK,SAAS;AAAA,MACrB,YAAY;AAAA,IACd,CAAC;AAAA,EACH;AACF;","names":[]}
@@ -0,0 +1,21 @@
1
+ import { A as AIProvider, C as ChatParams, a as ChatStreamChunk } from '../types-LrU4LRmX.js';
2
+
3
+ interface OpenAIProviderOptions {
4
+ apiKey?: string;
5
+ baseURL?: string;
6
+ model?: string;
7
+ defaultHeaders?: Record<string, string | undefined>;
8
+ /** When true, omits `stream_options` that some OpenAI-compatible endpoints don't support. */
9
+ compatMode?: boolean;
10
+ }
11
+ declare class OpenAIProvider implements AIProvider {
12
+ private client;
13
+ private defaultModel;
14
+ protected compatMode: boolean;
15
+ constructor(opts: OpenAIProviderOptions);
16
+ chat(params: ChatParams): AsyncIterable<ChatStreamChunk>;
17
+ private static contentPartsToOpenAI;
18
+ private buildMessages;
19
+ }
20
+
21
+ export { OpenAIProvider, type OpenAIProviderOptions };
@@ -0,0 +1,9 @@
1
+ import {
2
+ OpenAIProvider
3
+ } from "../chunk-CS6WNDCF.js";
4
+ import "../chunk-L3L3FG5T.js";
5
+ import "../chunk-DGUM43GV.js";
6
+ export {
7
+ OpenAIProvider
8
+ };
9
+ //# sourceMappingURL=openai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,16 @@
1
+ import { OpenAIProvider } from './openai.js';
2
+ import '../types-LrU4LRmX.js';
3
+
4
+ interface OpenRouterProviderOptions {
5
+ apiKey: string;
6
+ model?: string;
7
+ /** Displayed on openrouter.ai rankings. Sent as the `X-Title` header. */
8
+ appName?: string;
9
+ /** Used for openrouter.ai rankings. Sent as the `HTTP-Referer` header. */
10
+ appUrl?: string;
11
+ }
12
+ declare class OpenRouterProvider extends OpenAIProvider {
13
+ constructor(opts: OpenRouterProviderOptions);
14
+ }
15
+
16
+ export { OpenRouterProvider, type OpenRouterProviderOptions };
@@ -0,0 +1,24 @@
1
+ import {
2
+ OpenAIProvider
3
+ } from "../chunk-CS6WNDCF.js";
4
+ import "../chunk-L3L3FG5T.js";
5
+ import "../chunk-DGUM43GV.js";
6
+
7
+ // src/providers/openrouter.ts
8
+ var OpenRouterProvider = class extends OpenAIProvider {
9
+ constructor(opts) {
10
+ super({
11
+ apiKey: opts.apiKey,
12
+ baseURL: "https://openrouter.ai/api/v1",
13
+ model: opts.model ?? "anthropic/claude-opus-4.6",
14
+ defaultHeaders: {
15
+ ...opts.appName ? { "X-Title": opts.appName } : {},
16
+ ...opts.appUrl ? { "HTTP-Referer": opts.appUrl } : {}
17
+ }
18
+ });
19
+ }
20
+ };
21
+ export {
22
+ OpenRouterProvider
23
+ };
24
+ //# sourceMappingURL=openrouter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/providers/openrouter.ts"],"sourcesContent":["import { OpenAIProvider } from \"./openai.js\";\n\nexport interface OpenRouterProviderOptions {\n apiKey: string;\n model?: string;\n /** Displayed on openrouter.ai rankings. Sent as the `X-Title` header. */\n appName?: string;\n /** Used for openrouter.ai rankings. Sent as the `HTTP-Referer` header. */\n appUrl?: string;\n}\n\nexport class OpenRouterProvider extends OpenAIProvider {\n constructor(opts: OpenRouterProviderOptions) {\n super({\n apiKey: opts.apiKey,\n baseURL: \"https://openrouter.ai/api/v1\",\n model: opts.model ?? \"anthropic/claude-opus-4.6\",\n defaultHeaders: {\n ...(opts.appName ? { \"X-Title\": opts.appName } : {}),\n ...(opts.appUrl ? { \"HTTP-Referer\": opts.appUrl } : {}),\n },\n });\n }\n}\n"],"mappings":";;;;;;;AAWO,IAAM,qBAAN,cAAiC,eAAe;AAAA,EACrD,YAAY,MAAiC;AAC3C,UAAM;AAAA,MACJ,QAAQ,KAAK;AAAA,MACb,SAAS;AAAA,MACT,OAAO,KAAK,SAAS;AAAA,MACrB,gBAAgB;AAAA,QACd,GAAI,KAAK,UAAU,EAAE,WAAW,KAAK,QAAQ,IAAI,CAAC;AAAA,QAClD,GAAI,KAAK,SAAS,EAAE,gBAAgB,KAAK,OAAO,IAAI,CAAC;AAAA,MACvD;AAAA,IACF,CAAC;AAAA,EACH;AACF;","names":[]}
@@ -0,0 +1,42 @@
1
+ import { A as AIProvider, C as ChatParams, a as ChatStreamChunk } from '../types-LrU4LRmX.js';
2
+ import { C as CacheControlConfig } from '../cache-DsRqxx6v.js';
3
+
4
+ interface VertexAnthropicProviderOptions {
5
+ /** GCP project ID. If omitted, inferred from application default credentials. */
6
+ projectId?: string;
7
+ /** GCP region (default: us-east5). */
8
+ region?: string;
9
+ /**
10
+ * A `GoogleAuth` instance or any object with a compatible `getClient()` method.
11
+ * If omitted, the provider creates one using application default credentials.
12
+ * Requires `google-auth-library` as a peer dependency.
13
+ */
14
+ googleAuth?: unknown;
15
+ /** Model ID in Vertex format (default: claude-opus-4.6). */
16
+ model?: string;
17
+ /** Cache control config (same as AnthropicProvider). */
18
+ cacheControl?: CacheControlConfig;
19
+ /** Custom base URL for the Vertex API endpoint. */
20
+ baseURL?: string;
21
+ /**
22
+ * Pre-constructed AnthropicVertex client. When provided, all other
23
+ * connection options are ignored. Useful for testing or advanced setups.
24
+ */
25
+ client?: unknown;
26
+ }
27
+ /**
28
+ * Anthropic provider routed through Google Cloud Vertex AI.
29
+ *
30
+ * Requires `@anthropic-ai/vertex-sdk` as an optional peer dependency.
31
+ * If `googleAuth` is not provided, also requires `google-auth-library`.
32
+ * Install with: `pnpm add @anthropic-ai/vertex-sdk google-auth-library`
33
+ */
34
+ declare class VertexAnthropicProvider implements AIProvider {
35
+ private client;
36
+ private defaultModel;
37
+ private cacheConfig;
38
+ constructor(opts: VertexAnthropicProviderOptions);
39
+ chat(params: ChatParams): AsyncIterable<ChatStreamChunk>;
40
+ }
41
+
42
+ export { VertexAnthropicProvider, type VertexAnthropicProviderOptions };
@@ -0,0 +1,67 @@
1
+ import {
2
+ streamAnthropicChat
3
+ } from "../chunk-EKOGVTBT.js";
4
+ import "../chunk-HEQQQGK5.js";
5
+ import "../chunk-L3L3FG5T.js";
6
+ import {
7
+ __require
8
+ } from "../chunk-DGUM43GV.js";
9
+
10
+ // src/providers/vertex.ts
11
+ var VertexAnthropicProvider = class {
12
+ client;
13
+ defaultModel;
14
+ cacheConfig;
15
+ constructor(opts) {
16
+ if (opts.client) {
17
+ this.client = opts.client;
18
+ } else {
19
+ let AnthropicVertex;
20
+ try {
21
+ AnthropicVertex = __require("@anthropic-ai/vertex-sdk").AnthropicVertex;
22
+ } catch {
23
+ throw new Error(
24
+ "VertexAnthropicProvider requires @anthropic-ai/vertex-sdk. Install it with: pnpm add @anthropic-ai/vertex-sdk"
25
+ );
26
+ }
27
+ let googleAuth = opts.googleAuth;
28
+ if (!googleAuth) {
29
+ let GoogleAuth;
30
+ try {
31
+ GoogleAuth = __require("google-auth-library").GoogleAuth;
32
+ } catch {
33
+ throw new Error(
34
+ "VertexAnthropicProvider requires google-auth-library when googleAuth is not provided. Install it with: pnpm add google-auth-library"
35
+ );
36
+ }
37
+ const authArgs = {
38
+ scopes: ["https://www.googleapis.com/auth/cloud-platform"]
39
+ };
40
+ if (opts.projectId) authArgs.projectId = opts.projectId;
41
+ googleAuth = new GoogleAuth(authArgs);
42
+ }
43
+ const args = {
44
+ region: opts.region ?? "us-east5",
45
+ googleAuth,
46
+ maxRetries: 0
47
+ };
48
+ if (opts.projectId) args.projectId = opts.projectId;
49
+ if (opts.baseURL) args.baseURL = opts.baseURL;
50
+ this.client = new AnthropicVertex(args);
51
+ }
52
+ this.defaultModel = opts.model ?? "claude-opus-4.6";
53
+ this.cacheConfig = opts.cacheControl;
54
+ }
55
+ async *chat(params) {
56
+ yield* streamAnthropicChat(
57
+ this.client,
58
+ params,
59
+ this.defaultModel,
60
+ this.cacheConfig
61
+ );
62
+ }
63
+ };
64
+ export {
65
+ VertexAnthropicProvider
66
+ };
67
+ //# sourceMappingURL=vertex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/providers/vertex.ts"],"sourcesContent":["import type {\n AIProvider,\n ChatParams,\n ChatStreamChunk,\n} from \"./types.js\";\nimport type { CacheControlConfig } from \"./cache.js\";\nimport { streamAnthropicChat, type AnthropicStreamClient } from \"./anthropic-shared.js\";\n\nexport interface VertexAnthropicProviderOptions {\n /** GCP project ID. If omitted, inferred from application default credentials. */\n projectId?: string;\n /** GCP region (default: us-east5). */\n region?: string;\n /**\n * A `GoogleAuth` instance or any object with a compatible `getClient()` method.\n * If omitted, the provider creates one using application default credentials.\n * Requires `google-auth-library` as a peer dependency.\n */\n googleAuth?: unknown;\n /** Model ID in Vertex format (default: claude-opus-4.6). */\n model?: string;\n /** Cache control config (same as AnthropicProvider). */\n cacheControl?: CacheControlConfig;\n /** Custom base URL for the Vertex API endpoint. */\n baseURL?: string;\n /**\n * Pre-constructed AnthropicVertex client. When provided, all other\n * connection options are ignored. Useful for testing or advanced setups.\n */\n client?: unknown;\n}\n\n/**\n * Anthropic provider routed through Google Cloud Vertex AI.\n *\n * Requires `@anthropic-ai/vertex-sdk` as an optional peer dependency.\n * If `googleAuth` is not provided, also requires `google-auth-library`.\n * Install with: `pnpm add @anthropic-ai/vertex-sdk google-auth-library`\n */\nexport class VertexAnthropicProvider implements AIProvider {\n private client: AnthropicStreamClient;\n private defaultModel: string;\n private cacheConfig: CacheControlConfig | undefined;\n\n constructor(opts: VertexAnthropicProviderOptions) {\n if (opts.client) {\n this.client = opts.client as AnthropicStreamClient;\n } else {\n let AnthropicVertex: new (args: Record<string, unknown>) => unknown;\n try {\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n AnthropicVertex = require(\"@anthropic-ai/vertex-sdk\").AnthropicVertex;\n } catch {\n throw new Error(\n \"VertexAnthropicProvider requires @anthropic-ai/vertex-sdk. \" +\n \"Install it with: pnpm add @anthropic-ai/vertex-sdk\",\n );\n }\n\n let googleAuth = opts.googleAuth;\n if (!googleAuth) {\n let GoogleAuth: new (args: Record<string, unknown>) => unknown;\n try {\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n GoogleAuth = require(\"google-auth-library\").GoogleAuth;\n } catch {\n throw new Error(\n \"VertexAnthropicProvider requires google-auth-library when googleAuth is not provided. \" +\n \"Install it with: pnpm add google-auth-library\",\n );\n }\n const authArgs: Record<string, unknown> = {\n scopes: [\"https://www.googleapis.com/auth/cloud-platform\"],\n };\n if (opts.projectId) authArgs.projectId = opts.projectId;\n googleAuth = new GoogleAuth(authArgs);\n }\n\n const args: Record<string, unknown> = {\n region: opts.region ?? \"us-east5\",\n googleAuth,\n maxRetries: 0,\n };\n if (opts.projectId) args.projectId = opts.projectId;\n if (opts.baseURL) args.baseURL = opts.baseURL;\n\n this.client = new AnthropicVertex(args) as unknown as AnthropicStreamClient;\n }\n\n this.defaultModel = opts.model ?? \"claude-opus-4.6\";\n this.cacheConfig = opts.cacheControl;\n }\n\n async *chat(params: ChatParams): AsyncIterable<ChatStreamChunk> {\n yield* streamAnthropicChat(\n this.client,\n params,\n this.defaultModel,\n this.cacheConfig,\n );\n }\n}\n"],"mappings":";;;;;;;;;;AAuCO,IAAM,0BAAN,MAAoD;AAAA,EACjD;AAAA,EACA;AAAA,EACA;AAAA,EAER,YAAY,MAAsC;AAChD,QAAI,KAAK,QAAQ;AACf,WAAK,SAAS,KAAK;AAAA,IACrB,OAAO;AACL,UAAI;AACJ,UAAI;AAEF,0BAAkB,UAAQ,0BAA0B,EAAE;AAAA,MACxD,QAAQ;AACN,cAAM,IAAI;AAAA,UACR;AAAA,QAEF;AAAA,MACF;AAEA,UAAI,aAAa,KAAK;AACtB,UAAI,CAAC,YAAY;AACf,YAAI;AACJ,YAAI;AAEF,uBAAa,UAAQ,qBAAqB,EAAE;AAAA,QAC9C,QAAQ;AACN,gBAAM,IAAI;AAAA,YACR;AAAA,UAEF;AAAA,QACF;AACA,cAAM,WAAoC;AAAA,UACxC,QAAQ,CAAC,gDAAgD;AAAA,QAC3D;AACA,YAAI,KAAK,UAAW,UAAS,YAAY,KAAK;AAC9C,qBAAa,IAAI,WAAW,QAAQ;AAAA,MACtC;AAEA,YAAM,OAAgC;AAAA,QACpC,QAAQ,KAAK,UAAU;AAAA,QACvB;AAAA,QACA,YAAY;AAAA,MACd;AACA,UAAI,KAAK,UAAW,MAAK,YAAY,KAAK;AAC1C,UAAI,KAAK,QAAS,MAAK,UAAU,KAAK;AAEtC,WAAK,SAAS,IAAI,gBAAgB,IAAI;AAAA,IACxC;AAEA,SAAK,eAAe,KAAK,SAAS;AAClC,SAAK,cAAc,KAAK;AAAA,EAC1B;AAAA,EAEA,OAAO,KAAK,QAAoD;AAC9D,WAAO;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,EACF;AACF;","names":[]}
@@ -0,0 +1,14 @@
1
+ import {
2
+ createRenderState,
3
+ isVisibleEvent,
4
+ promptPermission,
5
+ renderEvent
6
+ } from "./chunk-OGXNFXFA.js";
7
+ import "./chunk-DGUM43GV.js";
8
+ export {
9
+ createRenderState,
10
+ isVisibleEvent,
11
+ promptPermission,
12
+ renderEvent
13
+ };
14
+ //# sourceMappingURL=render-GRN4ZSSW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,14 @@
1
+ import {
2
+ DEFAULT_MODELS,
3
+ SUPPORTED_PROVIDERS,
4
+ detectProvider,
5
+ resolveProvider
6
+ } from "./chunk-5JN4SPI7.js";
7
+ import "./chunk-DGUM43GV.js";
8
+ export {
9
+ DEFAULT_MODELS,
10
+ SUPPORTED_PROVIDERS,
11
+ detectProvider,
12
+ resolveProvider
13
+ };
14
+ //# sourceMappingURL=resolve-4JA2BBDA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,143 @@
1
+ import { ServerResponse, IncomingMessage } from 'node:http';
2
+ import { A as Agent } from '../agent-1nFVUP9E.js';
3
+ import { S as StreamEvent } from '../types-LrU4LRmX.js';
4
+ import { P as PermissionResponse } from '../types-CD0rUKKT.js';
5
+ import '../types-RPKUTu1k.js';
6
+ import '../cache-DsRqxx6v.js';
7
+ import '../types-2kTLUCnD.js';
8
+ import '@modelcontextprotocol/sdk/client/index.js';
9
+ import '@modelcontextprotocol/sdk/client/auth.js';
10
+ import '@modelcontextprotocol/sdk/shared/auth.js';
11
+
12
+ interface PromiseResolver<T> {
13
+ resolve: (value: T) => void;
14
+ reject: (err: Error) => void;
15
+ }
16
+ interface BufferedEvent {
17
+ seq: number;
18
+ event: StreamEvent;
19
+ }
20
+ interface SessionState {
21
+ id: string;
22
+ abortController: AbortController;
23
+ pendingPermission: PromiseResolver<PermissionResponse> | null;
24
+ pendingInput: PromiseResolver<string> | null;
25
+ pendingPermissionTimer: ReturnType<typeof setTimeout> | null;
26
+ pendingInputTimer: ReturnType<typeof setTimeout> | null;
27
+ lastActivity: number;
28
+ sseResponse: ServerResponse | null;
29
+ sseKeepaliveTimer: ReturnType<typeof setInterval> | null;
30
+ eventBuffer: BufferedEvent[];
31
+ sequenceNum: number;
32
+ done: boolean;
33
+ cwd?: string;
34
+ }
35
+ interface ConnectionOverrides {
36
+ cwd?: string;
37
+ }
38
+
39
+ type MaybePromise<T> = T | Promise<T>;
40
+ interface ServerOptions {
41
+ port: number;
42
+ host?: string;
43
+ /** Enable WebSocket transport (default true). Requires `ws` peer dependency. */
44
+ ws?: boolean;
45
+ auth?: AuthConfig;
46
+ /** Maximum number of concurrent sessions (default unlimited). */
47
+ maxSessions?: number;
48
+ /** Automatically clean up sessions idle longer than this (ms). No timeout by default. */
49
+ idleTimeoutMs?: number;
50
+ /** Called on every new connection; return overrides for the session. */
51
+ onConnection?: (info: ConnectionInfo) => MaybePromise<ConnectionOverrides>;
52
+ onError?: (err: Error) => void;
53
+ /** Enable CORS for browser clients (default true). */
54
+ cors?: boolean;
55
+ /** Timeout for pending permission/input responses before rejecting (ms). Default 120000. */
56
+ pendingTimeoutMs?: number;
57
+ }
58
+ /**
59
+ * Options for `createRequestHandler()` — same as `ServerOptions` but without
60
+ * `port` / `host` / `ws` since the caller owns the HTTP server.
61
+ */
62
+ interface RequestHandlerOptions {
63
+ auth?: AuthConfig;
64
+ maxSessions?: number;
65
+ idleTimeoutMs?: number;
66
+ onConnection?: (info: ConnectionInfo) => MaybePromise<ConnectionOverrides>;
67
+ onError?: (err: Error) => void;
68
+ cors?: boolean;
69
+ pendingTimeoutMs?: number;
70
+ }
71
+ type AuthConfig = {
72
+ type: "bearer";
73
+ token: string;
74
+ } | {
75
+ type: "custom";
76
+ verify: (req: IncomingMessage) => MaybePromise<AuthResult | null>;
77
+ };
78
+ interface AuthResult {
79
+ [key: string]: unknown;
80
+ }
81
+ interface ConnectionInfo {
82
+ auth: AuthResult;
83
+ remoteAddress?: string;
84
+ }
85
+
86
+ declare class NoumenServer {
87
+ private code;
88
+ private options;
89
+ private httpServer;
90
+ private wss;
91
+ private sessions;
92
+ private idleTimer;
93
+ constructor(code: Agent, options: ServerOptions);
94
+ start(): Promise<void>;
95
+ stop(): Promise<void>;
96
+ getActiveSessions(): Map<string, {
97
+ id: string;
98
+ lastActivity: number;
99
+ done: boolean;
100
+ }>;
101
+ private initWebSocket;
102
+ /**
103
+ * Handle an HTTP request. Used internally by `start()` and exposed for
104
+ * `createRequestHandler()` so the same logic can be mounted on an
105
+ * external Express / Fastify / Hono server.
106
+ */
107
+ handleRequest(req: IncomingMessage, res: ServerResponse): Promise<void>;
108
+ private idleReaperStarted;
109
+ private ensureIdleReaper;
110
+ private handleHttp;
111
+ private authenticate;
112
+ private handleCreateSession;
113
+ private handleListSessions;
114
+ private handleSseStream;
115
+ private handlePermissionResponse;
116
+ private handleInputResponse;
117
+ private handleSendMessage;
118
+ private handleDeleteSession;
119
+ private handleWsConnection;
120
+ private makeThread;
121
+ private runAgentSse;
122
+ private runAgentWs;
123
+ private startSseKeepalive;
124
+ private resolveConnectionOverrides;
125
+ }
126
+ declare function createServer(code: Agent, options: ServerOptions): NoumenServer;
127
+ /**
128
+ * Create a `(req, res)` handler that can be mounted on any Node HTTP
129
+ * framework (Express, Fastify, Hono, bare `http.createServer`, etc.).
130
+ *
131
+ * ```ts
132
+ * import express from "express";
133
+ * import { createRequestHandler } from "noumen/server";
134
+ *
135
+ * const app = express();
136
+ * app.use("/agent", createRequestHandler(code, { auth: { type: "bearer", token: "..." } }));
137
+ * ```
138
+ *
139
+ * WebSocket is not supported in middleware mode — use `createServer()` for WS.
140
+ */
141
+ declare function createRequestHandler(code: Agent, options?: RequestHandlerOptions): (req: IncomingMessage, res: ServerResponse) => void;
142
+
143
+ export { type AuthConfig, type AuthResult, type BufferedEvent, type ConnectionInfo, type ConnectionOverrides, NoumenServer, type PromiseResolver, type RequestHandlerOptions, type ServerOptions, type SessionState, createRequestHandler, createServer };