@kilnai/runtime 0.9.2 → 0.13.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 (39) hide show
  1. package/dist/gateway/gateway-server.d.ts.map +1 -1
  2. package/dist/gateway/gateway-server.js +17 -6
  3. package/dist/gateway/gateway-server.js.map +1 -1
  4. package/dist/gateway/knowledge-admin-routes.d.ts.map +1 -1
  5. package/dist/gateway/knowledge-admin-routes.js +37 -0
  6. package/dist/gateway/knowledge-admin-routes.js.map +1 -1
  7. package/dist/gateway/message-pipeline.d.ts +12 -1
  8. package/dist/gateway/message-pipeline.d.ts.map +1 -1
  9. package/dist/gateway/message-pipeline.js +119 -1
  10. package/dist/gateway/message-pipeline.js.map +1 -1
  11. package/dist/gateway/tenant-admin-routes.d.ts.map +1 -1
  12. package/dist/gateway/tenant-admin-routes.js +3 -0
  13. package/dist/gateway/tenant-admin-routes.js.map +1 -1
  14. package/dist/gateway/visitor-sanitizer.d.ts +12 -0
  15. package/dist/gateway/visitor-sanitizer.d.ts.map +1 -0
  16. package/dist/gateway/visitor-sanitizer.js +73 -0
  17. package/dist/gateway/visitor-sanitizer.js.map +1 -0
  18. package/dist/gateway/whatsapp-webhook-routes.d.ts.map +1 -1
  19. package/dist/gateway/whatsapp-webhook-routes.js +81 -0
  20. package/dist/gateway/whatsapp-webhook-routes.js.map +1 -1
  21. package/dist/gateway/ws-tenant-routes.d.ts.map +1 -1
  22. package/dist/gateway/ws-tenant-routes.js +22 -2
  23. package/dist/gateway/ws-tenant-routes.js.map +1 -1
  24. package/dist/session/mode-b-orchestrator.d.ts +1 -0
  25. package/dist/session/mode-b-orchestrator.d.ts.map +1 -1
  26. package/dist/session/mode-b-orchestrator.js +3 -0
  27. package/dist/session/mode-b-orchestrator.js.map +1 -1
  28. package/dist/session/mode-b-session.d.ts +11 -0
  29. package/dist/session/mode-b-session.d.ts.map +1 -1
  30. package/dist/session/mode-b-session.js +29 -0
  31. package/dist/session/mode-b-session.js.map +1 -1
  32. package/dist/session/repetitive-abuse-detector.d.ts +12 -0
  33. package/dist/session/repetitive-abuse-detector.d.ts.map +1 -0
  34. package/dist/session/repetitive-abuse-detector.js +47 -0
  35. package/dist/session/repetitive-abuse-detector.js.map +1 -0
  36. package/dist/session/session-serializer.d.ts.map +1 -1
  37. package/dist/session/session-serializer.js +3 -0
  38. package/dist/session/session-serializer.js.map +1 -1
  39. package/package.json +2 -2
@@ -22,6 +22,9 @@ export interface SerializedSessionData {
22
22
  readonly agentTurnHistory: readonly AgentTurnEntry[];
23
23
  readonly handoffCount: number;
24
24
  readonly lastRouteChangeAt: number;
25
+ readonly totalTokens?: number;
26
+ readonly userTurnCount?: number;
27
+ readonly lastHumanMessageAt?: number | null;
25
28
  }
26
29
  export interface ModeBSessionConfig {
27
30
  readonly appName: string;
@@ -47,6 +50,9 @@ export declare class ModeBSession {
47
50
  private _agentTurnHistory;
48
51
  private _handoffCount;
49
52
  private _lastRouteChangeAt;
53
+ private _totalTokens;
54
+ private _userTurnCount;
55
+ private _lastHumanMessageAt;
50
56
  constructor(config: ModeBSessionConfig);
51
57
  get lastActivityAt(): Date;
52
58
  get isExpired(): boolean;
@@ -68,6 +74,11 @@ export declare class ModeBSession {
68
74
  get agentTurnHistory(): readonly AgentTurnEntry[];
69
75
  get handoffCount(): number;
70
76
  get lastRouteChangeAt(): number;
77
+ get totalTokens(): number;
78
+ get userTurnCount(): number;
79
+ get lastHumanMessageAt(): number | null;
80
+ recordHumanMessage(): void;
81
+ accumulateTokens(count: number): void;
71
82
  setActiveAgent(agentId: string, handoffBrief?: string): void;
72
83
  setSystemPrompt(prompt: string): void;
73
84
  lastAssistantTexts(count: number): string[];
@@ -1 +1 @@
1
- {"version":3,"file":"mode-b-session.d.ts","sourceRoot":"","sources":["../../src/session/mode-b-session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,gBAAgB,EAAE,SAAS,cAAc,EAAE,CAAC;IACrD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,qBAAa,YAAY;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IAEzB,OAAO,CAAC,eAAe,CAAO;IAC9B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;IAC/C,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,iBAAiB,CAAwB;IACjD,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,kBAAkB,CAAK;gBAEnB,MAAM,EAAE,kBAAkB;IAWtC,IAAI,cAAc,IAAI,IAAI,CAEzB;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,mBAAmB,IAAI,SAAS,YAAY,EAAE,CAEjD;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,qEAAqE;IACrE,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,oFAAoF;IACpF,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,qBAAqB,GAAG,YAAY;IAgChE,cAAc,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,GAAG,IAAI;IAKnD,mBAAmB,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,GAAG,IAAI;IAKxD,KAAK,IAAI,IAAI;IAKb,IAAI,WAAW,IAAI,WAAW,CAE7B;IAED,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAKvC,IAAI,aAAa,IAAI,MAAM,GAAG,IAAI,CAEjC;IAED,IAAI,gBAAgB,IAAI,SAAS,cAAc,EAAE,CAEhD;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI;IAU5D,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKrC,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAU3C,qBAAqB,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,GAAG,IAAI;CAI3D"}
1
+ {"version":3,"file":"mode-b-session.d.ts","sourceRoot":"","sources":["../../src/session/mode-b-session.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,9 @@ export class ModeBSession {
17
17
  _agentTurnHistory = [];
18
18
  _handoffCount = 0;
19
19
  _lastRouteChangeAt = 0;
20
+ _totalTokens = 0;
21
+ _userTurnCount = 0;
22
+ _lastHumanMessageAt = null;
20
23
  constructor(config) {
21
24
  this.appName = config.appName;
22
25
  this.tenantId = config.tenantId;
@@ -80,6 +83,15 @@ export class ModeBSession {
80
83
  session._agentTurnHistory = [...data.agentTurnHistory];
81
84
  session._handoffCount = data.handoffCount;
82
85
  session._lastRouteChangeAt = data.lastRouteChangeAt;
86
+ // Restore token/turn counters (userTurnCount was incremented during history replay -- override with stored value)
87
+ session._totalTokens = data.totalTokens ?? 0;
88
+ if (data.userTurnCount !== undefined) {
89
+ session._userTurnCount = data.userTurnCount;
90
+ }
91
+ // Restore coexistence timestamp
92
+ if (data.lastHumanMessageAt != null) {
93
+ session._lastHumanMessageAt = data.lastHumanMessageAt;
94
+ }
83
95
  // Restore version and record loaded version for conflict detection
84
96
  const storedVersion = data.version;
85
97
  session._version = storedVersion;
@@ -88,6 +100,7 @@ export class ModeBSession {
88
100
  }
89
101
  addUserMessage(parts) {
90
102
  this._history.push({ role: "user", parts });
103
+ this._userTurnCount++;
91
104
  this.touch();
92
105
  }
93
106
  addAssistantMessage(parts) {
@@ -117,6 +130,22 @@ export class ModeBSession {
117
130
  get lastRouteChangeAt() {
118
131
  return this._lastRouteChangeAt;
119
132
  }
133
+ get totalTokens() {
134
+ return this._totalTokens;
135
+ }
136
+ get userTurnCount() {
137
+ return this._userTurnCount;
138
+ }
139
+ get lastHumanMessageAt() {
140
+ return this._lastHumanMessageAt;
141
+ }
142
+ recordHumanMessage() {
143
+ this._lastHumanMessageAt = Date.now();
144
+ this._version++;
145
+ }
146
+ accumulateTokens(count) {
147
+ this._totalTokens += count;
148
+ }
120
149
  setActiveAgent(agentId, handoffBrief) {
121
150
  if (this._activeAgentId === agentId)
122
151
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"mode-b-session.js","sourceRoot":"","sources":["../../src/session/mode-b-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mode-b-session.js","sourceRoot":"","sources":["../../src/session/mode-b-session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { AgentMessage } from "@kilnai/core";
2
+ export interface AbuseSignal {
3
+ readonly type: "repetition" | "sequential";
4
+ readonly confidence: number;
5
+ readonly detail: string;
6
+ }
7
+ export interface AbuseDetectionConfig {
8
+ readonly windowSize?: number;
9
+ readonly repetitionThreshold?: number;
10
+ }
11
+ export declare function detectRepetitiveAbuse(userText: string, recentHistory: readonly AgentMessage[], config?: AbuseDetectionConfig): AbuseSignal | null;
12
+ //# sourceMappingURL=repetitive-abuse-detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repetitive-abuse-detector.d.ts","sourceRoot":"","sources":["../../src/session/repetitive-abuse-detector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CACvC;AAID,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,SAAS,YAAY,EAAE,EACtC,MAAM,CAAC,EAAE,oBAAoB,GAC5B,WAAW,GAAG,IAAI,CAmDpB"}
@@ -0,0 +1,47 @@
1
+ import { extractText } from "@kilnai/core";
2
+ const ABUSE_KEYWORDS = ["continue", "go on", "next", "more", "keep going"];
3
+ export function detectRepetitiveAbuse(userText, recentHistory, config) {
4
+ const windowSize = config?.windowSize ?? 5;
5
+ const threshold = config?.repetitionThreshold ?? 0.6;
6
+ // Extract recent user messages
7
+ const recentUserTexts = [];
8
+ for (let i = recentHistory.length - 1; i >= 0 && recentUserTexts.length < windowSize; i--) {
9
+ if (recentHistory[i].role === "user") {
10
+ recentUserTexts.push(extractText(recentHistory[i].parts).toLowerCase().trim());
11
+ }
12
+ }
13
+ if (recentUserTexts.length < 2)
14
+ return null;
15
+ const currentLower = userText.toLowerCase().trim();
16
+ // Check 1: Exact repetition (same message repeated)
17
+ const exactMatches = recentUserTexts.filter(t => t === currentLower).length;
18
+ if (exactMatches / recentUserTexts.length >= threshold) {
19
+ return {
20
+ type: "repetition",
21
+ confidence: exactMatches / recentUserTexts.length,
22
+ detail: `Repeated message "${currentLower.slice(0, 50)}" ${exactMatches}/${recentUserTexts.length} times`,
23
+ };
24
+ }
25
+ // Check 2: Abuse keyword spam (continue/next/more repeatedly)
26
+ const keywordMessages = [currentLower, ...recentUserTexts];
27
+ const keywordMatches = keywordMessages.filter(t => ABUSE_KEYWORDS.some(kw => t === kw || t.startsWith(kw + " ") || t.endsWith(" " + kw))).length;
28
+ if (keywordMatches / keywordMessages.length >= threshold) {
29
+ return {
30
+ type: "repetition",
31
+ confidence: keywordMatches / keywordMessages.length,
32
+ detail: `Abuse keyword pattern detected ${keywordMatches}/${keywordMessages.length} messages`,
33
+ };
34
+ }
35
+ // Check 3: Sequential counting (1, 2, 3, 4...)
36
+ const allTexts = [currentLower, ...recentUserTexts];
37
+ const numberCount = allTexts.filter(t => /^\d+$/.test(t)).length;
38
+ if (numberCount >= 3 && numberCount / allTexts.length >= threshold) {
39
+ return {
40
+ type: "sequential",
41
+ confidence: numberCount / allTexts.length,
42
+ detail: `Sequential number pattern: ${numberCount}/${allTexts.length} messages are bare numbers`,
43
+ };
44
+ }
45
+ return null;
46
+ }
47
+ //# sourceMappingURL=repetitive-abuse-detector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repetitive-abuse-detector.js","sourceRoot":"","sources":["../../src/session/repetitive-abuse-detector.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"session-serializer.d.ts","sourceRoot":"","sources":["../../src/session/session-serializer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAmB9D;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAG7D"}
1
+ {"version":3,"file":"session-serializer.d.ts","sourceRoot":"","sources":["../../src/session/session-serializer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAsB9D;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAG7D"}
@@ -16,6 +16,9 @@ export function serializeSession(session) {
16
16
  agentTurnHistory: session.agentTurnHistory,
17
17
  handoffCount: session.handoffCount,
18
18
  lastRouteChangeAt: session.lastRouteChangeAt,
19
+ totalTokens: session.totalTokens,
20
+ userTurnCount: session.userTurnCount,
21
+ lastHumanMessageAt: session.lastHumanMessageAt,
19
22
  };
20
23
  return JSON.stringify(data);
21
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session-serializer.js","sourceRoot":"","sources":["../../src/session/session-serializer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,MAAM,UAAU,gBAAgB,CAAC,OAAqB;IACpD,MAAM,IAAI,GAA0B;QAClC,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE;QAC1C,cAAc,EAAE,OAAO,CAAC,cAAc,CAAC,WAAW,EAAE;QACpD,OAAO,EAAE,OAAO,CAAC,mBAAqC;QACtD,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;KAC7C,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA0B,CAAC;IACvD,OAAO,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"session-serializer.js","sourceRoot":"","sources":["../../src/session/session-serializer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,MAAM,UAAU,gBAAgB,CAAC,OAAqB;IACpD,MAAM,IAAI,GAA0B;QAClC,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE;QAC1C,cAAc,EAAE,OAAO,CAAC,cAAc,CAAC,WAAW,EAAE;QACpD,OAAO,EAAE,OAAO,CAAC,mBAAqC;QACtD,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;QAC5C,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;KAC/C,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA0B,CAAC;IACvD,OAAO,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAC3C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kilnai/runtime",
3
- "version": "0.9.2",
3
+ "version": "0.13.0",
4
4
  "description": "Multi-app gateway server, multi-tenant management, and channel adapters for @kilnai/core",
5
5
  "type": "module",
6
6
  "exports": {
@@ -42,7 +42,7 @@
42
42
  "hono": "^4.7.0"
43
43
  },
44
44
  "peerDependencies": {
45
- "@kilnai/core": "^0.9.2",
45
+ "@kilnai/core": "^0.13.0",
46
46
  "@opentelemetry/api": "^1.9.0",
47
47
  "ioredis": ">=5.0.0"
48
48
  },