@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.
- package/README.md +68 -0
- package/dist/gen/jammi/v1/audit_pb.d.ts +213 -0
- package/dist/gen/jammi/v1/audit_pb.d.ts.map +1 -0
- package/dist/gen/jammi/v1/audit_pb.js +63 -0
- package/dist/gen/jammi/v1/audit_pb.js.map +1 -0
- package/dist/gen/jammi/v1/channel_pb.d.ts +158 -0
- package/dist/gen/jammi/v1/channel_pb.d.ts.map +1 -0
- package/dist/gen/jammi/v1/channel_pb.js +87 -0
- package/dist/gen/jammi/v1/channel_pb.js.map +1 -0
- package/dist/gen/jammi/v1/embedding_pb.d.ts +514 -0
- package/dist/gen/jammi/v1/embedding_pb.d.ts.map +1 -0
- package/dist/gen/jammi/v1/embedding_pb.js +178 -0
- package/dist/gen/jammi/v1/embedding_pb.js.map +1 -0
- package/dist/gen/jammi/v1/error_pb.d.ts +739 -0
- package/dist/gen/jammi/v1/error_pb.d.ts.map +1 -0
- package/dist/gen/jammi/v1/error_pb.js +94 -0
- package/dist/gen/jammi/v1/error_pb.js.map +1 -0
- package/dist/gen/jammi/v1/eval_pb.d.ts +821 -0
- package/dist/gen/jammi/v1/eval_pb.d.ts.map +1 -0
- package/dist/gen/jammi/v1/eval_pb.js +187 -0
- package/dist/gen/jammi/v1/eval_pb.js.map +1 -0
- package/dist/gen/jammi/v1/fine_tune_pb.d.ts +513 -0
- package/dist/gen/jammi/v1/fine_tune_pb.d.ts.map +1 -0
- package/dist/gen/jammi/v1/fine_tune_pb.js +231 -0
- package/dist/gen/jammi/v1/fine_tune_pb.js.map +1 -0
- package/dist/gen/jammi/v1/inference_pb.d.ts +144 -0
- package/dist/gen/jammi/v1/inference_pb.d.ts.map +1 -0
- package/dist/gen/jammi/v1/inference_pb.js +78 -0
- package/dist/gen/jammi/v1/inference_pb.js.map +1 -0
- package/dist/gen/jammi/v1/mutable_table_pb.d.ts +183 -0
- package/dist/gen/jammi/v1/mutable_table_pb.d.ts.map +1 -0
- package/dist/gen/jammi/v1/mutable_table_pb.js +59 -0
- package/dist/gen/jammi/v1/mutable_table_pb.js.map +1 -0
- package/dist/gen/jammi/v1/session_pb.d.ts +104 -0
- package/dist/gen/jammi/v1/session_pb.d.ts.map +1 -0
- package/dist/gen/jammi/v1/session_pb.js +38 -0
- package/dist/gen/jammi/v1/session_pb.js.map +1 -0
- package/dist/gen/jammi/v1/trigger_pb.d.ts +399 -0
- package/dist/gen/jammi/v1/trigger_pb.d.ts.map +1 -0
- package/dist/gen/jammi/v1/trigger_pb.js +80 -0
- package/dist/gen/jammi/v1/trigger_pb.js.map +1 -0
- package/dist/index.d.ts +68 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +89 -0
- package/dist/index.js.map +1 -0
- 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"}
|
package/dist/index.d.ts
ADDED
|
@@ -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
|
+
}
|