@pellux/goodvibes-sdk 0.33.3 → 0.33.5

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.
@@ -3,7 +3,7 @@
3
3
  "product": {
4
4
  "id": "goodvibes",
5
5
  "surface": "operator",
6
- "version": "0.33.3"
6
+ "version": "0.33.5"
7
7
  },
8
8
  "auth": {
9
9
  "modes": [
@@ -1 +1 @@
1
- {"version":3,"file":"session-broker-state.d.ts","sourceRoot":"","sources":["../../../src/platform/control-plane/session-broker-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,wBAAwB,EAC9B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,KAAK,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AA6H9G,wBAAgB,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,EAAE,CAE1F;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,oBAAoB,EAAE,CAE5F;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,wBAAwB,CAAC,GAAG,wBAAwB,EAAE,CAElG;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,0BAA0B,GAAG,IAAI,GAAG,SAAS,GAAG;IAC/F,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACpD,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;IACvD,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,wBAAwB,EAAE,CAAC,CAAC;CAC1D,CAgCA;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE;IACL,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC5D,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,oBAAoB,EAAE,CAAC,CAAC;IACxE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,wBAAwB,EAAE,CAAC,CAAC;CAC3E,EACD,oBAAoB,EAAE,MAAM,GAC3B,0BAA0B,CAQ5B;AAED,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,SAAS,wBAAwB,EAAE,EACjD,WAAW,EAAE,wBAAwB,GACpC,wBAAwB,EAAE,CAM5B;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,SAAS,wBAAwB,EAAE,GAAG,MAAM,CAI9F"}
1
+ {"version":3,"file":"session-broker-state.d.ts","sourceRoot":"","sources":["../../../src/platform/control-plane/session-broker-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,wBAAwB,EAC9B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,KAAK,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AA2Q9G,wBAAgB,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,EAAE,CAE1F;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,oBAAoB,EAAE,CAE5F;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,wBAAwB,CAAC,GAAG,wBAAwB,EAAE,CAElG;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,0BAA0B,GAAG,IAAI,GAAG,SAAS,GAAG;IAC/F,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACpD,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;IACvD,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,wBAAwB,EAAE,CAAC,CAAC;CAC1D,CAsCA;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE;IACL,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC5D,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,oBAAoB,EAAE,CAAC,CAAC;IACxE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,wBAAwB,EAAE,CAAC,CAAC;CAC3E,EACD,oBAAoB,EAAE,MAAM,GAC3B,0BAA0B,CAQ5B;AAED,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,SAAS,wBAAwB,EAAE,EACjD,WAAW,EAAE,wBAAwB,GACpC,wBAAwB,EAAE,CAM5B;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,SAAS,wBAAwB,EAAE,GAAG,MAAM,CAI9F"}
@@ -22,64 +22,166 @@ function validateOptionalNumber(value) {
22
22
  if (value !== undefined && !isFiniteNumber(value))
23
23
  throwInvalidSessionSnapshot();
24
24
  }
25
- function validateSessionParticipant(value) {
25
+ function hasSessionRecordPayload(value) {
26
+ return [
27
+ 'kind',
28
+ 'title',
29
+ 'status',
30
+ 'createdAt',
31
+ 'updatedAt',
32
+ 'lastActivityAt',
33
+ 'messageCount',
34
+ 'pendingInputCount',
35
+ 'lastMessageAt',
36
+ 'closedAt',
37
+ 'activeAgentId',
38
+ 'lastAgentId',
39
+ 'lastError',
40
+ 'routeIds',
41
+ 'surfaceKinds',
42
+ 'participants',
43
+ 'metadata',
44
+ ].some((key) => value[key] !== undefined);
45
+ }
46
+ function normalizeSessionParticipant(value) {
26
47
  if (!isRecord(value)
27
48
  || typeof value['surfaceKind'] !== 'string'
28
- || typeof value['surfaceId'] !== 'string'
29
- || !isFiniteNumber(value['lastSeenAt'])) {
49
+ || typeof value['surfaceId'] !== 'string') {
30
50
  throwInvalidSessionSnapshot();
31
51
  }
32
- validateOptionalString(value['externalId']);
33
- validateOptionalString(value['userId']);
34
- validateOptionalString(value['displayName']);
35
- validateOptionalString(value['routeId']);
52
+ const lastSeenAt = isFiniteNumber(value['lastSeenAt']) ? value['lastSeenAt'] : Date.now();
53
+ const externalId = typeof value['externalId'] === 'string' ? value['externalId'] : undefined;
54
+ const userId = typeof value['userId'] === 'string' ? value['userId'] : undefined;
55
+ const displayName = typeof value['displayName'] === 'string' ? value['displayName'] : undefined;
56
+ const routeId = typeof value['routeId'] === 'string' ? value['routeId'] : undefined;
57
+ return {
58
+ surfaceKind: value['surfaceKind'],
59
+ surfaceId: value['surfaceId'],
60
+ ...(externalId ? { externalId } : {}),
61
+ ...(userId ? { userId } : {}),
62
+ ...(displayName ? { displayName } : {}),
63
+ ...(routeId ? { routeId } : {}),
64
+ lastSeenAt,
65
+ };
36
66
  }
37
- function validateSessionRecord(value) {
67
+ function normalizeSessionRecord(value, messages, inputs) {
38
68
  if (!isRecord(value)
39
69
  || typeof value['id'] !== 'string'
40
- || typeof value['kind'] !== 'string'
41
- || !SESSION_KINDS.has(value['kind'])
42
- || typeof value['title'] !== 'string'
43
- || typeof value['status'] !== 'string'
44
- || !SESSION_STATUSES.has(value['status'])
45
- || !isFiniteNumber(value['createdAt'])
46
- || !isFiniteNumber(value['updatedAt'])
47
- || !isFiniteNumber(value['lastActivityAt'])
48
- || !isFiniteNumber(value['messageCount'])
49
- || !isFiniteNumber(value['pendingInputCount'])
50
- || !isStringArray(value['routeIds'])
51
- || !isStringArray(value['surfaceKinds'])
52
- || !Array.isArray(value['participants'])
53
- || !isRecord(value['metadata'])) {
70
+ || !hasSessionRecordPayload(value)) {
71
+ throwInvalidSessionSnapshot();
72
+ }
73
+ if (value['kind'] !== undefined && (typeof value['kind'] !== 'string' || !SESSION_KINDS.has(value['kind']))) {
74
+ throwInvalidSessionSnapshot();
75
+ }
76
+ if (value['status'] !== undefined && (typeof value['status'] !== 'string' || !SESSION_STATUSES.has(value['status']))) {
54
77
  throwInvalidSessionSnapshot();
55
78
  }
79
+ validateOptionalNumber(value['createdAt']);
80
+ validateOptionalNumber(value['updatedAt']);
81
+ validateOptionalNumber(value['lastActivityAt']);
82
+ validateOptionalNumber(value['messageCount']);
83
+ validateOptionalNumber(value['pendingInputCount']);
56
84
  validateOptionalNumber(value['lastMessageAt']);
57
85
  validateOptionalNumber(value['closedAt']);
58
86
  validateOptionalString(value['activeAgentId']);
59
87
  validateOptionalString(value['lastAgentId']);
60
88
  validateOptionalString(value['lastError']);
61
- for (const participant of value['participants'])
62
- validateSessionParticipant(participant);
89
+ if (value['routeIds'] !== undefined && !isStringArray(value['routeIds']))
90
+ throwInvalidSessionSnapshot();
91
+ if (value['surfaceKinds'] !== undefined && !isStringArray(value['surfaceKinds']))
92
+ throwInvalidSessionSnapshot();
93
+ if (value['participants'] !== undefined && !Array.isArray(value['participants']))
94
+ throwInvalidSessionSnapshot();
95
+ if (value['metadata'] !== undefined && !isRecord(value['metadata']))
96
+ throwInvalidSessionSnapshot();
97
+ const now = Date.now();
98
+ const id = value['id'];
99
+ const participants = (value['participants'] ?? []).map(normalizeSessionParticipant);
100
+ const routeIds = isStringArray(value['routeIds']) ? [...new Set(value['routeIds'])] : [];
101
+ const surfaceKinds = isStringArray(value['surfaceKinds'])
102
+ ? [...new Set(value['surfaceKinds'])]
103
+ : [...new Set(participants.map((participant) => participant.surfaceKind))];
104
+ const latestMessageAt = messages.reduce((latest, message) => latest === undefined || message.createdAt > latest ? message.createdAt : latest, undefined);
105
+ const latestInputAt = inputs.reduce((latest, input) => latest === undefined || input.updatedAt > latest ? input.updatedAt : latest, undefined);
106
+ const createdAt = isFiniteNumber(value['createdAt'])
107
+ ? value['createdAt']
108
+ : isFiniteNumber(value['updatedAt'])
109
+ ? value['updatedAt']
110
+ : now;
111
+ const updatedAt = isFiniteNumber(value['updatedAt']) ? value['updatedAt'] : createdAt;
112
+ const lastMessageAt = isFiniteNumber(value['lastMessageAt']) ? value['lastMessageAt'] : latestMessageAt;
113
+ const lastActivityAt = isFiniteNumber(value['lastActivityAt'])
114
+ ? value['lastActivityAt']
115
+ : Math.max(updatedAt, lastMessageAt ?? 0, latestInputAt ?? 0);
116
+ const activeAgentId = typeof value['activeAgentId'] === 'string' ? value['activeAgentId'] : undefined;
117
+ const lastAgentId = typeof value['lastAgentId'] === 'string' ? value['lastAgentId'] : undefined;
118
+ const lastError = typeof value['lastError'] === 'string' ? value['lastError'] : undefined;
119
+ const closedAt = isFiniteNumber(value['closedAt']) ? value['closedAt'] : undefined;
120
+ return {
121
+ id,
122
+ kind: typeof value['kind'] === 'string' && SESSION_KINDS.has(value['kind'])
123
+ ? value['kind']
124
+ : 'tui',
125
+ title: typeof value['title'] === 'string' && value['title'].trim().length > 0 ? value['title'] : `Session ${id}`,
126
+ status: typeof value['status'] === 'string' && SESSION_STATUSES.has(value['status'])
127
+ ? value['status']
128
+ : 'active',
129
+ createdAt,
130
+ updatedAt,
131
+ ...(lastMessageAt !== undefined ? { lastMessageAt } : {}),
132
+ ...(closedAt !== undefined ? { closedAt } : {}),
133
+ lastActivityAt,
134
+ messageCount: Math.max(isFiniteNumber(value['messageCount']) ? value['messageCount'] : 0, messages.length),
135
+ pendingInputCount: Math.max(isFiniteNumber(value['pendingInputCount']) ? value['pendingInputCount'] : 0, countPendingSessionInputs(inputs)),
136
+ routeIds,
137
+ surfaceKinds,
138
+ participants,
139
+ ...(activeAgentId ? { activeAgentId } : {}),
140
+ ...(lastAgentId ? { lastAgentId } : {}),
141
+ ...(lastError ? { lastError } : {}),
142
+ metadata: isRecord(value['metadata']) ? value['metadata'] : {},
143
+ };
63
144
  }
64
- function validateSessionMessage(value) {
145
+ function normalizeSessionMessage(value) {
65
146
  if (!isRecord(value)
66
147
  || typeof value['id'] !== 'string'
67
148
  || typeof value['sessionId'] !== 'string'
68
149
  || typeof value['role'] !== 'string'
69
150
  || !MESSAGE_ROLES.has(value['role'])
70
151
  || typeof value['body'] !== 'string'
71
- || !isFiniteNumber(value['createdAt'])
72
- || !isRecord(value['metadata'])) {
152
+ || !isFiniteNumber(value['createdAt'])) {
73
153
  throwInvalidSessionSnapshot();
74
154
  }
155
+ if (value['metadata'] !== undefined && !isRecord(value['metadata']))
156
+ throwInvalidSessionSnapshot();
75
157
  validateOptionalString(value['surfaceKind']);
76
158
  validateOptionalString(value['surfaceId']);
77
159
  validateOptionalString(value['routeId']);
78
160
  validateOptionalString(value['agentId']);
79
161
  validateOptionalString(value['userId']);
80
162
  validateOptionalString(value['displayName']);
163
+ const surfaceKind = typeof value['surfaceKind'] === 'string' ? value['surfaceKind'] : undefined;
164
+ const surfaceId = typeof value['surfaceId'] === 'string' ? value['surfaceId'] : undefined;
165
+ const routeId = typeof value['routeId'] === 'string' ? value['routeId'] : undefined;
166
+ const agentId = typeof value['agentId'] === 'string' ? value['agentId'] : undefined;
167
+ const userId = typeof value['userId'] === 'string' ? value['userId'] : undefined;
168
+ const displayName = typeof value['displayName'] === 'string' ? value['displayName'] : undefined;
169
+ return {
170
+ id: value['id'],
171
+ sessionId: value['sessionId'],
172
+ role: value['role'],
173
+ body: value['body'],
174
+ createdAt: value['createdAt'],
175
+ ...(surfaceKind ? { surfaceKind } : {}),
176
+ ...(surfaceId ? { surfaceId } : {}),
177
+ ...(routeId ? { routeId } : {}),
178
+ ...(agentId ? { agentId } : {}),
179
+ ...(userId ? { userId } : {}),
180
+ ...(displayName ? { displayName } : {}),
181
+ metadata: isRecord(value['metadata']) ? value['metadata'] : {},
182
+ };
81
183
  }
82
- function validateSessionInput(value) {
184
+ function normalizeSessionInput(value) {
83
185
  if (!isRecord(value)
84
186
  || typeof value['id'] !== 'string'
85
187
  || typeof value['sessionId'] !== 'string'
@@ -90,10 +192,11 @@ function validateSessionInput(value) {
90
192
  || typeof value['correlationId'] !== 'string'
91
193
  || typeof value['body'] !== 'string'
92
194
  || !isFiniteNumber(value['createdAt'])
93
- || !isFiniteNumber(value['updatedAt'])
94
- || !isRecord(value['metadata'])) {
195
+ || !isFiniteNumber(value['updatedAt'])) {
95
196
  throwInvalidSessionSnapshot();
96
197
  }
198
+ if (value['metadata'] !== undefined && !isRecord(value['metadata']))
199
+ throwInvalidSessionSnapshot();
97
200
  validateOptionalString(value['causationId']);
98
201
  validateOptionalString(value['routeId']);
99
202
  validateOptionalString(value['surfaceKind']);
@@ -106,6 +209,38 @@ function validateSessionInput(value) {
106
209
  validateOptionalString(value['error']);
107
210
  if (value['routing'] !== undefined && !isRecord(value['routing']))
108
211
  throwInvalidSessionSnapshot();
212
+ const causationId = typeof value['causationId'] === 'string' ? value['causationId'] : undefined;
213
+ const routeId = typeof value['routeId'] === 'string' ? value['routeId'] : undefined;
214
+ const surfaceKind = typeof value['surfaceKind'] === 'string' ? value['surfaceKind'] : undefined;
215
+ const surfaceId = typeof value['surfaceId'] === 'string' ? value['surfaceId'] : undefined;
216
+ const externalId = typeof value['externalId'] === 'string' ? value['externalId'] : undefined;
217
+ const threadId = typeof value['threadId'] === 'string' ? value['threadId'] : undefined;
218
+ const userId = typeof value['userId'] === 'string' ? value['userId'] : undefined;
219
+ const displayName = typeof value['displayName'] === 'string' ? value['displayName'] : undefined;
220
+ const activeAgentId = typeof value['activeAgentId'] === 'string' ? value['activeAgentId'] : undefined;
221
+ const error = typeof value['error'] === 'string' ? value['error'] : undefined;
222
+ return {
223
+ id: value['id'],
224
+ sessionId: value['sessionId'],
225
+ intent: value['intent'],
226
+ state: value['state'],
227
+ correlationId: value['correlationId'],
228
+ ...(causationId ? { causationId } : {}),
229
+ body: value['body'],
230
+ createdAt: value['createdAt'],
231
+ updatedAt: value['updatedAt'],
232
+ ...(routeId ? { routeId } : {}),
233
+ ...(surfaceKind ? { surfaceKind } : {}),
234
+ ...(surfaceId ? { surfaceId } : {}),
235
+ ...(externalId ? { externalId } : {}),
236
+ ...(threadId ? { threadId } : {}),
237
+ ...(userId ? { userId } : {}),
238
+ ...(displayName ? { displayName } : {}),
239
+ ...(activeAgentId ? { activeAgentId } : {}),
240
+ metadata: isRecord(value['metadata']) ? value['metadata'] : {},
241
+ ...(isRecord(value['routing']) ? { routing: value['routing'] } : {}),
242
+ ...(error ? { error } : {}),
243
+ };
109
244
  }
110
245
  export function sortSessions(records) {
111
246
  return [...records].sort((a, b) => (b.updatedAt - a.updatedAt) || a.id.localeCompare(b.id));
@@ -121,28 +256,21 @@ export function loadSessionBrokerState(snapshot) {
121
256
  if (!isRecord(snapshot) || !Array.isArray(snapshot.sessions) || !Array.isArray(snapshot.messages) || !Array.isArray(snapshot.inputs)) {
122
257
  throwInvalidSessionSnapshot();
123
258
  }
124
- for (const session of snapshot.sessions)
125
- validateSessionRecord(session);
126
- for (const message of snapshot.messages)
127
- validateSessionMessage(message);
128
- for (const input of snapshot.inputs)
129
- validateSessionInput(input);
130
259
  }
131
260
  const sessions = new Map();
132
261
  const messages = new Map();
133
262
  const inputs = new Map();
134
- for (const session of snapshot?.sessions ?? []) {
135
- sessions.set(session.id, session);
136
- }
137
263
  for (const message of snapshot?.messages ?? []) {
138
- const bucket = messages.get(message.sessionId) ?? [];
139
- bucket.push(message);
140
- messages.set(message.sessionId, bucket);
264
+ const normalized = normalizeSessionMessage(message);
265
+ const bucket = messages.get(normalized.sessionId) ?? [];
266
+ bucket.push(normalized);
267
+ messages.set(normalized.sessionId, bucket);
141
268
  }
142
269
  for (const input of snapshot?.inputs ?? []) {
143
- const bucket = inputs.get(input.sessionId) ?? [];
144
- bucket.push(input);
145
- inputs.set(input.sessionId, bucket);
270
+ const normalized = normalizeSessionInput(input);
271
+ const bucket = inputs.get(normalized.sessionId) ?? [];
272
+ bucket.push(normalized);
273
+ inputs.set(normalized.sessionId, bucket);
146
274
  }
147
275
  for (const [sessionId, bucket] of messages.entries()) {
148
276
  messages.set(sessionId, sortMessages(bucket));
@@ -150,6 +278,12 @@ export function loadSessionBrokerState(snapshot) {
150
278
  for (const [sessionId, bucket] of inputs.entries()) {
151
279
  inputs.set(sessionId, sortInputs(bucket));
152
280
  }
281
+ for (const session of snapshot?.sessions ?? []) {
282
+ if (!isRecord(session) || typeof session.id !== 'string') {
283
+ throwInvalidSessionSnapshot();
284
+ }
285
+ sessions.set(session.id, normalizeSessionRecord(session, messages.get(session.id) ?? [], inputs.get(session.id) ?? []));
286
+ }
153
287
  return { sessions, messages, inputs };
154
288
  }
155
289
  export function createSessionBrokerSnapshot(state, maxPersistedMessages) {
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../src/platform/runtime/integration/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../src/platform/runtime/integration/helpers.ts"],"names":[],"mappings":"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"}
@@ -269,20 +269,21 @@ export class IntegrationHelperService {
269
269
  const contracts = remoteRegistry.listContracts();
270
270
  const pools = remoteRegistry.listPools();
271
271
  const artifacts = remoteRegistry.listArtifacts();
272
+ const acpLastError = [...state.acp.connections.values()].find((connection) => connection.lastError)?.lastError;
272
273
  return {
273
274
  daemon: {
274
275
  transportState: state.daemon.transportState,
275
276
  isRunning: state.daemon.isRunning,
276
277
  reconnectAttempts: state.daemon.reconnectAttempts,
277
278
  runningJobCount: state.daemon.runningJobCount,
278
- lastError: state.daemon.lastError,
279
+ ...(state.daemon.lastError ? { lastError: state.daemon.lastError } : {}),
279
280
  },
280
281
  acp: {
281
282
  transportState: state.acp.managerTransportState,
282
283
  activeConnectionIds: state.acp.activeConnectionIds,
283
284
  totalSpawned: state.acp.totalSpawned,
284
285
  totalFailed: state.acp.totalFailed,
285
- lastError: [...state.acp.connections.values()].find((connection) => connection.lastError)?.lastError,
286
+ ...(acpLastError ? { lastError: acpLastError } : {}),
286
287
  },
287
288
  registry: {
288
289
  pools: pools.length,
@@ -301,15 +302,15 @@ export class IntegrationHelperService {
301
302
  runnerId: contract.runnerId,
302
303
  label: contract.label,
303
304
  template: contract.template,
304
- poolId: contract.poolId,
305
- taskId: contract.taskId,
305
+ ...(contract.poolId ? { poolId: contract.poolId } : {}),
306
+ ...(contract.taskId ? { taskId: contract.taskId } : {}),
306
307
  sourceTransport: contract.sourceTransport,
307
308
  trustClass: contract.trustClass,
308
309
  executionProtocol: contract.capabilityCeiling.executionProtocol,
309
310
  reviewMode: contract.capabilityCeiling.reviewMode,
310
311
  communicationLane: contract.capabilityCeiling.communicationLane,
311
312
  transportState: contract.transport.state,
312
- lastError: contract.transport.lastError,
313
+ ...(contract.transport.lastError ? { lastError: contract.transport.lastError } : {}),
313
314
  })),
314
315
  artifactEntries: artifacts.map((artifact) => ({
315
316
  id: artifact.id,
@@ -317,7 +318,7 @@ export class IntegrationHelperService {
317
318
  createdAt: artifact.createdAt,
318
319
  status: artifact.task.status,
319
320
  summary: artifact.task.summary,
320
- error: artifact.task.error,
321
+ ...(artifact.task.error ? { error: artifact.task.error } : {}),
321
322
  })),
322
323
  },
323
324
  supervisor: {
@@ -329,10 +330,15 @@ export class IntegrationHelperService {
329
330
  label: entry.label,
330
331
  transportState: entry.transportState,
331
332
  heartbeat: entry.heartbeat.status,
332
- taskId: entry.taskId,
333
+ ...(entry.taskId ? { taskId: entry.taskId } : {}),
333
334
  })),
334
335
  },
335
- distributed: this.context.distributedRuntime.getSnapshot(),
336
+ distributed: {
337
+ pairRequests: this.context.distributedRuntime.listPairRequests(100),
338
+ peers: this.context.distributedRuntime.listPeers(undefined, 500),
339
+ work: this.context.distributedRuntime.listWork(500),
340
+ audit: this.context.distributedRuntime.listAudit(100),
341
+ },
336
342
  };
337
343
  }
338
344
  getHealthSnapshot() {
@@ -1 +1 @@
1
- {"version":3,"file":"distributed-runtime-store.d.ts","sourceRoot":"","sources":["../../../../src/platform/runtime/remote/distributed-runtime-store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,sBAAsB,EACtB,6BAA6B,EAC7B,8BAA8B,EAC9B,6BAA6B,EAE7B,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACzB,MAAM,gCAAgC,CAAC;AA8LxC,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,8BAA8B,EACrC,KAAK,EAAE;IACL,QAAQ,CAAC,aAAa,CAAC,EAAE,8BAA8B,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC;IACrF,QAAQ,CAAC,cAAc,CAAC,EAAE,8BAA8B,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAAC;IACvF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,8BAA8B,CAAC,kBAAkB,CAAC,GAAG,SAAS,CAAC;IAC3F,QAAQ,CAAC,cAAc,CAAC,EAAE,8BAA8B,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAAC;CACxF,GACA,IAAI,CAKN;AAED,wBAAsB,uBAAuB,CAAC,KAAK,EAAE,8BAA8B,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBlG;AAED,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,8BAA8B,EACrC,KAAK,SAAM,GACV,6BAA6B,EAAE,CAGjC;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,8BAA8B,EACrC,IAAI,CAAC,EAAE,mBAAmB,EAC1B,KAAK,SAAM,GACV,qBAAqB,EAAE,CAKzB;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,8BAA8B,EACrC,KAAK,SAAM,EACX,MAAM,CAAC,EAAE,MAAM,GACd,sBAAsB,EAAE,CAK1B;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,8BAA8B,EACrC,KAAK,SAAM,GACV,6BAA6B,EAAE,CAEjC;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,8BAA8B,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA+B5G;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,8BAA8B,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAE3H;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,8BAA8B,EACrC,MAAM,EAAE,6BAA6B,GACpC,IAAI,CAKN;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,8BAA8B,EAAE,GAAG,SAAa,GAAG,IAAI,CA0B3G;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,8BAA8B,EAAE,GAAG,SAAa,GAAG,IAAI,CAyC7G;AAWD,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,8BAA8B,EACrC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAexC;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,8BAA8B,EAAE,IAAI,EAAE,sBAAsB,GAAG,IAAI,CAQ1H;AAED,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,8BAA8B,EACrC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,wBAAwB,CAAC,SAAS,CAAC,GAC3C,IAAI,CAMN;AAED,wBAAsB,iCAAiC,CAAC,KAAK,EAAE,8BAA8B,GAAG,OAAO,CAAC,IAAI,CAAC,CAkB5G;AAED,wBAAsB,yBAAyB,CAAC,KAAK,EAAE,8BAA8B,GAAG,OAAO,CAAC,IAAI,CAAC,CAOpG"}
1
+ {"version":3,"file":"distributed-runtime-store.d.ts","sourceRoot":"","sources":["../../../../src/platform/runtime/remote/distributed-runtime-store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,sBAAsB,EACtB,6BAA6B,EAC7B,8BAA8B,EAC9B,6BAA6B,EAE7B,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACzB,MAAM,gCAAgC,CAAC;AA8LxC,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,8BAA8B,EACrC,KAAK,EAAE;IACL,QAAQ,CAAC,aAAa,CAAC,EAAE,8BAA8B,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC;IACrF,QAAQ,CAAC,cAAc,CAAC,EAAE,8BAA8B,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAAC;IACvF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,8BAA8B,CAAC,kBAAkB,CAAC,GAAG,SAAS,CAAC;IAC3F,QAAQ,CAAC,cAAc,CAAC,EAAE,8BAA8B,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAAC;CACxF,GACA,IAAI,CAKN;AAED,wBAAsB,uBAAuB,CAAC,KAAK,EAAE,8BAA8B,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBlG;AAED,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,8BAA8B,EACrC,KAAK,SAAM,GACV,6BAA6B,EAAE,CAGjC;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,8BAA8B,EACrC,IAAI,CAAC,EAAE,mBAAmB,EAC1B,KAAK,SAAM,GACV,qBAAqB,EAAE,CAKzB;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,8BAA8B,EACrC,KAAK,SAAM,EACX,MAAM,CAAC,EAAE,MAAM,GACd,sBAAsB,EAAE,CAK1B;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,8BAA8B,EACrC,KAAK,SAAM,GACV,6BAA6B,EAAE,CAEjC;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,8BAA8B,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAS5G;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,8BAA8B,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAE3H;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,8BAA8B,EACrC,MAAM,EAAE,6BAA6B,GACpC,IAAI,CAKN;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,8BAA8B,EAAE,GAAG,SAAa,GAAG,IAAI,CA0B3G;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,8BAA8B,EAAE,GAAG,SAAa,GAAG,IAAI,CAyC7G;AAWD,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,8BAA8B,EACrC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAexC;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,8BAA8B,EAAE,IAAI,EAAE,sBAAsB,GAAG,IAAI,CAQ1H;AAED,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,8BAA8B,EACrC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,wBAAwB,CAAC,SAAS,CAAC,GAC3C,IAAI,CAMN;AAED,wBAAsB,iCAAiC,CAAC,KAAK,EAAE,8BAA8B,GAAG,OAAO,CAAC,IAAI,CAAC,CAkB5G;AAED,wBAAsB,yBAAyB,CAAC,KAAK,EAAE,8BAA8B,GAAG,OAAO,CAAC,IAAI,CAAC,CAOpG"}
@@ -233,32 +233,10 @@ export function listDistributedRuntimeAudit(state, limit = 100) {
233
233
  export function getDistributedRuntimeSnapshot(state) {
234
234
  expireDistributedPairRequests(state);
235
235
  requeueDistributedExpiredClaims(state);
236
- const peers = listDistributedRuntimePeers(state, undefined, 500);
237
- const work = listDistributedRuntimeWork(state, 500);
238
236
  return {
239
- capturedAt: Date.now(),
240
- pairRequests: {
241
- total: state.pairRequests.size,
242
- pending: [...state.pairRequests.values()].filter((request) => request.status === 'pending').length,
243
- approved: [...state.pairRequests.values()].filter((request) => request.status === 'approved').length,
244
- entries: listDistributedRuntimePairRequests(state, 100),
245
- },
246
- peers: {
247
- total: peers.length,
248
- connected: peers.filter((peer) => peer.status === 'connected').length,
249
- nodes: peers.filter((peer) => peer.kind === 'node').length,
250
- devices: peers.filter((peer) => peer.kind === 'device').length,
251
- entries: peers,
252
- },
253
- work: {
254
- total: work.length,
255
- queued: work.filter((item) => item.status === 'queued').length,
256
- claimed: work.filter((item) => item.status === 'claimed').length,
257
- completed: work.filter((item) => item.status === 'completed').length,
258
- failed: work.filter((item) => item.status === 'failed').length,
259
- cancelled: work.filter((item) => item.status === 'cancelled').length,
260
- entries: work.slice(0, 100),
261
- },
237
+ pairRequests: listDistributedRuntimePairRequests(state, 100),
238
+ peers: listDistributedRuntimePeers(state, undefined, 500),
239
+ work: listDistributedRuntimeWork(state, 500),
262
240
  audit: listDistributedRuntimeAudit(state, 100),
263
241
  };
264
242
  }
@@ -1,2 +1,2 @@
1
- export type { OperatorEventPayload, OperatorEventPayloadMap, OperatorMethodInput, OperatorMethodInputMap, OperatorMethodOutput, OperatorMethodOutputMap, OperatorStreamMethodId, OperatorTypedEventId, OperatorTypedMethodId, PeerEndpointInput, PeerEndpointInputMap, PeerEndpointOutput, PeerEndpointOutputMap, PeerTypedEndpointId, RuntimeDomainEventPayload, RuntimeDomainEventPayloadMap, RuntimeDomainEventType, RuntimeEventTypedDomain, } from '../../../contracts.js';
1
+ export type { JsonPrimitive, JsonValue, OperatorEventPayload, OperatorEventPayloadMap, OperatorMethodInput, OperatorMethodInputMap, OperatorMethodOutput, OperatorMethodOutputMap, OperatorStreamMethodId, OperatorTypedEventId, OperatorTypedMethodId, PeerEndpointInput, PeerEndpointInputMap, PeerEndpointOutput, PeerEndpointOutputMap, PeerTypedEndpointId, RuntimeDomainEventPayload, RuntimeDomainEventPayloadMap, RuntimeDomainEventType, RuntimeEventTypedDomain, } from '../../../contracts.js';
2
2
  //# sourceMappingURL=foundation-client-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"foundation-client-types.d.ts","sourceRoot":"","sources":["../../../../src/platform/types/generated/foundation-client-types.ts"],"names":[],"mappings":"AAEA,YAAY,EACV,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,yBAAyB,EACzB,4BAA4B,EAC5B,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"foundation-client-types.d.ts","sourceRoot":"","sources":["../../../../src/platform/types/generated/foundation-client-types.ts"],"names":[],"mappings":"AAEA,YAAY,EACV,aAAa,EACb,SAAS,EACT,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,yBAAyB,EACzB,4BAA4B,EAC5B,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC"}
@@ -2,6 +2,6 @@ export type { DaemonErrorCategory, DaemonErrorSource, StructuredDaemonErrorBody,
2
2
  export { AcpError, AppError, ConfigError, isContextSizeExceededError, isNonTransientProviderFailure, isRateLimitOrQuotaError, PermissionError, ProviderError, RenderError, RETRYABLE_STATUS_CODES, ToolError, } from './errors.js';
3
3
  export type { AppErrorOptions, PlatformErrorCategory, PlatformErrorSource, ProviderErrorOptions, } from './errors.js';
4
4
  export type { ContractHttpDefinition, DistributedPeerKind, DistributedWorkStatus, DistributedWorkType, GatewayEventTransport, GatewayMethodAccess, GatewayMethodSource, GatewayMethodTransport, JsonSchema, OperatorContractManifest, OperatorEventContract, OperatorEventCoverageContract, OperatorMethodContract, OperatorSchemaCoverageContract, PeerContractManifest, PeerEndpointContract, RuntimeEventDomain, } from './foundation-contract.js';
5
- export type { OperatorEventPayload, OperatorEventPayloadMap, OperatorMethodInput, OperatorMethodInputMap, OperatorMethodOutput, OperatorMethodOutputMap, OperatorStreamMethodId, OperatorTypedEventId, OperatorTypedMethodId, PeerEndpointInput, PeerEndpointInputMap, PeerEndpointOutput, PeerEndpointOutputMap, PeerTypedEndpointId, RuntimeDomainEventPayload, RuntimeDomainEventPayloadMap, RuntimeDomainEventType, RuntimeEventTypedDomain, } from './generated/foundation-client-types.js';
5
+ export type { JsonPrimitive, JsonValue, OperatorEventPayload, OperatorEventPayloadMap, OperatorMethodInput, OperatorMethodInputMap, OperatorMethodOutput, OperatorMethodOutputMap, OperatorStreamMethodId, OperatorTypedEventId, OperatorTypedMethodId, PeerEndpointInput, PeerEndpointInputMap, PeerEndpointOutput, PeerEndpointOutputMap, PeerTypedEndpointId, RuntimeDomainEventPayload, RuntimeDomainEventPayloadMap, RuntimeDomainEventType, RuntimeEventTypedDomain, } from './generated/foundation-client-types.js';
6
6
  export type { Tool, ToolCall, ToolConcurrencyMode, ToolDefinition, ToolResult, ToolSideEffect, } from './tools.js';
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/platform/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,0BAA0B,EAC1B,6BAA6B,EAC7B,uBAAuB,EACvB,eAAe,EACf,aAAa,EACb,WAAW,EACX,sBAAsB,EACtB,SAAS,GACV,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,UAAU,EACV,wBAAwB,EACxB,qBAAqB,EACrB,6BAA6B,EAC7B,sBAAsB,EACtB,8BAA8B,EAC9B,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,yBAAyB,EACzB,4BAA4B,EAC5B,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,wCAAwC,CAAC;AAChD,YAAY,EACV,IAAI,EACJ,QAAQ,EACR,mBAAmB,EACnB,cAAc,EACd,UAAU,EACV,cAAc,GACf,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/platform/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,0BAA0B,EAC1B,6BAA6B,EAC7B,uBAAuB,EACvB,eAAe,EACf,aAAa,EACb,WAAW,EACX,sBAAsB,EACtB,SAAS,GACV,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,UAAU,EACV,wBAAwB,EACxB,qBAAqB,EACrB,6BAA6B,EAC7B,sBAAsB,EACtB,8BAA8B,EAC9B,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,aAAa,EACb,SAAS,EACT,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,yBAAyB,EACzB,4BAA4B,EAC5B,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,wCAAwC,CAAC;AAChD,YAAY,EACV,IAAI,EACJ,QAAQ,EACR,mBAAmB,EACnB,cAAc,EACd,UAAU,EACV,cAAc,GACf,MAAM,YAAY,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { readFileSync } from 'node:fs';
2
2
  import { join } from 'node:path';
3
- let version = '0.33.3';
3
+ let version = '0.33.5';
4
4
  try {
5
5
  const pkg = JSON.parse(readFileSync(join(import.meta.dir, '..', '..', 'package.json'), 'utf-8'));
6
6
  version = pkg.version ?? version;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pellux/goodvibes-sdk",
3
- "version": "0.33.3",
3
+ "version": "0.33.5",
4
4
  "description": "TypeScript SDK for building GoodVibes operator, peer, web, mobile, and daemon-connected apps with typed contracts, auth, realtime events, and transport layers.",
5
5
  "keywords": [
6
6
  "goodvibes",
@@ -441,14 +441,14 @@
441
441
  "sideEffects": false,
442
442
  "type": "module",
443
443
  "dependencies": {
444
- "@pellux/goodvibes-contracts": "0.33.3",
445
- "@pellux/goodvibes-daemon-sdk": "0.33.3",
446
- "@pellux/goodvibes-errors": "0.33.3",
447
- "@pellux/goodvibes-operator-sdk": "0.33.3",
448
- "@pellux/goodvibes-peer-sdk": "0.33.3",
449
- "@pellux/goodvibes-transport-core": "0.33.3",
450
- "@pellux/goodvibes-transport-http": "0.33.3",
451
- "@pellux/goodvibes-transport-realtime": "0.33.3"
444
+ "@pellux/goodvibes-contracts": "0.33.5",
445
+ "@pellux/goodvibes-daemon-sdk": "0.33.5",
446
+ "@pellux/goodvibes-errors": "0.33.5",
447
+ "@pellux/goodvibes-operator-sdk": "0.33.5",
448
+ "@pellux/goodvibes-peer-sdk": "0.33.5",
449
+ "@pellux/goodvibes-transport-core": "0.33.5",
450
+ "@pellux/goodvibes-transport-http": "0.33.5",
451
+ "@pellux/goodvibes-transport-realtime": "0.33.5"
452
452
  },
453
453
  "optionalDependencies": {
454
454
  "@agentclientprotocol/sdk": "^0.21.0",