@supportbridge/sdk 0.9.6 → 0.9.7

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/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.9.7
6
+
7
+ - Redesigns the embedded support chat around the assigned human representative, vendor identity, handoff context, quieter message styling, personalized waiting and composer states, reliable typing/read signals, and distinct user-ended and representative-resolved outcomes.
8
+
5
9
  ## 0.9.6
6
10
 
7
11
  - Relays the exact App2 manual-offer message in the model-visible MCP tool result and exposes it as `support_offer_message` structured data.
package/dist/install.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { registerAppResource, registerAppTool } from "@modelcontextprotocol/ext-apps/server";
2
2
  import { SupportBridgeClient, type SupportBridgeClientOptions } from "./client.js";
3
3
  import { SupportBridgeControlPlane } from "./control-plane.js";
4
+ import { type SupportChatAppOptions } from "./mcp-app.js";
4
5
  import { type McpInstrumentationOptions, type McpToolHandler } from "./mcp.js";
5
6
  import type { PrivacyOptions, SupportIdentity } from "./types.js";
6
7
  type RequestContext = unknown;
@@ -15,11 +16,7 @@ export interface InstallSupportBridgeOptions {
15
16
  policyRefreshIntervalMs?: number;
16
17
  fetch?: typeof globalThis.fetch;
17
18
  privacy?: PrivacyOptions;
18
- app?: {
19
- title?: string;
20
- pollIntervalMs?: number;
21
- resourceUri?: string;
22
- };
19
+ app?: SupportChatAppOptions;
23
20
  policyApp?: {
24
21
  enabled?: boolean;
25
22
  resourceUri?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAE7F,OAAO,EAAE,mBAAmB,EAAE,KAAK,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAI/D,OAAO,EAA2C,KAAK,yBAAyB,EAAE,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AACxH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlE,KAAK,cAAc,GAAG,OAAO,CAAC;AAC9B,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;AAEvG,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,GAAG,eAAe,GAAG,SAAS,CAAC;IAC3G,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,GAAG,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxE,SAAS,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxD,MAAM,CAAC,EAAE,IAAI,CAAC,0BAA0B,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,aAAa,GAAG,gBAAgB,GAAG,SAAS,CAAC,CAAC;CAC5H;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,YAAY,EAAE,yBAAyB,CAAC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,UAAU,EACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,cAAc,CAAC,UAAU,CAAC,EACnC,OAAO,CAAC,EAAE,IAAI,CAAC,yBAAyB,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,GAChE,cAAc,CAAC,UAAU,CAAC,CAAC;IAC9B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,qBAAa,aAAa;IACxB,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,2BAA2B,GAAG,yBAAyB;CAGvG;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,2BAA2B,GAAG,yBAAyB,CAgN3H"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAE7F,OAAO,EAAE,mBAAmB,EAAE,KAAK,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAA6C,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAGrG,OAAO,EAA2C,KAAK,yBAAyB,EAAE,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AACxH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlE,KAAK,cAAc,GAAG,OAAO,CAAC;AAC9B,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;AAEvG,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,GAAG,eAAe,GAAG,SAAS,CAAC;IAC3G,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,GAAG,CAAC,EAAE,qBAAqB,CAAC;IAC5B,SAAS,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxD,MAAM,CAAC,EAAE,IAAI,CAAC,0BAA0B,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,aAAa,GAAG,gBAAgB,GAAG,SAAS,CAAC,CAAC;CAC5H;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,YAAY,EAAE,yBAAyB,CAAC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,UAAU,EACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,cAAc,CAAC,UAAU,CAAC,EACnC,OAAO,CAAC,EAAE,IAAI,CAAC,yBAAyB,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,GAChE,cAAc,CAAC,UAAU,CAAC,CAAC;IAC9B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,qBAAa,aAAa;IACxB,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,2BAA2B,GAAG,yBAAyB;CAGvG;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,2BAA2B,GAAG,yBAAyB,CAgN3H"}
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
package/dist/mcp-app.d.ts CHANGED
@@ -6,6 +6,8 @@ export declare const SUPPORT_CHAT_MIME_TYPE = "text/html;profile=mcp-app";
6
6
  export interface SupportChatAppOptions {
7
7
  resourceUri?: string;
8
8
  title?: string;
9
+ vendorName?: string;
10
+ representativeRole?: string;
9
11
  pollIntervalMs?: number;
10
12
  }
11
13
  export interface SupportChatApp {
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-app.d.ts","sourceRoot":"","sources":["../src/mcp-app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,EAAE,yBAAyB,EAAE,CAAC;AACrC,eAAO,MAAM,sBAAsB,8BAA8B,CAAC;AAElE,MAAM,WAAW,qBAAqB;IAAG,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAAE;AACzG,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,sBAAsB,CAAC;IACxC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,gBAAgB,IAAI;QAAE,QAAQ,EAAE,KAAK,CAAC;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IACzH,KAAK,EAAE;QACL,gBAAgB,CAAC,UAAU,EAAE;YAAE,SAAS,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;QAC5E,oBAAoB,CAAC,UAAU,EAAE;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;SAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;QAChI,oBAAoB,CAAC,UAAU,EAAE;YAAE,UAAU,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;QACjF,oBAAoB,CAAC,UAAU,EAAE;YAAE,UAAU,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;QAClG,mBAAmB,CAAC,UAAU,EAAE;YAAE,UAAU,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;QAChF,sBAAsB,CAAC,UAAU,EAAE;YAAE,UAAU,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;KACpF,CAAC;CACH;AAED,0FAA0F;AAC1F,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,yBAAyB,EAAE,OAAO,GAAE,qBAA0B,GAAG,cAAc,CAqBjI;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMhG"}
1
+ {"version":3,"file":"mcp-app.d.ts","sourceRoot":"","sources":["../src/mcp-app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,EAAE,yBAAyB,EAAE,CAAC;AACrC,eAAO,MAAM,sBAAsB,8BAA8B,CAAC;AAElE,MAAM,WAAW,qBAAqB;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AACD,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,sBAAsB,CAAC;IACxC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,gBAAgB,IAAI;QAAE,QAAQ,EAAE,KAAK,CAAC;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IACzH,KAAK,EAAE;QACL,gBAAgB,CAAC,UAAU,EAAE;YAAE,SAAS,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;QAC5E,oBAAoB,CAAC,UAAU,EAAE;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;SAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;QAChI,oBAAoB,CAAC,UAAU,EAAE;YAAE,UAAU,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;QACjF,oBAAoB,CAAC,UAAU,EAAE;YAAE,UAAU,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;QAClG,mBAAmB,CAAC,UAAU,EAAE;YAAE,UAAU,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;QAChF,sBAAsB,CAAC,UAAU,EAAE;YAAE,UAAU,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;KACpF,CAAC;CACH;AAED,0FAA0F;AAC1F,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,yBAAyB,EAAE,OAAO,GAAE,qBAA0B,GAAG,cAAc,CAwBjI;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMhG"}
package/dist/mcp-app.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { supportChatHtml } from "./support-chat-html.js";
1
2
  import { SUPPORT_CHAT_RESOURCE_URI } from "./version.js";
2
3
  export { SUPPORT_CHAT_RESOURCE_URI };
3
4
  export const SUPPORT_CHAT_MIME_TYPE = "text/html;profile=mcp-app";
@@ -5,15 +6,18 @@ export const SUPPORT_CHAT_MIME_TYPE = "text/html;profile=mcp-app";
5
6
  export function createSupportChatApp(controlPlane, options = {}) {
6
7
  const resourceUri = options.resourceUri ?? SUPPORT_CHAT_RESOURCE_URI;
7
8
  const title = options.title ?? "Talk to Support";
9
+ const vendorName = options.vendorName ?? "";
10
+ const representativeRole = options.representativeRole ?? "Customer Success";
8
11
  const pollIntervalMs = Math.max(1_000, options.pollIntervalMs ?? 2_000);
12
+ const frameSize = { width: 760, height: 620 };
9
13
  const toolMeta = { ui: { resourceUri, visibility: ["model", "app"] }, "ui/resourceUri": resourceUri };
10
14
  const getConversation = async (ticketId) => workingConversation(await controlPlane.getChat(ticketId), ticketId);
11
15
  return {
12
16
  resourceUri,
13
17
  mimeType: SUPPORT_CHAT_MIME_TYPE,
14
18
  toolMeta,
15
- resourceMeta: { ui: { preferredFrameSize: { width: 680, height: 540 } } },
16
- resourceContents: () => ({ contents: [{ uri: resourceUri, mimeType: SUPPORT_CHAT_MIME_TYPE, text: supportChatHtml(title, pollIntervalMs), _meta: { ui: { preferredFrameSize: { width: 680, height: 540 } } } }] }),
19
+ resourceMeta: { ui: { preferredFrameSize: frameSize } },
20
+ resourceContents: () => ({ contents: [{ uri: resourceUri, mimeType: SUPPORT_CHAT_MIME_TYPE, text: supportChatHtml({ title, vendorName, representativeRole, pollIntervalMs }), _meta: { ui: { preferredFrameSize: frameSize } } }] }),
17
21
  tools: {
18
22
  get_support_chat: async ({ ticket_id }) => result("Support conversation refreshed.", await getConversation(ticket_id)),
19
23
  send_support_message: async ({ ticket_id, text, sender_name }) => { await controlPlane.sendUserMessage(ticket_id, text, sender_name); return result("Message sent to support.", await getConversation(ticket_id)); },
@@ -34,12 +38,4 @@ export function workingConversation(value, fallbackId) {
34
38
  function result(text, structuredContent) { return { content: [{ type: "text", text }], structuredContent }; }
35
39
  function record(value) { return value && typeof value === "object" && !Array.isArray(value) ? value : {}; }
36
40
  function string(value) { return typeof value === "string" ? value : ""; }
37
- function supportChatHtml(title, pollIntervalMs) {
38
- const config = JSON.stringify({ title, pollIntervalMs }).replace(/</g, "\\u003c");
39
- return `<!doctype html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width"><style>
40
- :root{font:14px Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;color:#17211b;color-scheme:light;--brand:#176b49;--brand-soft:#dff3e8;--line:#dde5df;--muted:#68766d;--surface:#fff;--chat:#f6f8f6}*{box-sizing:border-box}body{margin:0;background:transparent}.app{position:relative;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--surface);min-height:480px;box-shadow:0 8px 28px rgba(31,54,41,.08);transition:min-height .2s ease}.head{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line);min-height:72px}.avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--brand);color:#fff;font-weight:800;box-shadow:inset 0 0 0 2px rgba(255,255,255,.35)}.identity{min-width:0;flex:1}.brand{font-weight:800;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.presence{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px;margin-top:3px}.dot{width:7px;height:7px;border-radius:50%;background:#2aa66a}.dot.waiting{background:#e4a832}.dot.closed{background:#9aa49d}.head-actions{display:flex;align-items:center;gap:5px}.icon-button,.send-button{border:0;cursor:pointer;display:grid;place-items:center}.icon-button{width:34px;height:34px;border-radius:9px;background:transparent;color:#536158;font-size:17px}.icon-button:hover{background:#eef2ef}.details{position:relative}.details summary{list-style:none}.details summary::-webkit-details-marker{display:none}.details-card{position:absolute;right:0;top:40px;z-index:4;width:230px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 10px 30px rgba(20,40,28,.15);font-size:12px;color:var(--muted)}.details-card code{display:block;margin-top:4px;color:#34443a;overflow-wrap:anywhere}.chat-wrap{position:relative}.chat{height:334px;overflow:auto;padding:16px;background:var(--chat);scroll-behavior:smooth}.empty{text-align:center;color:var(--muted);padding:90px 20px}.row{display:flex;gap:8px;align-items:flex-end;margin:11px 0}.row.user{justify-content:flex-end}.row.support{justify-content:flex-start}.message-avatar{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto;background:#d9e8de;color:#26573e;font-size:11px;font-weight:800}.message-wrap{max-width:74%}.sender{font-size:11px;font-weight:700;color:#657269;margin:0 0 4px 3px}.bubble{padding:10px 12px;border-radius:15px 15px 15px 5px;background:#fff;border:1px solid #e2e8e3;box-shadow:0 1px 2px rgba(26,46,34,.04);white-space:pre-wrap;overflow-wrap:anywhere}.user .bubble{border:0;border-radius:15px 15px 5px 15px;background:var(--brand);color:#fff}.meta{display:flex;gap:5px;align-items:center;margin-top:4px;padding:0 3px;color:#849087;font-size:10px}.user .meta{justify-content:flex-end}.system-row{text-align:center;margin:14px 0}.system-pill{display:inline-flex;align-items:center;gap:5px;max-width:90%;padding:5px 9px;border-radius:999px;background:#e9eeea;color:#6b786f;font-size:11px}.unread{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);border:1px solid #cfe0d4;border-radius:999px;padding:7px 11px;background:#fff;color:var(--brand);font-weight:750;box-shadow:0 4px 14px rgba(24,57,38,.13);cursor:pointer}.composer-area{border-top:1px solid var(--line);background:#fff}.composer{display:flex;align-items:flex-end;gap:8px;padding:11px 12px 7px}.composer textarea{flex:1;min-width:0;max-height:110px;resize:none;padding:11px 13px;border:1px solid #cbd6ce;border-radius:13px;background:#fff;color:#17211b;font:inherit;line-height:20px;outline:none}.composer textarea:focus{border-color:#4a9970;box-shadow:0 0 0 3px rgba(36,126,78,.1)}.send-button{width:42px;height:42px;flex:0 0 auto;border-radius:12px;background:var(--brand);color:#fff;font-size:19px}.send-button:disabled{opacity:.42;cursor:default}.composer-foot{display:flex;align-items:center;justify-content:space-between;min-height:29px;padding:0 13px 8px;color:#879188;font-size:11px}.close-button,.reopen-button{border:0;background:transparent;color:#657169;font:inherit;font-weight:700;cursor:pointer}.reopen-panel{display:none;padding:15px;text-align:center;border-top:1px solid var(--line);background:#fff}.reopen-panel p{margin:0 0 9px;color:var(--muted);font-size:12px}.reopen-button{padding:9px 14px;border-radius:10px;background:#e5f2e9;color:var(--brand)}.app.closed .composer-area{display:none}.app.closed .reopen-panel{display:block}.app.compact{min-height:0}.app.compact .chat-wrap,.app.compact .composer-area,.app.compact .reopen-panel,.app.compact .details{display:none}.app.compact .head{border-bottom:0}.compact-summary{display:none;color:var(--muted);font-size:12px}.app.compact .compact-summary{display:block}.app.compact .presence{display:none}@media(max-width:480px){.chat{height:310px}.message-wrap{max-width:84%}.head{padding:12px}.details-card{right:-36px}}
41
- </style></head><body><main class="app" id="app"><header class="head"><div class="avatar" id="avatar">S</div><div class="identity"><div class="brand" id="title"></div><div class="presence"><span class="dot waiting" id="dot"></span><span id="status">Connecting to support…</span></div><div class="compact-summary" id="compactSummary">Support chat active</div></div><div class="head-actions"><details class="details"><summary class="icon-button" aria-label="Conversation details">•••</summary><div class="details-card">Conversation ID<code id="session">Creating session…</code></div></details><button class="icon-button" id="collapse" aria-label="Collapse support chat" title="Collapse">⌃</button></div></header><div class="chat-wrap"><section class="chat" id="chat"><div class="empty">Connecting you with human support…</div></section><button class="unread" id="unread" hidden>↓ New messages</button></div><footer class="composer-area"><div class="composer"><textarea id="message" rows="1" placeholder="Message support…" aria-label="Message support"></textarea><button class="send-button" id="send" aria-label="Send message" title="Send">➤</button></div><div class="composer-foot"><span id="delivery">Enter to send · Shift+Enter for a new line</span><button class="close-button" id="end">Close chat</button></div></footer><section class="reopen-panel"><p>This conversation is closed.</p><button class="reopen-button" id="reopen">Reopen conversation</button></section></main><script>
42
- (()=>{const CONFIG=${config};let nextId=1,sessionId="",polling=false,lastCount=0,unreadCount=0,latestSession=null;const pending=new Map(),q=s=>document.querySelector(s),app=q("#app"),status=q("#status"),dot=q("#dot"),chat=q("#chat"),input=q("#message"),send=q("#send"),end=q("#end"),reopen=q("#reopen"),delivery=q("#delivery"),unread=q("#unread"),collapse=q("#collapse"),summary=q("#compactSummary");q("#title").textContent=CONFIG.title;const post=message=>window.parent.postMessage(message,"*");const request=(method,params)=>new Promise((resolve,reject)=>{const id=nextId++;pending.set(id,{resolve,reject});post({jsonrpc:"2.0",id,method,params});window.setTimeout(()=>{if(pending.delete(id))reject(new Error(method+" timed out"))},30000)});const notify=(method,params)=>post({jsonrpc:"2.0",method,...(params?{params}:{})});const callTool=(name,args)=>request("tools/call",{name,arguments:args});const sendSize=()=>notify("ui/notifications/size-changed",{width:Math.ceil(document.documentElement.getBoundingClientRect().width),height:Math.ceil(document.documentElement.getBoundingClientRect().height)});const esc=value=>String(value??"").replace(/[&<>\"']/g,c=>({"&":"&amp;","<":"&lt;",">":"&gt;",'\"':"&quot;","'":"&#39;"}[c]));const time=value=>{const date=new Date(value);return Number.isNaN(date.getTime())?"":date.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})};const friendlyAgent=value=>{const name=String(value??"").trim();return !name||name.startsWith("slack:")||name.toUpperCase().startsWith("SLACK:")?"Support team":name};const systemText=value=>{const text=String(value??"");if(/claimed this conversation/i.test(text))return text.replace(/ claimed this conversation.*$/i," joined the conversation");if(/resolved this conversation/i.test(text))return "Conversation closed";if(/reopened this conversation/i.test(text))return "Conversation reopened";if(/support request created/i.test(text))return "Support request created";return text};const atBottom=()=>chat.scrollHeight-chat.scrollTop-chat.clientHeight<48;function messageHtml(message,agent){const sender=message.sender==="user"?"user":message.sender==="system"?"system":"support";if(sender==="system")return '<div class="system-row"><span class="system-pill">'+esc(systemText(message.text))+'</span></div>';const name=sender==="support"?friendlyAgent(message.sender_name||agent):"You";const avatar=name.charAt(0).toUpperCase()||"S";return '<div class="row '+sender+'">'+(sender==="support"?'<div class="message-avatar">'+esc(avatar)+'</div>':"")+'<div class="message-wrap">'+(sender==="support"?'<div class="sender">'+esc(name)+'</div>':"")+'<div class="bubble">'+esc(message.text)+'</div><div class="meta"><span>'+esc(time(message.created_at))+'</span></div></div></div>'}function render(session,messages){latestSession=session;const wasBottom=atBottom(),newMessages=Math.max(0,messages.length-lastCount),supportMessage=[...messages].reverse().find(message=>message.sender==="support"),agent=friendlyAgent(supportMessage?.sender_name||session.agent_name);q("#avatar").textContent=agent.charAt(0).toUpperCase()||"S";const closed=session.status==="resolved",waiting=session.status==="queued";status.textContent=closed?"Conversation closed":waiting?"Waiting for a support specialist":agent+" · Online";dot.className="dot "+(closed?"closed":waiting?"waiting":"");app.classList.toggle("closed",closed);summary.textContent=closed?"Conversation closed":unreadCount?unreadCount+" new "+(unreadCount===1?"reply":"replies"):"Support chat active";chat.innerHTML=messages.length?messages.map(message=>messageHtml(message,agent)).join(""):'<div class="empty">Your support conversation is ready.</div>';if(wasBottom||lastCount===0){chat.scrollTop=chat.scrollHeight;unreadCount=0;unread.hidden=true}else if(newMessages){unreadCount+=newMessages;unread.textContent="↓ "+unreadCount+" new "+(unreadCount===1?"message":"messages");unread.hidden=false}lastCount=messages.length;input.disabled=send.disabled=closed;sendSize()}async function refresh(){if(!sessionId)return;try{const result=await callTool("support_get_messages",{session_id:sessionId}),data=result.structuredContent;if(data?.session&&Array.isArray(data.messages))render(data.session,data.messages)}catch(_){status.textContent="Reconnecting…";dot.className="dot waiting"}}function receiveToolResult(params){const data=params?.structuredContent;if(!data?.session_id)return;sessionId=data.session_id;q("#session").textContent=sessionId;if(data.session&&Array.isArray(data.messages))render(data.session,data.messages);if(!polling){polling=true;void refresh();window.setInterval(()=>void refresh(),CONFIG.pollIntervalMs)}}window.addEventListener("message",event=>{if(event.source!==window.parent)return;const message=event.data;if(!message||message.jsonrpc!=="2.0")return;if(message.id!==undefined&&(message.result!==undefined||message.error)){const waiter=pending.get(message.id);if(!waiter)return;pending.delete(message.id);message.error?waiter.reject(new Error(message.error.message)):waiter.resolve(message.result)}else if(message.method==="ui/notifications/tool-result")receiveToolResult(message.params);else if(message.method==="ping"&&message.id!==undefined)post({jsonrpc:"2.0",id:message.id,result:{}});else if(message.method==="ui/resource-teardown"&&message.id!==undefined)post({jsonrpc:"2.0",id:message.id,result:{}})});async function sendMessage(){const message=input.value.trim();if(!message||!sessionId)return;input.value="";input.style.height="auto";send.disabled=true;delivery.textContent="Sending…";try{await callTool("support_send_message",{session_id:sessionId,message});delivery.textContent="Sent";await refresh();window.setTimeout(()=>{if(delivery.textContent==="Sent")delivery.textContent="Enter to send · Shift+Enter for a new line"},1800)}catch(_){input.value=message;delivery.textContent="Message failed · Press send to retry"}finally{send.disabled=latestSession?.status==="resolved"}}send.addEventListener("click",()=>void sendMessage());input.addEventListener("input",()=>{input.style.height="auto";input.style.height=Math.min(input.scrollHeight,110)+"px"});input.addEventListener("keydown",event=>{if(event.key==="Enter"&&!event.shiftKey){event.preventDefault();void sendMessage()}});end.addEventListener("click",async()=>{if(!sessionId)return;end.disabled=true;delivery.textContent="Closing conversation…";try{const result=await callTool("support_end_session",{session_id:sessionId}),data=result.structuredContent;if(data?.session)render(data.session,data.messages||[])}finally{end.disabled=false}});reopen.addEventListener("click",async()=>{if(!sessionId)return;reopen.disabled=true;try{const result=await callTool("support_reopen_session",{session_id:sessionId}),data=result.structuredContent;if(data?.session)render(data.session,data.messages||[])}finally{reopen.disabled=false}});unread.addEventListener("click",()=>{chat.scrollTop=chat.scrollHeight;unreadCount=0;unread.hidden=true;summary.textContent="Support chat active"});chat.addEventListener("scroll",()=>{if(atBottom()){unreadCount=0;unread.hidden=true;summary.textContent=latestSession?.status==="resolved"?"Conversation closed":"Support chat active"}});collapse.addEventListener("click",()=>{const compact=app.classList.toggle("compact");collapse.textContent=compact?"⌄":"⌃";collapse.setAttribute("aria-label",compact?"Open support chat":"Collapse support chat");sendSize()});request("ui/initialize",{appInfo:{name:"SupportBridge Chat",version:"0.5.0"},appCapabilities:{availableDisplayModes:["inline"]},protocolVersion:"2026-01-26"}).then(()=>{notify("ui/notifications/initialized");sendSize();new ResizeObserver(sendSize).observe(document.documentElement);status.textContent="Connecting to support…"}).catch(()=>{status.textContent="This host could not initialize the support app"})})();
43
- </script></body></html>`;
44
- }
45
41
  //# sourceMappingURL=mcp-app.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-app.js","sourceRoot":"","sources":["../src/mcp-app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-app.js","sourceRoot":"","sources":["../src/mcp-app.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export interface SupportChatHtmlOptions {
2
+ title: string;
3
+ vendorName: string;
4
+ representativeRole: string;
5
+ pollIntervalMs: number;
6
+ }
7
+ export declare function supportChatHtml(options: SupportChatHtmlOptions): string;
8
+ //# sourceMappingURL=support-chat-html.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"support-chat-html.d.ts","sourceRoot":"","sources":["../src/support-chat-html.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,MAAM,CA0IvE"}
@@ -0,0 +1,140 @@
1
+ export function supportChatHtml(options) {
2
+ const config = JSON.stringify(options).replace(/</g, "\\u003c");
3
+ return `<!doctype html>
4
+ <html lang="en">
5
+ <head>
6
+ <meta charset="utf-8">
7
+ <meta name="viewport" content="width=device-width,initial-scale=1">
8
+ <style>
9
+ :root{font:14px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#1b241f;color-scheme:light;--brand:#176b49;--brand-deep:#105438;--brand-soft:#e9f5ee;--ink:#1b241f;--muted:#6f7a73;--faint:#929b95;--line:#dfe6e1;--surface:#fff;--canvas:#f7f9f7;--support:#fff;--user-soft:#e8f3ec}
10
+ *{box-sizing:border-box}body{margin:0;background:transparent}.app{position:relative;width:min(100%,760px);min-height:560px;margin:0 auto;overflow:hidden;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:0 12px 36px rgba(31,54,41,.08);transition:min-height .2s ease}
11
+ .header{display:flex;align-items:center;gap:11px;min-height:67px;padding:11px 14px;background:#fff}.vendor-avatar,.message-avatar{display:grid;place-items:center;flex:0 0 auto;border-radius:50%;background:var(--brand);color:#fff;font-weight:750}.vendor-avatar{width:36px;height:36px;font-size:13px;box-shadow:inset 0 0 0 2px rgba(255,255,255,.32)}.vendor-avatar.assigned{animation:avatarIn .24s ease-out}.identity{min-width:0;flex:1}.primary-name{overflow:hidden;font-size:15px;font-weight:650;line-height:19px;text-overflow:ellipsis;white-space:nowrap}.identity-meta{display:flex;align-items:center;gap:5px;margin-top:2px;color:var(--muted);font-size:12px;white-space:nowrap}.presence-dot{width:6px;height:6px;border-radius:50%;background:#27a568}.presence-dot.waiting{background:#dba33a}.presence-dot.closed{background:#a0aaa3}.context-tag{max-width:160px;overflow:hidden;border-radius:999px;padding:5px 9px;background:var(--brand-soft);color:var(--brand-deep);font-size:11px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.header-actions{display:flex;align-items:center;gap:2px}.icon-button{display:grid;width:32px;height:32px;place-items:center;border:0;border-radius:9px;background:transparent;color:#617068;font:650 15px/1 inherit;cursor:pointer}.icon-button:hover,.icon-button:focus-visible{background:#f0f4f1;outline:0}.details{position:relative}.details summary{list-style:none}.details summary::-webkit-details-marker{display:none}.details-card{position:absolute;z-index:12;top:38px;right:0;width:266px;padding:14px;border:1px solid var(--line);border-radius:13px;background:#fff;box-shadow:0 14px 36px rgba(20,40,28,.16);color:var(--muted);font-size:12px}.details-title{margin-bottom:9px;color:var(--ink);font-size:13px;font-weight:700}.details-row{display:grid;grid-template-columns:84px 1fr;gap:8px;margin:7px 0}.details-row span:last-child,.details-row code{overflow-wrap:anywhere;color:#34433a;font:inherit}.powered{margin-top:12px;padding-top:10px;border-top:1px solid #edf1ee;color:var(--faint);font-size:11px}
12
+ .context-card{display:flex;align-items:center;gap:12px;margin:0 14px 8px;padding:10px 12px;border-radius:12px;background:#f2f7f3}.context-copy{min-width:0;flex:1}.context-eyebrow{color:#68756d;font-size:11px;font-weight:700;letter-spacing:.02em}.context-reason{overflow:hidden;margin-top:2px;color:#27332c;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.context-link{border:0;background:transparent;color:var(--brand);font:650 11px/1 inherit;white-space:nowrap;cursor:pointer}.context-extra{display:none;margin-top:6px;color:var(--muted);font-size:11px}.context-card.expanded .context-reason{white-space:normal}.context-card.expanded .context-extra{display:block}
13
+ .conversation{position:relative;background:var(--canvas)}.chat{height:354px;overflow:auto;padding:18px 18px 20px;scroll-behavior:smooth}.waiting-state{display:grid;min-height:280px;place-items:center;text-align:center}.waiting-state strong{display:block;font-size:15px;font-weight:650}.waiting-state p{margin:6px 0 15px;color:var(--muted);font-size:12px}.activity-dots,.typing-dots{display:inline-flex;align-items:center;gap:4px}.activity-dots i,.typing-dots i{width:5px;height:5px;border-radius:50%;background:#97a59c;animation:pulse 1.2s infinite ease-in-out}.activity-dots i:nth-child(2),.typing-dots i:nth-child(2){animation-delay:.15s}.activity-dots i:nth-child(3),.typing-dots i:nth-child(3){animation-delay:.3s}@keyframes pulse{0%,70%,100%{opacity:.3;transform:translateY(0)}35%{opacity:1;transform:translateY(-2px)}}
14
+ .message-row{display:flex;align-items:flex-end;gap:8px;margin-top:16px}.message-row.same-speaker{margin-top:6px}.message-row.new-message{animation:messageIn .2s ease-out}.message-row.user{justify-content:flex-end}.message-avatar{width:27px;height:27px;margin-bottom:18px;background:#dcebe1;color:#235b3c;font-size:10px}.message-row.same-speaker .message-avatar{visibility:hidden}.message-wrap{max-width:70%}.sender{margin:0 0 4px 3px;color:#5f6d65;font-size:12px;font-weight:650}.same-speaker .sender{display:none}.bubble{padding:9px 12px;border:1px solid #e3e9e5;border-radius:15px 15px 15px 5px;background:var(--support);box-shadow:0 1px 2px rgba(26,46,34,.025);font-size:14px;line-height:20px;overflow-wrap:anywhere;white-space:pre-wrap}.user .bubble{border-color:#d6e9dc;border-radius:15px 15px 5px 15px;background:var(--user-soft);color:var(--ink)}.first-human .message-avatar{width:31px;height:31px;margin-left:-2px;background:var(--brand);color:#fff;box-shadow:0 0 0 3px rgba(23,107,73,.11)}.first-human .bubble{max-width:560px;background:#fbfdfb}.message-meta{min-height:14px;margin-top:4px;padding:0 3px;color:var(--faint);font-size:10px}.user .message-meta{text-align:right}.system-event{margin:15px 0 1px;text-align:center;color:#89938d;font-size:12px}.typing-row{display:flex;align-items:center;gap:8px;margin-top:9px;color:var(--muted);font-size:12px}.typing-row .message-avatar{margin:0}.typing-bubble{display:flex;align-items:center;gap:7px;padding:8px 11px;border-radius:14px;background:#fff}.unread{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);border:1px solid #d4e2d8;border-radius:999px;padding:7px 11px;background:#fff;color:var(--brand);font:700 11px/1 inherit;box-shadow:0 5px 16px rgba(24,57,38,.12);cursor:pointer}
15
+ .composer-area{padding:10px 12px 9px;background:#fff}.composer{display:flex;align-items:flex-end;gap:8px;padding:5px 5px 5px 12px;border:1px solid #cad5cd;border-radius:15px;background:#fff}.composer:focus-within{border-color:#68a787;box-shadow:0 0 0 3px rgba(36,126,78,.09)}.composer textarea{min-width:0;max-height:104px;flex:1;resize:none;border:0;outline:0;background:transparent;color:var(--ink);font:14px/20px inherit}.composer textarea::placeholder{color:#99a39d}.send-button{display:grid;width:31px;height:31px;flex:0 0 auto;place-items:center;border:0;border-radius:50%;background:#edf1ee;color:#a2aaa5;font:700 17px/1 inherit;cursor:default;transition:background .15s,color .15s,transform .15s}.send-button.ready{background:var(--brand);color:#fff;cursor:pointer}.send-button.ready:hover{background:var(--brand-deep);transform:translateY(-1px)}.composer-foot{display:flex;align-items:center;justify-content:space-between;min-height:26px;padding:6px 3px 0;color:var(--faint);font-size:10px}.end-button{border:0;background:transparent;color:#68756d;font:650 11px/1 inherit;cursor:pointer}.end-button:hover{color:#9c3838}
16
+ .resolved-panel{display:none;padding:19px 16px 17px;background:#fff;text-align:center}.resolved-panel strong{display:block;font-size:14px}.resolved-panel p{margin:5px 0 12px;color:var(--muted);font-size:12px}.resolution-actions{display:flex;justify-content:center;gap:8px}.resolution-button{border:1px solid #d3ddd6;border-radius:9px;padding:8px 12px;background:#fff;color:#34423a;font:650 12px/1 inherit;cursor:pointer}.resolution-button.primary{border-color:#d7eadf;background:var(--brand-soft);color:var(--brand)}.resolution-thanks{display:none;margin:8px 0 0;color:var(--brand);font-size:12px}.app.closed .composer-area{display:none}.app.closed .resolved-panel{display:block;animation:panelIn .2s ease-out}.app.closing .conversation,.app.closing .composer-area{opacity:.55;transition:opacity .18s ease}
17
+ .confirm-layer{position:absolute;z-index:20;inset:0;display:grid;place-items:center;padding:20px;background:rgba(22,31,26,.25);backdrop-filter:blur(2px)}.confirm-card{width:min(100%,290px);padding:18px;border-radius:14px;background:#fff;box-shadow:0 16px 44px rgba(21,35,27,.22);text-align:center}.confirm-card strong{display:block;font-size:14px}.confirm-card p{margin:6px 0 15px;color:var(--muted);font-size:12px}.confirm-actions{display:flex;justify-content:center;gap:8px}.confirm-actions button{border:1px solid #d6ded8;border-radius:9px;padding:8px 14px;background:#fff;color:#34423a;font:650 12px/1 inherit;cursor:pointer}.confirm-actions .danger{border-color:#b74c4c;background:#b74c4c;color:#fff}
18
+ .arrival{position:absolute;z-index:30;inset:0;display:grid;place-items:center;background:rgba(255,255,255,.98);transition:opacity .24s ease,visibility .24s ease}.arrival.hidden{visibility:hidden;opacity:0}.arrival-content{text-align:center}.arrival-mark{display:grid;width:42px;height:42px;margin:0 auto 13px;place-items:center;border-radius:50%;background:var(--brand-soft);color:var(--brand);font-size:20px}.arrival strong{display:block;font-size:15px}.arrival p{margin:5px 0 13px;color:var(--muted);font-size:12px}
19
+ .compact-summary{display:none;color:var(--muted);font-size:12px}.app.compact{min-height:0}.app.compact .context-card,.app.compact .conversation,.app.compact .composer-area,.app.compact .resolved-panel,.app.compact .details{display:none}.app.compact .compact-summary{display:block}.app.compact .identity-meta{display:none}.app.compact .header{min-height:60px}.app.compact .arrival{display:none}@keyframes messageIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes panelIn{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@keyframes avatarIn{from{opacity:.45;transform:scale(.88)}to{opacity:1;transform:scale(1)}}
20
+ [hidden]{display:none!important}@media(max-width:520px){.app{border-radius:14px}.header{padding:10px 11px}.context-tag{display:none}.chat{height:330px;padding:15px 12px}.message-wrap{max-width:84%}.details-card{right:-34px}.context-card{margin-right:11px;margin-left:11px}.composer-area{padding-right:10px;padding-left:10px}}
21
+ @media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
22
+ </style>
23
+ </head>
24
+ <body>
25
+ <main class="app" id="app">
26
+ <header class="header">
27
+ <div class="vendor-avatar" id="headerAvatar">S</div>
28
+ <div class="identity">
29
+ <div class="primary-name" id="primaryName">Support</div>
30
+ <div class="identity-meta"><span id="roleLine">Customer Success</span><span>·</span><span class="presence-dot waiting" id="presenceDot"></span><span id="presenceText">Connecting</span></div>
31
+ <div class="compact-summary" id="compactSummary">Support chat active</div>
32
+ </div>
33
+ <span class="context-tag" id="contextTag">Live support</span>
34
+ <div class="header-actions">
35
+ <details class="details" id="details">
36
+ <summary class="icon-button" aria-label="Conversation information" title="Info">i</summary>
37
+ <div class="details-card">
38
+ <div class="details-title" id="detailsVendor">Vendor support</div>
39
+ <div class="details-row"><span>Conversation</span><code id="session">Creating…</code></div>
40
+ <div class="details-row"><span>Status</span><span id="detailsStatus">Connecting</span></div>
41
+ <div class="details-row"><span>Context</span><span id="detailsContext">Live assistance requested</span></div>
42
+ <div class="powered">Powered by SupportBridge</div>
43
+ </div>
44
+ </details>
45
+ <button class="icon-button" id="collapse" aria-label="Minimize support chat" title="Minimize">−</button>
46
+ </div>
47
+ </header>
48
+ <section class="context-card" id="contextCard">
49
+ <div class="context-copy">
50
+ <div class="context-eyebrow">Why support was offered</div>
51
+ <div class="context-reason" id="contextReason">Live assistance requested for this conversation</div>
52
+ <div class="context-extra" id="contextExtra"></div>
53
+ </div>
54
+ <button class="context-link" id="contextToggle">View details</button>
55
+ </section>
56
+ <div class="conversation">
57
+ <section class="chat" id="chat" aria-live="polite">
58
+ <div class="waiting-state"><div><strong>Connecting you with support</strong><p>A specialist usually responds within a minute.</p><span class="activity-dots" aria-label="Connecting"><i></i><i></i><i></i></span></div></div>
59
+ </section>
60
+ <button class="unread" id="unread" hidden>↓ New messages</button>
61
+ </div>
62
+ <footer class="composer-area">
63
+ <div class="composer"><textarea id="message" rows="1" placeholder="Message support…" aria-label="Message support" disabled></textarea><button class="send-button" id="send" aria-label="Send message" title="Send" disabled>↑</button></div>
64
+ <div class="composer-foot"><span id="delivery">Enter to send · Shift+Enter for a new line</span><button class="end-button" id="end">End conversation</button></div>
65
+ </footer>
66
+ <section class="resolved-panel">
67
+ <strong id="resolvedTitle">Conversation ended</strong>
68
+ <p id="resolvedDetail">Did this solve your issue?</p>
69
+ <div class="resolution-actions" id="resolutionActions"><button class="resolution-button primary" id="resolvedYes">Yes</button><button class="resolution-button" id="reopen">Still need help</button></div>
70
+ <p class="resolution-thanks" id="resolutionThanks">Thanks for letting us know.</p>
71
+ </section>
72
+ <section class="confirm-layer" id="confirmLayer" hidden>
73
+ <div class="confirm-card" role="dialog" aria-modal="true" aria-labelledby="confirmTitle"><strong id="confirmTitle">End this conversation?</strong><p>You can reopen it if you still need help.</p><div class="confirm-actions"><button id="cancelEnd">Cancel</button><button class="danger" id="confirmEnd">End</button></div></div>
74
+ </section>
75
+ <section class="arrival" id="arrival"><div class="arrival-content"><div class="arrival-mark">✦</div><strong id="arrivalTitle">Connecting to support</strong><p id="arrivalDetail">Finding the right person for you…</p><span class="activity-dots"><i></i><i></i><i></i></span></div></section>
76
+ </main>
77
+ <script>
78
+ (()=>{
79
+ const CONFIG=${config};
80
+ let nextId=1,sessionId="",polling=false,lastCount=0,unreadCount=0,latestSession=null,arrivalTimer=0,announcedAgent="",endedByUser=false;
81
+ const pending=new Map();
82
+ const q=selector=>document.querySelector(selector);
83
+ const app=q("#app"),chat=q("#chat"),input=q("#message"),send=q("#send"),end=q("#end"),reopen=q("#reopen"),delivery=q("#delivery"),unread=q("#unread"),collapse=q("#collapse"),summary=q("#compactSummary"),arrival=q("#arrival");
84
+ const vendor=String(CONFIG.vendorName||CONFIG.title||"Support").replace(/\\s+(support|chat)$/i,"").trim()||"Support";
85
+ q("#detailsVendor").textContent=vendor+" Support";
86
+ q("#arrivalTitle").textContent="Connecting to "+vendor+" Support";
87
+ q("#headerAvatar").textContent=vendor.charAt(0).toUpperCase()||"S";
88
+ q("#primaryName").textContent=vendor+" Support";
89
+ q("#roleLine").textContent=CONFIG.representativeRole+" at "+vendor;
90
+ const post=message=>window.parent.postMessage(message,"*");
91
+ const request=(method,params)=>new Promise((resolve,reject)=>{const id=nextId++;pending.set(id,{resolve,reject});post({jsonrpc:"2.0",id,method,params});window.setTimeout(()=>{if(pending.delete(id))reject(new Error(method+" timed out"))},30000)});
92
+ const notify=(method,params)=>post({jsonrpc:"2.0",method,...(params?{params}:{})});
93
+ const callTool=(name,args)=>request("tools/call",{name,arguments:args});
94
+ const sendSize=()=>notify("ui/notifications/size-changed",{width:Math.ceil(document.documentElement.getBoundingClientRect().width),height:Math.ceil(document.documentElement.getBoundingClientRect().height)});
95
+ const esc=value=>String(value??"").replace(/[&<>\"']/g,character=>({"&":"&amp;","<":"&lt;",">":"&gt;",'\"':"&quot;","'":"&#39;"}[character]));
96
+ const time=value=>{const date=new Date(value);return Number.isNaN(date.getTime())?"":date.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})};
97
+ const firstName=value=>String(value||"").trim().split(/\\s+/)[0]||"Support";
98
+ const friendlyAgent=value=>{const name=String(value??"").trim();return !name||/^slack:/i.test(name)?"Support team":name};
99
+ const senderKind=message=>message.sender==="user"?"user":message.sender==="system"?"system":"support";
100
+ const systemText=(value,agent)=>{const text=String(value??"").trim();if(/claimed this conversation/i.test(text))return text.replace(/ claimed this conversation.*$/i," joined");if(/support request (created|opened)|conversation (closed|ended|resolved|reopened)|\\b(?:the )?(?:user|customer|you)\\s+(?:joined|ended|reopened)\\b|(?:resolved|ended|reopened) this (?:support )?conversation/i.test(text))return "";if(/\\b(joined|connected)\\b/i.test(text)){const name=friendlyAgent(agent);return name!=="Support team"&&text.toLowerCase().includes(firstName(name).toLowerCase())?text:""}return text};
101
+ const readByAgent=message=>Boolean(message.seen_at||message.seenAt||message.read_at||message.readAt||message.status==="seen"||message.status==="read");
102
+ const isTyping=session=>Boolean(session.agent_typing||session.agentTyping||session.typing===true||session.typing?.agent||session.typing?.support);
103
+ const atBottom=()=>chat.scrollHeight-chat.scrollTop-chat.clientHeight<48;
104
+ const issueFor=session=>String(session.issue||session.issue_summary||session.issueSummary||session.reason||session.context?.issue||"").trim();
105
+ const customerFor=session=>String(session.customer||session.customer_name||session.customerName||session.account||"").trim();
106
+ const attemptsFor=(session,issue)=>{const explicit=Number(session.attempts||session.attempt_count||session.attemptCount||session.context?.attempts||0);if(Number.isFinite(explicit)&&explicit>0)return explicit;const match=issue.match(/\\b(\\d+)\\s+(?:attempts?|times?|failures?)\\b/i);return match?Number(match[1]):0};
107
+ const statusLabel=session=>session.status==="resolved"?"Ended":session.status==="queued"?"Waiting":"Connected";
108
+ function updateContext(session){const issue=issueFor(session)||"Live assistance requested for this conversation",customer=customerFor(session),attempts=attemptsFor(session,issue),extra=[attempts?attempts+" attempts":"",customer].filter(Boolean).join(" · ");q("#contextReason").textContent=issue;q("#detailsContext").textContent=issue;q("#contextTag").textContent=issue.length>30?issue.slice(0,29)+"…":issue;q("#contextExtra").textContent=extra;q("#contextToggle").hidden=!extra}
109
+ function messageHtml(message,index,messages,agent,firstSupportIndex){
110
+ const kind=senderKind(message),previous=index>0?senderKind(messages[index-1]):"",same=kind!=="system"&&previous===kind;
111
+ if(kind==="system"){const event=systemText(message.text,agent);return event?'<div class="system-event">'+esc(event)+(message.created_at?' · '+esc(time(message.created_at)):"")+'</div>':""}
112
+ const name=kind==="support"?friendlyAgent(message.sender_name||agent):"You",avatar=name.charAt(0).toUpperCase()||"S",first=kind==="support"&&index===firstSupportIndex;
113
+ const timestamp=time(message.created_at),deliveryText=kind==="user"?[readByAgent(message)?"Seen by "+firstName(agent):"Sent",timestamp].filter(Boolean).join(" · "):timestamp,isNew=lastCount>0&&index>=lastCount;
114
+ return '<div class="message-row '+kind+(same?' same-speaker':'')+(first?' first-human':'')+(isNew?' new-message':'')+'">'+(kind==="support"?'<div class="message-avatar">'+esc(avatar)+'</div>':"")+'<div class="message-wrap">'+(kind==="support"?'<div class="sender">'+esc(name)+'</div>':"")+'<div class="bubble">'+esc(message.text)+'</div><div class="message-meta">'+esc(deliveryText)+'</div></div></div>';
115
+ }
116
+ function waitingHtml(agent){const assigned=agent!=="Support team",heading=assigned?"Connecting you with "+firstName(agent):"Connecting you with "+vendor+" Support",detail=assigned?"Your "+CONFIG.representativeRole:"Usually responds within a minute.";return '<div class="waiting-state"><div><strong>'+esc(heading)+'</strong><p>'+esc(detail)+'</p><span class="activity-dots" aria-label="Connecting"><i></i><i></i><i></i></span></div></div>'}
117
+ function typingHtml(agent){const name=firstName(agent);return '<div class="typing-row"><div class="message-avatar">'+esc(name.charAt(0))+'</div><div class="typing-bubble"><span>'+esc(name)+' is typing</span><span class="typing-dots"><i></i><i></i><i></i></span></div></div>'}
118
+ function showArrival(session,agent){const active=session.status!=="queued"&&session.status!=="resolved";if(active&&agent!=="Support team"&&announcedAgent!==agent){announcedAgent=agent;arrival.classList.remove("hidden");q("#arrivalTitle").textContent=firstName(agent)+" is joining";q("#arrivalDetail").textContent="You are being connected now.";q("#headerAvatar").classList.remove("assigned");requestAnimationFrame(()=>q("#headerAvatar").classList.add("assigned"))}else if(!active){q("#arrivalTitle").textContent=agent!=="Support team"?"Connecting you with "+firstName(agent):"Connecting to "+vendor+" Support";q("#arrivalDetail").textContent=agent!=="Support team"?"Your "+CONFIG.representativeRole:"Finding the right person for you…"}window.clearTimeout(arrivalTimer);arrivalTimer=window.setTimeout(()=>arrival.classList.add("hidden"),active?800:650)}
119
+ function render(session,messages){
120
+ latestSession=session;const wasBottom=atBottom(),newMessages=Math.max(0,messages.length-lastCount),supportMessage=[...messages].reverse().find(message=>senderKind(message)==="support"),agent=friendlyAgent(supportMessage?.sender_name||session.agent_name||session.assignedTo),closed=session.status==="resolved",waiting=session.status==="queued",firstSupportIndex=messages.findIndex(message=>senderKind(message)==="support"),sessionEndedByUser=/user|customer/i.test(String(session.resolved_by||session.resolvedBy||session.ended_by||session.endedBy||"")),userEnded=closed&&(endedByUser||sessionEndedByUser);
121
+ if(!closed)endedByUser=false;q("#headerAvatar").textContent=(agent==="Support team"?vendor:agent).charAt(0).toUpperCase()||"S";q("#primaryName").textContent=agent==="Support team"?vendor+" Support":agent;q("#roleLine").textContent=CONFIG.representativeRole+" at "+vendor;q("#presenceText").textContent=closed?"Ended":waiting?"Waiting":"Online";q("#presenceDot").className="presence-dot "+(closed?"closed":waiting?"waiting":"");q("#detailsStatus").textContent=statusLabel(session);q("#resolvedTitle").textContent=userEnded?"Conversation ended":agent==="Support team"?"Conversation resolved":firstName(agent)+" marked this as resolved";q("#resolvedDetail").textContent=userEnded?(agent==="Support team"?vendor+" Support helped with this request.":firstName(agent)+" helped with this request."):"Did this solve your issue?";q("#resolvedYes").hidden=userEnded;reopen.textContent=userEnded?"Reopen conversation":"Still need help";input.placeholder=agent==="Support team"?"Message "+vendor+" Support…":"Message "+firstName(agent)+"…";app.classList.toggle("closed",closed);summary.textContent=closed?"Conversation ended":unreadCount?unreadCount+" new "+(unreadCount===1?"reply":"replies"):"Support chat active";updateContext(session);
122
+ let html=messages.length?messages.map((message,index)=>messageHtml(message,index,messages,agent,firstSupportIndex)).join(""):waitingHtml(agent);if(isTyping(session)&&!closed)html+=typingHtml(agent);chat.innerHTML=html;
123
+ if(wasBottom||lastCount===0){chat.scrollTop=chat.scrollHeight;unreadCount=0;unread.hidden=true}else if(newMessages){unreadCount+=newMessages;unread.textContent="↓ "+unreadCount+" new "+(unreadCount===1?"message":"messages");unread.hidden=false}lastCount=messages.length;input.disabled=closed;syncSend();if(!latestSession||announcedAgent!==agent)showArrival(session,agent);sendSize()
124
+ }
125
+ function syncSend(){const ready=Boolean(sessionId&&input.value.trim()&&latestSession?.status!=="resolved");send.disabled=!ready;send.classList.toggle("ready",ready)}
126
+ async function refresh(){if(!sessionId)return;try{const result=await callTool("support_get_messages",{session_id:sessionId}),data=result.structuredContent;if(data?.session&&Array.isArray(data.messages))render(data.session,data.messages)}catch(_){q("#presenceText").textContent="Reconnecting";q("#presenceDot").className="presence-dot waiting"}}
127
+ function receiveToolResult(params){const data=params?.structuredContent;if(!data?.session_id)return;sessionId=data.session_id;q("#session").textContent=sessionId;if(data.session&&Array.isArray(data.messages)){showArrival(data.session,friendlyAgent(data.session.agent_name||data.session.assignedTo));render(data.session,data.messages)}if(!polling){polling=true;void refresh();window.setInterval(()=>void refresh(),CONFIG.pollIntervalMs)}}
128
+ window.addEventListener("message",event=>{if(event.source!==window.parent)return;const message=event.data;if(!message||message.jsonrpc!=="2.0")return;if(message.id!==undefined&&(message.result!==undefined||message.error)){const waiter=pending.get(message.id);if(!waiter)return;pending.delete(message.id);message.error?waiter.reject(new Error(message.error.message)):waiter.resolve(message.result)}else if(message.method==="ui/notifications/tool-result")receiveToolResult(message.params);else if(message.method==="ping"&&message.id!==undefined)post({jsonrpc:"2.0",id:message.id,result:{}});else if(message.method==="ui/resource-teardown"&&message.id!==undefined)post({jsonrpc:"2.0",id:message.id,result:{}})});
129
+ async function sendMessage(){const message=input.value.trim();if(!message||!sessionId)return;input.value="";input.style.height="auto";syncSend();delivery.textContent="Sending…";try{await callTool("support_send_message",{session_id:sessionId,message});delivery.textContent="Sent";await refresh();window.setTimeout(()=>{if(delivery.textContent==="Sent")delivery.textContent="Enter to send · Shift+Enter for a new line"},1800)}catch(_){input.value=message;delivery.textContent="Message failed · Press send to retry"}finally{syncSend()}}
130
+ send.addEventListener("click",()=>void sendMessage());input.addEventListener("input",()=>{input.style.height="auto";input.style.height=Math.min(input.scrollHeight,104)+"px";syncSend()});input.addEventListener("keydown",event=>{if(event.key==="Enter"&&!event.shiftKey){event.preventDefault();void sendMessage()}});
131
+ end.addEventListener("click",()=>{if(sessionId)q("#confirmLayer").hidden=false});q("#cancelEnd").addEventListener("click",()=>q("#confirmLayer").hidden=true);q("#confirmLayer").addEventListener("click",event=>{if(event.target===q("#confirmLayer"))q("#confirmLayer").hidden=true});q("#confirmEnd").addEventListener("click",async()=>{if(!sessionId)return;q("#confirmEnd").disabled=true;delivery.textContent="Ending conversation…";endedByUser=true;app.classList.add("closing");try{const result=await callTool("support_end_session",{session_id:sessionId}),data=result.structuredContent;q("#confirmLayer").hidden=true;if(data?.session)render(data.session,data.messages||[])}catch(error){endedByUser=false;throw error}finally{app.classList.remove("closing");q("#confirmEnd").disabled=false}});
132
+ reopen.addEventListener("click",async()=>{if(!sessionId)return;reopen.disabled=true;try{const result=await callTool("support_reopen_session",{session_id:sessionId}),data=result.structuredContent;endedByUser=false;q("#resolutionThanks").style.display="none";q("#resolutionActions").style.display="flex";if(data?.session)render(data.session,data.messages||[])}finally{reopen.disabled=false}});q("#resolvedYes").addEventListener("click",()=>{q("#resolutionActions").style.display="none";q("#resolutionThanks").style.display="block"});
133
+ q("#contextToggle").addEventListener("click",()=>{const expanded=q("#contextCard").classList.toggle("expanded");q("#contextToggle").textContent=expanded?"Hide details":"View details";sendSize()});unread.addEventListener("click",()=>{chat.scrollTop=chat.scrollHeight;unreadCount=0;unread.hidden=true;summary.textContent="Support chat active"});chat.addEventListener("scroll",()=>{if(atBottom()){unreadCount=0;unread.hidden=true;summary.textContent=latestSession?.status==="resolved"?"Conversation ended":"Support chat active"}});collapse.addEventListener("click",()=>{const compact=app.classList.toggle("compact");collapse.textContent=compact?"+":"−";collapse.setAttribute("aria-label",compact?"Open support chat":"Minimize support chat");sendSize()});
134
+ request("ui/initialize",{appInfo:{name:"SupportBridge Chat",version:"0.6.1"},appCapabilities:{availableDisplayModes:["inline"]},protocolVersion:"2026-01-26"}).then(()=>{notify("ui/notifications/initialized");sendSize();new ResizeObserver(sendSize).observe(document.documentElement);q("#presenceText").textContent="Connecting"}).catch(()=>{q("#arrivalTitle").textContent="Support app unavailable";q("#arrivalDetail").textContent="This host could not initialize the support app."});
135
+ })();
136
+ </script>
137
+ </body>
138
+ </html>`;
139
+ }
140
+ //# sourceMappingURL=support-chat-html.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"support-chat-html.js","sourceRoot":"","sources":["../src/support-chat-html.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,eAAe,CAAC,OAA+B;IAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAChE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA4EQ,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA2Df,CAAC;AACT,CAAC"}
package/dist/version.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export declare const SDK_VERSION = "0.9.6";
2
- export declare const SUPPORT_CHAT_RESOURCE_URI = "ui://supportbridge/chat-v0.9.6.html";
1
+ export declare const SDK_VERSION = "0.9.7";
2
+ export declare const SUPPORT_CHAT_RESOURCE_URI = "ui://supportbridge/chat-v0.9.7.html";
3
3
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,3 +1,3 @@
1
- export const SDK_VERSION = "0.9.6";
1
+ export const SDK_VERSION = "0.9.7";
2
2
  export const SUPPORT_CHAT_RESOURCE_URI = `ui://supportbridge/chat-v${SDK_VERSION}.html`;
3
3
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@supportbridge/sdk",
3
- "version": "0.9.6",
3
+ "version": "0.9.7",
4
4
  "description": "Production-oriented MCP tool-call and agent telemetry SDK for SupportBridge",
5
5
  "repository": {
6
6
  "type": "git",