Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/Java/Openclaw/extensions/msteams/src/   (KI Agentensystem Version 22©)  Datei vom 26.3.2026 mit Größe 3 kB image not shown  

Quelle  conversation-store.ts

  Sprache: JAVA
 

/**
 * Conversation store for MS Teams proactive messaging.
 *
 * Stores ConversationReference-like objects keyed by conversation ID so we can
 * send proactive messages later (after the webhook turn has completed).
 */


/** Minimal ConversationReference shape for proactive messaging */
export type StoredConversationReference = {
  /** Timestamp when this reference was last seen/updated. */
  lastSeenAt?: string;
  /** Activity ID from the last message */
  activityId?: string;
  /** Channel thread root activity ID for threaded replies. */
  threadId?: string;
  /** User who sent the message */
  user?: { id?: string; name?: string; aadObjectId?: string };
  /** Agent/bot that received the message */
  agent?: { id?: string; name?: string; aadObjectId?: string } | null;
  /** @deprecated legacy field (pre-Agents SDK). Prefer `agent`. */
  bot?: { id?: string; name?: string };
  /** Conversation details */
  conversation?: { id?: string; conversationType?: string; tenantId?: string };
  /**
   * Tenant ID sourced from `activity.channelData.tenant.id` at inbound time.
   * Bot Framework requires this on outbound proactive messages so the connector
   * can route them to the correct Azure AD tenant; without it, the connector
   * rejects the request with HTTP 403. For channel activities, `conversation.tenantId`
   * is often unset, making `channelData.tenant.id` the reliable source.
   */

  tenantId?: string;
  /**
   * Azure AD object ID of the user who sent the last inbound activity,
   * mirrored from `activity.from.aadObjectId` so outbound proactive sends
   * can include it on the connector request (required for personal DMs).
   */

  aadObjectId?: string;
  /** Team ID for channel messages (when available). */
  teamId?: string;
  /** Channel ID (usually "msteams") */
  channelId?: string;
  /** Service URL for sending messages back */
  serviceUrl?: string;
  /** Locale */
  locale?: string;
  /**
   * Cached Graph API chat ID (format: `19:xxx@thread.tacv2` or `19:xxx@unq.gbl.spaces`).
   * Bot Framework conversation IDs for personal DMs use a different format (`a:1xxx` or
   * `8:orgid:xxx`) that the Graph API does not accept. This field caches the resolved
   * Graph-native chat ID so we don't need to re-query the API on every send.
   */

  graphChatId?: string;
  /** IANA timezone from Teams clientInfo entity (e.g. "America/New_York") */
  timezone?: string;
};

export type MSTeamsConversationStoreEntry = {
  conversationId: string;
  reference: StoredConversationReference;
};

export type MSTeamsConversationStore = {
  upsert: (conversationId: string, reference: StoredConversationReference) => Promise<void>;
  get: (conversationId: string) => Promise<StoredConversationReference | null>;
  list: () => Promise<MSTeamsConversationStoreEntry[]>;
  remove: (conversationId: string) => Promise<boolean>;
  /** Person-targeted proactive lookup: prefer the freshest personal DM reference. */
  findPreferredDmByUserId: (id: string) => Promise<MSTeamsConversationStoreEntry | null>;
  /** @deprecated Use `findPreferredDmByUserId` for proactive user-targeted sends. */
  findByUserId: (id: string) => Promise<MSTeamsConversationStoreEntry | null>;
};

Messung V0.5 in Prozent
C=96 H=91 G=93

¤ Dauer der Verarbeitung: 0.13 Sekunden  (vorverarbeitet am  2026-05-26) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.