@fangyb/ahchat-bridge 0.1.43 → 0.1.45

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.
@@ -5884,6 +5884,28 @@ init_cjs_shims();
5884
5884
  // ../shared/src/types/index.ts
5885
5885
  init_cjs_shims();
5886
5886
 
5887
+ // ../shared/src/types/backgroundTask.ts
5888
+ init_cjs_shims();
5889
+ var BACKGROUND_TASK_STATUSES = [
5890
+ "queued",
5891
+ "running",
5892
+ "completed",
5893
+ "failed",
5894
+ "interrupted"
5895
+ ];
5896
+ var BACKGROUND_TASK_KINDS = [
5897
+ "external_recoverable",
5898
+ "local_ephemeral"
5899
+ ];
5900
+ var BACKGROUND_TASK_RUNNERS = [
5901
+ "seedance",
5902
+ "seedream",
5903
+ "mcp_tool_poll",
5904
+ "generic_external_poll",
5905
+ "local_process",
5906
+ "agent_subsession"
5907
+ ];
5908
+
5887
5909
  // ../shared/src/types/usage.ts
5888
5910
  init_cjs_shims();
5889
5911
 
@@ -5969,6 +5991,18 @@ function assertOptionalNumberPayloadField(type, payload, field) {
5969
5991
  if (payload[field] === void 0) return;
5970
5992
  assertNumberPayloadField(type, payload, field);
5971
5993
  }
5994
+ function assertOptionalNullableNumberPayloadField(type, payload, field) {
5995
+ if (payload[field] === void 0 || payload[field] === null) return;
5996
+ assertNumberPayloadField(type, payload, field);
5997
+ }
5998
+ function assertOptionalStringPayloadField(type, payload, field) {
5999
+ if (payload[field] === void 0) return;
6000
+ assertStringPayloadField(type, payload, field);
6001
+ }
6002
+ function assertOptionalNullableStringPayloadField(type, payload, field) {
6003
+ if (payload[field] === void 0 || payload[field] === null) return;
6004
+ assertStringPayloadField(type, payload, field);
6005
+ }
5972
6006
  function assertNullableStringPayloadField(type, payload, field) {
5973
6007
  if (payload[field] === null) return;
5974
6008
  assertStringPayloadField(type, payload, field);
@@ -6062,6 +6096,18 @@ function validateWSMessageShape(msg) {
6062
6096
  ]);
6063
6097
  assertArrayPayloadField(type, payload, "contentBlocks");
6064
6098
  assertRecordPayloadField(type, payload, "metadata");
6099
+ assertOptionalStringPayloadField(type, payload, "replyToId");
6100
+ return;
6101
+ }
6102
+ case "agent:workdir_file_attachment": {
6103
+ assertPayloadRecord(type, payload);
6104
+ validateRequiredStrings(type, payload, ["ackId", "agentId", "conversationId", "filePath", "traceId"]);
6105
+ if (payload.toolUseId !== void 0) assertStringPayloadField(type, payload, "toolUseId");
6106
+ if (payload.relativePath !== void 0) assertStringPayloadField(type, payload, "relativePath");
6107
+ if (payload.fileName !== void 0) assertStringPayloadField(type, payload, "fileName");
6108
+ if (payload.mimeType !== void 0) assertStringPayloadField(type, payload, "mimeType");
6109
+ if (payload.size !== void 0) assertOptionalNumberPayloadField(type, payload, "size");
6110
+ assertOptionalStringPayloadOneOf(type, payload, "attachmentSource", ["generated_asset_auto", "agent_explicit_send"]);
6065
6111
  return;
6066
6112
  }
6067
6113
  case "agent:workdir_file_attachment": {
@@ -6090,6 +6136,9 @@ function validateWSMessageShape(msg) {
6090
6136
  if ("workdirSignals" in payload && payload.workdirSignals !== void 0) {
6091
6137
  assertWorkdirSignalsPayloadField(type, payload, "workdirSignals");
6092
6138
  }
6139
+ if ("metadata" in payload && payload.metadata !== void 0) {
6140
+ assertRecordPayloadField(type, payload, "metadata");
6141
+ }
6093
6142
  return;
6094
6143
  }
6095
6144
  case "agent:turn_complete": {
@@ -6127,6 +6176,68 @@ function validateWSMessageShape(msg) {
6127
6176
  assertNullableStringPayloadField(type, payload, "canonicalAddress");
6128
6177
  return;
6129
6178
  }
6179
+ case "background_task:dispatch": {
6180
+ assertPayloadRecord(type, payload);
6181
+ validateRequiredStrings(type, payload, [
6182
+ "taskId",
6183
+ "title",
6184
+ "description",
6185
+ "kind",
6186
+ "runner",
6187
+ "status",
6188
+ "agentId",
6189
+ "conversationId",
6190
+ "sourceMessageId",
6191
+ "scopeKey",
6192
+ "createdAt",
6193
+ "updatedAt"
6194
+ ]);
6195
+ assertStringPayloadOneOf(type, payload, "kind", BACKGROUND_TASK_KINDS);
6196
+ assertStringPayloadOneOf(type, payload, "runner", BACKGROUND_TASK_RUNNERS);
6197
+ assertStringPayloadOneOf(type, payload, "status", BACKGROUND_TASK_STATUSES);
6198
+ assertOptionalNullableStringPayloadField(type, payload, "groupId");
6199
+ assertOptionalNullableStringPayloadField(type, payload, "bridgeKey");
6200
+ assertOptionalNullableStringPayloadField(type, payload, "externalTaskId");
6201
+ assertOptionalNullableStringPayloadField(type, payload, "inputJson");
6202
+ assertOptionalNullableStringPayloadField(type, payload, "traceId");
6203
+ return;
6204
+ }
6205
+ case "background_task:ack": {
6206
+ assertPayloadRecord(type, payload);
6207
+ validateRequiredStrings(type, payload, ["taskId", "agentId", "traceId", "receivedAt"]);
6208
+ return;
6209
+ }
6210
+ case "background_task:status": {
6211
+ assertPayloadRecord(type, payload);
6212
+ validateRequiredStrings(type, payload, [
6213
+ "taskId",
6214
+ "status",
6215
+ "agentId",
6216
+ "conversationId",
6217
+ "traceId",
6218
+ "updatedAt"
6219
+ ]);
6220
+ assertStringPayloadOneOf(type, payload, "status", BACKGROUND_TASK_STATUSES);
6221
+ assertOptionalNullableStringPayloadField(type, payload, "groupId");
6222
+ assertOptionalNullableStringPayloadField(type, payload, "outputSummary");
6223
+ assertOptionalNullableStringPayloadField(type, payload, "outputDetail");
6224
+ assertOptionalNullableStringPayloadField(type, payload, "errorMessage");
6225
+ assertOptionalNullableStringPayloadField(type, payload, "externalTaskId");
6226
+ return;
6227
+ }
6228
+ case "background_task:changed": {
6229
+ assertPayloadRecord(type, payload);
6230
+ assertRecordPayloadField(type, payload, "task");
6231
+ const task = payload.task;
6232
+ validateRequiredStrings(type, task, ["id", "title", "status", "agentId", "createdAt", "updatedAt"]);
6233
+ assertStringPayloadOneOf(type, task, "status", BACKGROUND_TASK_STATUSES);
6234
+ assertOptionalStringPayloadField(type, task, "agentName");
6235
+ assertOptionalNullableNumberPayloadField(type, task, "durationMs");
6236
+ assertOptionalNullableStringPayloadField(type, task, "startedAt");
6237
+ assertOptionalNullableStringPayloadField(type, task, "completedAt");
6238
+ assertOptionalNullableStringPayloadField(type, payload, "traceId");
6239
+ return;
6240
+ }
6130
6241
  default:
6131
6242
  return;
6132
6243
  }
@@ -7724,6 +7835,8 @@ var OUTBOX_CRITICAL_TYPES = /* @__PURE__ */ new Set([
7724
7835
  "artifact:created",
7725
7836
  "agent:todos_update",
7726
7837
  "feedback:analysis_result",
7838
+ "background_task:ack",
7839
+ "background_task:status",
7727
7840
  "bridge:resume_reply_session_response"
7728
7841
  ]);
7729
7842
  var OUTBOX_MAX_ENTRIES = 300;
@@ -7965,6 +8078,15 @@ var ServerConnector = class {
7965
8078
  });
7966
8079
  return;
7967
8080
  }
8081
+ case "background_task:dispatch":
8082
+ case "background_task:changed": {
8083
+ if (this.onServerPush) {
8084
+ void Promise.resolve(this.onServerPush(msg)).catch((err) => {
8085
+ logger2.error("onServerPush handler failed", { error: err, type: msg.type });
8086
+ });
8087
+ }
8088
+ return;
8089
+ }
7968
8090
  case "session:terminated": {
7969
8091
  logger2.warn("Session terminated by server, exiting bridge process", {
7970
8092
  reason: msg.payload.reason