@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,485 @@
1
+ export declare const CreateThreadCommand: import("@lssm/lib.contracts-spec").OperationSpec<import("@lssm/lib.schema").SchemaModel<{
2
+ id: {
3
+ type: import("@lssm/lib.schema").FieldType<string, string>;
4
+ isOptional: false;
5
+ };
6
+ title: {
7
+ type: import("@lssm/lib.schema").FieldType<string, string>;
8
+ isOptional: true;
9
+ };
10
+ status: {
11
+ type: import("@lssm/lib.schema").EnumType<[string, string, string, string, string, string]>;
12
+ isOptional: false;
13
+ defaultValue: string;
14
+ };
15
+ participantIds: {
16
+ type: import("@lssm/lib.schema").FieldType<string, string>;
17
+ isArray: true;
18
+ isOptional: false;
19
+ };
20
+ channelTypes: {
21
+ type: import("@lssm/lib.schema").EnumType<[string, string, string, string, string, string, string, string, string, string, string]>;
22
+ isArray: true;
23
+ isOptional: false;
24
+ };
25
+ links: {
26
+ type: import("@lssm/lib.schema").SchemaModel<{
27
+ id: {
28
+ type: import("@lssm/lib.schema").FieldType<string, string>;
29
+ isOptional: false;
30
+ };
31
+ threadId: {
32
+ type: import("@lssm/lib.schema").FieldType<string, string>;
33
+ isOptional: false;
34
+ };
35
+ objectRef: {
36
+ type: import("@lssm/lib.schema").FieldType<Record<string, unknown>, Record<string, unknown>>;
37
+ isOptional: false;
38
+ };
39
+ relation: {
40
+ type: import("@lssm/lib.schema").FieldType<string, string>;
41
+ isOptional: true;
42
+ };
43
+ confidence: {
44
+ type: import("@lssm/lib.schema").FieldType<number, number>;
45
+ isOptional: true;
46
+ };
47
+ createdAt: {
48
+ type: import("@lssm/lib.schema").FieldType<Date, string>;
49
+ isOptional: false;
50
+ };
51
+ }>;
52
+ isArray: true;
53
+ isOptional: true;
54
+ };
55
+ assignedTo: {
56
+ type: import("@lssm/lib.schema").FieldType<string, string>;
57
+ isOptional: true;
58
+ };
59
+ priority: {
60
+ type: import("@lssm/lib.schema").FieldType<string, string>;
61
+ isOptional: true;
62
+ };
63
+ tags: {
64
+ type: import("@lssm/lib.schema").FieldType<string, string>;
65
+ isArray: true;
66
+ isOptional: true;
67
+ };
68
+ metadata: {
69
+ type: import("@lssm/lib.schema").FieldType<Record<string, unknown>, Record<string, unknown>>;
70
+ isOptional: true;
71
+ };
72
+ createdAt: {
73
+ type: import("@lssm/lib.schema").FieldType<Date, string>;
74
+ isOptional: false;
75
+ };
76
+ updatedAt: {
77
+ type: import("@lssm/lib.schema").FieldType<Date, string>;
78
+ isOptional: false;
79
+ };
80
+ }>, import("@lssm/lib.schema").SchemaModel<{
81
+ id: {
82
+ type: import("@lssm/lib.schema").FieldType<string, string>;
83
+ isOptional: false;
84
+ };
85
+ title: {
86
+ type: import("@lssm/lib.schema").FieldType<string, string>;
87
+ isOptional: true;
88
+ };
89
+ status: {
90
+ type: import("@lssm/lib.schema").EnumType<[string, string, string, string, string, string]>;
91
+ isOptional: false;
92
+ defaultValue: string;
93
+ };
94
+ participantIds: {
95
+ type: import("@lssm/lib.schema").FieldType<string, string>;
96
+ isArray: true;
97
+ isOptional: false;
98
+ };
99
+ channelTypes: {
100
+ type: import("@lssm/lib.schema").EnumType<[string, string, string, string, string, string, string, string, string, string, string]>;
101
+ isArray: true;
102
+ isOptional: false;
103
+ };
104
+ links: {
105
+ type: import("@lssm/lib.schema").SchemaModel<{
106
+ id: {
107
+ type: import("@lssm/lib.schema").FieldType<string, string>;
108
+ isOptional: false;
109
+ };
110
+ threadId: {
111
+ type: import("@lssm/lib.schema").FieldType<string, string>;
112
+ isOptional: false;
113
+ };
114
+ objectRef: {
115
+ type: import("@lssm/lib.schema").FieldType<Record<string, unknown>, Record<string, unknown>>;
116
+ isOptional: false;
117
+ };
118
+ relation: {
119
+ type: import("@lssm/lib.schema").FieldType<string, string>;
120
+ isOptional: true;
121
+ };
122
+ confidence: {
123
+ type: import("@lssm/lib.schema").FieldType<number, number>;
124
+ isOptional: true;
125
+ };
126
+ createdAt: {
127
+ type: import("@lssm/lib.schema").FieldType<Date, string>;
128
+ isOptional: false;
129
+ };
130
+ }>;
131
+ isArray: true;
132
+ isOptional: true;
133
+ };
134
+ assignedTo: {
135
+ type: import("@lssm/lib.schema").FieldType<string, string>;
136
+ isOptional: true;
137
+ };
138
+ priority: {
139
+ type: import("@lssm/lib.schema").FieldType<string, string>;
140
+ isOptional: true;
141
+ };
142
+ tags: {
143
+ type: import("@lssm/lib.schema").FieldType<string, string>;
144
+ isArray: true;
145
+ isOptional: true;
146
+ };
147
+ metadata: {
148
+ type: import("@lssm/lib.schema").FieldType<Record<string, unknown>, Record<string, unknown>>;
149
+ isOptional: true;
150
+ };
151
+ createdAt: {
152
+ type: import("@lssm/lib.schema").FieldType<Date, string>;
153
+ isOptional: false;
154
+ };
155
+ updatedAt: {
156
+ type: import("@lssm/lib.schema").FieldType<Date, string>;
157
+ isOptional: false;
158
+ };
159
+ }>, undefined>;
160
+ export declare const IngestMessageCommand: import("@lssm/lib.contracts-spec").OperationSpec<import("@lssm/lib.schema").SchemaModel<{
161
+ id: {
162
+ type: import("@lssm/lib.schema").FieldType<string, string>;
163
+ isOptional: false;
164
+ };
165
+ threadId: {
166
+ type: import("@lssm/lib.schema").FieldType<string, string>;
167
+ isOptional: false;
168
+ };
169
+ channelType: {
170
+ type: import("@lssm/lib.schema").EnumType<[string, string, string, string, string, string, string, string, string, string, string]>;
171
+ isOptional: false;
172
+ };
173
+ channelAccountId: {
174
+ type: import("@lssm/lib.schema").FieldType<string, string>;
175
+ isOptional: false;
176
+ };
177
+ participantId: {
178
+ type: import("@lssm/lib.schema").FieldType<string, string>;
179
+ isOptional: true;
180
+ };
181
+ externalMessageId: {
182
+ type: import("@lssm/lib.schema").FieldType<string, string>;
183
+ isOptional: true;
184
+ };
185
+ body: {
186
+ type: import("@lssm/lib.schema").FieldType<string, string>;
187
+ isOptional: false;
188
+ };
189
+ bodyNormalized: {
190
+ type: import("@lssm/lib.schema").FieldType<string, string>;
191
+ isOptional: true;
192
+ };
193
+ status: {
194
+ type: import("@lssm/lib.schema").EnumType<[string, string, string, string, string, string, string]>;
195
+ isOptional: false;
196
+ defaultValue: string;
197
+ };
198
+ intent: {
199
+ type: import("@lssm/lib.schema").SchemaModel<{
200
+ id: {
201
+ type: import("@lssm/lib.schema").FieldType<string, string>;
202
+ isOptional: false;
203
+ };
204
+ threadId: {
205
+ type: import("@lssm/lib.schema").FieldType<string, string>;
206
+ isOptional: false;
207
+ };
208
+ messageId: {
209
+ type: import("@lssm/lib.schema").FieldType<string, string>;
210
+ isOptional: true;
211
+ };
212
+ category: {
213
+ type: import("@lssm/lib.schema").EnumType<[string, string, string, string, string, string, string, string, string, string]>;
214
+ isOptional: false;
215
+ };
216
+ confidence: {
217
+ type: import("@lssm/lib.schema").FieldType<number, number>;
218
+ isOptional: false;
219
+ };
220
+ reasoning: {
221
+ type: import("@lssm/lib.schema").FieldType<string, string>;
222
+ isOptional: true;
223
+ };
224
+ evidenceMessageIds: {
225
+ type: import("@lssm/lib.schema").FieldType<string, string>;
226
+ isArray: true;
227
+ isOptional: true;
228
+ };
229
+ createdAt: {
230
+ type: import("@lssm/lib.schema").FieldType<Date, string>;
231
+ isOptional: false;
232
+ };
233
+ }>;
234
+ isOptional: true;
235
+ };
236
+ attachments: {
237
+ type: import("@lssm/lib.schema").SchemaModel<{
238
+ id: {
239
+ type: import("@lssm/lib.schema").FieldType<string, string>;
240
+ isOptional: false;
241
+ };
242
+ messageId: {
243
+ type: import("@lssm/lib.schema").FieldType<string, string>;
244
+ isOptional: false;
245
+ };
246
+ name: {
247
+ type: import("@lssm/lib.schema").FieldType<string, string>;
248
+ isOptional: false;
249
+ };
250
+ mimeType: {
251
+ type: import("@lssm/lib.schema").FieldType<string, string>;
252
+ isOptional: true;
253
+ };
254
+ sizeBytes: {
255
+ type: import("@lssm/lib.schema").FieldType<number, number>;
256
+ isOptional: true;
257
+ };
258
+ url: {
259
+ type: import("@lssm/lib.schema").FieldType<string, string>;
260
+ isOptional: true;
261
+ };
262
+ metadata: {
263
+ type: import("@lssm/lib.schema").FieldType<Record<string, unknown>, Record<string, unknown>>;
264
+ isOptional: true;
265
+ };
266
+ }>;
267
+ isArray: true;
268
+ isOptional: true;
269
+ };
270
+ metadata: {
271
+ type: import("@lssm/lib.schema").FieldType<Record<string, unknown>, Record<string, unknown>>;
272
+ isOptional: true;
273
+ };
274
+ createdAt: {
275
+ type: import("@lssm/lib.schema").FieldType<Date, string>;
276
+ isOptional: false;
277
+ };
278
+ updatedAt: {
279
+ type: import("@lssm/lib.schema").FieldType<Date, string>;
280
+ isOptional: false;
281
+ };
282
+ }>, import("@lssm/lib.schema").SchemaModel<{
283
+ messageId: {
284
+ type: import("@lssm/lib.schema").FieldType<string, string>;
285
+ isOptional: false;
286
+ };
287
+ threadId: {
288
+ type: import("@lssm/lib.schema").FieldType<string, string>;
289
+ isOptional: false;
290
+ };
291
+ status: {
292
+ type: import("@lssm/lib.schema").EnumType<[string, string, string, string, string, string, string]>;
293
+ isOptional: false;
294
+ };
295
+ }>, undefined>;
296
+ export declare const ClassifyIntentCommand: import("@lssm/lib.contracts-spec").OperationSpec<import("@lssm/lib.schema").SchemaModel<{
297
+ threadId: {
298
+ type: import("@lssm/lib.schema").FieldType<string, string>;
299
+ isOptional: false;
300
+ };
301
+ messageId: {
302
+ type: import("@lssm/lib.schema").FieldType<string, string>;
303
+ isOptional: true;
304
+ };
305
+ }>, import("@lssm/lib.schema").SchemaModel<{
306
+ id: {
307
+ type: import("@lssm/lib.schema").FieldType<string, string>;
308
+ isOptional: false;
309
+ };
310
+ threadId: {
311
+ type: import("@lssm/lib.schema").FieldType<string, string>;
312
+ isOptional: false;
313
+ };
314
+ messageId: {
315
+ type: import("@lssm/lib.schema").FieldType<string, string>;
316
+ isOptional: true;
317
+ };
318
+ category: {
319
+ type: import("@lssm/lib.schema").EnumType<[string, string, string, string, string, string, string, string, string, string]>;
320
+ isOptional: false;
321
+ };
322
+ confidence: {
323
+ type: import("@lssm/lib.schema").FieldType<number, number>;
324
+ isOptional: false;
325
+ };
326
+ reasoning: {
327
+ type: import("@lssm/lib.schema").FieldType<string, string>;
328
+ isOptional: true;
329
+ };
330
+ evidenceMessageIds: {
331
+ type: import("@lssm/lib.schema").FieldType<string, string>;
332
+ isArray: true;
333
+ isOptional: true;
334
+ };
335
+ createdAt: {
336
+ type: import("@lssm/lib.schema").FieldType<Date, string>;
337
+ isOptional: false;
338
+ };
339
+ }>, undefined>;
340
+ export declare const GenerateSummaryCommand: import("@lssm/lib.contracts-spec").OperationSpec<import("@lssm/lib.schema").SchemaModel<{
341
+ threadId: {
342
+ type: import("@lssm/lib.schema").FieldType<string, string>;
343
+ isOptional: false;
344
+ };
345
+ messageIds: {
346
+ type: import("@lssm/lib.schema").FieldType<string, string>;
347
+ isArray: true;
348
+ isOptional: true;
349
+ };
350
+ }>, import("@lssm/lib.schema").SchemaModel<{
351
+ id: {
352
+ type: import("@lssm/lib.schema").FieldType<string, string>;
353
+ isOptional: false;
354
+ };
355
+ threadId: {
356
+ type: import("@lssm/lib.schema").FieldType<string, string>;
357
+ isOptional: false;
358
+ };
359
+ messageIds: {
360
+ type: import("@lssm/lib.schema").FieldType<string, string>;
361
+ isArray: true;
362
+ isOptional: true;
363
+ };
364
+ content: {
365
+ type: import("@lssm/lib.schema").FieldType<string, string>;
366
+ isOptional: false;
367
+ };
368
+ facts: {
369
+ type: import("@lssm/lib.schema").FieldType<Record<string, unknown>, Record<string, unknown>>;
370
+ isArray: true;
371
+ isOptional: true;
372
+ };
373
+ actions: {
374
+ type: import("@lssm/lib.schema").SchemaModel<{
375
+ id: {
376
+ type: import("@lssm/lib.schema").FieldType<string, string>;
377
+ isOptional: false;
378
+ };
379
+ threadId: {
380
+ type: import("@lssm/lib.schema").FieldType<string, string>;
381
+ isOptional: false;
382
+ };
383
+ title: {
384
+ type: import("@lssm/lib.schema").FieldType<string, string>;
385
+ isOptional: false;
386
+ };
387
+ owner: {
388
+ type: import("@lssm/lib.schema").FieldType<string, string>;
389
+ isOptional: true;
390
+ };
391
+ deadline: {
392
+ type: import("@lssm/lib.schema").FieldType<Date, string>;
393
+ isOptional: true;
394
+ };
395
+ blockers: {
396
+ type: import("@lssm/lib.schema").FieldType<string, string>;
397
+ isArray: true;
398
+ isOptional: true;
399
+ };
400
+ sourceMessageIds: {
401
+ type: import("@lssm/lib.schema").FieldType<string, string>;
402
+ isArray: true;
403
+ isOptional: false;
404
+ };
405
+ safetyMode: {
406
+ type: import("@lssm/lib.schema").EnumType<[string, string, string, string, string]>;
407
+ isOptional: false;
408
+ defaultValue: string;
409
+ };
410
+ }>;
411
+ isArray: true;
412
+ isOptional: true;
413
+ };
414
+ decisions: {
415
+ type: import("@lssm/lib.schema").FieldType<Record<string, unknown>, Record<string, unknown>>;
416
+ isArray: true;
417
+ isOptional: true;
418
+ };
419
+ risks: {
420
+ type: import("@lssm/lib.schema").FieldType<Record<string, unknown>, Record<string, unknown>>;
421
+ isArray: true;
422
+ isOptional: true;
423
+ };
424
+ modelName: {
425
+ type: import("@lssm/lib.schema").FieldType<string, string>;
426
+ isOptional: true;
427
+ };
428
+ generatedAt: {
429
+ type: import("@lssm/lib.schema").FieldType<Date, string>;
430
+ isOptional: false;
431
+ };
432
+ }>, undefined>;
433
+ export declare const ExtractActionsCommand: import("@lssm/lib.contracts-spec").OperationSpec<import("@lssm/lib.schema").SchemaModel<{
434
+ threadId: {
435
+ type: import("@lssm/lib.schema").FieldType<string, string>;
436
+ isOptional: false;
437
+ };
438
+ messageIds: {
439
+ type: import("@lssm/lib.schema").FieldType<string, string>;
440
+ isArray: true;
441
+ isOptional: true;
442
+ };
443
+ }>, import("@lssm/lib.schema").SchemaModel<{
444
+ actions: {
445
+ type: import("@lssm/lib.schema").SchemaModel<{
446
+ id: {
447
+ type: import("@lssm/lib.schema").FieldType<string, string>;
448
+ isOptional: false;
449
+ };
450
+ threadId: {
451
+ type: import("@lssm/lib.schema").FieldType<string, string>;
452
+ isOptional: false;
453
+ };
454
+ title: {
455
+ type: import("@lssm/lib.schema").FieldType<string, string>;
456
+ isOptional: false;
457
+ };
458
+ owner: {
459
+ type: import("@lssm/lib.schema").FieldType<string, string>;
460
+ isOptional: true;
461
+ };
462
+ deadline: {
463
+ type: import("@lssm/lib.schema").FieldType<Date, string>;
464
+ isOptional: true;
465
+ };
466
+ blockers: {
467
+ type: import("@lssm/lib.schema").FieldType<string, string>;
468
+ isArray: true;
469
+ isOptional: true;
470
+ };
471
+ sourceMessageIds: {
472
+ type: import("@lssm/lib.schema").FieldType<string, string>;
473
+ isArray: true;
474
+ isOptional: false;
475
+ };
476
+ safetyMode: {
477
+ type: import("@lssm/lib.schema").EnumType<[string, string, string, string, string]>;
478
+ isOptional: false;
479
+ defaultValue: string;
480
+ };
481
+ }>;
482
+ isArray: true;
483
+ isOptional: false;
484
+ };
485
+ }>, undefined>;
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ import{defineCommand as r}from"@lssm/lib.contracts-spec/operations";import{defineSchemaModel as s,ScalarTypeEnum as i}from"@lssm/lib.schema";import{defineEnum as n}from"@lssm/lib.schema";var a=n("ChannelType",["email","sms","whatsapp","telegram","matrix","web_chat","voice","internal_chat","custom_adapter","future_bridge","unknown"]),m=n("ThreadStatus",["open","waiting_on_human","waiting_on_external_party","action_required","resolved","archived"]),p=n("MessageStatus",["received","normalized","classified","linked","triaged","replied","archived"]),y=n("ReplyStatus",["drafted","requires_review","approved","sent","failed","blocked_by_policy"]),f=n("HandoffStatus",["created","assigned","acknowledged","completed","reopened"]),l=n("SuggestionStatus",["generated","shown","accepted","edited","rejected","applied","expired"]),g=n("IntentCategory",["support","sales","bug_report","feature_request","billing","onboarding","coordination","general","spam","escalation"]),O=n("ActionSafetyMode",["read_only","draft_only","requires_review","policy_executable","blocked"]),T=n("FeedbackOutcome",["accepted","edited","rejected","unsafe","incomplete"]);import{defineSchemaModel as t,ScalarTypeEnum as e}from"@lssm/lib.schema";var h=t({name:"ChannelAccount",description:"A channel account belonging to a participant",fields:{id:{type:e.String_unsecure(),isOptional:!1},participantId:{type:e.String_unsecure(),isOptional:!1},channelType:{type:a,isOptional:!1},externalId:{type:e.String_unsecure(),isOptional:!1},displayName:{type:e.String_unsecure(),isOptional:!0},metadata:{type:e.JSONObject(),isOptional:!0},isPrimary:{type:e.Boolean(),isOptional:!1,defaultValue:!1},createdAt:{type:e.DateTime(),isOptional:!1}}}),A=t({name:"IdentityLink",description:"Proposed or confirmed relationship between participant identities",fields:{id:{type:e.String_unsecure(),isOptional:!1},participantId:{type:e.String_unsecure(),isOptional:!1},candidateParticipantId:{type:e.String_unsecure(),isOptional:!1},status:{type:l,isOptional:!1,defaultValue:"generated"},confidence:{type:e.Float_unsecure(),isOptional:!1},reasoning:{type:e.String_unsecure(),isOptional:!0},reviewedBy:{type:e.String_unsecure(),isOptional:!0},createdAt:{type:e.DateTime(),isOptional:!1}}}),k=t({name:"CommunicationParticipant",description:"A person or system that participates in conversations",fields:{id:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!0},email:{type:e.EmailAddress(),isOptional:!0},accounts:{type:h,isArray:!0,isOptional:!1},identityLinks:{type:A,isArray:!0,isOptional:!0},createdAt:{type:e.DateTime(),isOptional:!1},updatedAt:{type:e.DateTime(),isOptional:!1}}}),I=t({name:"Attachment",description:"A file or media attachment on a message",fields:{id:{type:e.String_unsecure(),isOptional:!1},messageId:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!1},mimeType:{type:e.String_unsecure(),isOptional:!0},sizeBytes:{type:e.Int_unsecure(),isOptional:!0},url:{type:e.URL(),isOptional:!0},metadata:{type:e.JSONObject(),isOptional:!0}}}),x=t({name:"ThreadLink",description:"Link between a thread and an external business object (V2: rich-reference objectRef replaces V1 objectType/objectId)",fields:{id:{type:e.String_unsecure(),isOptional:!1},threadId:{type:e.String_unsecure(),isOptional:!1},objectRef:{type:e.JSONObject(),isOptional:!1},relation:{type:e.String_unsecure(),isOptional:!0},confidence:{type:e.Float_unsecure(),isOptional:!0},createdAt:{type:e.DateTime(),isOptional:!1}}}),c=t({name:"MessageIntent",description:"Classified message or thread intent with confidence and evidence",fields:{id:{type:e.String_unsecure(),isOptional:!1},threadId:{type:e.String_unsecure(),isOptional:!1},messageId:{type:e.String_unsecure(),isOptional:!0},category:{type:g,isOptional:!1},confidence:{type:e.Float_unsecure(),isOptional:!1},reasoning:{type:e.String_unsecure(),isOptional:!0},evidenceMessageIds:{type:e.String_unsecure(),isArray:!0,isOptional:!0},createdAt:{type:e.DateTime(),isOptional:!1}}}),S=t({name:"CommunicationMessage",description:"A single message within a communication thread",fields:{id:{type:e.String_unsecure(),isOptional:!1},threadId:{type:e.String_unsecure(),isOptional:!1},channelType:{type:a,isOptional:!1},channelAccountId:{type:e.String_unsecure(),isOptional:!1},participantId:{type:e.String_unsecure(),isOptional:!0},externalMessageId:{type:e.String_unsecure(),isOptional:!0},body:{type:e.String_unsecure(),isOptional:!1},bodyNormalized:{type:e.String_unsecure(),isOptional:!0},status:{type:p,isOptional:!1,defaultValue:"received"},intent:{type:c,isOptional:!0},attachments:{type:I,isArray:!0,isOptional:!0},metadata:{type:e.JSONObject(),isOptional:!0},createdAt:{type:e.DateTime(),isOptional:!1},updatedAt:{type:e.DateTime(),isOptional:!1}}}),v=t({name:"CommunicationFormIntake",description:"Declarative source reference for a communication message mapped into an entity-bound form intake result",fields:{id:{type:e.String_unsecure(),isOptional:!1},messageId:{type:e.String_unsecure(),isOptional:!1},threadId:{type:e.String_unsecure(),isOptional:!1},channelType:{type:a,isOptional:!1},channelAccountId:{type:e.String_unsecure(),isOptional:!1},participantId:{type:e.String_unsecure(),isOptional:!0},entityKey:{type:e.String_unsecure(),isOptional:!1},projectionKind:{type:e.String_unsecure(),isOptional:!1},formKey:{type:e.String_unsecure(),isOptional:!0},formVersion:{type:e.String_unsecure(),isOptional:!0},completionProfileKey:{type:e.String_unsecure(),isOptional:!0},acceptedValues:{type:e.JSONObject(),isOptional:!1},completionDebt:{type:e.JSONObject(),isArray:!0,isOptional:!1},captureStatus:{type:e.String_unsecure(),isOptional:!1,defaultValue:"accepted"},completionStatus:{type:e.String_unsecure(),isOptional:!1},createdAt:{type:e.DateTime(),isOptional:!1}}}),d=t({name:"CommunicationThread",description:"A conversation thread spanning one or more channels",fields:{id:{type:e.String_unsecure(),isOptional:!1},title:{type:e.String_unsecure(),isOptional:!0},status:{type:m,isOptional:!1,defaultValue:"open"},participantIds:{type:e.String_unsecure(),isArray:!0,isOptional:!1},channelTypes:{type:a,isArray:!0,isOptional:!1},links:{type:x,isArray:!0,isOptional:!0},assignedTo:{type:e.String_unsecure(),isOptional:!0},priority:{type:e.String_unsecure(),isOptional:!0},tags:{type:e.String_unsecure(),isArray:!0,isOptional:!0},metadata:{type:e.JSONObject(),isOptional:!0},createdAt:{type:e.DateTime(),isOptional:!1},updatedAt:{type:e.DateTime(),isOptional:!1}}}),u=t({name:"CommunicationAction",description:"Structured action extracted from a conversation",fields:{id:{type:e.String_unsecure(),isOptional:!1},threadId:{type:e.String_unsecure(),isOptional:!1},title:{type:e.String_unsecure(),isOptional:!1},owner:{type:e.String_unsecure(),isOptional:!0},deadline:{type:e.DateTime(),isOptional:!0},blockers:{type:e.String_unsecure(),isArray:!0,isOptional:!0},sourceMessageIds:{type:e.String_unsecure(),isArray:!0,isOptional:!1},safetyMode:{type:O,isOptional:!1,defaultValue:"draft_only"}}}),E=t({name:"ReplyDraft",description:"An AI-generated or human-authored reply draft",fields:{id:{type:e.String_unsecure(),isOptional:!1},threadId:{type:e.String_unsecure(),isOptional:!1},messageId:{type:e.String_unsecure(),isOptional:!0},body:{type:e.String_unsecure(),isOptional:!1},status:{type:y,isOptional:!1,defaultValue:"drafted"},generatedBy:{type:e.String_unsecure(),isOptional:!0},modelName:{type:e.String_unsecure(),isOptional:!0},promptVersion:{type:e.String_unsecure(),isOptional:!0},policyVersion:{type:e.String_unsecure(),isOptional:!0},reviewedBy:{type:e.String_unsecure(),isOptional:!0},reviewedAt:{type:e.DateTime(),isOptional:!0},metadata:{type:e.JSONObject(),isOptional:!0},createdAt:{type:e.DateTime(),isOptional:!1},updatedAt:{type:e.DateTime(),isOptional:!1}}}),D=t({name:"HandoffPacket",description:"A structured handoff between owners, teams, or systems",fields:{id:{type:e.String_unsecure(),isOptional:!1},threadId:{type:e.String_unsecure(),isOptional:!1},status:{type:f,isOptional:!1,defaultValue:"created"},fromOwner:{type:e.String_unsecure(),isOptional:!1},toOwner:{type:e.String_unsecure(),isOptional:!1},summary:{type:e.String_unsecure(),isOptional:!1},keyFacts:{type:e.String_unsecure(),isArray:!0,isOptional:!0},openQuestions:{type:e.String_unsecure(),isArray:!0,isOptional:!0},requiredActions:{type:u,isArray:!0,isOptional:!0},evidenceLinks:{type:e.String_unsecure(),isArray:!0,isOptional:!0},createdAt:{type:e.DateTime(),isOptional:!1},updatedAt:{type:e.DateTime(),isOptional:!1}}}),_=t({name:"CommunicationSummary",description:"AI-generated summary of a thread or message range",fields:{id:{type:e.String_unsecure(),isOptional:!1},threadId:{type:e.String_unsecure(),isOptional:!1},messageIds:{type:e.String_unsecure(),isArray:!0,isOptional:!0},content:{type:e.String_unsecure(),isOptional:!1},facts:{type:e.JSONObject(),isArray:!0,isOptional:!0},actions:{type:u,isArray:!0,isOptional:!0},decisions:{type:e.JSONObject(),isArray:!0,isOptional:!0},risks:{type:e.JSONObject(),isArray:!0,isOptional:!0},modelName:{type:e.String_unsecure(),isOptional:!0},generatedAt:{type:e.DateTime(),isOptional:!1}}}),j=t({name:"AgentSuggestion",description:"An AI-generated suggestion attached to a thread or message",fields:{id:{type:e.String_unsecure(),isOptional:!1},threadId:{type:e.String_unsecure(),isOptional:!1},messageId:{type:e.String_unsecure(),isOptional:!0},suggestionType:{type:e.String_unsecure(),isOptional:!1},content:{type:e.String_unsecure(),isOptional:!1},status:{type:l,isOptional:!1,defaultValue:"generated"},modelName:{type:e.String_unsecure(),isOptional:!0},confidence:{type:e.Float_unsecure(),isOptional:!0},policyVersion:{type:e.String_unsecure(),isOptional:!0},createdAt:{type:e.DateTime(),isOptional:!1},updatedAt:{type:e.DateTime(),isOptional:!1}}});var o=["platform.communication-os"],F=r({meta:{key:"communication.thread.create",version:"1.0.0",stability:"experimental",owners:[...o],tags:["communication","thread","create"],description:"Create a communication thread from normalized input",goal:"Persist a reusable conversation container before downstream work binds to it",context:"Used by ingest flows and generic operational inbox consumers"},io:{input:d,output:d},policy:{auth:"admin"}}),L=r({meta:{key:"communication.message.ingest",version:"1.0.0",stability:"experimental",owners:[...o],tags:["communication","message","ingest"],description:"Ingest an inbound message from a channel adapter",goal:"Normalize and store an inbound message for triage",context:"Called by channel adapters after webhook verification and deduplication"},io:{input:S,output:s({name:"IngestMessageOutput",fields:{messageId:{type:i.String_unsecure(),isOptional:!1},threadId:{type:i.String_unsecure(),isOptional:!1},status:{type:p,isOptional:!1}}})},policy:{auth:"admin"}}),q=r({meta:{key:"communication.intent.classify",version:"1.0.0",stability:"experimental",owners:[...o],tags:["communication","intent","classify"],description:"Classify the intent of a message or thread",goal:"Route and triage based on intent category and confidence",context:"Read-only AI operation; returns suggestion state, not canonical truth"},io:{input:s({name:"ClassifyIntentInput",fields:{threadId:{type:i.String_unsecure(),isOptional:!1},messageId:{type:i.String_unsecure(),isOptional:!0}}}),output:c},policy:{auth:"admin"}}),z=r({meta:{key:"communication.summary.generate",version:"1.0.0",stability:"experimental",owners:[...o],tags:["communication","summary"],description:"Generate a summary of a thread",goal:"Produce a concise summary with facts, actions, decisions, risks, and source references",context:"Draft-only AI operation used for handoffs, inbox views, and agent context"},io:{input:s({name:"GenerateSummaryInput",fields:{threadId:{type:i.String_unsecure(),isOptional:!1},messageIds:{type:i.String_unsecure(),isArray:!0,isOptional:!0}}}),output:_},policy:{auth:"user"}}),B=r({meta:{key:"communication.action.extract",version:"1.0.0",stability:"experimental",owners:[...o],tags:["communication","action","extract"],description:"Extract implied actions from a thread",goal:"Turn conversation text into structured work candidates with evidence",context:"Draft-only AI operation; does not mutate external work items"},io:{input:s({name:"ExtractActionsInput",fields:{threadId:{type:i.String_unsecure(),isOptional:!1},messageIds:{type:i.String_unsecure(),isArray:!0,isOptional:!0}}}),output:s({name:"ExtractActionsOutput",fields:{actions:{type:u,isArray:!0,isOptional:!1}}})},policy:{auth:"user"}});export{q as ClassifyIntentCommand,F as CreateThreadCommand,B as ExtractActionsCommand,z as GenerateSummaryCommand,L as IngestMessageCommand};
@@ -0,0 +1,4 @@
1
+ export * from '../contracts/ecosystem-connection-subscription.events.js';
2
+ export * from '../contracts/ecosystem-messaging.events.js';
3
+ export * from '../contracts/events.js';
4
+ export { CommunicationSupportInternalNoteCreatedV1Event, CommunicationSupportInternalNoteReconciliationReadyV1Event, } from '../contracts/support-internal-note.operations.js';
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ import{defineEvent as v,docId as Q}from"@lssm/lib.contracts-spec";import{defineEvent as a,docId as F}from"@lssm/lib.contracts-spec";import{defineSchemaModel as S,ScalarTypeEnum as t}from"@lssm/lib.schema";import{defineEnum as u,defineSchemaModel as p,ScalarTypeEnum as e}from"@lssm/lib.schema";var P=u("CommunicationSpaceKind",["personal","organization"]),N=u("CommunicationPrincipalKind",["human","agent","system"]),q=u("CommunicationConnectionPlacement",["device","managed_cloud","self_hosted"]),se=u("CommunicationConnectionNetwork",["email","sms","slack","teams","telegram","whatsapp","discord","matrix"]),B=u("CommunicationEncryptionMode",["client_encrypted","governed_server_indexable"]),z=u("CommunicationMembershipState",["active","revoked"]),re=u("CommunicationReceiptKind",["delivered","read"]),K=u("CommunicationConnectionHealth",["connecting","healthy","degraded","offline","revoked"]),h={id:"communication-os.ecosystem-messaging.v2",title:"CommunicationOS ecosystem messaging contracts",body:"Versioned, workspace-scoped contracts for personal and organization spaces, rooms, human and agent membership, hybrid channel connections, synchronized messages, and revocable outbound authority. CommunicationSpec remains canonical; provider protocols are adapters. V1 thread and draft-only operations remain unchanged.",kind:"reference",route:"/docs/communication-os/ecosystem-messaging-v2",visibility:"public"},ce=p({name:"CommunicationScopeV2",description:"Strict tenant, workspace, and space boundary for messaging state",fields:{tenantId:{type:e.String_unsecure(),isOptional:!1},workspaceId:{type:e.String_unsecure(),isOptional:!1},spaceId:{type:e.String_unsecure(),isOptional:!1}}}),pe=p({name:"CommunicationSpaceV2",description:"Personal or organization messaging boundary under one account",fields:{id:{type:e.String_unsecure(),isOptional:!1},tenantId:{type:e.String_unsecure(),isOptional:!1},workspaceId:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!1},kind:{type:P,isOptional:!1},encryptionMode:{type:B,isOptional:!1},createdAt:{type:e.DateTime(),isOptional:!1}}}),le=p({name:"CommunicationPrincipalV2",description:"Auditable human, agent, or system identity",fields:{id:{type:e.String_unsecure(),isOptional:!1},kind:{type:N,isOptional:!1},displayName:{type:e.String_unsecure(),isOptional:!1},ownerPrincipalId:{type:e.String_unsecure(),isOptional:!0},createdAt:{type:e.DateTime(),isOptional:!1}}}),ue=p({name:"CommunicationRoomV2",description:"Room or direct-message projection inside one space",fields:{id:{type:e.String_unsecure(),isOptional:!1},tenantId:{type:e.String_unsecure(),isOptional:!1},workspaceId:{type:e.String_unsecure(),isOptional:!1},spaceId:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!0},roomKind:{type:e.String_unsecure(),isOptional:!1},connectionIds:{type:e.String_unsecure(),isArray:!0,isOptional:!1},createdAt:{type:e.DateTime(),isOptional:!1},updatedAt:{type:e.DateTime(),isOptional:!1}}}),de=p({name:"CommunicationRoomMembershipV2",description:"Revocable principal membership and room-scoped capabilities",fields:{id:{type:e.String_unsecure(),isOptional:!1},tenantId:{type:e.String_unsecure(),isOptional:!1},workspaceId:{type:e.String_unsecure(),isOptional:!1},spaceId:{type:e.String_unsecure(),isOptional:!1},roomId:{type:e.String_unsecure(),isOptional:!1},principalId:{type:e.String_unsecure(),isOptional:!1},role:{type:e.String_unsecure(),isOptional:!1},state:{type:z,isOptional:!1},capabilities:{type:e.String_unsecure(),isArray:!0,isOptional:!1},expiresAt:{type:e.DateTime(),isOptional:!0},revokedAt:{type:e.DateTime(),isOptional:!0},createdAt:{type:e.DateTime(),isOptional:!1}}}),me=p({name:"CommunicationChannelConnectionV2",description:"Credential-reference-only local, managed, or self-hosted channel connection",fields:{id:{type:e.String_unsecure(),isOptional:!1},tenantId:{type:e.String_unsecure(),isOptional:!1},workspaceId:{type:e.String_unsecure(),isOptional:!1},spaceId:{type:e.String_unsecure(),isOptional:!1},network:{type:e.String_unsecure(),isOptional:!1},placement:{type:q,isOptional:!1},externalAccountRef:{type:e.String_unsecure(),isOptional:!1},credentialRef:{type:e.String_unsecure(),isOptional:!1},health:{type:K,isOptional:!1},capabilities:{type:e.String_unsecure(),isArray:!0,isOptional:!1},createdAt:{type:e.DateTime(),isOptional:!1},updatedAt:{type:e.DateTime(),isOptional:!1}}}),j=p({name:"CommunicationAttachmentV2",description:"Public-safe metadata for an opaque, scope-bound message attachment",fields:{id:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!1},mimeType:{type:e.String_unsecure(),isOptional:!1},sizeBytes:{type:e.Int_unsecure(),isOptional:!1},sha256:{type:e.String_unsecure(),isOptional:!1},createdAt:{type:e.DateTime(),isOptional:!1}}}),ye=p({name:"CommunicationMessageV2",description:"Canonical room message with explicit author and encryption posture",fields:{id:{type:e.String_unsecure(),isOptional:!1},tenantId:{type:e.String_unsecure(),isOptional:!1},workspaceId:{type:e.String_unsecure(),isOptional:!1},spaceId:{type:e.String_unsecure(),isOptional:!1},roomId:{type:e.String_unsecure(),isOptional:!1},authorPrincipalId:{type:e.String_unsecure(),isOptional:!1},connectionId:{type:e.String_unsecure(),isOptional:!0},externalMessageId:{type:e.String_unsecure(),isOptional:!0},body:{type:e.String_unsecure(),isOptional:!0},encryptedEnvelope:{type:e.JSONObject(),isOptional:!0},attachments:{type:j,isArray:!0,isOptional:!0},replyToMessageId:{type:e.String_unsecure(),isOptional:!0},revision:{type:e.Int_unsecure(),isOptional:!1},deletedAt:{type:e.DateTime(),isOptional:!0},createdAt:{type:e.DateTime(),isOptional:!1},updatedAt:{type:e.DateTime(),isOptional:!1}}}),fe=p({name:"CommunicationAuthorityGrantV2",description:"Explicit, revocable messaging authority granted to one principal",fields:{id:{type:e.String_unsecure(),isOptional:!1},tenantId:{type:e.String_unsecure(),isOptional:!1},workspaceId:{type:e.String_unsecure(),isOptional:!1},spaceId:{type:e.String_unsecure(),isOptional:!1},roomId:{type:e.String_unsecure(),isOptional:!0},connectionId:{type:e.String_unsecure(),isOptional:!0},principalId:{type:e.String_unsecure(),isOptional:!1},capabilities:{type:e.String_unsecure(),isArray:!0,isOptional:!1},grantedBy:{type:e.String_unsecure(),isOptional:!1},expiresAt:{type:e.DateTime(),isOptional:!0},revokedAt:{type:e.DateTime(),isOptional:!0},createdAt:{type:e.DateTime(),isOptional:!1}}});var H=["platform.communication-os"],L=[F(h.id)];function o(y,f,g){return{key:y,version:"2.0.0",description:f,stability:"experimental",owners:[...H],tags:["communication","ecosystem-messaging",...g],docId:L}}var I=S({name:"CommunicationScopedEntityV2Payload",fields:{tenantId:{type:t.String_unsecure(),isOptional:!1},workspaceId:{type:t.String_unsecure(),isOptional:!1},spaceId:{type:t.String_unsecure(),isOptional:!1},entityId:{type:t.String_unsecure(),isOptional:!1},actorPrincipalId:{type:t.String_unsecure(),isOptional:!1},occurredAt:{type:t.DateTime(),isOptional:!1}}}),he=a({meta:o("communication.space.created","Emitted when an isolated messaging space is created",["space","created"]),payload:I}),ve=a({meta:o("communication.room.created","Emitted when a room or direct-message projection is created",["room","created"]),payload:I}),W=S({name:"CommunicationMembershipChangedV2Payload",fields:{tenantId:{type:t.String_unsecure(),isOptional:!1},workspaceId:{type:t.String_unsecure(),isOptional:!1},spaceId:{type:t.String_unsecure(),isOptional:!1},roomId:{type:t.String_unsecure(),isOptional:!1},membershipId:{type:t.String_unsecure(),isOptional:!1},principalId:{type:t.String_unsecure(),isOptional:!1},state:{type:t.String_unsecure(),isOptional:!1},changedBy:{type:t.String_unsecure(),isOptional:!1},occurredAt:{type:t.DateTime(),isOptional:!1}}}),Ce=a({meta:o("communication.membership.changed","Emitted when a human, agent, or system membership changes",["membership","authority"]),payload:W}),Ie=a({meta:o("communication.authority.changed","Emitted when a principal authority grant is added, changed, expired, or revoked",["agent","authority","revocation"]),payload:I}),E=S({name:"CommunicationMessageEventV2Payload",fields:{tenantId:{type:t.String_unsecure(),isOptional:!1},workspaceId:{type:t.String_unsecure(),isOptional:!1},spaceId:{type:t.String_unsecure(),isOptional:!1},roomId:{type:t.String_unsecure(),isOptional:!1},messageId:{type:t.String_unsecure(),isOptional:!1},authorPrincipalId:{type:t.String_unsecure(),isOptional:!1},connectionId:{type:t.String_unsecure(),isOptional:!0},providerReceiptRef:{type:t.String_unsecure(),isOptional:!0},revision:{type:t.Int_unsecure(),isOptional:!1},occurredAt:{type:t.DateTime(),isOptional:!1}}}),Ee=a({meta:o("communication.message.sent","Emitted after provider acceptance or canonical local delivery of a v2 message",["message","sent"]),payload:E}),be=a({meta:o("communication.message.edited","Emitted when a new message revision is accepted",["message","edited"]),payload:E}),xe=a({meta:o("communication.message.deleted","Emitted when message content is deleted or provider retention is documented",["message","deleted","erasure"]),payload:E}),d=S({name:"CommunicationConnectionEventV2Payload",fields:{tenantId:{type:t.String_unsecure(),isOptional:!1},workspaceId:{type:t.String_unsecure(),isOptional:!1},spaceId:{type:t.String_unsecure(),isOptional:!1},connectionId:{type:t.String_unsecure(),isOptional:!1},network:{type:t.String_unsecure(),isOptional:!1},placement:{type:t.String_unsecure(),isOptional:!1},health:{type:t.String_unsecure(),isOptional:!1},cursor:{type:t.String_unsecure(),isOptional:!0},invalidationRef:{type:t.String_unsecure(),isOptional:!0},subscriptionRef:{type:t.String_unsecure(),isOptional:!0},targetExpiresAt:{type:t.DateTime(),isOptional:!0},expiresAt:{type:t.DateTime(),isOptional:!0},workOrderDigest:{type:t.String_unsecure(),isOptional:!0},idempotencyKey:{type:t.String_unsecure(),isOptional:!0},providerReceiptRef:{type:t.String_unsecure(),isOptional:!0},evidenceRefs:{type:t.String_unsecure(),isArray:!0,isOptional:!0},failureCode:{type:t.String_unsecure(),isOptional:!0},retryable:{type:t.Boolean(),isOptional:!0},retryAt:{type:t.DateTime(),isOptional:!0},occurredAt:{type:t.DateTime(),isOptional:!1}}}),we=a({meta:o("communication.connection.health.changed","Emitted when a local or server connection health state changes",["connection","health"]),payload:d}),ke=a({meta:o("communication.connection.sync.advanced","Emitted after a connection cursor advances durably",["connection","sync","cursor"]),payload:d}),Ve=a({meta:o("communication.connection.sync.invalidated","Emitted after an authenticated provider callback durably requests synchronization",["connection","sync","invalidation"]),payload:d}),G=S({name:"CommunicationRealtimeStateV2Payload",fields:{tenantId:{type:t.String_unsecure(),isOptional:!1},workspaceId:{type:t.String_unsecure(),isOptional:!1},spaceId:{type:t.String_unsecure(),isOptional:!1},roomId:{type:t.String_unsecure(),isOptional:!1},principalId:{type:t.String_unsecure(),isOptional:!1},stateKind:{type:t.String_unsecure(),isOptional:!1},messageId:{type:t.String_unsecure(),isOptional:!0},occurredAt:{type:t.DateTime(),isOptional:!1}}}),Re=a({meta:o("communication.realtime-state.changed","Emitted for reaction, receipt, presence, typing, and inbox-state projection updates",["realtime","receipt","presence","reaction"]),payload:G});var C=(y,f,g)=>({key:y,version:"2.0.0",description:f,stability:"experimental",owners:["platform.communication-os"],tags:["communication","connection","subscription",g],docId:[Q(h.id)]}),Pe=v({meta:C("communication.connection.subscription.requested","Emitted before Runtime Node receives an idempotent subscription create or renewal request","requested"),payload:d}),Ne=v({meta:C("communication.connection.subscription.active","Emitted after a Runtime Node receipt proves a provider subscription is active","active"),payload:d}),qe=v({meta:C("communication.connection.subscription.failed","Emitted after a definitive Runtime Node subscription failure","failed"),payload:d}),Be=v({meta:C("communication.connection.subscription.indeterminate","Emitted when subscription effect custody is indeterminate and must reconcile before retry","indeterminate"),payload:d});import{defineEvent as s}from"@lssm/lib.contracts-spec/events";import{defineSchemaModel as r,ScalarTypeEnum as n}from"@lssm/lib.schema";import{defineEnum as l}from"@lssm/lib.schema";var w=l("ChannelType",["email","sms","whatsapp","telegram","matrix","web_chat","voice","internal_chat","custom_adapter","future_bridge","unknown"]),b=l("ThreadStatus",["open","waiting_on_human","waiting_on_external_party","action_required","resolved","archived"]),k=l("MessageStatus",["received","normalized","classified","linked","triaged","replied","archived"]),V=l("ReplyStatus",["drafted","requires_review","approved","sent","failed","blocked_by_policy"]),je=l("HandoffStatus",["created","assigned","acknowledged","completed","reopened"]),Fe=l("SuggestionStatus",["generated","shown","accepted","edited","rejected","applied","expired"]),He=l("IntentCategory",["support","sales","bug_report","feature_request","billing","onboarding","coordination","general","spam","escalation"]),Le=l("ActionSafetyMode",["read_only","draft_only","requires_review","policy_executable","blocked"]),We=l("FeedbackOutcome",["accepted","edited","rejected","unsafe","incomplete"]);var U=["platform.communication-os"],c=(y,f,g)=>({key:y,version:"1.0.0",description:f,stability:"experimental",owners:[...U],tags:["communication","event",...g]}),Xe=s({meta:c("communication.message.received","Emitted when a new message is accepted from a channel",["message","received"]),payload:r({name:"MessageReceivedPayload",fields:{messageId:{type:n.String_unsecure(),isOptional:!1},threadId:{type:n.String_unsecure(),isOptional:!1},channelType:{type:w,isOptional:!1}}})}),Ye=s({meta:c("communication.message.normalized","Emitted when a raw channel payload is normalized into a CommunicationMessage",["message","normalized"]),payload:r({name:"MessageNormalizedPayload",fields:{messageId:{type:n.String_unsecure(),isOptional:!1},threadId:{type:n.String_unsecure(),isOptional:!1},status:{type:k,isOptional:!1}}})}),Ze=s({meta:c("communication.intent.classified","Emitted when a message or thread intent is classified",["intent","classified"]),payload:r({name:"IntentClassifiedPayload",fields:{threadId:{type:n.String_unsecure(),isOptional:!1},messageId:{type:n.String_unsecure(),isOptional:!0},category:{type:n.String_unsecure(),isOptional:!1},confidence:{type:n.Float_unsecure(),isOptional:!1}}})}),$e=s({meta:c("communication.thread.linked","Emitted when a thread is linked to a business object",["thread","linked"]),payload:r({name:"ThreadLinkedPayload",fields:{threadId:{type:n.String_unsecure(),isOptional:!1},objectType:{type:n.String_unsecure(),isOptional:!1},objectId:{type:n.String_unsecure(),isOptional:!1}}})}),et=s({meta:c("communication.thread.status.changed","Emitted when a thread status changes",["thread","status"]),payload:r({name:"ThreadStatusChangedPayload",fields:{threadId:{type:n.String_unsecure(),isOptional:!1},previousStatus:{type:b,isOptional:!1},newStatus:{type:b,isOptional:!1},changedBy:{type:n.String_unsecure(),isOptional:!0}}})}),tt=s({meta:c("communication.reply.drafted","Emitted when a reply draft is created",["reply","drafted"]),payload:r({name:"ReplyDraftedPayload",fields:{draftId:{type:n.String_unsecure(),isOptional:!1},threadId:{type:n.String_unsecure(),isOptional:!1},status:{type:V,isOptional:!1}}})}),nt=s({meta:c("communication.reply.blocked_by_policy","Emitted when a reply draft is blocked before send",["reply","blocked"]),payload:r({name:"ReplyBlockedByPolicyPayload",fields:{draftId:{type:n.String_unsecure(),isOptional:!1},threadId:{type:n.String_unsecure(),isOptional:!1},policyRef:{type:n.String_unsecure(),isOptional:!1},reason:{type:n.String_unsecure(),isOptional:!1}}})}),it=s({meta:c("communication.reply.sent","Emitted when a reply is sent",["reply","sent"]),payload:r({name:"ReplySentPayload",fields:{draftId:{type:n.String_unsecure(),isOptional:!1},threadId:{type:n.String_unsecure(),isOptional:!1},sentAt:{type:n.DateTime(),isOptional:!1}}})}),at=s({meta:c("communication.handoff.created","Emitted when a handoff packet is created",["handoff","created"]),payload:r({name:"HandoffCreatedPayload",fields:{handoffId:{type:n.String_unsecure(),isOptional:!1},threadId:{type:n.String_unsecure(),isOptional:!1},fromOwner:{type:n.String_unsecure(),isOptional:!1},toOwner:{type:n.String_unsecure(),isOptional:!1}}})}),ot=s({meta:c("communication.escalation.requested","Emitted when a thread is escalated for human attention",["escalation","requested"]),payload:r({name:"EscalationRequestedPayload",fields:{threadId:{type:n.String_unsecure(),isOptional:!1},reason:{type:n.String_unsecure(),isOptional:!1},targetOwner:{type:n.String_unsecure(),isOptional:!0}}})}),st=s({meta:c("communication.participant.linked","Emitted when a participant identity link is proposed or confirmed",["participant","identity"]),payload:r({name:"ParticipantLinkedPayload",fields:{participantId:{type:n.String_unsecure(),isOptional:!1},linkedParticipantId:{type:n.String_unsecure(),isOptional:!1},linkType:{type:n.String_unsecure(),isOptional:!1},confidence:{type:n.Float_unsecure(),isOptional:!0}}})});import{defineCommand as R,defineEvent as M,defineQuery as J,docId as X}from"@lssm/lib.contracts-spec";import{defineEnum as T,defineSchemaModel as m,ScalarTypeEnum as i}from"@lssm/lib.schema";var O=["platform.communication-os","platform.support-os"],Y={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"},_=[X(Y.id)],A=T("CommunicationSupportInternalNoteVisibility",["internal"]),Z=m({name:"CommunicationSupportInternalNoteCreateV1Input",fields:{caseRef:{type:i.String_unsecure(),isOptional:!1},body:{type:i.String_unsecure(),isOptional:!1},idempotencyKey:{type:i.String_unsecure(),isOptional:!1}}}),ee=m({name:"CommunicationSupportInternalNoteCreateForIntentV1Input",fields:{caseRef:{type:i.String_unsecure(),isOptional:!1},intentRef:{type:i.String_unsecure(),isOptional:!1},body:{type:i.String_unsecure(),isOptional:!1},idempotencyKey:{type:i.String_unsecure(),isOptional:!1}}}),x=m({name:"CommunicationSupportInternalNoteEvidenceV1",fields:{noteRef:{type:i.String_unsecure(),isOptional:!1},caseRef:{type:i.String_unsecure(),isOptional:!1},evidenceRef:{type:i.String_unsecure(),isOptional:!1},visibility:{type:A,isOptional:!1},createdAt:{type:i.DateTime(),isOptional:!1}}}),D=m({name:"CommunicationSupportInternalNoteIntentEvidenceV1",fields:{...x.config.fields,intentRef:{type:i.String_unsecure(),isOptional:!1},deliveryRef:{type:i.String_unsecure(),isOptional:!1},grantEvidenceRef:{type:i.String_unsecure(),isOptional:!1}}}),te=m({name:"CommunicationSupportInternalNoteVerifyV1Input",fields:{caseRef:{type:i.String_unsecure(),isOptional:!1},noteRef:{type:i.String_unsecure(),isOptional:!1},evidenceRef:{type:i.String_unsecure(),isOptional:!1}}}),ne=m({name:"CommunicationSupportInternalNoteVerificationV1",fields:{status:{type:T("CommunicationSupportInternalNoteVerificationStatus",["verified"]),isOptional:!1},caseRef:{type:i.String_unsecure(),isOptional:!1},noteRef:{type:i.String_unsecure(),isOptional:!1},evidenceRef:{type:i.String_unsecure(),isOptional:!1},visibility:{type:A,isOptional:!1}}}),lt=R({meta:{key:"communication.support.internal-note.create",version:"1.0.0",stability:"experimental",owners:[...O],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:_},io:{input:Z,output:x},policy:{auth:"admin"}}),ut=R({meta:{key:"communication.support.internal-note.create-for-intent",version:"1.0.0",stability:"experimental",owners:[...O],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:_},io:{input:ee,output:D},policy:{auth:"admin"}}),dt=J({meta:{key:"communication.support.internal-note.verify",version:"1.0.0",stability:"experimental",owners:[...O],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:_},io:{input:te,output:ne},policy:{auth:"admin"}}),ie=M({meta:{key:"communication.support.internal-note.created",version:"1.0.0",stability:"experimental",owners:[...O],tags:["communication","support","internal-note","event"],description:"Immutable redacted evidence that a private Support note was created",docId:_},payload:x}),ae=M({meta:{key:"communication.support.internal-note.reconciliation-ready",version:"1.0.0",stability:"experimental",owners:[...O],tags:["communication","support","internal-note","reconciliation"],description:"Redacted durable delivery evidence for a SupportOS note intent",docId:_},payload:D}),mt={create:"communication.support.internal-note.create",createForIntent:"communication.support.internal-note.create-for-intent",verify:"communication.support.internal-note.verify"};export{Ie as CommunicationAuthorityChangedV2Event,d as CommunicationConnectionEventV2Payload,we as CommunicationConnectionHealthChangedV2Event,Ne as CommunicationConnectionSubscriptionActiveV2Event,qe as CommunicationConnectionSubscriptionFailedV2Event,Be as CommunicationConnectionSubscriptionIndeterminateV2Event,Pe as CommunicationConnectionSubscriptionRequestedV2Event,ke as CommunicationConnectionSyncAdvancedV2Event,Ve as CommunicationConnectionSyncInvalidatedV2Event,Ce as CommunicationMembershipChangedV2Event,xe as CommunicationMessageDeletedV2Event,be as CommunicationMessageEditedV2Event,Ee as CommunicationMessageSentV2Event,Re as CommunicationRealtimeStateChangedV2Event,ve as CommunicationRoomCreatedV2Event,he as CommunicationSpaceCreatedV2Event,ie as CommunicationSupportInternalNoteCreatedV1Event,ae as CommunicationSupportInternalNoteReconciliationReadyV1Event,ot as EscalationRequestedEvent,at as HandoffCreatedEvent,Ze as IntentClassifiedEvent,Ye as MessageNormalizedEvent,Xe as MessageReceivedEvent,st as ParticipantLinkedEvent,nt as ReplyBlockedByPolicyEvent,tt as ReplyDraftedEvent,it as ReplySentEvent,$e as ThreadLinkedEvent,et as ThreadStatusChangedEvent};