@agimon-ai/po-team 0.0.0-alpha.78 → 0.0.0-alpha.79

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.
@@ -3420,7 +3420,7 @@ function describePeerLine(peer) {
3420
3420
  ...peer.profile === void 0 ? [] : [`profile ${peer.profile}`],
3421
3421
  ...peer.sharedGroups.length === 0 ? [] : [`shared groups: ${peer.sharedGroups.join(", ")}`]
3422
3422
  ];
3423
- return `- ${peer.name.trim() === "" ? peer.sessionId : peer.name} (${details.join("; ")}): use send; it can reply to you the same way`;
3423
+ return `- ${peer.name.trim() === "" ? peer.sessionId : peer.name} (${details.join("; ")}): use send`;
3424
3424
  }
3425
3425
  function createHeadlessIntercomTool(channel, sessions) {
3426
3426
  return {
@@ -3429,7 +3429,7 @@ function createHeadlessIntercomTool(channel, sessions) {
3429
3429
  mainAgentOnly: true,
3430
3430
  description: "Push clear work outcomes to active agents and related live sessions: results, blockers, decisions. No greetings, thanks, or chit-chat.",
3431
3431
  parameters: TeamToolParamsSchema,
3432
- promptGuidelines: ["Send only new progress, blockers, or decisions. Do not repeat task briefs or delegation instructions.", "Use members to find related sessions by the names people give them, then send to that name or its session ID. Session peers use send, not ask/reply, and can send back."],
3432
+ promptGuidelines: ["Send only new progress, blockers, or decisions. Do not repeat task briefs or delegation instructions.", "Use file-edit notices for overlapping editors, or members for explicit session relationships. Session peers use send, not ask/reply. Contact only when coordination is needed; no acknowledgement is required."],
3433
3433
  executionMode: "serial",
3434
3434
  async execute(toolCallId, parameters, signal, onUpdate) {
3435
3435
  const params = parseTeamToolParams(parameters);
@@ -3449,14 +3449,13 @@ function createHeadlessIntercomTool(channel, sessions) {
3449
3449
  const delivery = sessions.delivery();
3450
3450
  if (delivery === void 0) throw new Error("Session delivery is unavailable.");
3451
3451
  const senderName = sessions.name?.()?.trim() || sessions.sessionId;
3452
- const replyTo = metadata?.sourceReference ?? senderName;
3453
3452
  const toName = peer?.name.trim() || recipientId;
3454
3453
  const deliveryId = `intercom:${sessions.sessionId}:${toolCallId}`;
3455
3454
  const receipt = await delivery.deliver({
3456
3455
  deliveryId,
3457
3456
  recipientKey: recipientId,
3458
3457
  kind: TEAM_MESSAGE_CUSTOM_TYPE,
3459
- prompt: `Message from session ${senderName} via intercom.\n\n${message}\n\nReply using intercom({ action: "send", to: ${JSON.stringify(replyTo)}, message: "..." }).`,
3458
+ prompt: `Message from session ${senderName} via intercom.\n\n${message}`,
3460
3459
  delivery: "steer",
3461
3460
  metadata: {
3462
3461
  ...metadata,
@@ -5580,20 +5579,10 @@ const sortedNames = (names) => [...new Set(names.map(clean).filter(Boolean))].to
5580
5579
  * Stable facts only, sorted, so equal rosters render byte-identical and a change check
5581
5580
  * appends nothing when nothing moved. Live status stays out: it would change every turn.
5582
5581
  */
5583
- function formatTeamRoster({ groups, peers, members }) {
5582
+ function formatTeamRoster({ groups, members }) {
5584
5583
  const lines = [];
5585
5584
  const own = sortedNames(groups);
5586
5585
  if (own.length) lines.push(`Your session groups: ${own.join(", ")}.`);
5587
- const peerLines = peers.map((peer) => {
5588
- const shared = sortedNames(peer.sharedGroups);
5589
- const details = [
5590
- `session ${peer.sessionId}`,
5591
- ...peer.profile === void 0 ? [] : [`profile ${clean(peer.profile)}`],
5592
- ...shared.length ? [`shared groups: ${shared.join(", ")}`] : []
5593
- ];
5594
- return `- ${clean(peer.name) || peer.sessionId} (${details.join("; ")})`;
5595
- }).toSorted();
5596
- if (peerLines.length) lines.push("Sessions you can message with intercom send, by name or session id:", ...peerLines);
5597
5586
  const subagentLines = members.filter((member) => member.role !== "main").map((member) => {
5598
5587
  const details = [member.agent ? `agent ${clean(member.agent)}` : void 0, member.task ? `task: ${clean(member.task.subject)}` : void 0].filter((value) => Boolean(value));
5599
5588
  return `- ${clean(member.name)}${details.length ? ` (${details.join("; ")})` : ""}`;
@@ -5604,7 +5593,7 @@ function formatTeamRoster({ groups, peers, members }) {
5604
5593
  function teamRosterNote(roster) {
5605
5594
  return [
5606
5595
  "<system-reminder>",
5607
- roster || "You are in no session group and have no peer sessions or active subagents now.",
5596
+ roster || "You are in no session group and have no active subagents now.",
5608
5597
  "This replaces any earlier roster note. Use intercom members for live status.",
5609
5598
  "</system-reminder>"
5610
5599
  ].join("\n");
@@ -6490,10 +6479,8 @@ const root = (0, _agimon_ai_po_core_extensionFile.defineRoot)(async ({ context,
6490
6479
  const listPeers = () => [...serverHost.context.sessionCommunication?.listPeers?.() ?? [], ...sessionGroupBridge?.peersFor(execution.sessionId) ?? []];
6491
6480
  const roster = createTeamRosterDelivery(() => formatTeamRoster({
6492
6481
  groups: serverHost.context.sessionCommunication?.groups ?? [],
6493
- peers: listPeers(),
6494
6482
  members: require_teamSnapshot.readActiveTeamSnapshot(channel)?.members ?? []
6495
6483
  }));
6496
- const stopPeerDiscovery = serverHost.context.sessionCommunication?.onPeerReady(() => void roster.sync());
6497
6484
  const intercom = createHeadlessIntercomTool(channel, {
6498
6485
  sessionId: execution.sessionId,
6499
6486
  name: () => serverHost.context.sessionCommunication?.sessionName,
@@ -6506,12 +6493,8 @@ const root = (0, _agimon_ai_po_core_extensionFile.defineRoot)(async ({ context,
6506
6493
  ctx.plugin((providerContext) => {
6507
6494
  providerContext.inject([_agimon_ai_po_session.PO_SESSION_GROUP_BRIDGE_SERVICE], (bridgeContext) => {
6508
6495
  sessionGroupBridge = (0, _agimon_ai_po_session.readSessionGroupBridge)(bridgeContext);
6509
- const unsubscribe = sessionGroupBridge?.subscribe(() => void roster.sync());
6510
- roster.sync();
6511
6496
  return () => {
6512
- unsubscribe?.();
6513
6497
  sessionGroupBridge = void 0;
6514
- roster.sync();
6515
6498
  };
6516
6499
  });
6517
6500
  providerContext.plugin(teamCollaborationPlugin, {
@@ -6696,7 +6679,6 @@ const root = (0, _agimon_ai_po_core_extensionFile.defineRoot)(async ({ context,
6696
6679
  let stoppedRuns;
6697
6680
  await (0, _agimon_ai_po_core_extensionFile.runCleanups)([
6698
6681
  () => awaitedInline.close(),
6699
- () => stopPeerDiscovery?.(),
6700
6682
  () => roster.dispose(),
6701
6683
  () => execution.client.setStatus(TEAM_COST_STATUS, void 0),
6702
6684
  () => channel.dispose(),