@guava-ai/guava-sdk 0.28.0 → 0.29.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.
@@ -1,16 +1,19 @@
1
1
  import { type Logger } from "./logging.ts";
2
- export type HealthState = "starting" | "live" | "stopped";
2
+ export type HealthState = "starting" | "running" | "draining" | "stopped";
3
3
  export declare class HealthContext {
4
4
  private _state;
5
5
  setState(newState: HealthState): void;
6
6
  ready(): void;
7
+ draining(): void;
7
8
  stopped(): void;
8
9
  isLive(): boolean;
10
+ isReady(): boolean;
9
11
  }
10
12
  export declare class MultiHealthContext {
11
13
  private _ctxs;
12
14
  createCtx(): HealthContext;
13
15
  isLive(): boolean;
16
+ isReady(): boolean;
14
17
  }
15
18
  export interface HealthServerOptions {
16
19
  host?: string;
@@ -10,13 +10,19 @@ class HealthContext {
10
10
  this._state = newState;
11
11
  }
12
12
  ready() {
13
- this.setState("live");
13
+ this.setState("running");
14
+ }
15
+ draining() {
16
+ this.setState("draining");
14
17
  }
15
18
  stopped() {
16
19
  this.setState("stopped");
17
20
  }
18
21
  isLive() {
19
- return this._state === "live";
22
+ return this._state !== "stopped";
23
+ }
24
+ isReady() {
25
+ return this._state === "running";
20
26
  }
21
27
  }
22
28
  exports.HealthContext = HealthContext;
@@ -30,6 +36,9 @@ class MultiHealthContext {
30
36
  isLive() {
31
37
  return this._ctxs.length > 0 && this._ctxs.every((ctx) => ctx.isLive());
32
38
  }
39
+ isReady() {
40
+ return this._ctxs.length > 0 && this._ctxs.every((ctx) => ctx.isReady());
41
+ }
33
42
  }
34
43
  exports.MultiHealthContext = MultiHealthContext;
35
44
  class HealthServer {
@@ -48,6 +57,9 @@ class HealthServer {
48
57
  if (req.method === "GET" && req.url === "/live") {
49
58
  res.statusCode = healthCtx.isLive() ? 200 : 503;
50
59
  }
60
+ else if (req.method === "GET" && req.url === "/ready") {
61
+ res.statusCode = healthCtx.isReady() ? 200 : 503;
62
+ }
51
63
  else {
52
64
  res.statusCode = 404;
53
65
  }
@@ -1 +1 @@
1
- {"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/health.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/health.ts"],"names":[],"mappings":";;;AAgIA,0CAKC;AArID,yCAAsD;AACtD,6CAA6D;AAI7D,MAAa,aAAa;IAChB,MAAM,GAAgB,UAAU,CAAC;IAEzC,QAAQ,CAAC,QAAqB;QAC5B,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;IACzB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO;QACL,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC;IACnC,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC;IACnC,CAAC;CACF;AA1BD,sCA0BC;AAED,MAAa,kBAAkB;IACrB,KAAK,GAAoB,EAAE,CAAC;IAEpC,SAAS;QACP,MAAM,GAAG,GAAG,IAAI,aAAa,EAAE,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3E,CAAC;CACF;AAhBD,gDAgBC;AAQD,MAAa,YAAY;IACN,OAAO,CAAS;IAChB,OAAO,CAAS;IACzB,SAAS,GAAyB,IAAI,CAAC;IAE/C,YAAoB,MAAc,EAAE,MAAc;QAChD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,KAAK,CAChB,SAA6C,EAC7C,UAA+B,EAAE;QAEjC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,SAAS,CAAC;QACvC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC;QAClC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAA,6BAAgB,GAAE,CAAC;QAEpD,MAAM,MAAM,GAAG,IAAA,wBAAY,EAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACvC,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,GAAG,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;gBAChD,GAAG,CAAC,UAAU,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YAClD,CAAC;iBAAM,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,GAAG,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;gBACxD,GAAG,CAAC,UAAU,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACvB,CAAC;YACD,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC7B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;gBAC7B,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC5B,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,oDAAoD,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC9E,OAAO,IAAI,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC,SAAS,CAAC;QAC1C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QACxD,IAAI,CAAC,SAAS,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrD,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;YACnC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;QACzB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;CACF;AAtDD,oCAsDC;AAED,MAAM,eAAe,GAAoB;IACvC,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,KAAI,CAAC;CACjC,CAAC;AAEF,SAAS,SAAS;IAChB,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IAChF,OAAO,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,IAAI,CAAC;AAC/D,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,eAAe,CACnC,SAA6C;IAE7C,IAAI,CAAC,SAAS,EAAE;QAAE,OAAO,eAAe,CAAC;IACzC,OAAO,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACvC,CAAC"}
@@ -1 +1 @@
1
- export declare const SDK_VERSION = "0.28.0";
1
+ export declare const SDK_VERSION = "0.29.0";
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SDK_VERSION = void 0;
4
- exports.SDK_VERSION = "0.28.0";
4
+ exports.SDK_VERSION = "0.29.0";
5
5
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@guava-ai/guava-sdk",
3
3
  "description": "The official TypeScript SDK for building Guava voice agents.",
4
4
  "homepage": "https://docs.goguava.ai/typescript-sdk/",
5
- "version": "0.28.0",
5
+ "version": "0.29.0",
6
6
  "type": "commonjs",
7
7
  "main": "dist/src/index.js",
8
8
  "types": "dist/src/index.d.ts",
package/src/health.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { type Server, createServer } from "node:http";
2
2
  import { getDefaultLogger, type Logger } from "./logging.ts";
3
3
 
4
- export type HealthState = "starting" | "live" | "stopped";
4
+ export type HealthState = "starting" | "running" | "draining" | "stopped";
5
5
 
6
6
  export class HealthContext {
7
7
  private _state: HealthState = "starting";
@@ -11,7 +11,11 @@ export class HealthContext {
11
11
  }
12
12
 
13
13
  ready(): void {
14
- this.setState("live");
14
+ this.setState("running");
15
+ }
16
+
17
+ draining(): void {
18
+ this.setState("draining");
15
19
  }
16
20
 
17
21
  stopped(): void {
@@ -19,7 +23,11 @@ export class HealthContext {
19
23
  }
20
24
 
21
25
  isLive(): boolean {
22
- return this._state === "live";
26
+ return this._state !== "stopped";
27
+ }
28
+
29
+ isReady(): boolean {
30
+ return this._state === "running";
23
31
  }
24
32
  }
25
33
 
@@ -35,6 +43,10 @@ export class MultiHealthContext {
35
43
  isLive(): boolean {
36
44
  return this._ctxs.length > 0 && this._ctxs.every((ctx) => ctx.isLive());
37
45
  }
46
+
47
+ isReady(): boolean {
48
+ return this._ctxs.length > 0 && this._ctxs.every((ctx) => ctx.isReady());
49
+ }
38
50
  }
39
51
 
40
52
  export interface HealthServerOptions {
@@ -64,6 +76,8 @@ export class HealthServer implements AsyncDisposable {
64
76
  const server = createServer((req, res) => {
65
77
  if (req.method === "GET" && req.url === "/live") {
66
78
  res.statusCode = healthCtx.isLive() ? 200 : 503;
79
+ } else if (req.method === "GET" && req.url === "/ready") {
80
+ res.statusCode = healthCtx.isReady() ? 200 : 503;
67
81
  } else {
68
82
  res.statusCode = 404;
69
83
  }
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const SDK_VERSION = "0.28.0";
1
+ export const SDK_VERSION = "0.29.0";