@f-inverse/jammi-client 0.14.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 (46) hide show
  1. package/README.md +68 -0
  2. package/dist/gen/jammi/v1/audit_pb.d.ts +213 -0
  3. package/dist/gen/jammi/v1/audit_pb.d.ts.map +1 -0
  4. package/dist/gen/jammi/v1/audit_pb.js +63 -0
  5. package/dist/gen/jammi/v1/audit_pb.js.map +1 -0
  6. package/dist/gen/jammi/v1/channel_pb.d.ts +158 -0
  7. package/dist/gen/jammi/v1/channel_pb.d.ts.map +1 -0
  8. package/dist/gen/jammi/v1/channel_pb.js +87 -0
  9. package/dist/gen/jammi/v1/channel_pb.js.map +1 -0
  10. package/dist/gen/jammi/v1/embedding_pb.d.ts +514 -0
  11. package/dist/gen/jammi/v1/embedding_pb.d.ts.map +1 -0
  12. package/dist/gen/jammi/v1/embedding_pb.js +178 -0
  13. package/dist/gen/jammi/v1/embedding_pb.js.map +1 -0
  14. package/dist/gen/jammi/v1/error_pb.d.ts +739 -0
  15. package/dist/gen/jammi/v1/error_pb.d.ts.map +1 -0
  16. package/dist/gen/jammi/v1/error_pb.js +94 -0
  17. package/dist/gen/jammi/v1/error_pb.js.map +1 -0
  18. package/dist/gen/jammi/v1/eval_pb.d.ts +821 -0
  19. package/dist/gen/jammi/v1/eval_pb.d.ts.map +1 -0
  20. package/dist/gen/jammi/v1/eval_pb.js +187 -0
  21. package/dist/gen/jammi/v1/eval_pb.js.map +1 -0
  22. package/dist/gen/jammi/v1/fine_tune_pb.d.ts +513 -0
  23. package/dist/gen/jammi/v1/fine_tune_pb.d.ts.map +1 -0
  24. package/dist/gen/jammi/v1/fine_tune_pb.js +231 -0
  25. package/dist/gen/jammi/v1/fine_tune_pb.js.map +1 -0
  26. package/dist/gen/jammi/v1/inference_pb.d.ts +144 -0
  27. package/dist/gen/jammi/v1/inference_pb.d.ts.map +1 -0
  28. package/dist/gen/jammi/v1/inference_pb.js +78 -0
  29. package/dist/gen/jammi/v1/inference_pb.js.map +1 -0
  30. package/dist/gen/jammi/v1/mutable_table_pb.d.ts +183 -0
  31. package/dist/gen/jammi/v1/mutable_table_pb.d.ts.map +1 -0
  32. package/dist/gen/jammi/v1/mutable_table_pb.js +59 -0
  33. package/dist/gen/jammi/v1/mutable_table_pb.js.map +1 -0
  34. package/dist/gen/jammi/v1/session_pb.d.ts +104 -0
  35. package/dist/gen/jammi/v1/session_pb.d.ts.map +1 -0
  36. package/dist/gen/jammi/v1/session_pb.js +38 -0
  37. package/dist/gen/jammi/v1/session_pb.js.map +1 -0
  38. package/dist/gen/jammi/v1/trigger_pb.d.ts +399 -0
  39. package/dist/gen/jammi/v1/trigger_pb.d.ts.map +1 -0
  40. package/dist/gen/jammi/v1/trigger_pb.js +80 -0
  41. package/dist/gen/jammi/v1/trigger_pb.js.map +1 -0
  42. package/dist/index.d.ts +68 -0
  43. package/dist/index.d.ts.map +1 -0
  44. package/dist/index.js +89 -0
  45. package/dist/index.js.map +1 -0
  46. package/package.json +45 -0
@@ -0,0 +1,80 @@
1
+ // @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
2
+ // @generated from file jammi/v1/trigger.proto (package jammi.v1.trigger, syntax proto3)
3
+ /* eslint-disable */
4
+ import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
5
+ import { file_google_protobuf_empty, file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
6
+ /**
7
+ * Describes the file jammi/v1/trigger.proto.
8
+ */
9
+ export const file_jammi_v1_trigger = /*@__PURE__*/ fileDesc("ChZqYW1taS92MS90cmlnZ2VyLnByb3RvEhBqYW1taS52MS50cmlnZ2VyItIBChRSZWdpc3RlclRvcGljUmVxdWVzdBIMCgRuYW1lGAEgASgJEg4KBnNjaGVtYRgCIAEoDBJTCg9icm9rZXJfbWV0YWRhdGEYAyADKAsyOi5qYW1taS52MS50cmlnZ2VyLlJlZ2lzdGVyVG9waWNSZXF1ZXN0LkJyb2tlck1ldGFkYXRhRW50cnkSEAoIdG9waWNfaWQYBCABKAkaNQoTQnJva2VyTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIikKFVJlZ2lzdGVyVG9waWNSZXNwb25zZRIQCgh0b3BpY19pZBgBIAEoCSI3ChBEcm9wVG9waWNSZXF1ZXN0EhAKCHRvcGljX2lkGAEgASgJEhEKCWlmX2V4aXN0cxgCIAEoCCIZCglUb3BpY05hbWUSDAoEbmFtZRgBIAEoCSJKCgpBcnJvd0JhdGNoEhMKC2RhdGFfaGVhZGVyGAEgASgMEhEKCWRhdGFfYm9keRgCIAEoDBIUCgxhcHBfbWV0YWRhdGEYAyABKAwifAoOUHVibGlzaFJlcXVlc3QSKgoFdG9waWMYASABKAsyGy5qYW1taS52MS50cmlnZ2VyLlRvcGljTmFtZRIrCgViYXRjaBgCIAEoCzIcLmphbW1pLnYxLnRyaWdnZXIuQXJyb3dCYXRjaBIRCgl0ZW5hbnRfaWQYAyABKAkiUwoPUHVibGlzaFJlc3BvbnNlEg4KBm9mZnNldBgBIAEoBBIwCgxjb21taXR0ZWRfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIo4BChBTdWJzY3JpYmVSZXF1ZXN0EioKBXRvcGljGAEgASgLMhsuamFtbWkudjEudHJpZ2dlci5Ub3BpY05hbWUSEQoJcHJlZGljYXRlGAIgASgJEhgKC2Zyb21fb2Zmc2V0GAMgASgESACIAQESEQoJdGVuYW50X2lkGAQgASgJQg4KDF9mcm9tX29mZnNldCJ/Cg9TdWJzY3JpYmVkQmF0Y2gSDgoGb2Zmc2V0GAEgASgEEi8KC3Byb2R1Y2VkX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIrCgViYXRjaBgDIAEoCzIcLmphbW1pLnYxLnRyaWdnZXIuQXJyb3dCYXRjaCJNChFMaXN0VG9waWNzUmVxdWVzdBIRCglwYWdlX3NpemUYASABKAUSEgoKcGFnZV90b2tlbhgCIAEoCRIRCgl0ZW5hbnRfaWQYAyABKAkixwEKBVRvcGljEhAKCHRvcGljX2lkGAEgASgJEgwKBG5hbWUYAiABKAkSDgoGc2NoZW1hGAMgASgMEhEKCXRlbmFudF9pZBgEIAEoCRJECg9icm9rZXJfbWV0YWRhdGEYBSADKAsyKy5qYW1taS52MS50cmlnZ2VyLlRvcGljLkJyb2tlck1ldGFkYXRhRW50cnkaNQoTQnJva2VyTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIlYKEkxpc3RUb3BpY3NSZXNwb25zZRInCgZ0b3BpY3MYASADKAsyFy5qYW1taS52MS50cmlnZ2VyLlRvcGljEhcKD25leHRfcGFnZV90b2tlbhgCIAEoCTK6AwoOVHJpZ2dlclNlcnZpY2USYAoNUmVnaXN0ZXJUb3BpYxImLmphbW1pLnYxLnRyaWdnZXIuUmVnaXN0ZXJUb3BpY1JlcXVlc3QaJy5qYW1taS52MS50cmlnZ2VyLlJlZ2lzdGVyVG9waWNSZXNwb25zZRJHCglEcm9wVG9waWMSIi5qYW1taS52MS50cmlnZ2VyLkRyb3BUb3BpY1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSTgoHUHVibGlzaBIgLmphbW1pLnYxLnRyaWdnZXIuUHVibGlzaFJlcXVlc3QaIS5qYW1taS52MS50cmlnZ2VyLlB1Ymxpc2hSZXNwb25zZRJUCglTdWJzY3JpYmUSIi5qYW1taS52MS50cmlnZ2VyLlN1YnNjcmliZVJlcXVlc3QaIS5qYW1taS52MS50cmlnZ2VyLlN1YnNjcmliZWRCYXRjaDABElcKCkxpc3RUb3BpY3MSIy5qYW1taS52MS50cmlnZ2VyLkxpc3RUb3BpY3NSZXF1ZXN0GiQuamFtbWkudjEudHJpZ2dlci5MaXN0VG9waWNzUmVzcG9uc2ViBnByb3RvMw", [file_google_protobuf_empty, file_google_protobuf_timestamp]);
10
+ /**
11
+ * Describes the message jammi.v1.trigger.RegisterTopicRequest.
12
+ * Use `create(RegisterTopicRequestSchema)` to create a new message.
13
+ */
14
+ export const RegisterTopicRequestSchema = /*@__PURE__*/ messageDesc(file_jammi_v1_trigger, 0);
15
+ /**
16
+ * Describes the message jammi.v1.trigger.RegisterTopicResponse.
17
+ * Use `create(RegisterTopicResponseSchema)` to create a new message.
18
+ */
19
+ export const RegisterTopicResponseSchema = /*@__PURE__*/ messageDesc(file_jammi_v1_trigger, 1);
20
+ /**
21
+ * Describes the message jammi.v1.trigger.DropTopicRequest.
22
+ * Use `create(DropTopicRequestSchema)` to create a new message.
23
+ */
24
+ export const DropTopicRequestSchema = /*@__PURE__*/ messageDesc(file_jammi_v1_trigger, 2);
25
+ /**
26
+ * Describes the message jammi.v1.trigger.TopicName.
27
+ * Use `create(TopicNameSchema)` to create a new message.
28
+ */
29
+ export const TopicNameSchema = /*@__PURE__*/ messageDesc(file_jammi_v1_trigger, 3);
30
+ /**
31
+ * Describes the message jammi.v1.trigger.ArrowBatch.
32
+ * Use `create(ArrowBatchSchema)` to create a new message.
33
+ */
34
+ export const ArrowBatchSchema = /*@__PURE__*/ messageDesc(file_jammi_v1_trigger, 4);
35
+ /**
36
+ * Describes the message jammi.v1.trigger.PublishRequest.
37
+ * Use `create(PublishRequestSchema)` to create a new message.
38
+ */
39
+ export const PublishRequestSchema = /*@__PURE__*/ messageDesc(file_jammi_v1_trigger, 5);
40
+ /**
41
+ * Describes the message jammi.v1.trigger.PublishResponse.
42
+ * Use `create(PublishResponseSchema)` to create a new message.
43
+ */
44
+ export const PublishResponseSchema = /*@__PURE__*/ messageDesc(file_jammi_v1_trigger, 6);
45
+ /**
46
+ * Describes the message jammi.v1.trigger.SubscribeRequest.
47
+ * Use `create(SubscribeRequestSchema)` to create a new message.
48
+ */
49
+ export const SubscribeRequestSchema = /*@__PURE__*/ messageDesc(file_jammi_v1_trigger, 7);
50
+ /**
51
+ * Describes the message jammi.v1.trigger.SubscribedBatch.
52
+ * Use `create(SubscribedBatchSchema)` to create a new message.
53
+ */
54
+ export const SubscribedBatchSchema = /*@__PURE__*/ messageDesc(file_jammi_v1_trigger, 8);
55
+ /**
56
+ * Describes the message jammi.v1.trigger.ListTopicsRequest.
57
+ * Use `create(ListTopicsRequestSchema)` to create a new message.
58
+ */
59
+ export const ListTopicsRequestSchema = /*@__PURE__*/ messageDesc(file_jammi_v1_trigger, 9);
60
+ /**
61
+ * Describes the message jammi.v1.trigger.Topic.
62
+ * Use `create(TopicSchema)` to create a new message.
63
+ */
64
+ export const TopicSchema = /*@__PURE__*/ messageDesc(file_jammi_v1_trigger, 10);
65
+ /**
66
+ * Describes the message jammi.v1.trigger.ListTopicsResponse.
67
+ * Use `create(ListTopicsResponseSchema)` to create a new message.
68
+ */
69
+ export const ListTopicsResponseSchema = /*@__PURE__*/ messageDesc(file_jammi_v1_trigger, 11);
70
+ /**
71
+ * TriggerService — primitive pub/sub over Arrow record batches.
72
+ *
73
+ * Verb vocabulary is closed: RegisterTopic, DropTopic, Publish, Subscribe,
74
+ * ListTopics. No domain-shaped verbs (no Discover, no Ingest*, no Run*). See
75
+ * ADR-01 §3.4.
76
+ *
77
+ * @generated from service jammi.v1.trigger.TriggerService
78
+ */
79
+ export const TriggerService = /*@__PURE__*/ serviceDesc(file_jammi_v1_trigger, 0);
80
+ //# sourceMappingURL=trigger_pb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trigger_pb.js","sourceRoot":"","sources":["../../../../src/gen/jammi/v1/trigger_pb.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,wFAAwF;AACxF,oBAAoB;AAGpB,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAElF,OAAO,EAAE,0BAA0B,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AAGpG;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAY,aAAa,CACzD,QAAQ,CAAC,ozEAAozE,EAAE,CAAC,0BAA0B,EAAE,8BAA8B,CAAC,CAAC,CAAC;AA0C/3E;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAqC,aAAa,CACvF,WAAW,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;AAcxC;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAsC,aAAa,CACzF,WAAW,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;AAuBxC;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAiC,aAAa,CAC/E,WAAW,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;AAgBxC;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAA0B,aAAa,CACjE,WAAW,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;AA+BxC;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA2B,aAAa,CACnE,WAAW,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;AAyBxC;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAA+B,aAAa,CAC3E,WAAW,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;AAmBxC;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAgC,aAAa,CAC7E,WAAW,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;AAmCxC;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAiC,aAAa,CAC/E,WAAW,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;AAsBxC;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAgC,aAAa,CAC7E,WAAW,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;AA0BxC;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAkC,aAAa,CACjF,WAAW,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;AA+CxC;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAsB,aAAa,CACzD,WAAW,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;AAiBzC;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAmC,aAAa,CACnF,WAAW,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;AAEzC;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,cAAc,GAyDtB,aAAa,CAChB,WAAW,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC"}
@@ -0,0 +1,68 @@
1
+ import { type Client, type Interceptor } from "@connectrpc/connect";
2
+ import { SessionService } from "./gen/jammi/v1/session_pb.js";
3
+ import { EmbeddingService } from "./gen/jammi/v1/embedding_pb.js";
4
+ import { InferenceService } from "./gen/jammi/v1/inference_pb.js";
5
+ import { EvalService } from "./gen/jammi/v1/eval_pb.js";
6
+ import { FineTuneService } from "./gen/jammi/v1/fine_tune_pb.js";
7
+ import { MutableTableService } from "./gen/jammi/v1/mutable_table_pb.js";
8
+ import { ChannelService } from "./gen/jammi/v1/channel_pb.js";
9
+ import { TriggerService } from "./gen/jammi/v1/trigger_pb.js";
10
+ import { AuditService } from "./gen/jammi/v1/audit_pb.js";
11
+ export * from "./gen/jammi/v1/session_pb.js";
12
+ export * from "./gen/jammi/v1/embedding_pb.js";
13
+ export * from "./gen/jammi/v1/inference_pb.js";
14
+ export * from "./gen/jammi/v1/eval_pb.js";
15
+ export * from "./gen/jammi/v1/fine_tune_pb.js";
16
+ export * from "./gen/jammi/v1/mutable_table_pb.js";
17
+ export * from "./gen/jammi/v1/channel_pb.js";
18
+ export * from "./gen/jammi/v1/trigger_pb.js";
19
+ export * from "./gen/jammi/v1/audit_pb.js";
20
+ export * from "./gen/jammi/v1/error_pb.js";
21
+ /**
22
+ * The request header carrying a connection's opaque session id. The server's
23
+ * Tonic TenantInterceptor reads it on every request and resolves the bound
24
+ * tenant; it is the same header the Rust SDK and Flight SQL lane use. Kept in
25
+ * one place so the value never drifts across the seam.
26
+ */
27
+ export declare const SESSION_HEADER = "jammi-session-id";
28
+ /** Options for {@link connect}. */
29
+ export interface ConnectOptions {
30
+ /**
31
+ * The opaque session id to scope this connection's tenant binding by. The
32
+ * server keys tenant state against it, so two connections that must stay
33
+ * tenant-isolated MUST pass distinct ids. Defaults to a fresh UUID, matching
34
+ * the Rust `RemoteSession::connect` behavior (each connection isolated).
35
+ */
36
+ sessionId?: string;
37
+ /**
38
+ * Extra Connect interceptors, applied outside the session-header interceptor
39
+ * (e.g. auth, logging). Optional.
40
+ */
41
+ interceptors?: Interceptor[];
42
+ }
43
+ /**
44
+ * A client per Jammi service, all sharing one gRPC-web transport and one
45
+ * session-scoped tenant binding. This is the value {@link connect} returns.
46
+ */
47
+ export interface JammiClient {
48
+ /** The session id this connection scopes its tenant binding by. */
49
+ readonly sessionId: string;
50
+ readonly session: Client<typeof SessionService>;
51
+ readonly embedding: Client<typeof EmbeddingService>;
52
+ readonly inference: Client<typeof InferenceService>;
53
+ readonly eval: Client<typeof EvalService>;
54
+ readonly fineTune: Client<typeof FineTuneService>;
55
+ readonly mutableTable: Client<typeof MutableTableService>;
56
+ readonly channel: Client<typeof ChannelService>;
57
+ readonly trigger: Client<typeof TriggerService>;
58
+ readonly audit: Client<typeof AuditService>;
59
+ }
60
+ /**
61
+ * Connect to a Jammi engine's `jammi.v1` gRPC-web endpoint and return a client
62
+ * for every service.
63
+ *
64
+ * @param endpoint The engine's base URL (e.g. `"https://engine.example.com"`).
65
+ * Requests go to `<endpoint>/<package>.<Service>/<Method>`.
66
+ */
67
+ export declare function connect(endpoint: string, opts?: ConnectOptions): JammiClient;
68
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAgB,KAAK,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlF,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAG1D,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC;AACnD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAE3C;;;;;GAKG;AACH,eAAO,MAAM,cAAc,qBAAqB,CAAC;AAEjD,mCAAmC;AACnC,MAAM,WAAW,cAAc;IAC7B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;CAC9B;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,mEAAmE;IACnE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,cAAc,CAAC,CAAC;IAChD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,gBAAgB,CAAC,CAAC;IACpD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,gBAAgB,CAAC,CAAC;IACpD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,WAAW,CAAC,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,eAAe,CAAC,CAAC;IAClD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAC;IAC1D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,cAAc,CAAC,CAAC;IAChD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,cAAc,CAAC,CAAC;IAChD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,YAAY,CAAC,CAAC;CAC7C;AASD;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,cAAmB,GAAG,WAAW,CA4BhF"}
package/dist/index.js ADDED
@@ -0,0 +1,89 @@
1
+ // @f-inverse/jammi-client — the official TypeScript gRPC-web client for the Jammi engine.
2
+ //
3
+ // The wire surface is GENERATED from the canonical jammi.v1 proto by
4
+ // protoc-gen-es (see buf.gen.yaml + the `generate` script); this module is the
5
+ // thin ergonomic seam over it. It does three things and nothing more:
6
+ //
7
+ // 1. Re-export the generated message types + service descriptors, so a
8
+ // consumer imports everything from one entry point.
9
+ // 2. Provide `connect(endpoint, opts?)`, which builds ONE gRPC-web transport
10
+ // (fetch-based — runs in a Cloudflare Worker / V8 isolate, interoperating
11
+ // with the server's tonic-web surface) and returns a client for every
12
+ // service over that shared transport.
13
+ // 3. Centralize tenant scoping: like the Rust `RemoteSession::connect`, it
14
+ // mints one opaque session id per connection and injects it on every
15
+ // outbound request as the `jammi-session-id` header — the key the server's
16
+ // tenant interceptor binds tenant state against (set via the SessionService
17
+ // tenant trio). No per-call header plumbing leaks to consumers.
18
+ //
19
+ // Encoding/decoding is entirely the generated code's job; this file holds no
20
+ // hand-rolled protobuf logic.
21
+ import { createClient } from "@connectrpc/connect";
22
+ import { createGrpcWebTransport } from "@connectrpc/connect-web";
23
+ import { SessionService } from "./gen/jammi/v1/session_pb.js";
24
+ import { EmbeddingService } from "./gen/jammi/v1/embedding_pb.js";
25
+ import { InferenceService } from "./gen/jammi/v1/inference_pb.js";
26
+ import { EvalService } from "./gen/jammi/v1/eval_pb.js";
27
+ import { FineTuneService } from "./gen/jammi/v1/fine_tune_pb.js";
28
+ import { MutableTableService } from "./gen/jammi/v1/mutable_table_pb.js";
29
+ import { ChannelService } from "./gen/jammi/v1/channel_pb.js";
30
+ import { TriggerService } from "./gen/jammi/v1/trigger_pb.js";
31
+ import { AuditService } from "./gen/jammi/v1/audit_pb.js";
32
+ // Re-export the full generated surface (messages, enums, service descriptors).
33
+ export * from "./gen/jammi/v1/session_pb.js";
34
+ export * from "./gen/jammi/v1/embedding_pb.js";
35
+ export * from "./gen/jammi/v1/inference_pb.js";
36
+ export * from "./gen/jammi/v1/eval_pb.js";
37
+ export * from "./gen/jammi/v1/fine_tune_pb.js";
38
+ export * from "./gen/jammi/v1/mutable_table_pb.js";
39
+ export * from "./gen/jammi/v1/channel_pb.js";
40
+ export * from "./gen/jammi/v1/trigger_pb.js";
41
+ export * from "./gen/jammi/v1/audit_pb.js";
42
+ export * from "./gen/jammi/v1/error_pb.js";
43
+ /**
44
+ * The request header carrying a connection's opaque session id. The server's
45
+ * Tonic TenantInterceptor reads it on every request and resolves the bound
46
+ * tenant; it is the same header the Rust SDK and Flight SQL lane use. Kept in
47
+ * one place so the value never drifts across the seam.
48
+ */
49
+ export const SESSION_HEADER = "jammi-session-id";
50
+ /** Mint an opaque per-connection session id (a v4 UUID). */
51
+ function mintSessionId() {
52
+ // `crypto.randomUUID` is available in every target runtime: browsers,
53
+ // Cloudflare Workers / V8 isolates, and Node >= 18.
54
+ return crypto.randomUUID();
55
+ }
56
+ /**
57
+ * Connect to a Jammi engine's `jammi.v1` gRPC-web endpoint and return a client
58
+ * for every service.
59
+ *
60
+ * @param endpoint The engine's base URL (e.g. `"https://engine.example.com"`).
61
+ * Requests go to `<endpoint>/<package>.<Service>/<Method>`.
62
+ */
63
+ export function connect(endpoint, opts = {}) {
64
+ const sessionId = opts.sessionId ?? mintSessionId();
65
+ // Inject the session header on every outbound request (unary and streaming),
66
+ // mirroring the Rust SDK's SessionHeader interceptor. Applied innermost so a
67
+ // consumer-supplied interceptor cannot accidentally drop it.
68
+ const sessionHeader = (next) => (req) => {
69
+ req.header.set(SESSION_HEADER, sessionId);
70
+ return next(req);
71
+ };
72
+ const transport = createGrpcWebTransport({
73
+ baseUrl: endpoint,
74
+ interceptors: [...(opts.interceptors ?? []), sessionHeader],
75
+ });
76
+ return {
77
+ sessionId,
78
+ session: createClient(SessionService, transport),
79
+ embedding: createClient(EmbeddingService, transport),
80
+ inference: createClient(InferenceService, transport),
81
+ eval: createClient(EvalService, transport),
82
+ fineTune: createClient(FineTuneService, transport),
83
+ mutableTable: createClient(MutableTableService, transport),
84
+ channel: createClient(ChannelService, transport),
85
+ trigger: createClient(TriggerService, transport),
86
+ audit: createClient(AuditService, transport),
87
+ };
88
+ }
89
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,45 @@
1
+ {
2
+ "name": "@f-inverse/jammi-client",
3
+ "version": "0.14.0",
4
+ "description": "Official TypeScript gRPC-web client for the Jammi engine, generated from the canonical jammi.v1 proto. Runs on fetch (Cloudflare Workers / V8 isolates).",
5
+ "license": "Apache-2.0",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/f-inverse/jammi-ai.git",
9
+ "directory": "clients/typescript"
10
+ },
11
+ "type": "module",
12
+ "engines": {
13
+ "node": ">=18"
14
+ },
15
+ "files": [
16
+ "dist"
17
+ ],
18
+ "exports": {
19
+ ".": {
20
+ "types": "./dist/index.d.ts",
21
+ "import": "./dist/index.js"
22
+ }
23
+ },
24
+ "scripts": {
25
+ "generate": "buf generate ../../crates/jammi-ai/proto",
26
+ "clean": "rm -rf dist src/gen",
27
+ "prebuild": "npm run clean && npm run generate",
28
+ "build": "tsc -p tsconfig.build.json",
29
+ "pretypecheck": "npm run generate",
30
+ "typecheck": "tsc -p tsconfig.json --noEmit",
31
+ "pretest": "npm run generate",
32
+ "test": "vitest run"
33
+ },
34
+ "dependencies": {
35
+ "@bufbuild/protobuf": "^2.12.0",
36
+ "@connectrpc/connect": "^2.1.1",
37
+ "@connectrpc/connect-web": "^2.1.1"
38
+ },
39
+ "devDependencies": {
40
+ "@bufbuild/buf": "^1.70.0",
41
+ "@bufbuild/protoc-gen-es": "^2.12.0",
42
+ "typescript": "^5.7.0",
43
+ "vitest": "^4.0.0"
44
+ }
45
+ }