@mohanscodex/spectra-ai 0.4.5 → 0.4.7

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 (48) hide show
  1. package/dist/__tests__/e2e.test.js +178 -178
  2. package/dist/__tests__/e2e.test.js.map +1 -1
  3. package/dist/__tests__/event-stream.test.js +83 -40
  4. package/dist/__tests__/event-stream.test.js.map +1 -1
  5. package/dist/__tests__/provider.test.js +46 -31
  6. package/dist/__tests__/provider.test.js.map +1 -1
  7. package/dist/event-stream.d.ts +3 -1
  8. package/dist/event-stream.d.ts.map +1 -1
  9. package/dist/event-stream.js +18 -6
  10. package/dist/event-stream.js.map +1 -1
  11. package/dist/index.d.ts +7 -7
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +4 -4
  14. package/dist/models.d.ts.map +1 -1
  15. package/dist/models.js +378 -470
  16. package/dist/models.js.map +1 -1
  17. package/dist/providers/anthropic.d.ts +2 -2
  18. package/dist/providers/anthropic.d.ts.map +1 -1
  19. package/dist/providers/anthropic.js +155 -102
  20. package/dist/providers/anthropic.js.map +1 -1
  21. package/dist/providers/openai-completions.d.ts +5 -5
  22. package/dist/providers/openai-completions.d.ts.map +1 -1
  23. package/dist/providers/openai-completions.js +90 -85
  24. package/dist/providers/openai-completions.js.map +1 -1
  25. package/dist/providers/openai-responses.d.ts +4 -4
  26. package/dist/providers/openai-responses.d.ts.map +1 -1
  27. package/dist/providers/openai-responses.js +104 -99
  28. package/dist/providers/openai-responses.js.map +1 -1
  29. package/dist/providers/openrouter.d.ts +3 -3
  30. package/dist/providers/openrouter.d.ts.map +1 -1
  31. package/dist/providers/openrouter.js +8 -6
  32. package/dist/providers/openrouter.js.map +1 -1
  33. package/dist/providers/register-builtins.d.ts.map +1 -1
  34. package/dist/providers/register-builtins.js +23 -24
  35. package/dist/providers/register-builtins.js.map +1 -1
  36. package/dist/providers/shared.js +1 -1
  37. package/dist/providers/shared.js.map +1 -1
  38. package/dist/registry.d.ts +3 -3
  39. package/dist/registry.d.ts.map +1 -1
  40. package/dist/registry.js +1 -1
  41. package/dist/registry.js.map +1 -1
  42. package/dist/types.d.ts +20 -20
  43. package/dist/types.d.ts.map +1 -1
  44. package/package.json +31 -31
  45. package/dist/providers/groq.d.ts +0 -16
  46. package/dist/providers/groq.d.ts.map +0 -1
  47. package/dist/providers/groq.js +0 -196
  48. package/dist/providers/groq.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"register-builtins.js","sourceRoot":"","sources":["../../src/providers/register-builtins.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,+BAA+B,EAAiC,MAAM,yBAAyB,CAAC;AACzG,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAK3D,SAAS,kBAAkB,CAAC,IAAY,EAAE,OAAe;IACvD,MAAM,KAAK,GAAG,+BAA+B,EAAE,CAAC;IAChD,OAAO;QACL,IAAI;QACJ,UAAU,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC/E,MAAM,CAAC,KAAY,EAAE,OAAgB,EAAE,OAAkC;YACvE,OAAO,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACzF,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,gBAAgB,CAAC,uBAAuB,EAAE,CAAC,CAAC;IAC5C,gBAAgB,CAAC,+BAA+B,EAAE,CAAC,CAAC;IACpD,gBAAgB,CAAC,6BAA6B,EAAE,CAAC,CAAC;IAClD,gBAAgB,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACvC,gBAAgB,CAAC,wBAAwB,EAAE,CAAC,CAAC;IAE7C,gBAAgB,CAAC,kBAAkB,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC;IACnE,gBAAgB,CAAC,kBAAkB,CAAC,UAAU,EAAE,6BAA6B,CAAC,CAAC,CAAC;IAChF,gBAAgB,CAAC,kBAAkB,CAAC,SAAS,EAAE,2BAA2B,CAAC,CAAC,CAAC;IAC7E,gBAAgB,CAAC,kBAAkB,CAAC,UAAU,EAAE,4BAA4B,CAAC,CAAC,CAAC;IAC/E,gBAAgB,CAAC,kBAAkB,CAAC,QAAQ,EAAE,yDAAyD,CAAC,CAAC,CAAC;IAC1G,gBAAgB,CAAC,kBAAkB,CAAC,cAAc,EAAE,uCAAuC,CAAC,CAAC,CAAC;IAC9F,gBAAgB,CAAC,kBAAkB,CAAC,YAAY,EAAE,6BAA6B,CAAC,CAAC,CAAC;IAClF,gBAAgB,CAAC,kBAAkB,CAAC,YAAY,EAAE,2BAA2B,CAAC,CAAC,CAAC;IAChF,gBAAgB,CAAC,kBAAkB,CAAC,QAAQ,EAAE,2BAA2B,CAAC,CAAC,CAAC;IAC5E,gBAAgB,CAAC,kBAAkB,CAAC,WAAW,EAAE,iCAAiC,CAAC,CAAC,CAAC;IACrF,gBAAgB,CAAC,kBAAkB,CAAC,YAAY,EAAE,4BAA4B,CAAC,CAAC,CAAC;IACjF,gBAAgB,CAAC,kBAAkB,CAAC,QAAQ,EAAE,0BAA0B,CAAC,CAAC,CAAC;IAC3E,gBAAgB,CAAC,kBAAkB,CAAC,SAAS,EAAE,6BAA6B,CAAC,CAAC,CAAC;IAC/E,gBAAgB,CAAC,kBAAkB,CAAC,aAAa,EAAE,yCAAyC,CAAC,CAAC,CAAC;IAC/F,gBAAgB,CAAC,kBAAkB,CAAC,QAAQ,EAAE,qCAAqC,CAAC,CAAC,CAAC;IACtF,gBAAgB,CAAC,kBAAkB,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"register-builtins.js","sourceRoot":"","sources":["../../src/providers/register-builtins.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,+BAA+B,EAAiC,MAAM,yBAAyB,CAAC;AACzG,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAK3D,SAAS,kBAAkB,CAAC,IAAY,EAAE,OAAe;IACxD,MAAM,KAAK,GAAG,+BAA+B,EAAE,CAAC;IAChD,OAAO;QACN,IAAI;QACJ,UAAU,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC/E,MAAM,CAAC,KAAY,EAAE,OAAgB,EAAE,OAAkC;YACxE,OAAO,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACxF,CAAC;KACD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa;IAC5B,gBAAgB,CAAC,uBAAuB,EAAE,CAAC,CAAC;IAC5C,gBAAgB,CAAC,+BAA+B,EAAE,CAAC,CAAC;IACpD,gBAAgB,CAAC,6BAA6B,EAAE,CAAC,CAAC;IAClD,gBAAgB,CAAC,wBAAwB,EAAE,CAAC,CAAC;IAE7C,gBAAgB,CAAC,kBAAkB,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAC,CAAC;IAC/E,gBAAgB,CAAC,kBAAkB,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC;IACnE,gBAAgB,CAAC,kBAAkB,CAAC,UAAU,EAAE,6BAA6B,CAAC,CAAC,CAAC;IAChF,gBAAgB,CAAC,kBAAkB,CAAC,SAAS,EAAE,2BAA2B,CAAC,CAAC,CAAC;IAC7E,gBAAgB,CAAC,kBAAkB,CAAC,UAAU,EAAE,4BAA4B,CAAC,CAAC,CAAC;IAC/E,gBAAgB,CAAC,kBAAkB,CAAC,QAAQ,EAAE,yDAAyD,CAAC,CAAC,CAAC;IAC1G,gBAAgB,CAAC,kBAAkB,CAAC,cAAc,EAAE,uCAAuC,CAAC,CAAC,CAAC;IAC9F,gBAAgB,CAAC,kBAAkB,CAAC,YAAY,EAAE,6BAA6B,CAAC,CAAC,CAAC;IAClF,gBAAgB,CAAC,kBAAkB,CAAC,YAAY,EAAE,2BAA2B,CAAC,CAAC,CAAC;IAChF,gBAAgB,CAAC,kBAAkB,CAAC,QAAQ,EAAE,2BAA2B,CAAC,CAAC,CAAC;IAC5E,gBAAgB,CAAC,kBAAkB,CAAC,WAAW,EAAE,iCAAiC,CAAC,CAAC,CAAC;IACrF,gBAAgB,CAAC,kBAAkB,CAAC,YAAY,EAAE,4BAA4B,CAAC,CAAC,CAAC;IACjF,gBAAgB,CAAC,kBAAkB,CAAC,QAAQ,EAAE,0BAA0B,CAAC,CAAC,CAAC;IAC3E,gBAAgB,CAAC,kBAAkB,CAAC,SAAS,EAAE,6BAA6B,CAAC,CAAC,CAAC;IAC/E,gBAAgB,CAAC,kBAAkB,CAAC,aAAa,EAAE,yCAAyC,CAAC,CAAC,CAAC;IAC/F,gBAAgB,CAAC,kBAAkB,CAAC,QAAQ,EAAE,qCAAqC,CAAC,CAAC,CAAC;IACtF,gBAAgB,CAAC,kBAAkB,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,aAAa,EAAE,CAAC"}
@@ -1,5 +1,5 @@
1
1
  export function sanitizeSurrogates(text) {
2
- return text;
2
+ return text.replace(/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g, '');
3
3
  }
4
4
  export function parseStreamingJson(json) {
5
5
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/providers/shared.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/providers/shared.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC9C,OAAO,IAAI,CAAC,OAAO,CAAC,yEAAyE,EAAE,EAAE,CAAC,CAAC;AACpG,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC9C,IAAI,CAAC;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,EAAE,CAAC;IACX,CAAC;AACF,CAAC"}
@@ -1,5 +1,5 @@
1
- import type { Context, Model, StreamOptions } from "./types.js";
2
- import { AssistantMessageEventStream } from "./event-stream.js";
1
+ import type { Context, Model, StreamOptions } from './types.js';
2
+ import { AssistantMessageEventStream } from './event-stream.js';
3
3
  export type StreamFunction = (model: Model, context: Context, options?: StreamOptions) => AssistantMessageEventStream;
4
4
  export interface ModelInfo {
5
5
  id: string;
@@ -15,5 +15,5 @@ export declare function getProvider(name: string): Provider | undefined;
15
15
  export declare function listProviders(): string[];
16
16
  export declare function getModels(providerName: string): Promise<ModelInfo[]>;
17
17
  export declare function stream(model: Model, context: Context, options?: StreamOptions): AssistantMessageEventStream;
18
- export declare function complete(model: Model, context: Context, options?: StreamOptions): Promise<import("./types.js").AssistantMessage>;
18
+ export declare function complete(model: Model, context: Context, options?: StreamOptions): Promise<import('./types.js').AssistantMessage>;
19
19
  //# sourceMappingURL=registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAEhE,MAAM,MAAM,cAAc,GAAG,CAC3B,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,aAAa,KACpB,2BAA2B,CAAC;AAEjC,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,SAAS,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;CACvD;AAID,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAEzD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAE9D;AAED,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAExC;AAED,wBAAsB,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAI1E;AAED,wBAAgB,MAAM,CACpB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,aAAa,GACtB,2BAA2B,CAM7B;AAED,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,OAAO,YAAY,EAAE,gBAAgB,CAAC,CAGhD"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAEhE,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,aAAa,KAAK,2BAA2B,CAAC;AAEtH,MAAM,WAAW,SAAS;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,QAAQ;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,SAAS,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;CACtD;AAID,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAEzD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAE9D;AAED,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAExC;AAED,wBAAsB,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAI1E;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,2BAA2B,CAM3G;AAED,wBAAsB,QAAQ,CAC7B,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,OAAO,YAAY,EAAE,gBAAgB,CAAC,CAGhD"}
package/dist/registry.js CHANGED
@@ -17,7 +17,7 @@ export async function getModels(providerName) {
17
17
  export function stream(model, context, options) {
18
18
  const provider = providers.get(model.provider);
19
19
  if (!provider) {
20
- throw new Error(`No provider registered for: ${model.provider}. Available: ${listProviders().join(", ")}`);
20
+ throw new Error(`No provider registered for: ${model.provider}. Available: ${listProviders().join(', ')}`);
21
21
  }
22
22
  return provider.stream(model, context, options);
23
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAoBA,MAAM,SAAS,GAAG,IAAI,GAAG,EAAoB,CAAC;AAE9C,MAAM,UAAU,gBAAgB,CAAC,QAAkB;IACjD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,YAAoB;IAClD,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC7C,IAAI,CAAC,QAAQ,EAAE,UAAU;QAAE,OAAO,EAAE,CAAC;IACrC,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,MAAM,CACpB,KAAY,EACZ,OAAgB,EAChB,OAAuB;IAEvB,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,CAAC,QAAQ,gBAAgB,aAAa,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7G,CAAC;IACD,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,KAAY,EACZ,OAAgB,EAChB,OAAuB;IAEvB,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1C,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAgBA,MAAM,SAAS,GAAG,IAAI,GAAG,EAAoB,CAAC;AAE9C,MAAM,UAAU,gBAAgB,CAAC,QAAkB;IAClD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY;IACvC,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,aAAa;IAC5B,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,YAAoB;IACnD,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC7C,IAAI,CAAC,QAAQ,EAAE,UAAU;QAAE,OAAO,EAAE,CAAC;IACrC,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,KAAY,EAAE,OAAgB,EAAE,OAAuB;IAC7E,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,CAAC,QAAQ,gBAAgB,aAAa,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5G,CAAC;IACD,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC7B,KAAY,EACZ,OAAgB,EAChB,OAAuB;IAEvB,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1C,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;AACnB,CAAC"}
package/dist/types.d.ts CHANGED
@@ -1,26 +1,26 @@
1
1
  export interface TextContent {
2
- type: "text";
2
+ type: 'text';
3
3
  text: string;
4
4
  }
5
5
  export interface ThinkingContent {
6
- type: "thinking";
6
+ type: 'thinking';
7
7
  thinking: string;
8
8
  thinkingSignature?: string;
9
9
  redacted?: boolean;
10
10
  }
11
11
  export interface ImageContent {
12
- type: "image";
12
+ type: 'image';
13
13
  data: string;
14
14
  mimeType: string;
15
15
  }
16
16
  export interface ToolCall {
17
- type: "toolCall";
17
+ type: 'toolCall';
18
18
  id: string;
19
19
  name: string;
20
20
  arguments: Record<string, unknown>;
21
21
  thinkingSignature?: string;
22
22
  }
23
- export type StopReason = "stop" | "length" | "toolUse" | "error" | "aborted";
23
+ export type StopReason = 'stop' | 'length' | 'toolUse' | 'error' | 'aborted';
24
24
  export interface Usage {
25
25
  input: number;
26
26
  output: number;
@@ -36,14 +36,14 @@ export interface Usage {
36
36
  };
37
37
  }
38
38
  export interface UserMessage {
39
- role: "user";
39
+ role: 'user';
40
40
  content: string | (TextContent | ImageContent)[];
41
41
  timestamp: number;
42
42
  /** Arbitrary metadata for app/ui use. Ignored by LLM context. */
43
43
  metadata?: Record<string, unknown>;
44
44
  }
45
45
  export interface AssistantMessage {
46
- role: "assistant";
46
+ role: 'assistant';
47
47
  content: (TextContent | ThinkingContent | ToolCall)[];
48
48
  provider: string;
49
49
  model: string;
@@ -56,7 +56,7 @@ export interface AssistantMessage {
56
56
  metadata?: Record<string, unknown>;
57
57
  }
58
58
  export interface ToolResultMessage<TDetails = unknown> {
59
- role: "toolResult";
59
+ role: 'toolResult';
60
60
  toolCallId: string;
61
61
  toolName: string;
62
62
  content: (TextContent | ImageContent)[];
@@ -91,56 +91,56 @@ export interface Context {
91
91
  tools?: Tool[];
92
92
  }
93
93
  export type AssistantMessageEvent = {
94
- type: "start";
94
+ type: 'start';
95
95
  partial: AssistantMessage;
96
96
  } | {
97
- type: "text_start";
97
+ type: 'text_start';
98
98
  contentIndex: number;
99
99
  partial: AssistantMessage;
100
100
  } | {
101
- type: "text_delta";
101
+ type: 'text_delta';
102
102
  contentIndex: number;
103
103
  delta: string;
104
104
  partial: AssistantMessage;
105
105
  } | {
106
- type: "text_end";
106
+ type: 'text_end';
107
107
  contentIndex: number;
108
108
  content: string;
109
109
  partial: AssistantMessage;
110
110
  } | {
111
- type: "thinking_start";
111
+ type: 'thinking_start';
112
112
  contentIndex: number;
113
113
  partial: AssistantMessage;
114
114
  } | {
115
- type: "thinking_delta";
115
+ type: 'thinking_delta';
116
116
  contentIndex: number;
117
117
  delta: string;
118
118
  partial: AssistantMessage;
119
119
  } | {
120
- type: "thinking_end";
120
+ type: 'thinking_end';
121
121
  contentIndex: number;
122
122
  content: string;
123
123
  partial: AssistantMessage;
124
124
  } | {
125
- type: "toolcall_start";
125
+ type: 'toolcall_start';
126
126
  contentIndex: number;
127
127
  partial: AssistantMessage;
128
128
  } | {
129
- type: "toolcall_delta";
129
+ type: 'toolcall_delta';
130
130
  contentIndex: number;
131
131
  delta: string;
132
132
  partial: AssistantMessage;
133
133
  } | {
134
- type: "toolcall_end";
134
+ type: 'toolcall_end';
135
135
  contentIndex: number;
136
136
  toolCall: ToolCall;
137
137
  partial: AssistantMessage;
138
138
  } | {
139
- type: "done";
139
+ type: 'done';
140
140
  reason: StopReason;
141
141
  message: AssistantMessage;
142
142
  } | {
143
- type: "error";
143
+ type: 'error';
144
144
  reason: StopReason;
145
145
  error: AssistantMessage;
146
146
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,33 +1,33 @@
1
1
  {
2
- "name": "@mohanscodex/spectra-ai",
3
- "version": "0.4.5",
4
- "description": "Spectra AI — LLM provider layer with streaming",
5
- "type": "module",
6
- "main": "./dist/index.js",
7
- "types": "./dist/index.d.ts",
8
- "exports": {
9
- ".": {
10
- "types": "./dist/index.d.ts",
11
- "import": "./dist/index.js"
12
- }
13
- },
14
- "files": [
15
- "dist"
16
- ],
17
- "scripts": {
18
- "build": "npm run generate-models && tsc",
19
- "dev": "tsc --watch",
20
- "test": "vitest --run",
21
- "lint": "tsc --noEmit",
22
- "generate-models": "bun scripts/generate-models.ts"
23
- },
24
- "dependencies": {
25
- "@anthropic-ai/sdk": "^0.32.0",
26
- "openai": "^5.3.0"
27
- },
28
- "devDependencies": {
29
- "typescript": "^5.7.0",
30
- "vitest": "^3.2.0"
31
- },
32
- "license": "MIT"
2
+ "name": "@mohanscodex/spectra-ai",
3
+ "version": "0.4.7",
4
+ "description": "Spectra AI — LLM provider layer with streaming",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ }
13
+ },
14
+ "files": [
15
+ "dist"
16
+ ],
17
+ "scripts": {
18
+ "build": "npm run generate-models && tsc",
19
+ "dev": "tsc --watch",
20
+ "test": "vitest --run",
21
+ "lint": "tsc --noEmit",
22
+ "generate-models": "bun scripts/generate-models.ts"
23
+ },
24
+ "dependencies": {
25
+ "@anthropic-ai/sdk": "^0.32.0",
26
+ "openai": "^5.3.0"
27
+ },
28
+ "devDependencies": {
29
+ "typescript": "^5.7.0",
30
+ "vitest": "^3.2.0"
31
+ },
32
+ "license": "MIT"
33
33
  }
@@ -1,16 +0,0 @@
1
- import type { Context, Model, StreamOptions } from "../types.js";
2
- import { AssistantMessageEventStream } from "../event-stream.js";
3
- export interface GroqOptions extends StreamOptions {
4
- toolChoice?: "auto" | "none" | "required" | {
5
- type: "function";
6
- function: {
7
- name: string;
8
- };
9
- };
10
- }
11
- export declare function createGroqProvider(): {
12
- name: string;
13
- listModels: () => Promise<import("../models.js").ModelEntry[]>;
14
- stream(model: Model, context: Context, options?: GroqOptions): AssistantMessageEventStream;
15
- };
16
- //# sourceMappingURL=groq.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"groq.d.ts","sourceRoot":"","sources":["../../src/providers/groq.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,OAAO,EACP,KAAK,EACL,aAAa,EACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AASjE,MAAM,WAAW,WAAY,SAAQ,aAAa;IAChD,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,QAAQ,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;CAC9F;AAED,wBAAgB,kBAAkB;;;kBAIhB,KAAK,WAAW,OAAO,YAAY,WAAW,GAAG,2BAA2B;EAgJ7F"}
@@ -1,196 +0,0 @@
1
- import OpenAI from "openai";
2
- import { AssistantMessageEventStream } from "../event-stream.js";
3
- import { sanitizeSurrogates, parseStreamingJson } from "./shared.js";
4
- const GROQ_BASE_URL = "https://api.groq.com/openai/v1";
5
- function getEnvApiKey() {
6
- return process.env.GROQ_API_KEY;
7
- }
8
- export function createGroqProvider() {
9
- return {
10
- name: "groq",
11
- listModels: () => import("../models.js").then((m) => m.getProviderModels("groq")),
12
- stream(model, context, options) {
13
- const stream = new AssistantMessageEventStream();
14
- const run = async () => {
15
- const output = {
16
- role: "assistant",
17
- content: [],
18
- provider: model.provider,
19
- model: model.id,
20
- responseId: undefined,
21
- usage: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, totalTokens: 0 },
22
- stopReason: "stop",
23
- timestamp: Date.now(),
24
- };
25
- try {
26
- const apiKey = options?.apiKey ?? getEnvApiKey();
27
- if (!apiKey) {
28
- output.stopReason = "error";
29
- output.errorMessage = `No API key for Groq. Set GROQ_API_KEY environment variable or pass apiKey in options.`;
30
- stream.push({ type: "start", partial: output });
31
- stream.push({ type: "error", reason: "error", error: output });
32
- stream.end();
33
- return;
34
- }
35
- const client = new OpenAI({
36
- apiKey,
37
- baseURL: GROQ_BASE_URL,
38
- dangerouslyAllowBrowser: true,
39
- });
40
- const messages = convertMessages(context);
41
- const params = {
42
- model: model.id,
43
- messages,
44
- stream: true,
45
- stream_options: { include_usage: true },
46
- };
47
- if (options?.maxTokens) {
48
- params.max_tokens = options.maxTokens;
49
- }
50
- if (options?.temperature !== undefined) {
51
- params.temperature = options.temperature;
52
- }
53
- const tools = context.tools?.map((tool) => ({
54
- type: "function",
55
- function: {
56
- name: tool.name,
57
- description: tool.description,
58
- parameters: tool.parameters,
59
- },
60
- }));
61
- if (tools && tools.length > 0) {
62
- params.tools = tools;
63
- }
64
- if (options?.toolChoice) {
65
- params.tool_choice = options.toolChoice;
66
- }
67
- const response = await client.chat.completions.create(params);
68
- const toolCallFragments = {};
69
- for await (const chunk of response) {
70
- if (options?.signal?.aborted)
71
- break;
72
- const delta = chunk.choices[0]?.delta;
73
- const finishReason = chunk.choices[0]?.finish_reason;
74
- if (chunk.usage) {
75
- output.usage = {
76
- input: chunk.usage.prompt_tokens ?? 0,
77
- output: chunk.usage.completion_tokens ?? 0,
78
- cacheRead: 0,
79
- cacheWrite: 0,
80
- totalTokens: chunk.usage.total_tokens ?? 0,
81
- };
82
- }
83
- // Handle tool calls
84
- if (delta?.tool_calls && delta.tool_calls.length > 0) {
85
- for (const tc of delta.tool_calls) {
86
- const index = tc.index ?? 0;
87
- if (!toolCallFragments[index]) {
88
- toolCallFragments[index] = { id: tc.id ?? "", name: tc.function?.name ?? "", args: "" };
89
- }
90
- if (tc.function?.arguments) {
91
- toolCallFragments[index].args += tc.function.arguments;
92
- }
93
- if (tc.id)
94
- toolCallFragments[index].id = tc.id;
95
- if (tc.function?.name)
96
- toolCallFragments[index].name = tc.function.name;
97
- }
98
- }
99
- // Handle content
100
- if (delta?.content) {
101
- const text = sanitizeSurrogates(delta.content);
102
- stream.push({
103
- type: "text_delta",
104
- contentIndex: 0,
105
- delta: text,
106
- partial: output,
107
- });
108
- }
109
- // Handle stop reason
110
- if (finishReason) {
111
- output.stopReason = finishReason === "tool_calls" ? "toolUse" : "stop";
112
- }
113
- }
114
- // Assemble tool calls
115
- const assembledToolCalls = Object.values(toolCallFragments).map((tc) => ({
116
- type: "toolCall",
117
- id: tc.id,
118
- name: tc.name,
119
- arguments: parseStreamingJson(tc.args),
120
- }));
121
- if (assembledToolCalls.length > 0) {
122
- output.content = assembledToolCalls;
123
- output.stopReason = "toolUse";
124
- }
125
- stream.push({ type: "done", reason: output.stopReason, message: output });
126
- stream.end();
127
- }
128
- catch (err) {
129
- output.stopReason = options?.signal?.aborted ? "aborted" : "error";
130
- output.errorMessage = err instanceof Error ? err.message : String(err);
131
- stream.push({ type: "error", reason: output.stopReason, error: output });
132
- stream.end();
133
- }
134
- };
135
- run();
136
- return stream;
137
- },
138
- };
139
- }
140
- function convertMessages(context) {
141
- const messages = [];
142
- if (context.systemPrompt) {
143
- messages.push({ role: "system", content: context.systemPrompt });
144
- }
145
- for (const msg of context.messages) {
146
- switch (msg.role) {
147
- case "user":
148
- messages.push({
149
- role: "user",
150
- content: typeof msg.content === "string" ? msg.content : msg.content.map((c) => {
151
- if (c.type === "text")
152
- return c.text;
153
- return "";
154
- }).join(""),
155
- });
156
- break;
157
- case "assistant":
158
- if (msg.content.some((c) => c.type === "toolCall")) {
159
- messages.push({
160
- role: "assistant",
161
- content: null,
162
- tool_calls: msg.content
163
- .filter((c) => c.type === "toolCall")
164
- .map((tc) => ({
165
- id: tc.id,
166
- type: "function",
167
- function: {
168
- name: tc.name,
169
- arguments: JSON.stringify(tc.arguments),
170
- },
171
- })),
172
- });
173
- }
174
- else {
175
- messages.push({
176
- role: "assistant",
177
- content: msg.content.map((c) => {
178
- if (c.type === "text")
179
- return c.text;
180
- return "";
181
- }).join(""),
182
- });
183
- }
184
- break;
185
- case "toolResult":
186
- messages.push({
187
- role: "tool",
188
- tool_call_id: msg.toolCallId,
189
- content: typeof msg.content === "string" ? msg.content : JSON.stringify(msg.content),
190
- });
191
- break;
192
- }
193
- }
194
- return messages;
195
- }
196
- //# sourceMappingURL=groq.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"groq.js","sourceRoot":"","sources":["../../src/providers/groq.ts"],"names":[],"mappings":"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"}