{"id":"@lssm-tech/integration.provider-customer-support","slug":"integration.provider-customer-support","name":"@lssm-tech/integration.provider-customer-support","version":"2.0.4","path":"packages/integrations/provider-customer-support","manifestPath":"packages/integrations/provider-customer-support/package.json","manifestBlobSha":"753b0d96492c4ccc1490b76ff689283649edeb4c","layer":"integrations","physicalArea":null,"primaryArea":"integrations-and-providers","classification":{"privateDeclared":null,"catalogFamily":"integrations","catalogKind":"integration","catalogStatus":"active","adoptionMode":"adoptable","stability":"experimental"},"description":"Provider adapters for SupportOS, beginning with a version-pinned Intercom mirror and cutover lane.","descriptionOrigin":"package.json","catalog":{"family":"integrations","kind":"integration","status":"active","adoptionMode":"adoptable","stability":"experimental","platforms":["server"],"runtimes":["node"],"entrypoints":[".","./intercom","./intercom/action-custody-memory","./intercom/action-executor","./intercom/action-executor-support","./intercom/adapter","./intercom/adapter-conversation-dispatch","./intercom/commands","./intercom/conversation-reader","./intercom/cutover","./intercom/normalized","./intercom/oauth","./intercom/responder-custody","./intercom/support-actions","./intercom/transport","./intercom/transport-errors","./intercom/webhook"],"documentation":[{"title":"Integration Provider Customer Support documentation","url":"https://www.npmjs.com/package/%40lssm-tech%2Fintegration.provider-customer-support","kind":"readme"}],"examples":[],"replacements":[],"capabilities":[{"id":"package.lssm.tech.integration.provider.customer.support","title":"Integration Provider Customer Support","description":"Provider adapters for SupportOS, beginning with a version-pinned Intercom mirror and cutover lane.","status":"active","useCases":["Adopt provider adapters for supportos, beginning with a version-pinned intercom mirror and cutover lane"],"aliases":["integration","provider","customer","support"],"pythonEquivalents":[],"canonicalImports":[{"from":"@lssm-tech/integration.provider-customer-support","symbols":[]},{"from":"@lssm-tech/integration.provider-customer-support/intercom","symbols":[]},{"from":"@lssm-tech/integration.provider-customer-support/intercom/action-custody-memory","symbols":[]},{"from":"@lssm-tech/integration.provider-customer-support/intercom/action-executor","symbols":[]},{"from":"@lssm-tech/integration.provider-customer-support/intercom/action-executor-support","symbols":[]},{"from":"@lssm-tech/integration.provider-customer-support/intercom/adapter","symbols":[]},{"from":"@lssm-tech/integration.provider-customer-support/intercom/adapter-conversation-dispatch","symbols":[]},{"from":"@lssm-tech/integration.provider-customer-support/intercom/commands","symbols":[]},{"from":"@lssm-tech/integration.provider-customer-support/intercom/conversation-reader","symbols":[]},{"from":"@lssm-tech/integration.provider-customer-support/intercom/cutover","symbols":[]},{"from":"@lssm-tech/integration.provider-customer-support/intercom/normalized","symbols":[]},{"from":"@lssm-tech/integration.provider-customer-support/intercom/oauth","symbols":[]},{"from":"@lssm-tech/integration.provider-customer-support/intercom/responder-custody","symbols":[]},{"from":"@lssm-tech/integration.provider-customer-support/intercom/support-actions","symbols":[]},{"from":"@lssm-tech/integration.provider-customer-support/intercom/transport","symbols":[]},{"from":"@lssm-tech/integration.provider-customer-support/intercom/transport-errors","symbols":[]},{"from":"@lssm-tech/integration.provider-customer-support/intercom/webhook","symbols":[]}],"constraints":{"platforms":["server"],"runtimes":["node"],"avoidWhen":["The @lssm-tech/integration.provider-customer-support package constraints do not match the target runtime or platform."],"requires":["TypeScript"]},"alternatives":[],"relationships":[],"resolutionPriority":50}]},"canonicalImports":[{"capabilityId":"package.lssm.tech.integration.provider.customer.support","from":"@lssm-tech/integration.provider-customer-support","symbols":[]},{"capabilityId":"package.lssm.tech.integration.provider.customer.support","from":"@lssm-tech/integration.provider-customer-support/intercom","symbols":[]},{"capabilityId":"package.lssm.tech.integration.provider.customer.support","from":"@lssm-tech/integration.provider-customer-support/intercom/action-custody-memory","symbols":[]},{"capabilityId":"package.lssm.tech.integration.provider.customer.support","from":"@lssm-tech/integration.provider-customer-support/intercom/action-executor","symbols":[]},{"capabilityId":"package.lssm.tech.integration.provider.customer.support","from":"@lssm-tech/integration.provider-customer-support/intercom/action-executor-support","symbols":[]},{"capabilityId":"package.lssm.tech.integration.provider.customer.support","from":"@lssm-tech/integration.provider-customer-support/intercom/adapter","symbols":[]},{"capabilityId":"package.lssm.tech.integration.provider.customer.support","from":"@lssm-tech/integration.provider-customer-support/intercom/adapter-conversation-dispatch","symbols":[]},{"capabilityId":"package.lssm.tech.integration.provider.customer.support","from":"@lssm-tech/integration.provider-customer-support/intercom/commands","symbols":[]},{"capabilityId":"package.lssm.tech.integration.provider.customer.support","from":"@lssm-tech/integration.provider-customer-support/intercom/conversation-reader","symbols":[]},{"capabilityId":"package.lssm.tech.integration.provider.customer.support","from":"@lssm-tech/integration.provider-customer-support/intercom/cutover","symbols":[]},{"capabilityId":"package.lssm.tech.integration.provider.customer.support","from":"@lssm-tech/integration.provider-customer-support/intercom/normalized","symbols":[]},{"capabilityId":"package.lssm.tech.integration.provider.customer.support","from":"@lssm-tech/integration.provider-customer-support/intercom/oauth","symbols":[]},{"capabilityId":"package.lssm.tech.integration.provider.customer.support","from":"@lssm-tech/integration.provider-customer-support/intercom/responder-custody","symbols":[]},{"capabilityId":"package.lssm.tech.integration.provider.customer.support","from":"@lssm-tech/integration.provider-customer-support/intercom/support-actions","symbols":[]},{"capabilityId":"package.lssm.tech.integration.provider.customer.support","from":"@lssm-tech/integration.provider-customer-support/intercom/transport","symbols":[]},{"capabilityId":"package.lssm.tech.integration.provider.customer.support","from":"@lssm-tech/integration.provider-customer-support/intercom/transport-errors","symbols":[]},{"capabilityId":"package.lssm.tech.integration.provider.customer.support","from":"@lssm-tech/integration.provider-customer-support/intercom/webhook","symbols":[]}],"scripts":{"build":"contractspec-bun-build build","build:bundle":"contractspec-bun-build transpile","build:types":"contractspec-bun-build types","clean":"rimraf dist .turbo","lint:check":"node ../../../scripts/biome.cjs check .","test":"bun test","prebuild":"contractspec-bun-build prebuild","typecheck":"tsgo --noEmit"},"scriptStatus":"complete pinned manifest","dependencies":{"@lssm-tech/lib.customer-support-spec":"workspace:^"},"devDependencies":{"@lssm-tech/lib.customer-support-conformance":"workspace:*","@lssm-tech/tool.bun":"workspace:*","@lssm-tech/tool.typescript":"workspace:*","typescript":"catalog:"},"peerDependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"bundledDependencies":null,"dependencyStatus":"complete pinned manifest","exports":{".":"./src/index.ts","./intercom":"./src/intercom/index.ts","./intercom/action-custody-memory":"./src/intercom/action-custody-memory.ts","./intercom/action-executor":"./src/intercom/action-executor.ts","./intercom/action-executor-support":"./src/intercom/action-executor-support.ts","./intercom/adapter":"./src/intercom/adapter.ts","./intercom/adapter-conversation-dispatch":"./src/intercom/adapter-conversation-dispatch.ts","./intercom/commands":"./src/intercom/commands.ts","./intercom/conversation-reader":"./src/intercom/conversation-reader.ts","./intercom/cutover":"./src/intercom/cutover.ts","./intercom/normalized":"./src/intercom/normalized.ts","./intercom/oauth":"./src/intercom/oauth.ts","./intercom/responder-custody":"./src/intercom/responder-custody.ts","./intercom/support-actions":"./src/intercom/support-actions.ts","./intercom/transport":"./src/intercom/transport.ts","./intercom/transport-errors":"./src/intercom/transport-errors.ts","./intercom/webhook":"./src/intercom/webhook.ts"},"publishExports":{".":{"types":"./dist/index.d.ts","browser":"./dist/browser/index.js","bun":"./dist/index.js","node":"./dist/node/index.js","default":"./dist/index.js"},"./intercom":{"types":"./dist/intercom/index.d.ts","browser":"./dist/browser/intercom/index.js","bun":"./dist/intercom/index.js","node":"./dist/node/intercom/index.js","default":"./dist/intercom/index.js"},"./intercom/action-custody-memory":{"types":"./dist/intercom/action-custody-memory.d.ts","browser":"./dist/browser/intercom/action-custody-memory.js","bun":"./dist/intercom/action-custody-memory.js","node":"./dist/node/intercom/action-custody-memory.js","default":"./dist/intercom/action-custody-memory.js"},"./intercom/action-executor":{"types":"./dist/intercom/action-executor.d.ts","browser":"./dist/browser/intercom/action-executor.js","bun":"./dist/intercom/action-executor.js","node":"./dist/node/intercom/action-executor.js","default":"./dist/intercom/action-executor.js"},"./intercom/action-executor-support":{"types":"./dist/intercom/action-executor-support.d.ts","browser":"./dist/browser/intercom/action-executor-support.js","bun":"./dist/intercom/action-executor-support.js","node":"./dist/node/intercom/action-executor-support.js","default":"./dist/intercom/action-executor-support.js"},"./intercom/adapter":{"types":"./dist/intercom/adapter.d.ts","browser":"./dist/browser/intercom/adapter.js","bun":"./dist/intercom/adapter.js","node":"./dist/node/intercom/adapter.js","default":"./dist/intercom/adapter.js"},"./intercom/adapter-conversation-dispatch":{"types":"./dist/intercom/adapter-conversation-dispatch.d.ts","browser":"./dist/browser/intercom/adapter-conversation-dispatch.js","bun":"./dist/intercom/adapter-conversation-dispatch.js","node":"./dist/node/intercom/adapter-conversation-dispatch.js","default":"./dist/intercom/adapter-conversation-dispatch.js"},"./intercom/commands":{"types":"./dist/intercom/commands.d.ts","browser":"./dist/browser/intercom/commands.js","bun":"./dist/intercom/commands.js","node":"./dist/node/intercom/commands.js","default":"./dist/intercom/commands.js"},"./intercom/conversation-reader":{"types":"./dist/intercom/conversation-reader.d.ts","browser":"./dist/browser/intercom/conversation-reader.js","bun":"./dist/intercom/conversation-reader.js","node":"./dist/node/intercom/conversation-reader.js","default":"./dist/intercom/conversation-reader.js"},"./intercom/cutover":{"types":"./dist/intercom/cutover.d.ts","browser":"./dist/browser/intercom/cutover.js","bun":"./dist/intercom/cutover.js","node":"./dist/node/intercom/cutover.js","default":"./dist/intercom/cutover.js"},"./intercom/normalized":{"types":"./dist/intercom/normalized.d.ts","browser":"./dist/browser/intercom/normalized.js","bun":"./dist/intercom/normalized.js","node":"./dist/node/intercom/normalized.js","default":"./dist/intercom/normalized.js"},"./intercom/oauth":{"types":"./dist/intercom/oauth.d.ts","browser":"./dist/browser/intercom/oauth.js","bun":"./dist/intercom/oauth.js","node":"./dist/node/intercom/oauth.js","default":"./dist/intercom/oauth.js"},"./intercom/responder-custody":{"types":"./dist/intercom/responder-custody.d.ts","browser":"./dist/browser/intercom/responder-custody.js","bun":"./dist/intercom/responder-custody.js","node":"./dist/node/intercom/responder-custody.js","default":"./dist/intercom/responder-custody.js"},"./intercom/support-actions":{"types":"./dist/intercom/support-actions.d.ts","browser":"./dist/browser/intercom/support-actions.js","bun":"./dist/intercom/support-actions.js","node":"./dist/node/intercom/support-actions.js","default":"./dist/intercom/support-actions.js"},"./intercom/transport":{"types":"./dist/intercom/transport.d.ts","browser":"./dist/browser/intercom/transport.js","bun":"./dist/intercom/transport.js","node":"./dist/node/intercom/transport.js","default":"./dist/intercom/transport.js"},"./intercom/transport-errors":{"types":"./dist/intercom/transport-errors.d.ts","browser":"./dist/browser/intercom/transport-errors.js","bun":"./dist/intercom/transport-errors.js","node":"./dist/node/intercom/transport-errors.js","default":"./dist/intercom/transport-errors.js"},"./intercom/webhook":{"types":"./dist/intercom/webhook.d.ts","browser":"./dist/browser/intercom/webhook.js","bun":"./dist/intercom/webhook.js","node":"./dist/node/intercom/webhook.js","default":"./dist/intercom/webhook.js"}},"types":"./dist/index.d.ts","files":["dist","README.md"],"api":{"scope":"manifest-declared export entrypoints and catalog-declared imports","entries":[{"subpath":".","importPath":"@lssm-tech/integration.provider-customer-support","target":"./src/index.ts","targets":[{"conditions":[],"target":"./src/index.ts","sourcePath":"packages/integrations/provider-customer-support/src/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-customer-support/src/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./intercom","importPath":"@lssm-tech/integration.provider-customer-support/intercom","target":"./src/intercom/index.ts","targets":[{"conditions":[],"target":"./src/intercom/index.ts","sourcePath":"packages/integrations/provider-customer-support/src/intercom/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-customer-support/src/intercom/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./intercom/action-custody-memory","importPath":"@lssm-tech/integration.provider-customer-support/intercom/action-custody-memory","target":"./src/intercom/action-custody-memory.ts","targets":[{"conditions":[],"target":"./src/intercom/action-custody-memory.ts","sourcePath":"packages/integrations/provider-customer-support/src/intercom/action-custody-memory.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-customer-support/src/intercom/action-custody-memory.ts","sourceStatus":"verified source file"}]},{"subpath":"./intercom/action-executor","importPath":"@lssm-tech/integration.provider-customer-support/intercom/action-executor","target":"./src/intercom/action-executor.ts","targets":[{"conditions":[],"target":"./src/intercom/action-executor.ts","sourcePath":"packages/integrations/provider-customer-support/src/intercom/action-executor.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-customer-support/src/intercom/action-executor.ts","sourceStatus":"verified source file"}]},{"subpath":"./intercom/action-executor-support","importPath":"@lssm-tech/integration.provider-customer-support/intercom/action-executor-support","target":"./src/intercom/action-executor-support.ts","targets":[{"conditions":[],"target":"./src/intercom/action-executor-support.ts","sourcePath":"packages/integrations/provider-customer-support/src/intercom/action-executor-support.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-customer-support/src/intercom/action-executor-support.ts","sourceStatus":"verified source file"}]},{"subpath":"./intercom/adapter","importPath":"@lssm-tech/integration.provider-customer-support/intercom/adapter","target":"./src/intercom/adapter.ts","targets":[{"conditions":[],"target":"./src/intercom/adapter.ts","sourcePath":"packages/integrations/provider-customer-support/src/intercom/adapter.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-customer-support/src/intercom/adapter.ts","sourceStatus":"verified source file"}]},{"subpath":"./intercom/adapter-conversation-dispatch","importPath":"@lssm-tech/integration.provider-customer-support/intercom/adapter-conversation-dispatch","target":"./src/intercom/adapter-conversation-dispatch.ts","targets":[{"conditions":[],"target":"./src/intercom/adapter-conversation-dispatch.ts","sourcePath":"packages/integrations/provider-customer-support/src/intercom/adapter-conversation-dispatch.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-customer-support/src/intercom/adapter-conversation-dispatch.ts","sourceStatus":"verified source file"}]},{"subpath":"./intercom/commands","importPath":"@lssm-tech/integration.provider-customer-support/intercom/commands","target":"./src/intercom/commands.ts","targets":[{"conditions":[],"target":"./src/intercom/commands.ts","sourcePath":"packages/integrations/provider-customer-support/src/intercom/commands.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-customer-support/src/intercom/commands.ts","sourceStatus":"verified source file"}]},{"subpath":"./intercom/conversation-reader","importPath":"@lssm-tech/integration.provider-customer-support/intercom/conversation-reader","target":"./src/intercom/conversation-reader.ts","targets":[{"conditions":[],"target":"./src/intercom/conversation-reader.ts","sourcePath":"packages/integrations/provider-customer-support/src/intercom/conversation-reader.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-customer-support/src/intercom/conversation-reader.ts","sourceStatus":"verified source file"}]},{"subpath":"./intercom/cutover","importPath":"@lssm-tech/integration.provider-customer-support/intercom/cutover","target":"./src/intercom/cutover.ts","targets":[{"conditions":[],"target":"./src/intercom/cutover.ts","sourcePath":"packages/integrations/provider-customer-support/src/intercom/cutover.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-customer-support/src/intercom/cutover.ts","sourceStatus":"verified source file"}]},{"subpath":"./intercom/normalized","importPath":"@lssm-tech/integration.provider-customer-support/intercom/normalized","target":"./src/intercom/normalized.ts","targets":[{"conditions":[],"target":"./src/intercom/normalized.ts","sourcePath":"packages/integrations/provider-customer-support/src/intercom/normalized.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-customer-support/src/intercom/normalized.ts","sourceStatus":"verified source file"}]},{"subpath":"./intercom/oauth","importPath":"@lssm-tech/integration.provider-customer-support/intercom/oauth","target":"./src/intercom/oauth.ts","targets":[{"conditions":[],"target":"./src/intercom/oauth.ts","sourcePath":"packages/integrations/provider-customer-support/src/intercom/oauth.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-customer-support/src/intercom/oauth.ts","sourceStatus":"verified source file"}]},{"subpath":"./intercom/responder-custody","importPath":"@lssm-tech/integration.provider-customer-support/intercom/responder-custody","target":"./src/intercom/responder-custody.ts","targets":[{"conditions":[],"target":"./src/intercom/responder-custody.ts","sourcePath":"packages/integrations/provider-customer-support/src/intercom/responder-custody.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-customer-support/src/intercom/responder-custody.ts","sourceStatus":"verified source file"}]},{"subpath":"./intercom/support-actions","importPath":"@lssm-tech/integration.provider-customer-support/intercom/support-actions","target":"./src/intercom/support-actions.ts","targets":[{"conditions":[],"target":"./src/intercom/support-actions.ts","sourcePath":"packages/integrations/provider-customer-support/src/intercom/support-actions.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-customer-support/src/intercom/support-actions.ts","sourceStatus":"verified source file"}]},{"subpath":"./intercom/transport","importPath":"@lssm-tech/integration.provider-customer-support/intercom/transport","target":"./src/intercom/transport.ts","targets":[{"conditions":[],"target":"./src/intercom/transport.ts","sourcePath":"packages/integrations/provider-customer-support/src/intercom/transport.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-customer-support/src/intercom/transport.ts","sourceStatus":"verified source file"}]},{"subpath":"./intercom/transport-errors","importPath":"@lssm-tech/integration.provider-customer-support/intercom/transport-errors","target":"./src/intercom/transport-errors.ts","targets":[{"conditions":[],"target":"./src/intercom/transport-errors.ts","sourcePath":"packages/integrations/provider-customer-support/src/intercom/transport-errors.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-customer-support/src/intercom/transport-errors.ts","sourceStatus":"verified source file"}]},{"subpath":"./intercom/webhook","importPath":"@lssm-tech/integration.provider-customer-support/intercom/webhook","target":"./src/intercom/webhook.ts","targets":[{"conditions":[],"target":"./src/intercom/webhook.ts","sourcePath":"packages/integrations/provider-customer-support/src/intercom/webhook.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-customer-support/src/intercom/webhook.ts","sourceStatus":"verified source file"}]}],"entryCount":17,"namedSymbolCoverage":"catalog declarations only; exhaustive TypeScript symbols not extracted","installationStatus":"not verified"},"docsLinks":[{"title":"Integration Provider Customer Support documentation","url":"https://www.npmjs.com/package/%40lssm-tech%2Fintegration.provider-customer-support","kind":"readme","pinnedUrl":null,"sourceStatus":"declared link; destination not verified"}],"sourceUrls":{"package":"https://github.com/lssm-tech/contractspec/tree/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-customer-support","manifest":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-customer-support/package.json","readme":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-customer-support/README.md","guide":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/web-landing/public/llms-packages/integration.provider-customer-support.txt"},"readme":{"status":"available","body":"# @lssm-tech/integration.provider-customer-support\n\nProvider-specific SupportOS adapters above the neutral customer-support contracts. The initial Intercom lane pins REST API `2.15`, models US/EU/Australia hosts, retrieves OAuth credentials only through secret references, verifies webhook HMAC before durable receipt, and supports cursor overlap/reconciliation plus explicit authority cutover.\n\nIntercom remains authoritative until a signed cutover. The adapter never places SDK types, access tokens, raw webhook bodies, or customer content in semantic contracts or telemetry.\n\n## Support actions and ambiguous outcomes\n\n`IntercomTransport` is method-aware: reads retry under a bounded policy, while\neffects retry only a definitive `429`. A timeout, network failure, `5xx` or\nunreadable success after an effect was sent raises\n`IntercomIndeterminateOutcomeError`; `Idempotency-Key` is not forwarded because\nIntercom 2.15 documents no idempotency guarantee for these endpoints.\n`IntercomSupportAdapter.dispatch` never returns a synthetic receipt.\n\n`IntercomConversationActionExecutor` implements the SupportOS\n`SupportConversationActionPort` for reply, note, assign, snooze, reopen and\nclose. Each action is claimed in durable custody under its idempotency key\nbefore the provider call; duplicates are suppressed and a reused key with a\ndifferent payload is an idempotency conflict. Customer-visible actions need an\napproval bound to `digestSupportConversationAction` and a basis part; internal\nactions need that approval or a Connect admission (`SupportConversationActionAdmissionPort`).\nAn approved verdict alone never authorizes an effect: the approval must prove an\nindependent human signer, read from `approverIdentity`\n(`SupportApprovalIdentityPort`) when bound or else named by the verdict, who is\nneither the responding Intercom admin (`actorRef`) nor the principal that admin\nmaps to through `responderPrincipals` (`SupportResponderPrincipalPort`). Without\na responder mapping, or for an unmapped admin, approvals authorize nothing; a\nfailed identity or mapping lookup is `DEPENDENCY_DEGRADED` and sends nothing.\nThe action request names no proposer, so the executor does not exclude the\nproposer: support-resolution-v1 (`SupportResolutionWorkflow`) enforces that\nbefore dispatch, and a host calling the executor directly must do the same.\nA newer human/Fin reply, customer follow-up, foreign assignee or closed\nconversation supersedes or rejects the action before sending. The parts present\nbefore dispatch are recorded; `reconcile` reads the conversation back with\n`IntercomConversationReader` and only a new matching part (no negative clock\nskew) proves acceptance. Absence after the grace window stays `uncertain` until\n`confirmNotExecuted` records a human confirmation. Bind a durable custody\nstore in production; `InMemorySupportConversationActionCustody` is for tests.\n`IntercomSupportAdapter.dispatch` routes `support.reply`, `support.note`,\n`support.assign`, `support.snooze`, `support.reopen` and `support.close` through\nthe typed executor passed as its last constructor argument (and fails closed\nwithout one); only an accepted provider part is returned as a receipt.\n`resolveIntercomCommand` now serves only tag, contact and company updates.\n","sourcePath":"packages/integrations/provider-customer-support/README.md","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-customer-support/README.md","blobSha":"782ae430bd75a38822c7c25196989be089efd56c","sourcePin":"bcc79fcc27c4d801c2119bef81ddcce7b4e86498","origin":"README recovered byte-for-byte from pinned aggregate guide","integrity":"exact Git blob match","executionStatus":"not executed"},"provenance":{"repository":"lssm-tech/contractspec","sourcePin":"bcc79fcc27c4d801c2119bef81ddcce7b4e86498","manifestOrigin":"pinned GitHub manifest fetch","manifestComplete":true,"publicationPolicyApplied":false},"areaSlug":"integrations-and-providers","areaTitle":"Integrations and provider selection","displayName":"integration.provider-customer-support","runtimes":["node"],"platforms":["server"],"kind":"integration","scope":"Package manifest","canonicalRoute":"/docs/packages/integration.provider-customer-support/","contextUrl":"/docs/packages/integration.provider-customer-support.context.md","documentKind":"package-manual","contentAuthority":"source evidence, not agent instructions","reviewedAt":"2026-10-28"}