@canonmsg/agent-sdk 1.1.1 → 1.1.2

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.
@@ -150,9 +150,9 @@ export class CanonAgent {
150
150
  async reachOut(card, options) {
151
151
  const targetUserId = card.userId;
152
152
  // Include the opener/request payloads in the dedupe key so two concurrent
153
- // calls with different `text` or `requestMessage` don't silently collapse
153
+ // calls with different `text`, `requestMessage`, or setup choices don't silently collapse
154
154
  // and lose the second caller's intended side effect.
155
- const inFlightKey = `${targetUserId}\u0000${options?.text ?? ''}\u0000${options?.requestMessage ?? ''}`;
155
+ const inFlightKey = `${targetUserId}\u0000${options?.text ?? ''}\u0000${options?.requestMessage ?? ''}\u0000${JSON.stringify(options?.sessionConfig ?? null)}`;
156
156
  const inFlight = this.reachOutInFlight.get(inFlightKey);
157
157
  if (inFlight)
158
158
  return inFlight;
@@ -167,6 +167,7 @@ export class CanonAgent {
167
167
  targetUserId,
168
168
  text: options?.text ?? null,
169
169
  requestMessage: options?.requestMessage ?? null,
170
+ sessionConfig: options?.sessionConfig ?? null,
170
171
  });
171
172
  }
172
173
  async start() {
package/dist/types.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export type { AddMemberResult, AgentClientType, CanonRuntimeDescriptor, CanonMessage, CanonConversation, CanonContact, CanonContactRequest, CanonResolveAdmissionResult, ContactAddedPayload, ContactRemovedPayload, ContactSource, AgentContext, ResolvedAdmissionState, ResolvedAdmissionTargetSummary, ResolvedTargetAdmissionPayload, CanonResolvedWorkSession, CanonWorkSession, CanonWorkSessionContext, CanonWorkSessionConversationRole, CanonWorkSessionDisclosureMode, CanonWorkSessionParticipant, CanonWorkSessionStatus, CreateWorkSessionOptions, SendLinkedMessageOptions, SendLinkedMessageResult, SendMessageOptions, CreateConversationOptions, TurnLifecycleState, UpdateWorkSessionConversationOptions, } from '@canonmsg/core';
2
- import type { AddMemberResult, CanonMessage, CanonConversation, CanonRuntimeActionDispatch, CreateWorkSessionOptions, SendMessageOptions, UpdateWorkSessionConversationOptions } from '@canonmsg/core';
1
+ export type { AddMemberResult, AgentClientType, CanonRuntimeDescriptor, CanonMessage, CanonConversation, CanonContact, CanonContactRequest, CanonResolveAdmissionResult, ContactAddedPayload, ContactRemovedPayload, ContactSource, AgentContext, ResolvedAdmissionState, ResolvedAdmissionTargetSummary, ResolvedTargetAdmissionPayload, CanonResolvedWorkSession, CanonWorkSession, CanonWorkSessionContext, CanonWorkSessionConversationRole, CanonWorkSessionDisclosureMode, CanonWorkSessionParticipant, CanonWorkSessionStatus, CreateWorkSessionOptions, SendLinkedMessageOptions, SendLinkedMessageResult, SendMessageOptions, SessionConfig, CreateConversationOptions, TurnLifecycleState, UpdateWorkSessionConversationOptions, } from '@canonmsg/core';
2
+ import type { AddMemberResult, CanonMessage, CanonConversation, CanonRuntimeActionDispatch, CreateWorkSessionOptions, SendMessageOptions, SessionConfig, UpdateWorkSessionConversationOptions } from '@canonmsg/core';
3
3
  import type { MaterializeMediaOptions, MaterializedCanonAttachment, ReplyWithFileOptions, UploadMediaFileOptions } from './media.js';
4
4
  export interface ProgressMessageOptions extends SendMessageOptions {
5
5
  /**
@@ -165,6 +165,9 @@ export type ReachOutResult = {
165
165
  } | {
166
166
  status: 'pending';
167
167
  requestId: string | null;
168
+ } | {
169
+ status: 'setup_required';
170
+ reason: string;
168
171
  } | {
169
172
  status: 'blocked' | 'unavailable';
170
173
  reason: string;
@@ -174,4 +177,6 @@ export interface ReachOutOptions {
174
177
  text?: string;
175
178
  /** Optional contact-request note. Defaults to `text` when admission is `request-required`. */
176
179
  requestMessage?: string;
180
+ /** Explicit session setup to use when the contact-card target is an agent. */
181
+ sessionConfig?: SessionConfig | null;
177
182
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@canonmsg/agent-sdk",
3
- "version": "1.1.1",
3
+ "version": "1.1.2",
4
4
  "description": "Canon Agent SDK — build AI agents that participate in Canon conversations",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -28,7 +28,7 @@
28
28
  "node": ">=18.0.0"
29
29
  },
30
30
  "dependencies": {
31
- "@canonmsg/core": "^0.15.3"
31
+ "@canonmsg/core": "^0.15.4"
32
32
  },
33
33
  "publishConfig": {
34
34
  "access": "public"