@fangyb/ahchat-bridge 0.1.44 → 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.
package/dist/cli.cjs CHANGED
@@ -102475,6 +102475,17 @@ function validateWSMessageShape(msg) {
102475
102475
  assertOptionalStringPayloadOneOf(type, payload, "attachmentSource", ["generated_asset_auto", "agent_explicit_send"]);
102476
102476
  return;
102477
102477
  }
102478
+ case "agent:workdir_file_attachment": {
102479
+ assertPayloadRecord(type, payload);
102480
+ validateRequiredStrings(type, payload, ["ackId", "agentId", "conversationId", "filePath", "traceId"]);
102481
+ if (payload.toolUseId !== void 0) assertStringPayloadField(type, payload, "toolUseId");
102482
+ if (payload.relativePath !== void 0) assertStringPayloadField(type, payload, "relativePath");
102483
+ if (payload.fileName !== void 0) assertStringPayloadField(type, payload, "fileName");
102484
+ if (payload.mimeType !== void 0) assertStringPayloadField(type, payload, "mimeType");
102485
+ if (payload.size !== void 0) assertOptionalNumberPayloadField(type, payload, "size");
102486
+ assertOptionalStringPayloadOneOf(type, payload, "attachmentSource", ["generated_asset_auto", "agent_explicit_send"]);
102487
+ return;
102488
+ }
102478
102489
  case "agent:segment": {
102479
102490
  assertPayloadRecord(type, payload);
102480
102491
  validateRequiredStrings(type, payload, [
@@ -125587,10 +125598,15 @@ function buildGroupInboxPrompt(entries, opts = {}) {
125587
125598
  const latest = entries[entries.length - 1];
125588
125599
  const selfAgentName = latest.agentName;
125589
125600
  const hasAtMention = entries.some((e) => e.isMentioned);
125601
+ const mentionedInFlow = !hasAtMention && (latest.groupFlows?.some(
125602
+ (flow) => flow.roles.some(
125603
+ (r) => r.agentName === selfAgentName || r.prompt.includes(`@${selfAgentName}`)
125604
+ )
125605
+ ) ?? false);
125590
125606
  const lines = [];
125591
125607
  lines.push(`You are: ${selfAgentName} (in group: ${latest.groupName})`);
125592
125608
  lines.push("");
125593
- if (hasAtMention) {
125609
+ if (hasAtMention || mentionedInFlow) {
125594
125610
  lines.push(
125595
125611
  `\u672A\u8BFB\u7FA4\u6D88\u606F\u4E2D\u81F3\u5C11\u4E00\u6761 @\u4E86\u4F60\u3002\u6309 \xA7 Group chat \u2014 when to speak \u51B3\u5B9A\u662F\u5426\u56DE\u5E94\uFF1B\u82E5\u6574\u6279\u90FD\u4E0D\u503C\u5F97\u56DE\uFF0C\u8F93\u51FA \`${NO_REPLY_TOKEN}\`\u3002`
125596
125612
  );
@@ -125622,8 +125638,45 @@ function buildGroupInboxPrompt(entries, opts = {}) {
125622
125638
  if (opts.includeBoard) {
125623
125639
  appendBoardContext(lines, latest);
125624
125640
  }
125641
+ appendGroupFlowScripts(lines, latest.groupFlows);
125625
125642
  return lines.join("\n");
125626
125643
  }
125644
+ function appendGroupFlowScripts(lines, flows) {
125645
+ if (!flows || flows.length === 0) return;
125646
+ lines.push("--- \u672C\u7FA4\u534F\u4F5C\u5267\u672C ---");
125647
+ lines.push("\u4EE5\u4E0B\u662F\u672C\u7FA4\u5DF2\u5B9A\u4E49\u7684\u534F\u4F5C\u6D41\u7A0B\u3002\u5F53\u7FA4\u6D88\u606F\u547D\u4E2D\u67D0\u5267\u672C\u7684\u89E6\u53D1\u8BCD\u65F6\uFF0C\u6309\u5267\u672C\u7EA6\u5B9A\u53C2\u4E0E\u534F\u4F5C\u3002");
125648
+ lines.push("");
125649
+ for (const flow of flows) {
125650
+ lines.push(`\u3010${flow.name}\u3011`);
125651
+ if (flow.summary) lines.push(`\u7B80\u4ECB\uFF1A${sanitizeModelText(flow.summary)}`);
125652
+ if (flow.triggerWords.length > 0) {
125653
+ lines.push(`\u89E6\u53D1\u6761\u4EF6\uFF1A\u6D88\u606F\u542B\u4EE5\u4E0B\u4EFB\u4E00\u5173\u952E\u8BCD \u2192 ${flow.triggerWords.join(" / ")}`);
125654
+ }
125655
+ if (flow.roles.length > 0) {
125656
+ lines.push("\u89D2\u8272\u4E0E\u63A5\u68D2\u987A\u5E8F\uFF1A");
125657
+ for (let i = 0; i < flow.roles.length; i++) {
125658
+ const r = flow.roles[i];
125659
+ const nameTag = r.agentName ? `${r.agentRole}\uFF08${r.agentName}\uFF09` : r.agentRole;
125660
+ const depTag = r.dependsOn.length > 0 ? `\u4F9D\u8D56\uFF1A${r.dependsOn.join(", ")}` : "\u65E0\u4F9D\u8D56\uFF0C\u53EF\u5148\u4E0A";
125661
+ lines.push(` ${i + 1}. [${nameTag}]\uFF1A${sanitizeModelText(r.prompt) || "\uFF08\u672A\u63CF\u8FF0\uFF09"}`);
125662
+ lines.push(` ${depTag}`);
125663
+ }
125664
+ }
125665
+ if (flow.outputFormat) {
125666
+ lines.push(`\u6700\u7EC8\u8F93\u51FA\uFF1A${sanitizeModelText(flow.outputFormat)}`);
125667
+ }
125668
+ lines.push("");
125669
+ }
125670
+ lines.push("\u3010\u534F\u4F5C\u516C\u7EA6\u3011");
125671
+ lines.push("- \u770B\u5230\u6D88\u606F\u547D\u4E2D\u67D0\u5267\u672C\u7684\u89E6\u53D1\u8BCD \u2192 \u65E0\u4F9D\u8D56\u7684\u89D2\u8272\u5148\u4E0A");
125672
+ lines.push('- \u5B8C\u6210\u540E\u5728\u7FA4\u91CC\u660E\u786E\u8BF4"\u6211\u505A\u5B8C\u4E86\uFF0C@\u4E0B\u4E00\u68D2 \u8BE5\u4F60\u4E86"\uFF08\u7528\u7FA4\u6D88\u606F\uFF0C\u4E0D\u8981\u53EA\u8F93\u51FA\u7ED3\u8BBA\uFF09');
125673
+ lines.push("- \u6309\u5267\u672C dependsOn \u987A\u5E8F\u63A5\u68D2\uFF0C\u4E0D\u8981\u8DF3\u6B65\uFF1B\u88AB @ \u65F6\u9ED8\u8BA4\u4F60\u8BE5\u63A5\u68D2");
125674
+ lines.push("- \u6700\u540E\u4E00\u68D2\u5B8C\u6210\u540E\u5728\u7FA4\u91CC\u53D1\u4E00\u53E5\u8BDD\u603B\u7ED3\u6574\u4E2A\u534F\u4F5C\u7684\u7ED3\u679C");
125675
+ lines.push("- \u4EFB\u4F55\u4E00\u68D2\u5982\u679C\u4F60\u4E0D\u77E5\u9053\u8981\u505A\u4EC0\u4E48\uFF0C\u76F4\u63A5\u95EE\u4E0A\u4E00\u68D2\u6216\u7FA4\u91CC");
125676
+ lines.push("- \u4E0D\u76F8\u5173\u7684\u6D88\u606F\u4E0D\u8981\u89E6\u53D1\u5267\u672C\uFF1B\u540C\u4E00\u5267\u672C\u4E0D\u8981\u91CD\u590D\u542F\u52A8");
125677
+ lines.push("--- end \u672C\u7FA4\u534F\u4F5C\u5267\u672C ---");
125678
+ lines.push("");
125679
+ }
125627
125680
 
125628
125681
  // src/sdkEventMapper.ts
125629
125682
  init_cjs_shims();
@@ -143713,7 +143766,8 @@ function groupInboxEntryFromDispatch(payload) {
143713
143766
  boardSprints: payload.boardSprints,
143714
143767
  boardIssues: payload.boardIssues,
143715
143768
  boardMeta: payload.boardMeta,
143716
- dispatchKind: payload.dispatchKind
143769
+ dispatchKind: payload.dispatchKind,
143770
+ groupFlows: payload.groupFlows
143717
143771
  };
143718
143772
  }
143719
143773
 
@@ -6110,6 +6110,17 @@ function validateWSMessageShape(msg) {
6110
6110
  assertOptionalStringPayloadOneOf(type, payload, "attachmentSource", ["generated_asset_auto", "agent_explicit_send"]);
6111
6111
  return;
6112
6112
  }
6113
+ case "agent:workdir_file_attachment": {
6114
+ assertPayloadRecord(type, payload);
6115
+ validateRequiredStrings(type, payload, ["ackId", "agentId", "conversationId", "filePath", "traceId"]);
6116
+ if (payload.toolUseId !== void 0) assertStringPayloadField(type, payload, "toolUseId");
6117
+ if (payload.relativePath !== void 0) assertStringPayloadField(type, payload, "relativePath");
6118
+ if (payload.fileName !== void 0) assertStringPayloadField(type, payload, "fileName");
6119
+ if (payload.mimeType !== void 0) assertStringPayloadField(type, payload, "mimeType");
6120
+ if (payload.size !== void 0) assertOptionalNumberPayloadField(type, payload, "size");
6121
+ assertOptionalStringPayloadOneOf(type, payload, "attachmentSource", ["generated_asset_auto", "agent_explicit_send"]);
6122
+ return;
6123
+ }
6113
6124
  case "agent:segment": {
6114
6125
  assertPayloadRecord(type, payload);
6115
6126
  validateRequiredStrings(type, payload, [
package/dist/index.js CHANGED
@@ -13600,6 +13600,17 @@ function validateWSMessageShape(msg) {
13600
13600
  assertOptionalStringPayloadOneOf(type, payload, "attachmentSource", ["generated_asset_auto", "agent_explicit_send"]);
13601
13601
  return;
13602
13602
  }
13603
+ case "agent:workdir_file_attachment": {
13604
+ assertPayloadRecord(type, payload);
13605
+ validateRequiredStrings(type, payload, ["ackId", "agentId", "conversationId", "filePath", "traceId"]);
13606
+ if (payload.toolUseId !== void 0) assertStringPayloadField(type, payload, "toolUseId");
13607
+ if (payload.relativePath !== void 0) assertStringPayloadField(type, payload, "relativePath");
13608
+ if (payload.fileName !== void 0) assertStringPayloadField(type, payload, "fileName");
13609
+ if (payload.mimeType !== void 0) assertStringPayloadField(type, payload, "mimeType");
13610
+ if (payload.size !== void 0) assertOptionalNumberPayloadField(type, payload, "size");
13611
+ assertOptionalStringPayloadOneOf(type, payload, "attachmentSource", ["generated_asset_auto", "agent_explicit_send"]);
13612
+ return;
13613
+ }
13603
13614
  case "agent:segment": {
13604
13615
  assertPayloadRecord(type, payload);
13605
13616
  validateRequiredStrings(type, payload, [
@@ -36729,10 +36740,15 @@ function buildGroupInboxPrompt(entries, opts = {}) {
36729
36740
  const latest = entries[entries.length - 1];
36730
36741
  const selfAgentName = latest.agentName;
36731
36742
  const hasAtMention = entries.some((e) => e.isMentioned);
36743
+ const mentionedInFlow = !hasAtMention && (latest.groupFlows?.some(
36744
+ (flow) => flow.roles.some(
36745
+ (r) => r.agentName === selfAgentName || r.prompt.includes(`@${selfAgentName}`)
36746
+ )
36747
+ ) ?? false);
36732
36748
  const lines = [];
36733
36749
  lines.push(`You are: ${selfAgentName} (in group: ${latest.groupName})`);
36734
36750
  lines.push("");
36735
- if (hasAtMention) {
36751
+ if (hasAtMention || mentionedInFlow) {
36736
36752
  lines.push(
36737
36753
  `\u672A\u8BFB\u7FA4\u6D88\u606F\u4E2D\u81F3\u5C11\u4E00\u6761 @\u4E86\u4F60\u3002\u6309 \xA7 Group chat \u2014 when to speak \u51B3\u5B9A\u662F\u5426\u56DE\u5E94\uFF1B\u82E5\u6574\u6279\u90FD\u4E0D\u503C\u5F97\u56DE\uFF0C\u8F93\u51FA \`${NO_REPLY_TOKEN}\`\u3002`
36738
36754
  );
@@ -36764,8 +36780,45 @@ function buildGroupInboxPrompt(entries, opts = {}) {
36764
36780
  if (opts.includeBoard) {
36765
36781
  appendBoardContext(lines, latest);
36766
36782
  }
36783
+ appendGroupFlowScripts(lines, latest.groupFlows);
36767
36784
  return lines.join("\n");
36768
36785
  }
36786
+ function appendGroupFlowScripts(lines, flows) {
36787
+ if (!flows || flows.length === 0) return;
36788
+ lines.push("--- \u672C\u7FA4\u534F\u4F5C\u5267\u672C ---");
36789
+ lines.push("\u4EE5\u4E0B\u662F\u672C\u7FA4\u5DF2\u5B9A\u4E49\u7684\u534F\u4F5C\u6D41\u7A0B\u3002\u5F53\u7FA4\u6D88\u606F\u547D\u4E2D\u67D0\u5267\u672C\u7684\u89E6\u53D1\u8BCD\u65F6\uFF0C\u6309\u5267\u672C\u7EA6\u5B9A\u53C2\u4E0E\u534F\u4F5C\u3002");
36790
+ lines.push("");
36791
+ for (const flow of flows) {
36792
+ lines.push(`\u3010${flow.name}\u3011`);
36793
+ if (flow.summary) lines.push(`\u7B80\u4ECB\uFF1A${sanitizeModelText(flow.summary)}`);
36794
+ if (flow.triggerWords.length > 0) {
36795
+ lines.push(`\u89E6\u53D1\u6761\u4EF6\uFF1A\u6D88\u606F\u542B\u4EE5\u4E0B\u4EFB\u4E00\u5173\u952E\u8BCD \u2192 ${flow.triggerWords.join(" / ")}`);
36796
+ }
36797
+ if (flow.roles.length > 0) {
36798
+ lines.push("\u89D2\u8272\u4E0E\u63A5\u68D2\u987A\u5E8F\uFF1A");
36799
+ for (let i = 0; i < flow.roles.length; i++) {
36800
+ const r = flow.roles[i];
36801
+ const nameTag = r.agentName ? `${r.agentRole}\uFF08${r.agentName}\uFF09` : r.agentRole;
36802
+ const depTag = r.dependsOn.length > 0 ? `\u4F9D\u8D56\uFF1A${r.dependsOn.join(", ")}` : "\u65E0\u4F9D\u8D56\uFF0C\u53EF\u5148\u4E0A";
36803
+ lines.push(` ${i + 1}. [${nameTag}]\uFF1A${sanitizeModelText(r.prompt) || "\uFF08\u672A\u63CF\u8FF0\uFF09"}`);
36804
+ lines.push(` ${depTag}`);
36805
+ }
36806
+ }
36807
+ if (flow.outputFormat) {
36808
+ lines.push(`\u6700\u7EC8\u8F93\u51FA\uFF1A${sanitizeModelText(flow.outputFormat)}`);
36809
+ }
36810
+ lines.push("");
36811
+ }
36812
+ lines.push("\u3010\u534F\u4F5C\u516C\u7EA6\u3011");
36813
+ lines.push("- \u770B\u5230\u6D88\u606F\u547D\u4E2D\u67D0\u5267\u672C\u7684\u89E6\u53D1\u8BCD \u2192 \u65E0\u4F9D\u8D56\u7684\u89D2\u8272\u5148\u4E0A");
36814
+ lines.push('- \u5B8C\u6210\u540E\u5728\u7FA4\u91CC\u660E\u786E\u8BF4"\u6211\u505A\u5B8C\u4E86\uFF0C@\u4E0B\u4E00\u68D2 \u8BE5\u4F60\u4E86"\uFF08\u7528\u7FA4\u6D88\u606F\uFF0C\u4E0D\u8981\u53EA\u8F93\u51FA\u7ED3\u8BBA\uFF09');
36815
+ lines.push("- \u6309\u5267\u672C dependsOn \u987A\u5E8F\u63A5\u68D2\uFF0C\u4E0D\u8981\u8DF3\u6B65\uFF1B\u88AB @ \u65F6\u9ED8\u8BA4\u4F60\u8BE5\u63A5\u68D2");
36816
+ lines.push("- \u6700\u540E\u4E00\u68D2\u5B8C\u6210\u540E\u5728\u7FA4\u91CC\u53D1\u4E00\u53E5\u8BDD\u603B\u7ED3\u6574\u4E2A\u534F\u4F5C\u7684\u7ED3\u679C");
36817
+ lines.push("- \u4EFB\u4F55\u4E00\u68D2\u5982\u679C\u4F60\u4E0D\u77E5\u9053\u8981\u505A\u4EC0\u4E48\uFF0C\u76F4\u63A5\u95EE\u4E0A\u4E00\u68D2\u6216\u7FA4\u91CC");
36818
+ lines.push("- \u4E0D\u76F8\u5173\u7684\u6D88\u606F\u4E0D\u8981\u89E6\u53D1\u5267\u672C\uFF1B\u540C\u4E00\u5267\u672C\u4E0D\u8981\u91CD\u590D\u542F\u52A8");
36819
+ lines.push("--- end \u672C\u7FA4\u534F\u4F5C\u5267\u672C ---");
36820
+ lines.push("");
36821
+ }
36769
36822
 
36770
36823
  // src/sdkEventMapper.ts
36771
36824
  var logger12 = createModuleLogger("sdk.mapper");
@@ -54671,7 +54724,8 @@ function groupInboxEntryFromDispatch(payload) {
54671
54724
  boardSprints: payload.boardSprints,
54672
54725
  boardIssues: payload.boardIssues,
54673
54726
  boardMeta: payload.boardMeta,
54674
- dispatchKind: payload.dispatchKind
54727
+ dispatchKind: payload.dispatchKind,
54728
+ groupFlows: payload.groupFlows
54675
54729
  };
54676
54730
  }
54677
54731
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fangyb/ahchat-bridge",
3
- "version": "0.1.44",
3
+ "version": "0.1.45",
4
4
  "files": [
5
5
  "dist"
6
6
  ],