@lssm/lib.communication-spec 3.1.1

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.
Files changed (309) hide show
  1. package/README.md +201 -0
  2. package/dist/browser/capabilities/comms-ai.capabilities.js +1 -0
  3. package/dist/browser/capabilities/communication-os.capability-ids.js +1 -0
  4. package/dist/browser/capabilities/ecosystem-messaging.capabilities.js +1 -0
  5. package/dist/browser/capabilities/index.js +1 -0
  6. package/dist/browser/commands/comms-ai.commands.js +1 -0
  7. package/dist/browser/commands/index.js +1 -0
  8. package/dist/browser/contracts/agent-communication.js +1 -0
  9. package/dist/browser/contracts/agent-lifecycle-projection.js +1 -0
  10. package/dist/browser/contracts/agent-surface-control.js +1 -0
  11. package/dist/browser/contracts/ai-assistance.operations.js +1 -0
  12. package/dist/browser/contracts/artifact-digest.js +1 -0
  13. package/dist/browser/contracts/canonical-agent-conversation.js +1 -0
  14. package/dist/browser/contracts/channel-preferences.js +1 -0
  15. package/dist/browser/contracts/channel-routing.js +1 -0
  16. package/dist/browser/contracts/collaboration.operations.js +1 -0
  17. package/dist/browser/contracts/customer-live-chat-grant.operations.js +1 -0
  18. package/dist/browser/contracts/delivery-eligibility.js +1 -0
  19. package/dist/browser/contracts/delivery-fallback-eligibility-validation.js +1 -0
  20. package/dist/browser/contracts/delivery-fallback-validation.js +1 -0
  21. package/dist/browser/contracts/delivery-fallback.js +1 -0
  22. package/dist/browser/contracts/delivery-intent-validation.js +1 -0
  23. package/dist/browser/contracts/delivery-intent.js +1 -0
  24. package/dist/browser/contracts/delivery-progress.js +1 -0
  25. package/dist/browser/contracts/discord-community-intelligence.operations.js +1 -0
  26. package/dist/browser/contracts/discord-community.events.js +1 -0
  27. package/dist/browser/contracts/discord-community.models.js +1 -0
  28. package/dist/browser/contracts/discord-community.operations.js +1 -0
  29. package/dist/browser/contracts/ecosystem-attachment.operations.js +1 -0
  30. package/dist/browser/contracts/ecosystem-auth.operations.js +1 -0
  31. package/dist/browser/contracts/ecosystem-binding.operations.js +1 -0
  32. package/dist/browser/contracts/ecosystem-connection-subscription.events.js +1 -0
  33. package/dist/browser/contracts/ecosystem-governed-work-v2.operations.js +1 -0
  34. package/dist/browser/contracts/ecosystem-governed-work.operations.js +1 -0
  35. package/dist/browser/contracts/ecosystem-identity-v3.operations.js +1 -0
  36. package/dist/browser/contracts/ecosystem-identity.operations.js +1 -0
  37. package/dist/browser/contracts/ecosystem-message.operations.js +1 -0
  38. package/dist/browser/contracts/ecosystem-messaging.dtos.js +0 -0
  39. package/dist/browser/contracts/ecosystem-messaging.events.js +1 -0
  40. package/dist/browser/contracts/ecosystem-messaging.models.js +1 -0
  41. package/dist/browser/contracts/ecosystem-navigation-v3.operations.js +1 -0
  42. package/dist/browser/contracts/ecosystem-webhook.operations.js +1 -0
  43. package/dist/browser/contracts/ecosystem-workspace.operations.js +1 -0
  44. package/dist/browser/contracts/enums.js +1 -0
  45. package/dist/browser/contracts/erasure.operations.js +1 -0
  46. package/dist/browser/contracts/events.js +1 -0
  47. package/dist/browser/contracts/index.js +1 -0
  48. package/dist/browser/contracts/ingestion.js +1 -0
  49. package/dist/browser/contracts/ingress-admission-policy.js +1 -0
  50. package/dist/browser/contracts/ingress-admission.js +1 -0
  51. package/dist/browser/contracts/models.js +1 -0
  52. package/dist/browser/contracts/operations.js +1 -0
  53. package/dist/browser/contracts/persistence.js +1 -0
  54. package/dist/browser/contracts/preference-resolution.js +1 -0
  55. package/dist/browser/contracts/query.operations.js +1 -0
  56. package/dist/browser/contracts/sequence-intent.js +1 -0
  57. package/dist/browser/contracts/sovereignty.js +1 -0
  58. package/dist/browser/contracts/support-internal-note.operations.js +1 -0
  59. package/dist/browser/contracts/thread-link-kind.js +1 -0
  60. package/dist/browser/contracts/thread-message.operations.js +1 -0
  61. package/dist/browser/events/index.js +1 -0
  62. package/dist/browser/fixtures/agent-omnichannel-primitives.js +1 -0
  63. package/dist/browser/fixtures/agent-omnichannel.js +1 -0
  64. package/dist/browser/fixtures/gtm-learning-loop-neutral.parts.js +1 -0
  65. package/dist/browser/fixtures/index.js +1 -0
  66. package/dist/browser/fixtures/normalized-ingestion.js +1 -0
  67. package/dist/browser/index.js +1 -0
  68. package/dist/browser/queries/index.js +1 -0
  69. package/dist/browser/types/domain-command.js +0 -0
  70. package/dist/browser/types/index.js +1 -0
  71. package/dist/browser/validation/domain-command.js +1 -0
  72. package/dist/browser/validation/index.js +1 -0
  73. package/dist/capabilities/comms-ai.capabilities.d.ts +72 -0
  74. package/dist/capabilities/comms-ai.capabilities.js +2 -0
  75. package/dist/capabilities/communication-os-capability-boundary.test.d.ts +1 -0
  76. package/dist/capabilities/communication-os.capability-ids.d.ts +39 -0
  77. package/dist/capabilities/communication-os.capability-ids.js +2 -0
  78. package/dist/capabilities/communication-os.capability-ids.test.d.ts +1 -0
  79. package/dist/capabilities/ecosystem-messaging.capabilities.d.ts +9 -0
  80. package/dist/capabilities/ecosystem-messaging.capabilities.js +2 -0
  81. package/dist/capabilities/index.d.ts +4 -0
  82. package/dist/capabilities/index.js +2 -0
  83. package/dist/commands/comms-ai.commands.d.ts +272 -0
  84. package/dist/commands/comms-ai.commands.js +2 -0
  85. package/dist/commands/index.d.ts +10 -0
  86. package/dist/commands/index.js +2 -0
  87. package/dist/contracts/agent-communication.d.ts +108 -0
  88. package/dist/contracts/agent-communication.js +2 -0
  89. package/dist/contracts/agent-communication.test.d.ts +1 -0
  90. package/dist/contracts/agent-lifecycle-projection.d.ts +98 -0
  91. package/dist/contracts/agent-lifecycle-projection.js +2 -0
  92. package/dist/contracts/agent-lifecycle-projection.test.d.ts +1 -0
  93. package/dist/contracts/agent-surface-control.d.ts +210 -0
  94. package/dist/contracts/agent-surface-control.js +2 -0
  95. package/dist/contracts/agent-surface-control.test.d.ts +1 -0
  96. package/dist/contracts/ai-assistance.operations.d.ts +187 -0
  97. package/dist/contracts/ai-assistance.operations.js +2 -0
  98. package/dist/contracts/artifact-digest.d.ts +3 -0
  99. package/dist/contracts/artifact-digest.js +2 -0
  100. package/dist/contracts/canonical-agent-conversation.d.ts +46 -0
  101. package/dist/contracts/canonical-agent-conversation.js +2 -0
  102. package/dist/contracts/canonical-agent-conversation.test.d.ts +1 -0
  103. package/dist/contracts/channel-preferences.d.ts +115 -0
  104. package/dist/contracts/channel-preferences.js +2 -0
  105. package/dist/contracts/channel-routing.d.ts +58 -0
  106. package/dist/contracts/channel-routing.js +2 -0
  107. package/dist/contracts/channel-routing.test.d.ts +1 -0
  108. package/dist/contracts/collaboration.operations.d.ts +315 -0
  109. package/dist/contracts/collaboration.operations.js +2 -0
  110. package/dist/contracts/customer-live-chat-grant.operations.d.ts +132 -0
  111. package/dist/contracts/customer-live-chat-grant.operations.js +2 -0
  112. package/dist/contracts/delivery-contracts.test.d.ts +1 -0
  113. package/dist/contracts/delivery-eligibility.d.ts +126 -0
  114. package/dist/contracts/delivery-eligibility.js +2 -0
  115. package/dist/contracts/delivery-eligibility.test.d.ts +1 -0
  116. package/dist/contracts/delivery-fallback-eligibility-validation.d.ts +6 -0
  117. package/dist/contracts/delivery-fallback-eligibility-validation.js +2 -0
  118. package/dist/contracts/delivery-fallback-validation.d.ts +24 -0
  119. package/dist/contracts/delivery-fallback-validation.js +2 -0
  120. package/dist/contracts/delivery-fallback.d.ts +117 -0
  121. package/dist/contracts/delivery-fallback.js +2 -0
  122. package/dist/contracts/delivery-intent-validation.d.ts +13 -0
  123. package/dist/contracts/delivery-intent-validation.js +2 -0
  124. package/dist/contracts/delivery-intent.d.ts +137 -0
  125. package/dist/contracts/delivery-intent.js +2 -0
  126. package/dist/contracts/delivery-progress.d.ts +61 -0
  127. package/dist/contracts/delivery-progress.js +2 -0
  128. package/dist/contracts/discord-community-intelligence.operations.d.ts +405 -0
  129. package/dist/contracts/discord-community-intelligence.operations.js +2 -0
  130. package/dist/contracts/discord-community.events.d.ts +162 -0
  131. package/dist/contracts/discord-community.events.js +2 -0
  132. package/dist/contracts/discord-community.models.d.ts +167 -0
  133. package/dist/contracts/discord-community.models.js +2 -0
  134. package/dist/contracts/discord-community.operations.d.ts +663 -0
  135. package/dist/contracts/discord-community.operations.js +2 -0
  136. package/dist/contracts/discord-community.test.d.ts +1 -0
  137. package/dist/contracts/ecosystem-attachment.operations.d.ts +129 -0
  138. package/dist/contracts/ecosystem-attachment.operations.js +2 -0
  139. package/dist/contracts/ecosystem-auth.operations.d.ts +345 -0
  140. package/dist/contracts/ecosystem-auth.operations.js +2 -0
  141. package/dist/contracts/ecosystem-binding.operations.d.ts +231 -0
  142. package/dist/contracts/ecosystem-binding.operations.js +2 -0
  143. package/dist/contracts/ecosystem-connection-subscription.events.d.ts +332 -0
  144. package/dist/contracts/ecosystem-connection-subscription.events.js +2 -0
  145. package/dist/contracts/ecosystem-governed-work-v2.operations.d.ts +234 -0
  146. package/dist/contracts/ecosystem-governed-work-v2.operations.js +2 -0
  147. package/dist/contracts/ecosystem-governed-work.operations.d.ts +265 -0
  148. package/dist/contracts/ecosystem-governed-work.operations.js +2 -0
  149. package/dist/contracts/ecosystem-governed-work.operations.test.d.ts +1 -0
  150. package/dist/contracts/ecosystem-identity-v3.operations.d.ts +65 -0
  151. package/dist/contracts/ecosystem-identity-v3.operations.js +2 -0
  152. package/dist/contracts/ecosystem-identity.operations.d.ts +174 -0
  153. package/dist/contracts/ecosystem-identity.operations.js +2 -0
  154. package/dist/contracts/ecosystem-identity.operations.test.d.ts +1 -0
  155. package/dist/contracts/ecosystem-message.operations.d.ts +1092 -0
  156. package/dist/contracts/ecosystem-message.operations.js +2 -0
  157. package/dist/contracts/ecosystem-messaging.dtos.d.ts +68 -0
  158. package/dist/contracts/ecosystem-messaging.dtos.js +1 -0
  159. package/dist/contracts/ecosystem-messaging.dtos.test.d.ts +1 -0
  160. package/dist/contracts/ecosystem-messaging.events.d.ts +608 -0
  161. package/dist/contracts/ecosystem-messaging.events.js +2 -0
  162. package/dist/contracts/ecosystem-messaging.models.d.ts +386 -0
  163. package/dist/contracts/ecosystem-messaging.models.js +2 -0
  164. package/dist/contracts/ecosystem-messaging.test.d.ts +1 -0
  165. package/dist/contracts/ecosystem-navigation-v3.operations.d.ts +149 -0
  166. package/dist/contracts/ecosystem-navigation-v3.operations.js +2 -0
  167. package/dist/contracts/ecosystem-webhook.operations.d.ts +187 -0
  168. package/dist/contracts/ecosystem-webhook.operations.js +2 -0
  169. package/dist/contracts/ecosystem-workspace.operations.d.ts +590 -0
  170. package/dist/contracts/ecosystem-workspace.operations.js +2 -0
  171. package/dist/contracts/enums.d.ts +9 -0
  172. package/dist/contracts/enums.js +2 -0
  173. package/dist/contracts/erasure.operations.d.ts +114 -0
  174. package/dist/contracts/erasure.operations.js +2 -0
  175. package/dist/contracts/erasure.test.d.ts +1 -0
  176. package/dist/contracts/events.d.ts +174 -0
  177. package/dist/contracts/events.js +2 -0
  178. package/dist/contracts/index.d.ts +43 -0
  179. package/dist/contracts/index.js +2 -0
  180. package/dist/contracts/ingestion.d.ts +169 -0
  181. package/dist/contracts/ingestion.js +2 -0
  182. package/dist/contracts/ingress-admission-policy.d.ts +14 -0
  183. package/dist/contracts/ingress-admission-policy.js +2 -0
  184. package/dist/contracts/ingress-admission.d.ts +184 -0
  185. package/dist/contracts/ingress-admission.js +2 -0
  186. package/dist/contracts/ingress-admission.test.d.ts +1 -0
  187. package/dist/contracts/models.d.ts +851 -0
  188. package/dist/contracts/models.js +2 -0
  189. package/dist/contracts/operations.d.ts +5 -0
  190. package/dist/contracts/operations.js +2 -0
  191. package/dist/contracts/persistence.d.ts +353 -0
  192. package/dist/contracts/persistence.js +2 -0
  193. package/dist/contracts/persistence.test.d.ts +1 -0
  194. package/dist/contracts/preference-resolution.d.ts +154 -0
  195. package/dist/contracts/preference-resolution.js +2 -0
  196. package/dist/contracts/preference-resolution.test.d.ts +1 -0
  197. package/dist/contracts/query.operations.d.ts +600 -0
  198. package/dist/contracts/query.operations.js +2 -0
  199. package/dist/contracts/sequence-intent.d.ts +103 -0
  200. package/dist/contracts/sequence-intent.js +2 -0
  201. package/dist/contracts/sequence-intent.test.d.ts +1 -0
  202. package/dist/contracts/sovereignty.d.ts +164 -0
  203. package/dist/contracts/sovereignty.js +2 -0
  204. package/dist/contracts/support-internal-note.operations.d.ts +309 -0
  205. package/dist/contracts/support-internal-note.operations.js +2 -0
  206. package/dist/contracts/support-internal-note.operations.test.d.ts +1 -0
  207. package/dist/contracts/thread-link-kind.d.ts +20 -0
  208. package/dist/contracts/thread-link-kind.js +2 -0
  209. package/dist/contracts/thread-message.operations.d.ts +485 -0
  210. package/dist/contracts/thread-message.operations.js +2 -0
  211. package/dist/events/index.d.ts +4 -0
  212. package/dist/events/index.js +2 -0
  213. package/dist/fixtures/agent-omnichannel-primitives.d.ts +240 -0
  214. package/dist/fixtures/agent-omnichannel-primitives.js +2 -0
  215. package/dist/fixtures/agent-omnichannel.d.ts +682 -0
  216. package/dist/fixtures/agent-omnichannel.js +2 -0
  217. package/dist/fixtures/agent-omnichannel.test.d.ts +1 -0
  218. package/dist/fixtures/gtm-learning-loop-neutral.parts.d.ts +20 -0
  219. package/dist/fixtures/gtm-learning-loop-neutral.parts.js +2 -0
  220. package/dist/fixtures/index.d.ts +3 -0
  221. package/dist/fixtures/index.js +2 -0
  222. package/dist/fixtures/normalized-ingestion.d.ts +102 -0
  223. package/dist/fixtures/normalized-ingestion.js +2 -0
  224. package/dist/fixtures/normalized-ingestion.test.d.ts +1 -0
  225. package/dist/index.d.ts +7 -0
  226. package/dist/index.js +2 -0
  227. package/dist/node/capabilities/comms-ai.capabilities.js +1 -0
  228. package/dist/node/capabilities/communication-os.capability-ids.js +1 -0
  229. package/dist/node/capabilities/ecosystem-messaging.capabilities.js +1 -0
  230. package/dist/node/capabilities/index.js +1 -0
  231. package/dist/node/commands/comms-ai.commands.js +1 -0
  232. package/dist/node/commands/index.js +1 -0
  233. package/dist/node/contracts/agent-communication.js +1 -0
  234. package/dist/node/contracts/agent-lifecycle-projection.js +1 -0
  235. package/dist/node/contracts/agent-surface-control.js +1 -0
  236. package/dist/node/contracts/ai-assistance.operations.js +1 -0
  237. package/dist/node/contracts/artifact-digest.js +1 -0
  238. package/dist/node/contracts/canonical-agent-conversation.js +1 -0
  239. package/dist/node/contracts/channel-preferences.js +1 -0
  240. package/dist/node/contracts/channel-routing.js +1 -0
  241. package/dist/node/contracts/collaboration.operations.js +1 -0
  242. package/dist/node/contracts/customer-live-chat-grant.operations.js +1 -0
  243. package/dist/node/contracts/delivery-eligibility.js +1 -0
  244. package/dist/node/contracts/delivery-fallback-eligibility-validation.js +1 -0
  245. package/dist/node/contracts/delivery-fallback-validation.js +1 -0
  246. package/dist/node/contracts/delivery-fallback.js +1 -0
  247. package/dist/node/contracts/delivery-intent-validation.js +1 -0
  248. package/dist/node/contracts/delivery-intent.js +1 -0
  249. package/dist/node/contracts/delivery-progress.js +1 -0
  250. package/dist/node/contracts/discord-community-intelligence.operations.js +1 -0
  251. package/dist/node/contracts/discord-community.events.js +1 -0
  252. package/dist/node/contracts/discord-community.models.js +1 -0
  253. package/dist/node/contracts/discord-community.operations.js +1 -0
  254. package/dist/node/contracts/ecosystem-attachment.operations.js +1 -0
  255. package/dist/node/contracts/ecosystem-auth.operations.js +1 -0
  256. package/dist/node/contracts/ecosystem-binding.operations.js +1 -0
  257. package/dist/node/contracts/ecosystem-connection-subscription.events.js +1 -0
  258. package/dist/node/contracts/ecosystem-governed-work-v2.operations.js +1 -0
  259. package/dist/node/contracts/ecosystem-governed-work.operations.js +1 -0
  260. package/dist/node/contracts/ecosystem-identity-v3.operations.js +1 -0
  261. package/dist/node/contracts/ecosystem-identity.operations.js +1 -0
  262. package/dist/node/contracts/ecosystem-message.operations.js +1 -0
  263. package/dist/node/contracts/ecosystem-messaging.dtos.js +0 -0
  264. package/dist/node/contracts/ecosystem-messaging.events.js +1 -0
  265. package/dist/node/contracts/ecosystem-messaging.models.js +1 -0
  266. package/dist/node/contracts/ecosystem-navigation-v3.operations.js +1 -0
  267. package/dist/node/contracts/ecosystem-webhook.operations.js +1 -0
  268. package/dist/node/contracts/ecosystem-workspace.operations.js +1 -0
  269. package/dist/node/contracts/enums.js +1 -0
  270. package/dist/node/contracts/erasure.operations.js +1 -0
  271. package/dist/node/contracts/events.js +1 -0
  272. package/dist/node/contracts/index.js +1 -0
  273. package/dist/node/contracts/ingestion.js +1 -0
  274. package/dist/node/contracts/ingress-admission-policy.js +1 -0
  275. package/dist/node/contracts/ingress-admission.js +1 -0
  276. package/dist/node/contracts/models.js +1 -0
  277. package/dist/node/contracts/operations.js +1 -0
  278. package/dist/node/contracts/persistence.js +1 -0
  279. package/dist/node/contracts/preference-resolution.js +1 -0
  280. package/dist/node/contracts/query.operations.js +1 -0
  281. package/dist/node/contracts/sequence-intent.js +1 -0
  282. package/dist/node/contracts/sovereignty.js +1 -0
  283. package/dist/node/contracts/support-internal-note.operations.js +1 -0
  284. package/dist/node/contracts/thread-link-kind.js +1 -0
  285. package/dist/node/contracts/thread-message.operations.js +1 -0
  286. package/dist/node/events/index.js +1 -0
  287. package/dist/node/fixtures/agent-omnichannel-primitives.js +1 -0
  288. package/dist/node/fixtures/agent-omnichannel.js +1 -0
  289. package/dist/node/fixtures/gtm-learning-loop-neutral.parts.js +1 -0
  290. package/dist/node/fixtures/index.js +1 -0
  291. package/dist/node/fixtures/normalized-ingestion.js +1 -0
  292. package/dist/node/index.js +1 -0
  293. package/dist/node/queries/index.js +1 -0
  294. package/dist/node/types/domain-command.js +0 -0
  295. package/dist/node/types/index.js +1 -0
  296. package/dist/node/validation/domain-command.js +1 -0
  297. package/dist/node/validation/index.js +1 -0
  298. package/dist/package-exports.test.d.ts +1 -0
  299. package/dist/queries/index.d.ts +4 -0
  300. package/dist/queries/index.js +2 -0
  301. package/dist/types/domain-command.d.ts +54 -0
  302. package/dist/types/domain-command.js +1 -0
  303. package/dist/types/index.d.ts +3 -0
  304. package/dist/types/index.js +2 -0
  305. package/dist/validation/domain-command.d.ts +3 -0
  306. package/dist/validation/domain-command.js +2 -0
  307. package/dist/validation/index.d.ts +53 -0
  308. package/dist/validation/index.js +2 -0
  309. package/package.json +1227 -0
@@ -0,0 +1,103 @@
1
+ import { z } from 'zod';
2
+ export declare const COMMUNICATION_SEQUENCE_INTENT_SCHEMA_VERSION: '1.0.0';
3
+ export declare const COMMUNICATION_SEQUENCE_INTENT_SCHEMA_IDENTITY: 'communication.sequence-intent.v1|sequence,action-packet,recipient,content-proof,channel,side-effect,schedule,expiry,approval,policy|approval-bound,provider-neutral';
4
+ export declare const COMMUNICATION_SEQUENCE_INTENT_SCHEMA_FINGERPRINT: 'sha256:7ef776396727b0e7ee015935d8f7d5f4605a08b815f6493aa737411490edc633';
5
+ export declare const COMMUNICATION_SEQUENCE_APPROVAL_TARGET_VERSION: '1.0.0';
6
+ export declare const COMMUNICATION_SEQUENCE_APPROVAL_TARGET_PAYLOAD_KEY: 'communicationSequenceApprovalTarget';
7
+ export declare const COMMUNICATION_SEQUENCE_APPROVAL_FINGERPRINT_PAYLOAD_KEY: 'communicationSequenceApprovalFingerprint';
8
+ export declare const COMMUNICATION_SEQUENCE_APPROVAL_EVIDENCE_PREFIX: 'communication-sequence-approval:';
9
+ /** Exact content evidence approved for one scheduled communication sequence. */
10
+ export declare const CommunicationSequenceContentProofSchema: z.ZodObject<{
11
+ contentRef: z.ZodString;
12
+ sha256: z.ZodString;
13
+ }, z.core.$strip>;
14
+ /** Canonical provider-neutral content bytes covered by the content proof. */
15
+ export declare const CommunicationSequenceOutboundContentSchema: z.ZodObject<{
16
+ body: z.ZodString;
17
+ subject: z.ZodOptional<z.ZodString>;
18
+ htmlBody: z.ZodOptional<z.ZodString>;
19
+ replyToExternalMessageId: z.ZodOptional<z.ZodString>;
20
+ }, z.core.$strip>;
21
+ /** Retry timing only; the runtime remains a pure state machine with no timer. */
22
+ export declare const CommunicationSequenceSchedulePolicySchema: z.ZodObject<{
23
+ notBefore: z.ZodString;
24
+ maxAttempts: z.ZodNumber;
25
+ retryDelayMs: z.ZodNumber;
26
+ }, z.core.$strip>;
27
+ /** Governance refs that must be evaluated again before every claim or retry. */
28
+ export declare const CommunicationSequencePolicySchema: z.ZodObject<{
29
+ policyRefs: z.ZodArray<z.ZodString>;
30
+ consentRef: z.ZodString;
31
+ killSwitchRef: z.ZodString;
32
+ }, z.core.$strip>;
33
+ /**
34
+ * Canonical effect-bearing payload reviewed by a human for one sequence.
35
+ * Versions are explicit so an approval cannot silently authorize a later
36
+ * sequence, schedule, or policy revision.
37
+ */
38
+ export declare const CommunicationSequenceApprovalTargetSchema: z.ZodObject<{
39
+ schemaVersion: z.ZodLiteral<"1.0.0">;
40
+ sequenceRef: z.ZodString;
41
+ sequenceVersion: z.ZodString;
42
+ tenantRef: z.ZodString;
43
+ recipientRefs: z.ZodArray<z.ZodString>;
44
+ contentProof: z.ZodObject<{
45
+ contentRef: z.ZodString;
46
+ sha256: z.ZodString;
47
+ }, z.core.$strip>;
48
+ channel: z.ZodString;
49
+ sideEffect: z.ZodLiteral<"send_reply">;
50
+ schedulePolicyVersion: z.ZodString;
51
+ schedulePolicy: z.ZodObject<{
52
+ notBefore: z.ZodString;
53
+ maxAttempts: z.ZodNumber;
54
+ retryDelayMs: z.ZodNumber;
55
+ }, z.core.$strip>;
56
+ policyVersion: z.ZodString;
57
+ policy: z.ZodObject<{
58
+ policyRefs: z.ZodArray<z.ZodString>;
59
+ consentRef: z.ZodString;
60
+ killSwitchRef: z.ZodString;
61
+ }, z.core.$strip>;
62
+ expiresAt: z.ZodString;
63
+ }, z.core.$strip>;
64
+ /** Hash every effect-bearing content field, not only the plain-text body. */
65
+ export declare function fingerprintCommunicationSequenceOutboundContent(content: CommunicationSequenceOutboundContent): Promise<string>;
66
+ /** Compute the portable fingerprint stored on the approval and ActionPacket. */
67
+ export declare function fingerprintCommunicationSequenceApprovalTarget(target: CommunicationSequenceApprovalTarget): Promise<string>;
68
+ export declare function communicationSequenceApprovalEvidenceRef(fingerprint: string): string;
69
+ /**
70
+ * Reusable, provider-neutral intent for a single approval-bound send sequence.
71
+ * Every effect-bearing field is explicit so a scheduler cannot substitute a
72
+ * recipient, content, channel, or side effect after human approval.
73
+ */
74
+ export declare const CommunicationSequenceIntentSchema: z.ZodObject<{
75
+ sequenceRef: z.ZodString;
76
+ actionPacketRef: z.ZodString;
77
+ recipientRef: z.ZodString;
78
+ contentProof: z.ZodObject<{
79
+ contentRef: z.ZodString;
80
+ sha256: z.ZodString;
81
+ }, z.core.$strip>;
82
+ channel: z.ZodString;
83
+ sideEffect: z.ZodLiteral<"send_reply">;
84
+ schedulePolicy: z.ZodObject<{
85
+ notBefore: z.ZodString;
86
+ maxAttempts: z.ZodNumber;
87
+ retryDelayMs: z.ZodNumber;
88
+ }, z.core.$strip>;
89
+ expiresAt: z.ZodString;
90
+ approvalRequestId: z.ZodString;
91
+ approvalFingerprint: z.ZodString;
92
+ policy: z.ZodObject<{
93
+ policyRefs: z.ZodArray<z.ZodString>;
94
+ consentRef: z.ZodString;
95
+ killSwitchRef: z.ZodString;
96
+ }, z.core.$strip>;
97
+ }, z.core.$strip>;
98
+ export type CommunicationSequenceContentProof = z.infer<typeof CommunicationSequenceContentProofSchema>;
99
+ export type CommunicationSequenceOutboundContent = z.infer<typeof CommunicationSequenceOutboundContentSchema>;
100
+ export type CommunicationSequenceSchedulePolicy = z.infer<typeof CommunicationSequenceSchedulePolicySchema>;
101
+ export type CommunicationSequencePolicy = z.infer<typeof CommunicationSequencePolicySchema>;
102
+ export type CommunicationSequenceApprovalTarget = z.infer<typeof CommunicationSequenceApprovalTargetSchema>;
103
+ export type CommunicationSequenceIntent = z.infer<typeof CommunicationSequenceIntentSchema>;
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ import{z as e}from"zod";var o=e.string().min(1),r=e.string().datetime({offset:!0}),C="1.0.0",y="communication.sequence-intent.v1|sequence,action-packet,recipient,content-proof,channel,side-effect,schedule,expiry,approval,policy|approval-bound,provider-neutral",E="sha256:7ef776396727b0e7ee015935d8f7d5f4605a08b815f6493aa737411490edc633",m="1.0.0",A="communicationSequenceApprovalTarget",h="communicationSequenceApprovalFingerprint",l="communication-sequence-approval:",s=e.object({contentRef:o,sha256:e.string().regex(/^[a-f0-9]{64}$/)}),f=e.object({body:e.string(),subject:e.string().optional(),htmlBody:e.string().optional(),replyToExternalMessageId:e.string().optional()}),a=e.object({notBefore:r,maxAttempts:e.number().int().positive(),retryDelayMs:e.number().int().nonnegative()}),p=e.object({policyRefs:e.array(o).min(1),consentRef:o,killSwitchRef:o}),S=e.object({schemaVersion:e.literal(m),sequenceRef:o,sequenceVersion:o,tenantRef:o,recipientRefs:e.array(o).min(1),contentProof:s,channel:o,sideEffect:e.literal("send_reply"),schedulePolicyVersion:o,schedulePolicy:a,policyVersion:o,policy:p,expiresAt:r}).superRefine((n,t)=>{if(new Set(n.recipientRefs).size!==n.recipientRefs.length)t.addIssue({code:e.ZodIssueCode.custom,message:"recipientRefs must be unique",path:["recipientRefs"]});if(Date.parse(n.expiresAt)<=Date.parse(n.schedulePolicy.notBefore))t.addIssue({code:e.ZodIssueCode.custom,message:"expiresAt must be later than schedulePolicy.notBefore",path:["expiresAt"]})});function i(n){if(Array.isArray(n))return`[${n.map(i).join(",")}]`;if(n&&typeof n==="object")return`{${Object.entries(n).sort(([t],[c])=>t.localeCompare(c)).map(([t,c])=>`${JSON.stringify(t)}:${i(c)}`).join(",")}}`;return JSON.stringify(n)}async function u(n){let t=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(i(n)));return Array.from(new Uint8Array(t),(c)=>c.toString(16).padStart(2,"0")).join("")}async function I(n){let t=f.parse(n);return u({body:t.body,htmlBody:t.htmlBody??null,replyToExternalMessageId:t.replyToExternalMessageId??null,subject:t.subject??null})}async function x(n){let t=S.parse(n);return`sha256:${await u(t)}`}function N(n){return`${l}${n}`}var P=e.object({sequenceRef:o,actionPacketRef:o,recipientRef:o,contentProof:s,channel:o,sideEffect:e.literal("send_reply"),schedulePolicy:a,expiresAt:r,approvalRequestId:o,approvalFingerprint:o,policy:p}).superRefine((n,t)=>{if(Date.parse(n.expiresAt)<=Date.parse(n.schedulePolicy.notBefore))t.addIssue({code:e.ZodIssueCode.custom,message:"expiresAt must be later than schedulePolicy.notBefore",path:["expiresAt"]})});export{l as COMMUNICATION_SEQUENCE_APPROVAL_EVIDENCE_PREFIX,h as COMMUNICATION_SEQUENCE_APPROVAL_FINGERPRINT_PAYLOAD_KEY,A as COMMUNICATION_SEQUENCE_APPROVAL_TARGET_PAYLOAD_KEY,m as COMMUNICATION_SEQUENCE_APPROVAL_TARGET_VERSION,E as COMMUNICATION_SEQUENCE_INTENT_SCHEMA_FINGERPRINT,y as COMMUNICATION_SEQUENCE_INTENT_SCHEMA_IDENTITY,C as COMMUNICATION_SEQUENCE_INTENT_SCHEMA_VERSION,S as CommunicationSequenceApprovalTargetSchema,s as CommunicationSequenceContentProofSchema,P as CommunicationSequenceIntentSchema,f as CommunicationSequenceOutboundContentSchema,p as CommunicationSequencePolicySchema,a as CommunicationSequenceSchedulePolicySchema,N as communicationSequenceApprovalEvidenceRef,x as fingerprintCommunicationSequenceApprovalTarget,I as fingerprintCommunicationSequenceOutboundContent};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,164 @@
1
+ /**
2
+ * Data residency region in which CommunicationOS persistence and processing are
3
+ * permitted to run. EU is the default for the France vertical (AC0.5).
4
+ */
5
+ export declare const ResidencyRegionEnum: import("@lssm/lib.schema").EnumType<[string, string, string, string, string, string, string]>;
6
+ /**
7
+ * Hosting / deployment posture for a CommunicationOS tenant. Drives the
8
+ * sovereignty guarantees a vertical can advertise.
9
+ */
10
+ export declare const HostingModeEnum: import("@lssm/lib.schema").EnumType<[string, string, string]>;
11
+ /**
12
+ * Data classes whose retention windows are governed independently. Used to
13
+ * resolve the documented retention window when a provider cannot recall data
14
+ * (the `erased_local_provider_retained_documented` erasure outcome).
15
+ */
16
+ export declare const DataClassEnum: import("@lssm/lib.schema").EnumType<[string, string, string, string, string, string]>;
17
+ /**
18
+ * Lawful basis for processing a subject's data under GDPR (RGPD) Article 6.
19
+ */
20
+ export declare const ConsentBasisEnum: import("@lssm/lib.schema").EnumType<[string, string, string, string]>;
21
+ /**
22
+ * Lifecycle status of a recorded subject consent decision.
23
+ */
24
+ export declare const ConsentStatusEnum: import("@lssm/lib.schema").EnumType<[string, string, string, string]>;
25
+ /**
26
+ * Per-data-class retention window. `retentionDays` is the documented maximum
27
+ * a provider may retain data when our local delete cannot force recall; this is
28
+ * the value surfaced by the `erased_local_provider_retained_documented` outcome.
29
+ */
30
+ export declare const RetentionWindowModel: import("@lssm/lib.schema").SchemaModel<{
31
+ dataClass: {
32
+ type: import("@lssm/lib.schema").EnumType<[string, string, string, string, string, string]>;
33
+ isOptional: false;
34
+ };
35
+ retentionDays: {
36
+ type: import("@lssm/lib.schema").FieldType<number, number>;
37
+ isOptional: false;
38
+ };
39
+ basis: {
40
+ type: import("@lssm/lib.schema").EnumType<[string, string, string, string]>;
41
+ isOptional: false;
42
+ };
43
+ description: {
44
+ type: import("@lssm/lib.schema").FieldType<string, string>;
45
+ isOptional: true;
46
+ };
47
+ }>;
48
+ /**
49
+ * Typed sovereignty profile for a CommunicationOS tenant. Documents data
50
+ * residency, per-data-class retention windows, the sovereign/EU LLM provider,
51
+ * and the hosting posture. This is the canonical source for the retention
52
+ * reference attached to a `provider_retained_documented` erasure outcome.
53
+ */
54
+ export declare const SovereigntyProfileModel: import("@lssm/lib.schema").SchemaModel<{
55
+ id: {
56
+ type: import("@lssm/lib.schema").FieldType<string, string>;
57
+ isOptional: false;
58
+ };
59
+ tenantId: {
60
+ type: import("@lssm/lib.schema").FieldType<string, string>;
61
+ isOptional: false;
62
+ };
63
+ residencyRegion: {
64
+ type: import("@lssm/lib.schema").EnumType<[string, string, string, string, string, string, string]>;
65
+ isOptional: false;
66
+ defaultValue: string;
67
+ };
68
+ hostingMode: {
69
+ type: import("@lssm/lib.schema").EnumType<[string, string, string]>;
70
+ isOptional: false;
71
+ defaultValue: string;
72
+ };
73
+ llmProviderId: {
74
+ type: import("@lssm/lib.schema").FieldType<string, string>;
75
+ isOptional: false;
76
+ };
77
+ retentionWindows: {
78
+ type: import("@lssm/lib.schema").SchemaModel<{
79
+ dataClass: {
80
+ type: import("@lssm/lib.schema").EnumType<[string, string, string, string, string, string]>;
81
+ isOptional: false;
82
+ };
83
+ retentionDays: {
84
+ type: import("@lssm/lib.schema").FieldType<number, number>;
85
+ isOptional: false;
86
+ };
87
+ basis: {
88
+ type: import("@lssm/lib.schema").EnumType<[string, string, string, string]>;
89
+ isOptional: false;
90
+ };
91
+ description: {
92
+ type: import("@lssm/lib.schema").FieldType<string, string>;
93
+ isOptional: true;
94
+ };
95
+ }>;
96
+ isArray: true;
97
+ isOptional: false;
98
+ };
99
+ dataResidencyEnforced: {
100
+ type: import("@lssm/lib.schema").FieldType<boolean, boolean>;
101
+ isOptional: false;
102
+ defaultValue: boolean;
103
+ };
104
+ createdAt: {
105
+ type: import("@lssm/lib.schema").FieldType<Date, string>;
106
+ isOptional: false;
107
+ };
108
+ updatedAt: {
109
+ type: import("@lssm/lib.schema").FieldType<Date, string>;
110
+ isOptional: false;
111
+ };
112
+ }>;
113
+ /**
114
+ * RGPD consent record for a single data subject. Sufficient to record and check
115
+ * whether a subject's data may be processed and which lawful basis applies.
116
+ */
117
+ export declare const SubjectConsentModel: import("@lssm/lib.schema").SchemaModel<{
118
+ id: {
119
+ type: import("@lssm/lib.schema").FieldType<string, string>;
120
+ isOptional: false;
121
+ };
122
+ tenantId: {
123
+ type: import("@lssm/lib.schema").FieldType<string, string>;
124
+ isOptional: false;
125
+ };
126
+ subjectId: {
127
+ type: import("@lssm/lib.schema").FieldType<string, string>;
128
+ isOptional: false;
129
+ };
130
+ basis: {
131
+ type: import("@lssm/lib.schema").EnumType<[string, string, string, string]>;
132
+ isOptional: false;
133
+ };
134
+ status: {
135
+ type: import("@lssm/lib.schema").EnumType<[string, string, string, string]>;
136
+ isOptional: false;
137
+ defaultValue: string;
138
+ };
139
+ grantedAt: {
140
+ type: import("@lssm/lib.schema").FieldType<Date, string>;
141
+ isOptional: true;
142
+ };
143
+ withdrawnAt: {
144
+ type: import("@lssm/lib.schema").FieldType<Date, string>;
145
+ isOptional: true;
146
+ };
147
+ expiresAt: {
148
+ type: import("@lssm/lib.schema").FieldType<Date, string>;
149
+ isOptional: true;
150
+ };
151
+ evidenceRef: {
152
+ type: import("@lssm/lib.schema").FieldType<string, string>;
153
+ isOptional: true;
154
+ };
155
+ }>;
156
+ /**
157
+ * The THREE-STATE erasure outcome (pre-mortem #2, AC0.5):
158
+ * - `erased_local`: no channel record existed; only local data removed.
159
+ * - `erased_local_and_channel`: provider honored the erase (e.g. WhatsApp).
160
+ * - `erased_local_provider_retained_documented`: provider cannot recall the
161
+ * data (e.g. SMTP/email already sent); local data removed and the documented
162
+ * provider retention window is referenced — NOT a permanent open liability.
163
+ */
164
+ export declare const ErasureOutcomeEnum: import("@lssm/lib.schema").EnumType<[string, string, string]>;
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ import{defineEnum as t,defineSchemaModel as n,ScalarTypeEnum as e}from"@lssm/lib.schema";var a=t("ResidencyRegion",["eu","eu_fr","eu_de","us","uk","apac","self_managed"]),s=t("HostingMode",["saas","self_host","on_prem"]),o=t("DataClass",["message_body","participant_identity","channel_account","attachment","ai_derived","audit_evidence"]),i=t("ConsentBasis",["consent","contract","legal_obligation","legitimate_interest"]),r=t("ConsentStatus",["granted","withdrawn","expired","not_recorded"]),l=n({name:"RetentionWindow",description:"Documented retention window for a single governed data class.",fields:{dataClass:{type:o,isOptional:!1},retentionDays:{type:e.Int_unsecure(),isOptional:!1},basis:{type:i,isOptional:!1},description:{type:e.String_unsecure(),isOptional:!0}}}),p=n({name:"SovereigntyProfile",description:"Residency, retention, sovereign LLM provider and hosting posture for a tenant.",fields:{id:{type:e.String_unsecure(),isOptional:!1},tenantId:{type:e.String_unsecure(),isOptional:!1},residencyRegion:{type:a,isOptional:!1,defaultValue:"eu"},hostingMode:{type:s,isOptional:!1,defaultValue:"saas"},llmProviderId:{type:e.String_unsecure(),isOptional:!1},retentionWindows:{type:l,isArray:!0,isOptional:!1},dataResidencyEnforced:{type:e.Boolean(),isOptional:!1,defaultValue:!0},createdAt:{type:e.DateTime(),isOptional:!1},updatedAt:{type:e.DateTime(),isOptional:!1}}}),u=n({name:"SubjectConsent",description:"Recorded RGPD consent decision for a single data subject.",fields:{id:{type:e.String_unsecure(),isOptional:!1},tenantId:{type:e.String_unsecure(),isOptional:!1},subjectId:{type:e.String_unsecure(),isOptional:!1},basis:{type:i,isOptional:!1},status:{type:r,isOptional:!1,defaultValue:"not_recorded"},grantedAt:{type:e.DateTime(),isOptional:!0},withdrawnAt:{type:e.DateTime(),isOptional:!0},expiresAt:{type:e.DateTime(),isOptional:!0},evidenceRef:{type:e.String_unsecure(),isOptional:!0}}}),c=t("ErasureOutcome",["erased_local","erased_local_and_channel","erased_local_provider_retained_documented"]);export{i as ConsentBasisEnum,r as ConsentStatusEnum,o as DataClassEnum,c as ErasureOutcomeEnum,s as HostingModeEnum,a as ResidencyRegionEnum,l as RetentionWindowModel,p as SovereigntyProfileModel,u as SubjectConsentModel};
@@ -0,0 +1,309 @@
1
+ import { type DocBlock } from '@lssm/lib.contracts-spec';
2
+ export declare const CommunicationSupportInternalNoteDocBlock: DocBlock;
3
+ export declare const CommunicationSupportInternalNoteVisibilityEnum: import("@lssm/lib.schema").EnumType<[string]>;
4
+ export declare const CommunicationSupportInternalNoteCreateV1InputModel: import("@lssm/lib.schema").SchemaModel<{
5
+ caseRef: {
6
+ type: import("@lssm/lib.schema").FieldType<string, string>;
7
+ isOptional: false;
8
+ };
9
+ body: {
10
+ type: import("@lssm/lib.schema").FieldType<string, string>;
11
+ isOptional: false;
12
+ };
13
+ idempotencyKey: {
14
+ type: import("@lssm/lib.schema").FieldType<string, string>;
15
+ isOptional: false;
16
+ };
17
+ }>;
18
+ export declare const CommunicationSupportInternalNoteCreateForIntentV1InputModel: import("@lssm/lib.schema").SchemaModel<{
19
+ caseRef: {
20
+ type: import("@lssm/lib.schema").FieldType<string, string>;
21
+ isOptional: false;
22
+ };
23
+ intentRef: {
24
+ type: import("@lssm/lib.schema").FieldType<string, string>;
25
+ isOptional: false;
26
+ };
27
+ body: {
28
+ type: import("@lssm/lib.schema").FieldType<string, string>;
29
+ isOptional: false;
30
+ };
31
+ idempotencyKey: {
32
+ type: import("@lssm/lib.schema").FieldType<string, string>;
33
+ isOptional: false;
34
+ };
35
+ }>;
36
+ export declare const CommunicationSupportInternalNoteEvidenceV1Model: import("@lssm/lib.schema").SchemaModel<{
37
+ noteRef: {
38
+ type: import("@lssm/lib.schema").FieldType<string, string>;
39
+ isOptional: false;
40
+ };
41
+ caseRef: {
42
+ type: import("@lssm/lib.schema").FieldType<string, string>;
43
+ isOptional: false;
44
+ };
45
+ evidenceRef: {
46
+ type: import("@lssm/lib.schema").FieldType<string, string>;
47
+ isOptional: false;
48
+ };
49
+ visibility: {
50
+ type: import("@lssm/lib.schema").EnumType<[string]>;
51
+ isOptional: false;
52
+ };
53
+ createdAt: {
54
+ type: import("@lssm/lib.schema").FieldType<Date, string>;
55
+ isOptional: false;
56
+ };
57
+ }>;
58
+ export declare const CommunicationSupportInternalNoteIntentEvidenceV1Model: import("@lssm/lib.schema").SchemaModel<{
59
+ noteRef: {
60
+ type: import("@lssm/lib.schema").FieldType<string, string>;
61
+ isOptional: false;
62
+ };
63
+ caseRef: {
64
+ type: import("@lssm/lib.schema").FieldType<string, string>;
65
+ isOptional: false;
66
+ };
67
+ evidenceRef: {
68
+ type: import("@lssm/lib.schema").FieldType<string, string>;
69
+ isOptional: false;
70
+ };
71
+ visibility: {
72
+ type: import("@lssm/lib.schema").EnumType<[string]>;
73
+ isOptional: false;
74
+ };
75
+ createdAt: {
76
+ type: import("@lssm/lib.schema").FieldType<Date, string>;
77
+ isOptional: false;
78
+ };
79
+ intentRef: {
80
+ type: import("@lssm/lib.schema").FieldType<string, string>;
81
+ isOptional: false;
82
+ };
83
+ deliveryRef: {
84
+ type: import("@lssm/lib.schema").FieldType<string, string>;
85
+ isOptional: false;
86
+ };
87
+ grantEvidenceRef: {
88
+ type: import("@lssm/lib.schema").FieldType<string, string>;
89
+ isOptional: false;
90
+ };
91
+ }>;
92
+ export declare const CommunicationSupportInternalNoteVerifyV1InputModel: import("@lssm/lib.schema").SchemaModel<{
93
+ caseRef: {
94
+ type: import("@lssm/lib.schema").FieldType<string, string>;
95
+ isOptional: false;
96
+ };
97
+ noteRef: {
98
+ type: import("@lssm/lib.schema").FieldType<string, string>;
99
+ isOptional: false;
100
+ };
101
+ evidenceRef: {
102
+ type: import("@lssm/lib.schema").FieldType<string, string>;
103
+ isOptional: false;
104
+ };
105
+ }>;
106
+ export declare const CommunicationSupportInternalNoteVerificationV1Model: import("@lssm/lib.schema").SchemaModel<{
107
+ status: {
108
+ type: import("@lssm/lib.schema").EnumType<[string]>;
109
+ isOptional: false;
110
+ };
111
+ caseRef: {
112
+ type: import("@lssm/lib.schema").FieldType<string, string>;
113
+ isOptional: false;
114
+ };
115
+ noteRef: {
116
+ type: import("@lssm/lib.schema").FieldType<string, string>;
117
+ isOptional: false;
118
+ };
119
+ evidenceRef: {
120
+ type: import("@lssm/lib.schema").FieldType<string, string>;
121
+ isOptional: false;
122
+ };
123
+ visibility: {
124
+ type: import("@lssm/lib.schema").EnumType<[string]>;
125
+ isOptional: false;
126
+ };
127
+ }>;
128
+ export declare const CreateCommunicationSupportInternalNoteV1Command: import("@lssm/lib.contracts-spec").OperationSpec<import("@lssm/lib.schema").SchemaModel<{
129
+ caseRef: {
130
+ type: import("@lssm/lib.schema").FieldType<string, string>;
131
+ isOptional: false;
132
+ };
133
+ body: {
134
+ type: import("@lssm/lib.schema").FieldType<string, string>;
135
+ isOptional: false;
136
+ };
137
+ idempotencyKey: {
138
+ type: import("@lssm/lib.schema").FieldType<string, string>;
139
+ isOptional: false;
140
+ };
141
+ }>, import("@lssm/lib.schema").SchemaModel<{
142
+ noteRef: {
143
+ type: import("@lssm/lib.schema").FieldType<string, string>;
144
+ isOptional: false;
145
+ };
146
+ caseRef: {
147
+ type: import("@lssm/lib.schema").FieldType<string, string>;
148
+ isOptional: false;
149
+ };
150
+ evidenceRef: {
151
+ type: import("@lssm/lib.schema").FieldType<string, string>;
152
+ isOptional: false;
153
+ };
154
+ visibility: {
155
+ type: import("@lssm/lib.schema").EnumType<[string]>;
156
+ isOptional: false;
157
+ };
158
+ createdAt: {
159
+ type: import("@lssm/lib.schema").FieldType<Date, string>;
160
+ isOptional: false;
161
+ };
162
+ }>, undefined>;
163
+ export declare const CreateCommunicationSupportInternalNoteForIntentV1Command: import("@lssm/lib.contracts-spec").OperationSpec<import("@lssm/lib.schema").SchemaModel<{
164
+ caseRef: {
165
+ type: import("@lssm/lib.schema").FieldType<string, string>;
166
+ isOptional: false;
167
+ };
168
+ intentRef: {
169
+ type: import("@lssm/lib.schema").FieldType<string, string>;
170
+ isOptional: false;
171
+ };
172
+ body: {
173
+ type: import("@lssm/lib.schema").FieldType<string, string>;
174
+ isOptional: false;
175
+ };
176
+ idempotencyKey: {
177
+ type: import("@lssm/lib.schema").FieldType<string, string>;
178
+ isOptional: false;
179
+ };
180
+ }>, import("@lssm/lib.schema").SchemaModel<{
181
+ noteRef: {
182
+ type: import("@lssm/lib.schema").FieldType<string, string>;
183
+ isOptional: false;
184
+ };
185
+ caseRef: {
186
+ type: import("@lssm/lib.schema").FieldType<string, string>;
187
+ isOptional: false;
188
+ };
189
+ evidenceRef: {
190
+ type: import("@lssm/lib.schema").FieldType<string, string>;
191
+ isOptional: false;
192
+ };
193
+ visibility: {
194
+ type: import("@lssm/lib.schema").EnumType<[string]>;
195
+ isOptional: false;
196
+ };
197
+ createdAt: {
198
+ type: import("@lssm/lib.schema").FieldType<Date, string>;
199
+ isOptional: false;
200
+ };
201
+ intentRef: {
202
+ type: import("@lssm/lib.schema").FieldType<string, string>;
203
+ isOptional: false;
204
+ };
205
+ deliveryRef: {
206
+ type: import("@lssm/lib.schema").FieldType<string, string>;
207
+ isOptional: false;
208
+ };
209
+ grantEvidenceRef: {
210
+ type: import("@lssm/lib.schema").FieldType<string, string>;
211
+ isOptional: false;
212
+ };
213
+ }>, undefined>;
214
+ export declare const VerifyCommunicationSupportInternalNoteV1Query: import("@lssm/lib.contracts-spec").OperationSpec<import("@lssm/lib.schema").SchemaModel<{
215
+ caseRef: {
216
+ type: import("@lssm/lib.schema").FieldType<string, string>;
217
+ isOptional: false;
218
+ };
219
+ noteRef: {
220
+ type: import("@lssm/lib.schema").FieldType<string, string>;
221
+ isOptional: false;
222
+ };
223
+ evidenceRef: {
224
+ type: import("@lssm/lib.schema").FieldType<string, string>;
225
+ isOptional: false;
226
+ };
227
+ }>, import("@lssm/lib.schema").SchemaModel<{
228
+ status: {
229
+ type: import("@lssm/lib.schema").EnumType<[string]>;
230
+ isOptional: false;
231
+ };
232
+ caseRef: {
233
+ type: import("@lssm/lib.schema").FieldType<string, string>;
234
+ isOptional: false;
235
+ };
236
+ noteRef: {
237
+ type: import("@lssm/lib.schema").FieldType<string, string>;
238
+ isOptional: false;
239
+ };
240
+ evidenceRef: {
241
+ type: import("@lssm/lib.schema").FieldType<string, string>;
242
+ isOptional: false;
243
+ };
244
+ visibility: {
245
+ type: import("@lssm/lib.schema").EnumType<[string]>;
246
+ isOptional: false;
247
+ };
248
+ }>, undefined>;
249
+ export declare const CommunicationSupportInternalNoteCreatedV1Event: import("@lssm/lib.contracts-spec").EventSpec<import("@lssm/lib.schema").SchemaModel<{
250
+ noteRef: {
251
+ type: import("@lssm/lib.schema").FieldType<string, string>;
252
+ isOptional: false;
253
+ };
254
+ caseRef: {
255
+ type: import("@lssm/lib.schema").FieldType<string, string>;
256
+ isOptional: false;
257
+ };
258
+ evidenceRef: {
259
+ type: import("@lssm/lib.schema").FieldType<string, string>;
260
+ isOptional: false;
261
+ };
262
+ visibility: {
263
+ type: import("@lssm/lib.schema").EnumType<[string]>;
264
+ isOptional: false;
265
+ };
266
+ createdAt: {
267
+ type: import("@lssm/lib.schema").FieldType<Date, string>;
268
+ isOptional: false;
269
+ };
270
+ }>>;
271
+ export declare const CommunicationSupportInternalNoteReconciliationReadyV1Event: import("@lssm/lib.contracts-spec").EventSpec<import("@lssm/lib.schema").SchemaModel<{
272
+ noteRef: {
273
+ type: import("@lssm/lib.schema").FieldType<string, string>;
274
+ isOptional: false;
275
+ };
276
+ caseRef: {
277
+ type: import("@lssm/lib.schema").FieldType<string, string>;
278
+ isOptional: false;
279
+ };
280
+ evidenceRef: {
281
+ type: import("@lssm/lib.schema").FieldType<string, string>;
282
+ isOptional: false;
283
+ };
284
+ visibility: {
285
+ type: import("@lssm/lib.schema").EnumType<[string]>;
286
+ isOptional: false;
287
+ };
288
+ createdAt: {
289
+ type: import("@lssm/lib.schema").FieldType<Date, string>;
290
+ isOptional: false;
291
+ };
292
+ intentRef: {
293
+ type: import("@lssm/lib.schema").FieldType<string, string>;
294
+ isOptional: false;
295
+ };
296
+ deliveryRef: {
297
+ type: import("@lssm/lib.schema").FieldType<string, string>;
298
+ isOptional: false;
299
+ };
300
+ grantEvidenceRef: {
301
+ type: import("@lssm/lib.schema").FieldType<string, string>;
302
+ isOptional: false;
303
+ };
304
+ }>>;
305
+ export declare const COMMUNICATION_SUPPORT_INTERNAL_NOTE_CAPABILITIES: {
306
+ readonly create: 'communication.support.internal-note.create';
307
+ readonly createForIntent: 'communication.support.internal-note.create-for-intent';
308
+ readonly verify: 'communication.support.internal-note.verify';
309
+ };
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ import{defineCommand as a,defineEvent as r,defineQuery as u,docId as l}from"@lssm/lib.contracts-spec";import{defineEnum as p,defineSchemaModel as t,ScalarTypeEnum as e}from"@lssm/lib.schema";var n=["platform.communication-os","platform.support-os"],m={id:"communication-os.support-internal-note.v1",title:"CommunicationOS private Support note authority",body:"CommunicationOS owns private note content and immutable evidence. SupportOS stores only opaque note and evidence references. Service requests derive tenant, workspace, actor, audience, and capabilities from a short-lived AuthOS grant; verification is redacted and never returns note content.",kind:"reference",route:"/docs/communication-os/support-internal-notes-v1",visibility:"public"},o=[l(m.id)],c=p("CommunicationSupportInternalNoteVisibility",["internal"]),d=t({name:"CommunicationSupportInternalNoteCreateV1Input",fields:{caseRef:{type:e.String_unsecure(),isOptional:!1},body:{type:e.String_unsecure(),isOptional:!1},idempotencyKey:{type:e.String_unsecure(),isOptional:!1}}}),y=t({name:"CommunicationSupportInternalNoteCreateForIntentV1Input",fields:{caseRef:{type:e.String_unsecure(),isOptional:!1},intentRef:{type:e.String_unsecure(),isOptional:!1},body:{type:e.String_unsecure(),isOptional:!1},idempotencyKey:{type:e.String_unsecure(),isOptional:!1}}}),i=t({name:"CommunicationSupportInternalNoteEvidenceV1",fields:{noteRef:{type:e.String_unsecure(),isOptional:!1},caseRef:{type:e.String_unsecure(),isOptional:!1},evidenceRef:{type:e.String_unsecure(),isOptional:!1},visibility:{type:c,isOptional:!1},createdAt:{type:e.DateTime(),isOptional:!1}}}),s=t({name:"CommunicationSupportInternalNoteIntentEvidenceV1",fields:{...i.config.fields,intentRef:{type:e.String_unsecure(),isOptional:!1},deliveryRef:{type:e.String_unsecure(),isOptional:!1},grantEvidenceRef:{type:e.String_unsecure(),isOptional:!1}}}),f=t({name:"CommunicationSupportInternalNoteVerifyV1Input",fields:{caseRef:{type:e.String_unsecure(),isOptional:!1},noteRef:{type:e.String_unsecure(),isOptional:!1},evidenceRef:{type:e.String_unsecure(),isOptional:!1}}}),S=t({name:"CommunicationSupportInternalNoteVerificationV1",fields:{status:{type:p("CommunicationSupportInternalNoteVerificationStatus",["verified"]),isOptional:!1},caseRef:{type:e.String_unsecure(),isOptional:!1},noteRef:{type:e.String_unsecure(),isOptional:!1},evidenceRef:{type:e.String_unsecure(),isOptional:!1},visibility:{type:c,isOptional:!1}}}),C=a({meta:{key:"communication.support.internal-note.create",version:"1.0.0",stability:"experimental",owners:[...n],tags:["communication","support","internal-note","private"],description:"Create one encrypted private Support note in CommunicationOS",goal:"Keep note content in CommunicationOS while SupportOS stores opaque evidence",context:"Server scope and actor come only from a short-lived AuthOS downstream grant",docId:o},io:{input:d,output:i},policy:{auth:"admin"}}),O=a({meta:{key:"communication.support.internal-note.create-for-intent",version:"1.0.0",stability:"experimental",owners:[...n],tags:["communication","support","internal-note","private","reconciliation"],description:"Create an encrypted Support note bound to a body-free SupportOS intent",goal:"Make cross-service note attachment replayable without copying content",context:"The short-lived AuthOS grant binds scope and actor; the intent is opaque, redacted correlation metadata",docId:o},io:{input:y,output:s},policy:{auth:"admin"}}),g=u({meta:{key:"communication.support.internal-note.verify",version:"1.0.0",stability:"experimental",owners:[...n],tags:["communication","support","internal-note","verify"],description:"Verify exact private-note evidence without returning content",goal:"Let SupportOS validate its opaque note reference at the authority boundary",context:"The query requires exact tenant, workspace, case, note, evidence, audience, and capability binding",docId:o},io:{input:f,output:S},policy:{auth:"admin"}}),N=r({meta:{key:"communication.support.internal-note.created",version:"1.0.0",stability:"experimental",owners:[...n],tags:["communication","support","internal-note","event"],description:"Immutable redacted evidence that a private Support note was created",docId:o},payload:i}),V=r({meta:{key:"communication.support.internal-note.reconciliation-ready",version:"1.0.0",stability:"experimental",owners:[...n],tags:["communication","support","internal-note","reconciliation"],description:"Redacted durable delivery evidence for a SupportOS note intent",docId:o},payload:s}),b={create:"communication.support.internal-note.create",createForIntent:"communication.support.internal-note.create-for-intent",verify:"communication.support.internal-note.verify"};export{b as COMMUNICATION_SUPPORT_INTERNAL_NOTE_CAPABILITIES,y as CommunicationSupportInternalNoteCreateForIntentV1InputModel,d as CommunicationSupportInternalNoteCreateV1InputModel,N as CommunicationSupportInternalNoteCreatedV1Event,m as CommunicationSupportInternalNoteDocBlock,i as CommunicationSupportInternalNoteEvidenceV1Model,s as CommunicationSupportInternalNoteIntentEvidenceV1Model,V as CommunicationSupportInternalNoteReconciliationReadyV1Event,S as CommunicationSupportInternalNoteVerificationV1Model,f as CommunicationSupportInternalNoteVerifyV1InputModel,c as CommunicationSupportInternalNoteVisibilityEnum,O as CreateCommunicationSupportInternalNoteForIntentV1Command,C as CreateCommunicationSupportInternalNoteV1Command,g as VerifyCommunicationSupportInternalNoteV1Query};
@@ -0,0 +1,20 @@
1
+ import { z } from 'zod';
2
+ declare const ThreadLinkedObjectPayloadSchema: z.ZodObject<{
3
+ domain: z.ZodString;
4
+ id: z.ZodString;
5
+ label: z.ZodOptional<z.ZodString>;
6
+ }, z.core.$strip>;
7
+ export type ThreadLinkedObjectPayload = z.infer<typeof ThreadLinkedObjectPayloadSchema>;
8
+ /**
9
+ * Built-in kind for generic domain objects linked to communication threads.
10
+ *
11
+ * `domain` carries the former `objectType` value (e.g. `"order"`, `"project"`).
12
+ * `id` carries the former `objectId` value (e.g. `"order-99"`).
13
+ * `label` is optional human-readable name for display surfaces.
14
+ */
15
+ export declare const threadLinkedObjectKind: import("@lssm/lib.contracts-spec/rich-reference/define-kind").ReferenceKindDefinition<{
16
+ domain: string;
17
+ id: string;
18
+ label?: string | undefined;
19
+ }>;
20
+ export {};
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ import{defineReferenceKind as i}from"@lssm/lib.contracts-spec/rich-reference/define-kind";import{z as e}from"zod";var n=e.object({domain:e.string().min(1),id:e.string().min(1),label:e.string().optional()}),a=i({id:"communication.thread-linked-object",schema:n,sensitiveFields:[],defaultPreview:"inline-chip",defaultPanel:"popover",icon:"link"});export{a as threadLinkedObjectKind};