@flowajs/chat-service 0.0.1

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 (111) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +210 -0
  3. package/dist/artifact.d.ts +87 -0
  4. package/dist/artifact.d.ts.map +1 -0
  5. package/dist/artifact.js +99 -0
  6. package/dist/artifact.js.map +1 -0
  7. package/dist/audit.d.ts +28 -0
  8. package/dist/audit.d.ts.map +1 -0
  9. package/dist/audit.js +73 -0
  10. package/dist/audit.js.map +1 -0
  11. package/dist/auth/jwt.d.ts +18 -0
  12. package/dist/auth/jwt.d.ts.map +1 -0
  13. package/dist/auth/jwt.js +23 -0
  14. package/dist/auth/jwt.js.map +1 -0
  15. package/dist/auth/oidc.d.ts +30 -0
  16. package/dist/auth/oidc.d.ts.map +1 -0
  17. package/dist/auth/oidc.js +58 -0
  18. package/dist/auth/oidc.js.map +1 -0
  19. package/dist/chat.d.ts +161 -0
  20. package/dist/chat.d.ts.map +1 -0
  21. package/dist/chat.js +636 -0
  22. package/dist/chat.js.map +1 -0
  23. package/dist/cli.d.ts +6 -0
  24. package/dist/cli.d.ts.map +1 -0
  25. package/dist/cli.js +47 -0
  26. package/dist/cli.js.map +1 -0
  27. package/dist/config.d.ts +18 -0
  28. package/dist/config.d.ts.map +1 -0
  29. package/dist/config.js +80 -0
  30. package/dist/config.js.map +1 -0
  31. package/dist/index.d.ts +19 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +19 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/instrumentation.d.ts +31 -0
  36. package/dist/instrumentation.d.ts.map +1 -0
  37. package/dist/instrumentation.js +151 -0
  38. package/dist/instrumentation.js.map +1 -0
  39. package/dist/llm/anthropic.d.ts +22 -0
  40. package/dist/llm/anthropic.d.ts.map +1 -0
  41. package/dist/llm/anthropic.js +40 -0
  42. package/dist/llm/anthropic.js.map +1 -0
  43. package/dist/llm/bedrock.d.ts +34 -0
  44. package/dist/llm/bedrock.d.ts.map +1 -0
  45. package/dist/llm/bedrock.js +54 -0
  46. package/dist/llm/bedrock.js.map +1 -0
  47. package/dist/llm/factory.d.ts +3 -0
  48. package/dist/llm/factory.d.ts.map +1 -0
  49. package/dist/llm/factory.js +59 -0
  50. package/dist/llm/factory.js.map +1 -0
  51. package/dist/llm/google-gla.d.ts +22 -0
  52. package/dist/llm/google-gla.d.ts.map +1 -0
  53. package/dist/llm/google-gla.js +29 -0
  54. package/dist/llm/google-gla.js.map +1 -0
  55. package/dist/llm/google-vertex.d.ts +21 -0
  56. package/dist/llm/google-vertex.d.ts.map +1 -0
  57. package/dist/llm/google-vertex.js +28 -0
  58. package/dist/llm/google-vertex.js.map +1 -0
  59. package/dist/llm/interface.d.ts +45 -0
  60. package/dist/llm/interface.d.ts.map +1 -0
  61. package/dist/llm/interface.js +2 -0
  62. package/dist/llm/interface.js.map +1 -0
  63. package/dist/llm/openai.d.ts +19 -0
  64. package/dist/llm/openai.d.ts.map +1 -0
  65. package/dist/llm/openai.js +25 -0
  66. package/dist/llm/openai.js.map +1 -0
  67. package/dist/prompts.d.ts +7 -0
  68. package/dist/prompts.d.ts.map +1 -0
  69. package/dist/prompts.js +17 -0
  70. package/dist/prompts.js.map +1 -0
  71. package/dist/server.d.ts +39 -0
  72. package/dist/server.d.ts.map +1 -0
  73. package/dist/server.js +106 -0
  74. package/dist/server.js.map +1 -0
  75. package/dist/session.d.ts +68 -0
  76. package/dist/session.d.ts.map +1 -0
  77. package/dist/session.js +245 -0
  78. package/dist/session.js.map +1 -0
  79. package/dist/storage/factory.d.ts +28 -0
  80. package/dist/storage/factory.d.ts.map +1 -0
  81. package/dist/storage/factory.js +33 -0
  82. package/dist/storage/factory.js.map +1 -0
  83. package/dist/storage/fs.d.ts +14 -0
  84. package/dist/storage/fs.d.ts.map +1 -0
  85. package/dist/storage/fs.js +116 -0
  86. package/dist/storage/fs.js.map +1 -0
  87. package/dist/storage/gcs.d.ts +27 -0
  88. package/dist/storage/gcs.d.ts.map +1 -0
  89. package/dist/storage/gcs.js +81 -0
  90. package/dist/storage/gcs.js.map +1 -0
  91. package/dist/storage/interface.d.ts +33 -0
  92. package/dist/storage/interface.d.ts.map +1 -0
  93. package/dist/storage/interface.js +12 -0
  94. package/dist/storage/interface.js.map +1 -0
  95. package/dist/storage/s3.d.ts +29 -0
  96. package/dist/storage/s3.d.ts.map +1 -0
  97. package/dist/storage/s3.js +109 -0
  98. package/dist/storage/s3.js.map +1 -0
  99. package/dist/storage-keys.d.ts +33 -0
  100. package/dist/storage-keys.d.ts.map +1 -0
  101. package/dist/storage-keys.js +76 -0
  102. package/dist/storage-keys.js.map +1 -0
  103. package/dist/telemetry.d.ts +29 -0
  104. package/dist/telemetry.d.ts.map +1 -0
  105. package/dist/telemetry.js +116 -0
  106. package/dist/telemetry.js.map +1 -0
  107. package/dist/yaml.d.ts +42 -0
  108. package/dist/yaml.d.ts.map +1 -0
  109. package/dist/yaml.js +121 -0
  110. package/dist/yaml.js.map +1 -0
  111. package/package.json +124 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../src/chat.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ /** Default env-driven entry. Production deployments needing custom
2
+ * cred-mint flows or per-deployment auth wiring should write their own
3
+ * thin entry that calls `createApp` from `./server` directly. See
4
+ * README.md "Production deployment". */
5
+ export {};
6
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;yCAGyC"}
package/dist/cli.js ADDED
@@ -0,0 +1,47 @@
1
+ /** Default env-driven entry. Production deployments needing custom
2
+ * cred-mint flows or per-deployment auth wiring should write their own
3
+ * thin entry that calls `createApp` from `./server` directly. See
4
+ * README.md "Production deployment". */
5
+ import { serve } from "@hono/node-server";
6
+ import { Hono } from "hono";
7
+ import { loadConfig } from "./config.js";
8
+ import { createApp } from "./server.js";
9
+ import { createStorage } from "./storage/factory.js";
10
+ import { createProvider } from "./llm/factory.js";
11
+ import { createOidcMiddleware } from "./auth/oidc.js";
12
+ async function main() {
13
+ const config = loadConfig();
14
+ const storage = await createStorage(config.storage);
15
+ const provider = await createProvider(config.llmModel);
16
+ const chatApp = createApp({
17
+ storage,
18
+ provider,
19
+ jwtSecret: config.jwtSecret,
20
+ promptDir: config.promptDir,
21
+ jwtTtlSeconds: config.jwtTtlSeconds,
22
+ corsOrigins: config.corsOrigins,
23
+ });
24
+ // Apply the OIDC middleware on POST /sessions when configured. The
25
+ // route is unauthenticated otherwise (suitable for the demo / local
26
+ // development; production deployments should always set OIDC_*).
27
+ let app;
28
+ if (config.oidc) {
29
+ app = new Hono();
30
+ app.use("/sessions", createOidcMiddleware({
31
+ ...config.oidc,
32
+ devMode: process.env.NODE_ENV === "development",
33
+ }));
34
+ app.route("/", chatApp);
35
+ }
36
+ else {
37
+ app = chatApp;
38
+ }
39
+ serve({ fetch: app.fetch, port: config.port }, (info) => {
40
+ console.log(`chat-service listening on port ${info.port}`);
41
+ });
42
+ }
43
+ main().catch((error) => {
44
+ console.error(error);
45
+ process.exit(1);
46
+ });
47
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;yCAGyC;AAEzC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAEvD,MAAM,OAAO,GAAG,SAAS,CAAC;QACxB,OAAO;QACP,QAAQ;QACR,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,WAAW,EAAE,MAAM,CAAC,WAAW;KAChC,CAAC,CAAC;IAEH,mEAAmE;IACnE,oEAAoE;IACpE,iEAAiE;IACjE,IAAI,GAAS,CAAC;IACd,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACjB,GAAG,CAAC,GAAG,CACL,WAAW,EACX,oBAAoB,CAAC;YACnB,GAAG,MAAM,CAAC,IAAI;YACd,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa;SAChD,CAAC,CACH,CAAC;QACF,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,GAAG,GAAG,OAAO,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE;QACtD,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,18 @@
1
+ /** Env-var schema for the default `index.ts` entry. */
2
+ import type { StorageConfig } from "./storage/factory.js";
3
+ export interface ServiceConfig {
4
+ port: number;
5
+ llmModel: string;
6
+ storage: StorageConfig;
7
+ jwtSecret: string;
8
+ jwtTtlSeconds: number;
9
+ promptDir: string;
10
+ corsOrigins: string[];
11
+ oidc: {
12
+ jwksUrl: string;
13
+ issuer: string;
14
+ audience: string;
15
+ } | null;
16
+ }
17
+ export declare function loadConfig(): ServiceConfig;
18
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAGvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAQ1D,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,aAAa,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,GAAG,IAAI,CAAC;CACV;AAiED,wBAAgB,UAAU,IAAI,aAAa,CAkB1C"}
package/dist/config.js ADDED
@@ -0,0 +1,80 @@
1
+ /** Env-var schema for the default `index.ts` entry. */
2
+ import { z } from "zod";
3
+ const RequiredEnv = z.object({
4
+ LLM_MODEL: z.string().min(1),
5
+ STORAGE_BACKEND: z.enum(["fs", "s3", "gcs"]),
6
+ CHAT_JWT_SECRET: z.string().min(1),
7
+ });
8
+ function envInt(name, fallback) {
9
+ const v = process.env[name];
10
+ return v ? parseInt(v, 10) : fallback;
11
+ }
12
+ function buildStorageConfig() {
13
+ const backend = process.env.STORAGE_BACKEND;
14
+ const prefix = process.env.STORAGE_PREFIX;
15
+ if (backend === "fs") {
16
+ const root = process.env.STORAGE_FS_ROOT;
17
+ if (!root) {
18
+ throw new Error("STORAGE_BACKEND=fs requires STORAGE_FS_ROOT to be set.");
19
+ }
20
+ return {
21
+ backend: "fs",
22
+ root,
23
+ ...(prefix !== undefined ? { prefix } : {}),
24
+ };
25
+ }
26
+ if (backend === "s3") {
27
+ const bucket = process.env.STORAGE_S3_BUCKET;
28
+ if (!bucket) {
29
+ throw new Error("STORAGE_BACKEND=s3 requires STORAGE_S3_BUCKET to be set.");
30
+ }
31
+ return {
32
+ backend: "s3",
33
+ bucket,
34
+ ...(prefix !== undefined ? { prefix } : {}),
35
+ };
36
+ }
37
+ if (backend === "gcs") {
38
+ const bucket = process.env.STORAGE_GCS_BUCKET;
39
+ if (!bucket) {
40
+ throw new Error("STORAGE_BACKEND=gcs requires STORAGE_GCS_BUCKET to be set.");
41
+ }
42
+ return {
43
+ backend: "gcs",
44
+ bucket,
45
+ ...(prefix !== undefined ? { prefix } : {}),
46
+ };
47
+ }
48
+ throw new Error(`STORAGE_BACKEND must be one of "fs", "s3", "gcs"; got: ${JSON.stringify(backend)}`);
49
+ }
50
+ function buildOidcConfig() {
51
+ const jwksUrl = process.env.OIDC_JWKS_URL;
52
+ const issuer = process.env.OIDC_ISSUER;
53
+ const audience = process.env.OIDC_AUDIENCE;
54
+ if (!jwksUrl && !issuer && !audience)
55
+ return null;
56
+ if (!jwksUrl || !issuer || !audience) {
57
+ throw new Error("OIDC config is partial. Set all of OIDC_JWKS_URL, OIDC_ISSUER, OIDC_AUDIENCE, or none.");
58
+ }
59
+ return { jwksUrl, issuer, audience };
60
+ }
61
+ export function loadConfig() {
62
+ const required = RequiredEnv.safeParse(process.env);
63
+ if (!required.success) {
64
+ const names = required.error.issues.map((i) => i.path.join(".")).join(", ");
65
+ throw new Error(`Missing or empty required env vars: ${names}`);
66
+ }
67
+ return {
68
+ port: envInt("PORT", 8000),
69
+ llmModel: required.data.LLM_MODEL,
70
+ storage: buildStorageConfig(),
71
+ jwtSecret: required.data.CHAT_JWT_SECRET,
72
+ jwtTtlSeconds: envInt("CHAT_JWT_TTL_SECONDS", 14400),
73
+ promptDir: process.env.CHAT_PROMPT_DIR ?? "./prompts",
74
+ corsOrigins: (process.env.CHAT_CORS_ORIGINS ?? "*")
75
+ .split(",")
76
+ .map((o) => o.trim()),
77
+ oidc: buildOidcConfig(),
78
+ };
79
+ }
80
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Public API surface for `@flowajs/chat-service`.
3
+ *
4
+ * Deployments compose their full artifact schema by calling
5
+ * `ArtifactSchema.extend({ ... })` with their additional fields, then
6
+ * pass the result to `createApp({ schema })` (from
7
+ * `@flowajs/chat-service/server`). `.extend(...)` preserves the shape's
8
+ * TypeScript type so the resulting schema stays assignable to
9
+ * `z.ZodType<Artifact>`; spreading `...artifactFields` into a fresh
10
+ * `z.object({...})` also works at runtime but widens the inferred shape
11
+ * to `Record<string, any>`, which fails the static type at the
12
+ * `createApp` call site. `artifactFields` is exported for reference /
13
+ * runtime inspection.
14
+ *
15
+ * The CLI / env-driven entry that boots the service from environment
16
+ * variables lives at `dist/cli.js` (run via `node dist/cli.js`).
17
+ */
18
+ export { artifactFields, ArtifactSchema, schemaForPrompt, type Artifact, } from "./artifact.js";
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EACL,cAAc,EACd,cAAc,EACd,eAAe,EACf,KAAK,QAAQ,GACd,MAAM,eAAe,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Public API surface for `@flowajs/chat-service`.
3
+ *
4
+ * Deployments compose their full artifact schema by calling
5
+ * `ArtifactSchema.extend({ ... })` with their additional fields, then
6
+ * pass the result to `createApp({ schema })` (from
7
+ * `@flowajs/chat-service/server`). `.extend(...)` preserves the shape's
8
+ * TypeScript type so the resulting schema stays assignable to
9
+ * `z.ZodType<Artifact>`; spreading `...artifactFields` into a fresh
10
+ * `z.object({...})` also works at runtime but widens the inferred shape
11
+ * to `Record<string, any>`, which fails the static type at the
12
+ * `createApp` call site. `artifactFields` is exported for reference /
13
+ * runtime inspection.
14
+ *
15
+ * The CLI / env-driven entry that boots the service from environment
16
+ * variables lives at `dist/cli.js` (run via `node dist/cli.js`).
17
+ */
18
+ export { artifactFields, ArtifactSchema, schemaForPrompt, } from "./artifact.js";
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EACL,cAAc,EACd,cAAc,EACd,eAAe,GAEhB,MAAM,eAAe,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * OpenTelemetry SDK bootstrap with SigV4 OTLP transport.
3
+ *
4
+ * Loaded via Node's --import flag before any app module. This is the
5
+ * recommended OTel pattern (see https://opentelemetry.io/docs/zero-code/js/):
6
+ * instrumentations must patch http / @aws-sdk/* before those modules are
7
+ * imported, so this file must run first — independent of index.ts's
8
+ * ESM static-import order.
9
+ *
10
+ * Credentials are wired lazily via initCredentials() after the entry
11
+ * script has constructed its credential provider — useful when the
12
+ * provider depends on env vars or a custom cred chain.
13
+ *
14
+ * The SDK only starts when OTEL_ENABLED=true; otherwise this module
15
+ * loads but the SDK never boots, so metrics.getMeter() returns a no-op
16
+ * meter throughout. The demo leaves OTEL_ENABLED unset; production sets
17
+ * it.
18
+ */
19
+ interface AwsCredentials {
20
+ accessKeyId: string;
21
+ secretAccessKey: string;
22
+ sessionToken?: string;
23
+ expiration?: Date;
24
+ }
25
+ type CredentialFn = () => Promise<AwsCredentials>;
26
+ /** Wire the credential provider. Call once from the entry script after
27
+ * constructing the desired credential provider. */
28
+ export declare function initCredentials(fn: CredentialFn): void;
29
+ export declare function shutdownTelemetry(): Promise<void>;
30
+ export {};
31
+ //# sourceMappingURL=instrumentation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../src/instrumentation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAwBH,UAAU,cAAc;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,IAAI,CAAC;CACnB;AAED,KAAK,YAAY,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;AAMlD;oDACoD;AACpD,wBAAgB,eAAe,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAEtD;AAuJD,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAIvD"}
@@ -0,0 +1,151 @@
1
+ /**
2
+ * OpenTelemetry SDK bootstrap with SigV4 OTLP transport.
3
+ *
4
+ * Loaded via Node's --import flag before any app module. This is the
5
+ * recommended OTel pattern (see https://opentelemetry.io/docs/zero-code/js/):
6
+ * instrumentations must patch http / @aws-sdk/* before those modules are
7
+ * imported, so this file must run first — independent of index.ts's
8
+ * ESM static-import order.
9
+ *
10
+ * Credentials are wired lazily via initCredentials() after the entry
11
+ * script has constructed its credential provider — useful when the
12
+ * provider depends on env vars or a custom cred chain.
13
+ *
14
+ * The SDK only starts when OTEL_ENABLED=true; otherwise this module
15
+ * loads but the SDK never boots, so metrics.getMeter() returns a no-op
16
+ * meter throughout. The demo leaves OTEL_ENABLED unset; production sets
17
+ * it.
18
+ */
19
+ import { NodeSDK } from "@opentelemetry/sdk-node";
20
+ import { envDetector, hostDetector } from "@opentelemetry/resources";
21
+ import { ConsoleSpanExporter, } from "@opentelemetry/sdk-trace-base";
22
+ import { ConsoleMetricExporter, PeriodicExportingMetricReader, } from "@opentelemetry/sdk-metrics";
23
+ import { ExportResultCode } from "@opentelemetry/core";
24
+ import { HttpInstrumentation } from "@opentelemetry/instrumentation-http";
25
+ import { AwsInstrumentation } from "@opentelemetry/instrumentation-aws-sdk";
26
+ import { JsonTraceSerializer, JsonMetricsSerializer, } from "@opentelemetry/otlp-transformer";
27
+ import { AwsV4Signer } from "aws4fetch";
28
+ let credentialFn = null;
29
+ let cachedCreds = null;
30
+ let credentialFailureLogged = false;
31
+ /** Wire the credential provider. Call once from the entry script after
32
+ * constructing the desired credential provider. */
33
+ export function initCredentials(fn) {
34
+ credentialFn = fn;
35
+ }
36
+ async function getCredentials() {
37
+ if (!credentialFn)
38
+ throw new Error("Credential provider not initialized");
39
+ if (cachedCreds?.expiration &&
40
+ cachedCreds.expiration.getTime() > Date.now() + 60_000) {
41
+ return cachedCreds;
42
+ }
43
+ const creds = await credentialFn();
44
+ cachedCreds = creds;
45
+ return creds;
46
+ }
47
+ const region = process.env.AWS_REGION ?? "us-east-1";
48
+ const XRAY_ENDPOINT = `https://xray.${region}.amazonaws.com/v1/traces`;
49
+ const MONITORING_ENDPOINT = `https://monitoring.${region}.amazonaws.com/v1/metrics`;
50
+ async function sigv4Fetch(url, service, body) {
51
+ const creds = await getCredentials();
52
+ const signer = new AwsV4Signer({
53
+ url,
54
+ method: "POST",
55
+ headers: new Headers({ "Content-Type": "application/json" }),
56
+ body: body,
57
+ service,
58
+ region,
59
+ accessKeyId: creds.accessKeyId,
60
+ secretAccessKey: creds.secretAccessKey,
61
+ ...(creds.sessionToken !== undefined
62
+ ? { sessionToken: creds.sessionToken }
63
+ : {}),
64
+ });
65
+ const signed = await signer.sign();
66
+ return fetch(signed.url, {
67
+ method: signed.method,
68
+ headers: signed.headers,
69
+ body: signed.body,
70
+ });
71
+ }
72
+ function handleExportError(label, error, resultCallback) {
73
+ if (!credentialFailureLogged) {
74
+ console.warn(`[otel] ${label} — telemetry export disabled:`, error instanceof Error ? error.message : error);
75
+ credentialFailureLogged = true;
76
+ }
77
+ resultCallback({ code: ExportResultCode.FAILED });
78
+ }
79
+ class SigV4TraceExporter {
80
+ export(spans, resultCallback) {
81
+ const body = JsonTraceSerializer.serializeRequest(spans);
82
+ if (!body) {
83
+ resultCallback({ code: ExportResultCode.FAILED });
84
+ return;
85
+ }
86
+ sigv4Fetch(XRAY_ENDPOINT, "xray", body)
87
+ .then(async (response) => {
88
+ if (!response.ok) {
89
+ const text = await response.text().catch(() => "");
90
+ console.error(`[otel] X-Ray export failed: ${response.status} ${text}`);
91
+ resultCallback({ code: ExportResultCode.FAILED });
92
+ }
93
+ else {
94
+ resultCallback({ code: ExportResultCode.SUCCESS });
95
+ }
96
+ })
97
+ .catch((error) => handleExportError("Trace export", error, resultCallback));
98
+ }
99
+ async shutdown() { }
100
+ }
101
+ class SigV4MetricExporter {
102
+ export(resourceMetrics, resultCallback) {
103
+ const body = JsonMetricsSerializer.serializeRequest(resourceMetrics);
104
+ if (!body) {
105
+ resultCallback({ code: ExportResultCode.FAILED });
106
+ return;
107
+ }
108
+ sigv4Fetch(MONITORING_ENDPOINT, "monitoring", body)
109
+ .then(async (response) => {
110
+ if (!response.ok) {
111
+ const text = await response.text().catch(() => "");
112
+ console.error(`[otel] CloudWatch metrics export failed: ${response.status} ${text}`);
113
+ resultCallback({ code: ExportResultCode.FAILED });
114
+ }
115
+ else {
116
+ resultCallback({ code: ExportResultCode.SUCCESS });
117
+ }
118
+ })
119
+ .catch((error) => handleExportError("Metrics export", error, resultCallback));
120
+ }
121
+ async forceFlush() { }
122
+ async shutdown() { }
123
+ }
124
+ const useConsole = process.env.OTEL_TRACES_EXPORTER === "console";
125
+ const traceExporter = useConsole
126
+ ? new ConsoleSpanExporter()
127
+ : new SigV4TraceExporter();
128
+ const metricReader = new PeriodicExportingMetricReader({
129
+ exporter: useConsole
130
+ ? new ConsoleMetricExporter()
131
+ : new SigV4MetricExporter(),
132
+ });
133
+ const sdk = new NodeSDK({
134
+ // envDetector reads OTEL_SERVICE_NAME and OTEL_RESOURCE_ATTRIBUTES.
135
+ // hostDetector adds host.name/host.arch.
136
+ // processDetector is excluded — it adds process.command_args (array)
137
+ // which CloudWatch's OTLP metrics endpoint rejects.
138
+ resourceDetectors: [envDetector, hostDetector],
139
+ traceExporter,
140
+ metricReader,
141
+ instrumentations: [new HttpInstrumentation(), new AwsInstrumentation()],
142
+ });
143
+ if (process.env.OTEL_ENABLED === "true") {
144
+ sdk.start();
145
+ }
146
+ export async function shutdownTelemetry() {
147
+ if (process.env.OTEL_ENABLED === "true") {
148
+ await sdk.shutdown();
149
+ }
150
+ }
151
+ //# sourceMappingURL=instrumentation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../src/instrumentation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { createAnthropic } from "@ai-sdk/anthropic";
2
+ import type { LlmProvider } from "./interface.js";
3
+ export interface AnthropicProviderOptions {
4
+ modelId: string;
5
+ /** Optional pre-built provider client. */
6
+ client?: ReturnType<typeof createAnthropic>;
7
+ }
8
+ /**
9
+ * Anthropic provider with adaptive extended thinking.
10
+ *
11
+ * `providerOptions.anthropic.thinking = { type: "adaptive" }` enables
12
+ * extended thinking for newer models (Sonnet 4.6 / Opus 4.6+) where the
13
+ * model auto-budgets reasoning tokens.
14
+ *
15
+ * `prepareStep` injects `cacheControl: { type: "ephemeral" }` on the last
16
+ * content part of the last message — Anthropic's prompt-caching marker.
17
+ * Same intent as Bedrock's `cachePoint`: cache the prefix (system prompt
18
+ * + history + prior tool results) so subsequent steps and turns read it
19
+ * at lower cost.
20
+ */
21
+ export declare function createAnthropicProvider(options: AnthropicProviderOptions): LlmProvider;
22
+ //# sourceMappingURL=anthropic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/llm/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;CAC7C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,wBAAwB,GAChC,WAAW,CA0Bb"}
@@ -0,0 +1,40 @@
1
+ import { createAnthropic } from "@ai-sdk/anthropic";
2
+ /**
3
+ * Anthropic provider with adaptive extended thinking.
4
+ *
5
+ * `providerOptions.anthropic.thinking = { type: "adaptive" }` enables
6
+ * extended thinking for newer models (Sonnet 4.6 / Opus 4.6+) where the
7
+ * model auto-budgets reasoning tokens.
8
+ *
9
+ * `prepareStep` injects `cacheControl: { type: "ephemeral" }` on the last
10
+ * content part of the last message — Anthropic's prompt-caching marker.
11
+ * Same intent as Bedrock's `cachePoint`: cache the prefix (system prompt
12
+ * + history + prior tool results) so subsequent steps and turns read it
13
+ * at lower cost.
14
+ */
15
+ export function createAnthropicProvider(options) {
16
+ const client = options.client ?? createAnthropic();
17
+ return {
18
+ name: "anthropic",
19
+ model: client(options.modelId),
20
+ providerOptions: {
21
+ anthropic: {
22
+ thinking: { type: "adaptive" },
23
+ },
24
+ },
25
+ prepareStep: ({ messages }) => ({
26
+ messages: messages.map((msg, i) => i === messages.length - 1
27
+ ? {
28
+ ...msg,
29
+ providerOptions: {
30
+ ...(msg.providerOptions ?? {}),
31
+ anthropic: {
32
+ cacheControl: { type: "ephemeral" },
33
+ },
34
+ },
35
+ }
36
+ : msg),
37
+ }),
38
+ };
39
+ }
40
+ //# sourceMappingURL=anthropic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/llm/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAUpD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,uBAAuB,CACrC,OAAiC;IAEjC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,eAAe,EAAE,CAAC;IACnD,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;QAC9B,eAAe,EAAE;YACf,SAAS,EAAE;gBACT,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;aAC/B;SACF;QACD,WAAW,EAAE,CAAC,EAAE,QAAQ,EAAgC,EAAE,EAAE,CAAC,CAAC;YAC5D,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAChC,CAAC,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC;gBACvB,CAAC,CAAC;oBACE,GAAG,GAAG;oBACN,eAAe,EAAE;wBACf,GAAG,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC;wBAC9B,SAAS,EAAE;4BACT,YAAY,EAAE,EAAE,IAAI,EAAE,WAAoB,EAAE;yBAC7C;qBACF;iBACF;gBACH,CAAC,CAAC,GAAG,CACR;SACF,CAAC;KACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { createAmazonBedrock } from "@ai-sdk/amazon-bedrock";
2
+ import type { LlmProvider } from "./interface.js";
3
+ export interface BedrockProviderOptions {
4
+ modelId: string;
5
+ /**
6
+ * Optional Bedrock application inference profile ARN. When set, the
7
+ * profile ARN is used as the actual API target — Bedrock routes
8
+ * through the profile for cost attribution. `modelId` remains the
9
+ * informative foundation-model identifier carried into telemetry and
10
+ * logs.
11
+ *
12
+ * The Vercel AI SDK's `bedrock(modelId)` factory accepts only one
13
+ * identifier, so when a profile is present we hand the ARN where the
14
+ * foundation modelId would have gone; chat-service keeps `modelId`
15
+ * separately for the human-readable role.
16
+ */
17
+ inferenceProfile?: string;
18
+ /** Optional pre-built provider client. */
19
+ client?: ReturnType<typeof createAmazonBedrock>;
20
+ }
21
+ /**
22
+ * Amazon Bedrock provider. `providerOptions.bedrock` carries Bedrock's
23
+ * `additionalModelRequestFields` for adaptive thinking + medium-effort
24
+ * output config.
25
+ *
26
+ * `prepareStep` injects a `cachePoint` on the last message so everything
27
+ * before it (system prompt + conversation history + prior tool results)
28
+ * is cached as a prefix. On the next step or turn, the unchanged prefix
29
+ * is read from cache at ~90% lower cost. The same caching pattern is
30
+ * implemented in `./anthropic.ts` with the equivalent `cacheControl`
31
+ * marker.
32
+ */
33
+ export declare function createBedrockProvider(options: BedrockProviderOptions): Promise<LlmProvider>;
34
+ //# sourceMappingURL=bedrock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bedrock.d.ts","sourceRoot":"","sources":["../../src/llm/bedrock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;;;;;;OAWG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,0CAA0C;IAC1C,MAAM,CAAC,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;CACjD;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,WAAW,CAAC,CA0CtB"}
@@ -0,0 +1,54 @@
1
+ import { createAmazonBedrock } from "@ai-sdk/amazon-bedrock";
2
+ /**
3
+ * Amazon Bedrock provider. `providerOptions.bedrock` carries Bedrock's
4
+ * `additionalModelRequestFields` for adaptive thinking + medium-effort
5
+ * output config.
6
+ *
7
+ * `prepareStep` injects a `cachePoint` on the last message so everything
8
+ * before it (system prompt + conversation history + prior tool results)
9
+ * is cached as a prefix. On the next step or turn, the unchanged prefix
10
+ * is read from cache at ~90% lower cost. The same caching pattern is
11
+ * implemented in `./anthropic.ts` with the equivalent `cacheControl`
12
+ * marker.
13
+ */
14
+ export async function createBedrockProvider(options) {
15
+ let client = options.client;
16
+ if (!client) {
17
+ // The Vercel AI SDK's `@ai-sdk/amazon-bedrock` doesn't use the AWS
18
+ // SDK's standard credential chain by default — it expects explicit
19
+ // keys or a `credentialProvider` function. Wire `fromNodeProviderChain`
20
+ // here so AWS_PROFILE / SSO / IRSA / env-var auth all "just work" via
21
+ // the env-driven entry. Deployments needing custom cred-mint flows
22
+ // (OIDC → STS, etc.) construct their own client with whatever
23
+ // provider matches their setup and pass it in via `options.client`.
24
+ const { fromNodeProviderChain } = await import("@aws-sdk/credential-providers");
25
+ client = createAmazonBedrock({
26
+ credentialProvider: fromNodeProviderChain(),
27
+ });
28
+ }
29
+ const apiTarget = options.inferenceProfile ?? options.modelId;
30
+ return {
31
+ name: "aws.bedrock",
32
+ model: client(apiTarget),
33
+ providerOptions: {
34
+ bedrock: {
35
+ additionalModelRequestFields: {
36
+ thinking: { type: "adaptive" },
37
+ output_config: { effort: "medium" },
38
+ },
39
+ },
40
+ },
41
+ prepareStep: ({ messages }) => ({
42
+ messages: messages.map((msg, i) => i === messages.length - 1
43
+ ? {
44
+ ...msg,
45
+ providerOptions: {
46
+ ...(msg.providerOptions ?? {}),
47
+ bedrock: { cachePoint: { type: "default" } },
48
+ },
49
+ }
50
+ : msg),
51
+ }),
52
+ };
53
+ }
54
+ //# sourceMappingURL=bedrock.js.map