@dexto/server 1.8.2 → 1.8.3

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.
@@ -117,6 +117,24 @@ class A2ASseEventSubscriber {
117
117
  },
118
118
  { signal }
119
119
  );
120
+ eventBus.on(
121
+ "interaction:blocked",
122
+ (payload) => {
123
+ this.broadcastToTask(payload.sessionId, "task.message", {
124
+ taskId: payload.sessionId,
125
+ message: {
126
+ role: "agent",
127
+ content: [{ type: "text", text: payload.content }],
128
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
129
+ messageId: payload.messageId
130
+ },
131
+ provider: payload.provider,
132
+ model: payload.model,
133
+ messageId: payload.messageId
134
+ });
135
+ },
136
+ { signal }
137
+ );
120
138
  eventBus.on(
121
139
  "llm:error",
122
140
  (payload) => {
@@ -1 +1 @@
1
- {"version":3,"file":"a2a-sse-subscriber.d.ts","sourceRoot":"","sources":["../../src/events/a2a-sse-subscriber.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAiB5C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,qBAAqB;IAC9B,OAAO,CAAC,WAAW,CAAyC;IAC5D,OAAO,CAAC,QAAQ,CAAC,CAAgB;IACjC,OAAO,CAAC,qBAAqB,CAAC,CAAkB;IAEhD;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IA4HxC;;;;;;;OAOG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAAC,UAAU,CAAC;IAiDxD;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IA0BvB;;;;;;;;OAQG;IACH,OAAO,CAAC,YAAY;IASpB;;;;;;;OAOG;IACH,OAAO,CAAC,cAAc;IAKtB;;OAEG;IACH,OAAO,IAAI,IAAI;IAgBf;;OAEG;IACH,kBAAkB,IAAI,MAAM;IAI5B;;OAEG;IACH,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;CASjD"}
1
+ {"version":3,"file":"a2a-sse-subscriber.d.ts","sourceRoot":"","sources":["../../src/events/a2a-sse-subscriber.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAiB5C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,qBAAqB;IAC9B,OAAO,CAAC,WAAW,CAAyC;IAC5D,OAAO,CAAC,QAAQ,CAAC,CAAgB;IACjC,OAAO,CAAC,qBAAqB,CAAC,CAAkB;IAEhD;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IA+IxC;;;;;;;OAOG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAAC,UAAU,CAAC;IAiDxD;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IA0BvB;;;;;;;;OAQG;IACH,OAAO,CAAC,YAAY;IASpB;;;;;;;OAOG;IACH,OAAO,CAAC,cAAc;IAKtB;;OAEG;IACH,OAAO,IAAI,IAAI;IAgBf;;OAEG;IACH,kBAAkB,IAAI,MAAM;IAI5B;;OAEG;IACH,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;CASjD"}
@@ -94,6 +94,24 @@ class A2ASseEventSubscriber {
94
94
  },
95
95
  { signal }
96
96
  );
97
+ eventBus.on(
98
+ "interaction:blocked",
99
+ (payload) => {
100
+ this.broadcastToTask(payload.sessionId, "task.message", {
101
+ taskId: payload.sessionId,
102
+ message: {
103
+ role: "agent",
104
+ content: [{ type: "text", text: payload.content }],
105
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
106
+ messageId: payload.messageId
107
+ },
108
+ provider: payload.provider,
109
+ model: payload.model,
110
+ messageId: payload.messageId
111
+ });
112
+ },
113
+ { signal }
114
+ );
97
115
  eventBus.on(
98
116
  "llm:error",
99
117
  (payload) => {
@@ -29,6 +29,7 @@ const SESSION_EVENT_NAMES = [
29
29
  "llm:thinking",
30
30
  "llm:chunk",
31
31
  "llm:response",
32
+ "interaction:blocked",
32
33
  "llm:tool-call",
33
34
  "llm:tool-call-partial",
34
35
  "llm:tool-result",
@@ -59,6 +60,9 @@ function serializeEventPayload(eventName, payload) {
59
60
  }
60
61
  return { ...payload };
61
62
  }
63
+ function isSessionScopedPayload(payload) {
64
+ return typeof payload === "object" && payload !== null && "sessionId" in payload && typeof payload.sessionId === "string";
65
+ }
62
66
  class SessionSseEventSubscriber {
63
67
  connections = /* @__PURE__ */ new Map();
64
68
  globalAbortController;
@@ -70,7 +74,7 @@ class SessionSseEventSubscriber {
70
74
  const subscribeSessionEvent = (eventName) => {
71
75
  const listener = (...args) => {
72
76
  const [payload] = args;
73
- if (!payload || typeof payload !== "object" || !("sessionId" in payload) || typeof payload.sessionId !== "string") {
77
+ if (!isSessionScopedPayload(payload)) {
74
78
  return;
75
79
  }
76
80
  this.broadcastToSession(
@@ -1 +1 @@
1
- {"version":3,"file":"session-sse-subscriber.d.ts","sourceRoot":"","sources":["../../src/events/session-sse-subscriber.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAwC,MAAM,iBAAiB,CAAC;AACvF,OAAO,KAAK,EAAE,aAAa,EAA2C,MAAM,aAAa,CAAC;AAwD1F,qBAAa,yBAAyB;IAClC,OAAO,CAAC,WAAW,CAA2C;IAC9D,OAAO,CAAC,qBAAqB,CAA8B;IAE3D,SAAS,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAsCxC,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,CAAC,UAAU,CAAC;IAsC3D,OAAO,CAAC,kBAAkB;IAgC1B,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,cAAc;IAKtB,OAAO,IAAI,IAAI;CASlB"}
1
+ {"version":3,"file":"session-sse-subscriber.d.ts","sourceRoot":"","sources":["../../src/events/session-sse-subscriber.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAwC,MAAM,iBAAiB,CAAC;AACvF,OAAO,KAAK,EAAE,aAAa,EAA2C,MAAM,aAAa,CAAC;AAmE1F,qBAAa,yBAAyB;IAClC,OAAO,CAAC,WAAW,CAA2C;IAC9D,OAAO,CAAC,qBAAqB,CAA8B;IAE3D,SAAS,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAiCxC,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,CAAC,UAAU,CAAC;IAsC3D,OAAO,CAAC,kBAAkB;IAgC1B,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,cAAc;IAKtB,OAAO,IAAI,IAAI;CASlB"}
@@ -6,6 +6,7 @@ const SESSION_EVENT_NAMES = [
6
6
  "llm:thinking",
7
7
  "llm:chunk",
8
8
  "llm:response",
9
+ "interaction:blocked",
9
10
  "llm:tool-call",
10
11
  "llm:tool-call-partial",
11
12
  "llm:tool-result",
@@ -36,6 +37,9 @@ function serializeEventPayload(eventName, payload) {
36
37
  }
37
38
  return { ...payload };
38
39
  }
40
+ function isSessionScopedPayload(payload) {
41
+ return typeof payload === "object" && payload !== null && "sessionId" in payload && typeof payload.sessionId === "string";
42
+ }
39
43
  class SessionSseEventSubscriber {
40
44
  connections = /* @__PURE__ */ new Map();
41
45
  globalAbortController;
@@ -47,7 +51,7 @@ class SessionSseEventSubscriber {
47
51
  const subscribeSessionEvent = (eventName) => {
48
52
  const listener = (...args) => {
49
53
  const [payload] = args;
50
- if (!payload || typeof payload !== "object" || !("sessionId" in payload) || typeof payload.sessionId !== "string") {
54
+ if (!isSessionScopedPayload(payload)) {
51
55
  return;
52
56
  }
53
57
  this.broadcastToSession(
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dexto/server",
3
- "version": "1.8.2",
3
+ "version": "1.8.3",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -31,13 +31,13 @@
31
31
  "ws": "^8.18.1",
32
32
  "yaml": "^2.8.3",
33
33
  "@modelcontextprotocol/sdk": "^1.28.0",
34
- "@dexto/agent-config": "1.8.2",
35
- "@dexto/agent-management": "1.8.2",
36
- "@dexto/core": "1.8.2",
37
- "@dexto/image-local": "1.8.2",
38
- "@dexto/llm": "1.8.2",
39
- "@dexto/storage": "1.8.2",
40
- "@dexto/tools-scheduler": "1.8.2"
34
+ "@dexto/agent-config": "1.8.3",
35
+ "@dexto/agent-management": "1.8.3",
36
+ "@dexto/core": "1.8.3",
37
+ "@dexto/image-local": "1.8.3",
38
+ "@dexto/llm": "1.8.3",
39
+ "@dexto/storage": "1.8.3",
40
+ "@dexto/tools-scheduler": "1.8.3"
41
41
  },
42
42
  "files": [
43
43
  "dist",