@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,129 @@
1
+ import { type DocBlock } from '@lssm/lib.contracts-spec';
2
+ export declare const CommunicationAttachmentDocBlock: DocBlock;
3
+ export declare const UploadCommunicationAttachmentV1Command: import("@lssm/lib.contracts-spec").OperationSpec<import("@lssm/lib.schema").SchemaModel<{
4
+ tenantId: {
5
+ readonly type: import("@lssm/lib.schema").FieldType<string, string>;
6
+ readonly isOptional: false;
7
+ };
8
+ workspaceId: {
9
+ readonly type: import("@lssm/lib.schema").FieldType<string, string>;
10
+ readonly isOptional: false;
11
+ };
12
+ spaceId: {
13
+ readonly type: import("@lssm/lib.schema").FieldType<string, string>;
14
+ readonly isOptional: false;
15
+ };
16
+ roomId: {
17
+ readonly type: import("@lssm/lib.schema").FieldType<string, string>;
18
+ readonly isOptional: false;
19
+ };
20
+ principalId: {
21
+ readonly type: import("@lssm/lib.schema").FieldType<string, string>;
22
+ readonly isOptional: false;
23
+ };
24
+ name: {
25
+ type: import("@lssm/lib.schema").FieldType<string, string>;
26
+ isOptional: false;
27
+ };
28
+ mimeType: {
29
+ type: import("@lssm/lib.schema").FieldType<string, string>;
30
+ isOptional: false;
31
+ };
32
+ sizeBytes: {
33
+ type: import("@lssm/lib.schema").FieldType<number, number>;
34
+ isOptional: false;
35
+ };
36
+ sha256: {
37
+ type: import("@lssm/lib.schema").FieldType<string, string>;
38
+ isOptional: false;
39
+ };
40
+ contentBase64: {
41
+ type: import("@lssm/lib.schema").FieldType<string, string>;
42
+ isOptional: false;
43
+ };
44
+ }>, import("@lssm/lib.schema").SchemaModel<{
45
+ id: {
46
+ type: import("@lssm/lib.schema").FieldType<string, string>;
47
+ isOptional: false;
48
+ };
49
+ name: {
50
+ type: import("@lssm/lib.schema").FieldType<string, string>;
51
+ isOptional: false;
52
+ };
53
+ mimeType: {
54
+ type: import("@lssm/lib.schema").FieldType<string, string>;
55
+ isOptional: false;
56
+ };
57
+ sizeBytes: {
58
+ type: import("@lssm/lib.schema").FieldType<number, number>;
59
+ isOptional: false;
60
+ };
61
+ sha256: {
62
+ type: import("@lssm/lib.schema").FieldType<string, string>;
63
+ isOptional: false;
64
+ };
65
+ createdAt: {
66
+ type: import("@lssm/lib.schema").FieldType<Date, string>;
67
+ isOptional: false;
68
+ };
69
+ }>, undefined>;
70
+ export declare const DownloadCommunicationAttachmentV1Query: import("@lssm/lib.contracts-spec").OperationSpec<import("@lssm/lib.schema").SchemaModel<{
71
+ tenantId: {
72
+ readonly type: import("@lssm/lib.schema").FieldType<string, string>;
73
+ readonly isOptional: false;
74
+ };
75
+ workspaceId: {
76
+ readonly type: import("@lssm/lib.schema").FieldType<string, string>;
77
+ readonly isOptional: false;
78
+ };
79
+ spaceId: {
80
+ readonly type: import("@lssm/lib.schema").FieldType<string, string>;
81
+ readonly isOptional: false;
82
+ };
83
+ roomId: {
84
+ readonly type: import("@lssm/lib.schema").FieldType<string, string>;
85
+ readonly isOptional: false;
86
+ };
87
+ principalId: {
88
+ readonly type: import("@lssm/lib.schema").FieldType<string, string>;
89
+ readonly isOptional: false;
90
+ };
91
+ attachmentId: {
92
+ type: import("@lssm/lib.schema").FieldType<string, string>;
93
+ isOptional: false;
94
+ };
95
+ }>, import("@lssm/lib.schema").SchemaModel<{
96
+ attachment: {
97
+ type: import("@lssm/lib.schema").SchemaModel<{
98
+ id: {
99
+ type: import("@lssm/lib.schema").FieldType<string, string>;
100
+ isOptional: false;
101
+ };
102
+ name: {
103
+ type: import("@lssm/lib.schema").FieldType<string, string>;
104
+ isOptional: false;
105
+ };
106
+ mimeType: {
107
+ type: import("@lssm/lib.schema").FieldType<string, string>;
108
+ isOptional: false;
109
+ };
110
+ sizeBytes: {
111
+ type: import("@lssm/lib.schema").FieldType<number, number>;
112
+ isOptional: false;
113
+ };
114
+ sha256: {
115
+ type: import("@lssm/lib.schema").FieldType<string, string>;
116
+ isOptional: false;
117
+ };
118
+ createdAt: {
119
+ type: import("@lssm/lib.schema").FieldType<Date, string>;
120
+ isOptional: false;
121
+ };
122
+ }>;
123
+ isOptional: false;
124
+ };
125
+ contentBase64: {
126
+ type: import("@lssm/lib.schema").FieldType<string, string>;
127
+ isOptional: false;
128
+ };
129
+ }>, undefined>;
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ import{defineCommand as g,defineQuery as O,docId as s}from"@lssm/lib.contracts-spec";import{defineSchemaModel as o,ScalarTypeEnum as t}from"@lssm/lib.schema";import{defineEnum as i,defineSchemaModel as n,ScalarTypeEnum as e}from"@lssm/lib.schema";var l=i("CommunicationSpaceKind",["personal","organization"]),u=i("CommunicationPrincipalKind",["human","agent","system"]),m=i("CommunicationConnectionPlacement",["device","managed_cloud","self_hosted"]),I=i("CommunicationConnectionNetwork",["email","sms","slack","teams","telegram","whatsapp","discord","matrix"]),d=i("CommunicationEncryptionMode",["client_encrypted","governed_server_indexable"]),y=i("CommunicationMembershipState",["active","revoked"]),A=i("CommunicationReceiptKind",["delivered","read"]),f=i("CommunicationConnectionHealth",["connecting","healthy","degraded","offline","revoked"]),b={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"},x=n({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}}}),D=n({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:l,isOptional:!1},encryptionMode:{type:d,isOptional:!1},createdAt:{type:e.DateTime(),isOptional:!1}}}),T=n({name:"CommunicationPrincipalV2",description:"Auditable human, agent, or system identity",fields:{id:{type:e.String_unsecure(),isOptional:!1},kind:{type:u,isOptional:!1},displayName:{type:e.String_unsecure(),isOptional:!1},ownerPrincipalId:{type:e.String_unsecure(),isOptional:!0},createdAt:{type:e.DateTime(),isOptional:!1}}}),v=n({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}}}),w=n({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:y,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}}}),k=n({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:m,isOptional:!1},externalAccountRef:{type:e.String_unsecure(),isOptional:!1},credentialRef:{type:e.String_unsecure(),isOptional:!1},health:{type:f,isOptional:!1},capabilities:{type:e.String_unsecure(),isArray:!0,isOptional:!1},createdAt:{type:e.DateTime(),isOptional:!1},updatedAt:{type:e.DateTime(),isOptional:!1}}}),a=n({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}}}),M=n({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:a,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}}}),V=n({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 r={id:"communication-os.ecosystem-attachments.v1",title:"CommunicationOS scoped message attachments",body:"Uploads and downloads small message attachments through authenticated, room-authorized operations. Bytes are stored behind opaque identifiers; public message projections expose only name, MIME type, size, digest, and creation time. Runtime limits, digest verification, tenant isolation, and message-reference validation fail closed.",kind:"reference",route:"/docs/communication-os/ecosystem-attachments-v1",visibility:"public"},c={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}},h=o({name:"UploadCommunicationAttachmentV1Input",fields:{...c,name:{type:t.String_unsecure(),isOptional:!1},mimeType:{type:t.String_unsecure(),isOptional:!1},sizeBytes:{type:t.Int_unsecure(),isOptional:!1},sha256:{type:t.String_unsecure(),isOptional:!1},contentBase64:{type:t.String_unsecure(),isOptional:!1}}}),S=o({name:"DownloadCommunicationAttachmentV1Input",fields:{...c,attachmentId:{type:t.String_unsecure(),isOptional:!1}}}),_=o({name:"DownloadCommunicationAttachmentV1Output",fields:{attachment:{type:a,isOptional:!1},contentBase64:{type:t.String_unsecure(),isOptional:!1}}}),p={VALIDATION_FAILED:{description:"Attachment metadata, digest, encoding, or size is invalid.",http:422,when:"The request is malformed, exceeds the runtime limit, or its digest differs from the decoded bytes."},AUTHORITY_DENIED:{description:"The principal cannot access attachments in this room.",http:403,when:"Active room membership or attachment capability is absent."},ATTACHMENT_NOT_FOUND:{description:"No attachment exists in the selected authorized scope.",http:404,when:"The opaque identifier is absent or belongs to another scope."}},N=g({meta:{key:"communication.attachment.upload",version:"1.0.0",stability:"experimental",owners:["platform.communication-os"],tags:["communication","message","attachment","upload"],description:"Upload one small, digest-verified message attachment",goal:"Let authorized participants attach files without exposing storage locations",context:"Scope and principal authority are derived by protected adapters; bytes are limited and stored behind an opaque identifier",docId:[s(r.id)]},io:{input:h,output:a,errors:p},policy:{auth:"user"}}),P=O({meta:{key:"communication.attachment.download",version:"1.0.0",stability:"experimental",owners:["platform.communication-os"],tags:["communication","message","attachment","download"],description:"Download one attachment from an authorized room scope",goal:"Return bytes only after current room authority is revalidated",context:"Opaque identifiers never widen the server-derived tenant, workspace, space, or room scope",docId:[s(r.id)]},io:{input:S,output:_,errors:p},policy:{auth:"user"}});export{r as CommunicationAttachmentDocBlock,P as DownloadCommunicationAttachmentV1Query,N as UploadCommunicationAttachmentV1Command};
@@ -0,0 +1,345 @@
1
+ export declare const ExchangeCommunicationHostSessionV2Input: import("@lssm/lib.schema").SchemaModel<{
2
+ tenantId: {
3
+ readonly type: import("@lssm/lib.schema").FieldType<string, string>;
4
+ readonly isOptional: false;
5
+ };
6
+ workspaceId: {
7
+ readonly type: import("@lssm/lib.schema").FieldType<string, string>;
8
+ readonly isOptional: false;
9
+ };
10
+ spaceId: {
11
+ readonly type: import("@lssm/lib.schema").FieldType<string, string>;
12
+ readonly isOptional: false;
13
+ };
14
+ issuer: {
15
+ type: import("@lssm/lib.schema").FieldType<string, string>;
16
+ isOptional: false;
17
+ };
18
+ assertion: {
19
+ type: import("@lssm/lib.schema").FieldType<string, string>;
20
+ isOptional: false;
21
+ };
22
+ }>;
23
+ export declare const ExchangeCommunicationHostSessionV2Output: import("@lssm/lib.schema").SchemaModel<{
24
+ tenantId: {
25
+ readonly type: import("@lssm/lib.schema").FieldType<string, string>;
26
+ readonly isOptional: false;
27
+ };
28
+ workspaceId: {
29
+ readonly type: import("@lssm/lib.schema").FieldType<string, string>;
30
+ readonly isOptional: false;
31
+ };
32
+ spaceId: {
33
+ readonly type: import("@lssm/lib.schema").FieldType<string, string>;
34
+ readonly isOptional: false;
35
+ };
36
+ accessToken: {
37
+ type: import("@lssm/lib.schema").FieldType<string, string>;
38
+ isOptional: false;
39
+ };
40
+ principalId: {
41
+ type: import("@lssm/lib.schema").FieldType<string, string>;
42
+ isOptional: false;
43
+ };
44
+ expiresAt: {
45
+ type: import("@lssm/lib.schema").FieldType<Date, string>;
46
+ isOptional: false;
47
+ };
48
+ }>;
49
+ export declare const ExchangeCommunicationHostSessionV2Command: import("@lssm/lib.contracts-spec").OperationSpec<import("@lssm/lib.schema").SchemaModel<{
50
+ tenantId: {
51
+ readonly type: import("@lssm/lib.schema").FieldType<string, string>;
52
+ readonly isOptional: false;
53
+ };
54
+ workspaceId: {
55
+ readonly type: import("@lssm/lib.schema").FieldType<string, string>;
56
+ readonly isOptional: false;
57
+ };
58
+ spaceId: {
59
+ readonly type: import("@lssm/lib.schema").FieldType<string, string>;
60
+ readonly isOptional: false;
61
+ };
62
+ issuer: {
63
+ type: import("@lssm/lib.schema").FieldType<string, string>;
64
+ isOptional: false;
65
+ };
66
+ assertion: {
67
+ type: import("@lssm/lib.schema").FieldType<string, string>;
68
+ isOptional: false;
69
+ };
70
+ }>, import("@lssm/lib.schema").SchemaModel<{
71
+ tenantId: {
72
+ readonly type: import("@lssm/lib.schema").FieldType<string, string>;
73
+ readonly isOptional: false;
74
+ };
75
+ workspaceId: {
76
+ readonly type: import("@lssm/lib.schema").FieldType<string, string>;
77
+ readonly isOptional: false;
78
+ };
79
+ spaceId: {
80
+ readonly type: import("@lssm/lib.schema").FieldType<string, string>;
81
+ readonly isOptional: false;
82
+ };
83
+ accessToken: {
84
+ type: import("@lssm/lib.schema").FieldType<string, string>;
85
+ isOptional: false;
86
+ };
87
+ principalId: {
88
+ type: import("@lssm/lib.schema").FieldType<string, string>;
89
+ isOptional: false;
90
+ };
91
+ expiresAt: {
92
+ type: import("@lssm/lib.schema").FieldType<Date, string>;
93
+ isOptional: false;
94
+ };
95
+ }>, undefined>;
96
+ export declare const ExchangeCommunicationDirectSessionV2Input: import("@lssm/lib.schema").SchemaModel<{}>;
97
+ export declare const ExchangeCommunicationDirectSessionV2Output: import("@lssm/lib.schema").SchemaModel<{
98
+ tenantId: {
99
+ readonly type: import("@lssm/lib.schema").FieldType<string, string>;
100
+ readonly isOptional: false;
101
+ };
102
+ workspaceId: {
103
+ readonly type: import("@lssm/lib.schema").FieldType<string, string>;
104
+ readonly isOptional: false;
105
+ };
106
+ spaceId: {
107
+ readonly type: import("@lssm/lib.schema").FieldType<string, string>;
108
+ readonly isOptional: false;
109
+ };
110
+ accessToken: {
111
+ type: import("@lssm/lib.schema").FieldType<string, string>;
112
+ isOptional: false;
113
+ };
114
+ principalId: {
115
+ type: import("@lssm/lib.schema").FieldType<string, string>;
116
+ isOptional: false;
117
+ };
118
+ expiresAt: {
119
+ type: import("@lssm/lib.schema").FieldType<Date, string>;
120
+ isOptional: false;
121
+ };
122
+ }>;
123
+ export declare const ExchangeCommunicationDirectSessionV2Command: import("@lssm/lib.contracts-spec").OperationSpec<import("@lssm/lib.schema").SchemaModel<{}>, import("@lssm/lib.schema").SchemaModel<{
124
+ tenantId: {
125
+ readonly type: import("@lssm/lib.schema").FieldType<string, string>;
126
+ readonly isOptional: false;
127
+ };
128
+ workspaceId: {
129
+ readonly type: import("@lssm/lib.schema").FieldType<string, string>;
130
+ readonly isOptional: false;
131
+ };
132
+ spaceId: {
133
+ readonly type: import("@lssm/lib.schema").FieldType<string, string>;
134
+ readonly isOptional: false;
135
+ };
136
+ accessToken: {
137
+ type: import("@lssm/lib.schema").FieldType<string, string>;
138
+ isOptional: false;
139
+ };
140
+ principalId: {
141
+ type: import("@lssm/lib.schema").FieldType<string, string>;
142
+ isOptional: false;
143
+ };
144
+ expiresAt: {
145
+ type: import("@lssm/lib.schema").FieldType<Date, string>;
146
+ isOptional: false;
147
+ };
148
+ }>, undefined>;
149
+ export declare const CreateCommunicationRealtimeTicketV2Input: import("@lssm/lib.schema").SchemaModel<{
150
+ readonly tenantId: {
151
+ readonly type: import("@lssm/lib.schema").FieldType<string, string>;
152
+ readonly isOptional: false;
153
+ };
154
+ readonly workspaceId: {
155
+ readonly type: import("@lssm/lib.schema").FieldType<string, string>;
156
+ readonly isOptional: false;
157
+ };
158
+ readonly spaceId: {
159
+ readonly type: import("@lssm/lib.schema").FieldType<string, string>;
160
+ readonly isOptional: false;
161
+ };
162
+ }>;
163
+ export declare const CreateCommunicationRealtimeTicketV2Output: import("@lssm/lib.schema").SchemaModel<{
164
+ ticket: {
165
+ type: import("@lssm/lib.schema").FieldType<string, string>;
166
+ isOptional: false;
167
+ };
168
+ expiresAt: {
169
+ type: import("@lssm/lib.schema").FieldType<Date, string>;
170
+ isOptional: false;
171
+ };
172
+ }>;
173
+ export declare const CreateCommunicationRealtimeTicketV2Command: import("@lssm/lib.contracts-spec").OperationSpec<import("@lssm/lib.schema").SchemaModel<{
174
+ readonly tenantId: {
175
+ readonly type: import("@lssm/lib.schema").FieldType<string, string>;
176
+ readonly isOptional: false;
177
+ };
178
+ readonly workspaceId: {
179
+ readonly type: import("@lssm/lib.schema").FieldType<string, string>;
180
+ readonly isOptional: false;
181
+ };
182
+ readonly spaceId: {
183
+ readonly type: import("@lssm/lib.schema").FieldType<string, string>;
184
+ readonly isOptional: false;
185
+ };
186
+ }>, import("@lssm/lib.schema").SchemaModel<{
187
+ ticket: {
188
+ type: import("@lssm/lib.schema").FieldType<string, string>;
189
+ isOptional: false;
190
+ };
191
+ expiresAt: {
192
+ type: import("@lssm/lib.schema").FieldType<Date, string>;
193
+ isOptional: false;
194
+ };
195
+ }>, undefined>;
196
+ export declare const StartCommunicationProviderOAuthV2Input: import("@lssm/lib.schema").SchemaModel<{
197
+ tenantId: {
198
+ readonly type: import("@lssm/lib.schema").FieldType<string, string>;
199
+ readonly isOptional: false;
200
+ };
201
+ workspaceId: {
202
+ readonly type: import("@lssm/lib.schema").FieldType<string, string>;
203
+ readonly isOptional: false;
204
+ };
205
+ spaceId: {
206
+ readonly type: import("@lssm/lib.schema").FieldType<string, string>;
207
+ readonly isOptional: false;
208
+ };
209
+ network: {
210
+ type: import("@lssm/lib.schema").EnumType<[string, string, string, string, string, string, string, string]>;
211
+ isOptional: false;
212
+ };
213
+ providerKey: {
214
+ type: import("@lssm/lib.schema").FieldType<string, string>;
215
+ isOptional: true;
216
+ };
217
+ placement: {
218
+ type: import("@lssm/lib.schema").EnumType<[string, string, string]>;
219
+ isOptional: false;
220
+ };
221
+ returnPath: {
222
+ type: import("@lssm/lib.schema").FieldType<string, string>;
223
+ isOptional: true;
224
+ };
225
+ }>;
226
+ export declare const StartCommunicationProviderOAuthV2Output: import("@lssm/lib.schema").SchemaModel<{
227
+ authorizationUrl: {
228
+ type: import("@lssm/lib.schema").FieldType<string, string>;
229
+ isOptional: false;
230
+ };
231
+ expiresAt: {
232
+ type: import("@lssm/lib.schema").FieldType<Date, string>;
233
+ isOptional: false;
234
+ };
235
+ }>;
236
+ export declare const StartCommunicationProviderOAuthV2Command: import("@lssm/lib.contracts-spec").OperationSpec<import("@lssm/lib.schema").SchemaModel<{
237
+ tenantId: {
238
+ readonly type: import("@lssm/lib.schema").FieldType<string, string>;
239
+ readonly isOptional: false;
240
+ };
241
+ workspaceId: {
242
+ readonly type: import("@lssm/lib.schema").FieldType<string, string>;
243
+ readonly isOptional: false;
244
+ };
245
+ spaceId: {
246
+ readonly type: import("@lssm/lib.schema").FieldType<string, string>;
247
+ readonly isOptional: false;
248
+ };
249
+ network: {
250
+ type: import("@lssm/lib.schema").EnumType<[string, string, string, string, string, string, string, string]>;
251
+ isOptional: false;
252
+ };
253
+ providerKey: {
254
+ type: import("@lssm/lib.schema").FieldType<string, string>;
255
+ isOptional: true;
256
+ };
257
+ placement: {
258
+ type: import("@lssm/lib.schema").EnumType<[string, string, string]>;
259
+ isOptional: false;
260
+ };
261
+ returnPath: {
262
+ type: import("@lssm/lib.schema").FieldType<string, string>;
263
+ isOptional: true;
264
+ };
265
+ }>, import("@lssm/lib.schema").SchemaModel<{
266
+ authorizationUrl: {
267
+ type: import("@lssm/lib.schema").FieldType<string, string>;
268
+ isOptional: false;
269
+ };
270
+ expiresAt: {
271
+ type: import("@lssm/lib.schema").FieldType<Date, string>;
272
+ isOptional: false;
273
+ };
274
+ }>, undefined>;
275
+ export declare const CompleteCommunicationProviderOAuthV2Input: import("@lssm/lib.schema").SchemaModel<{
276
+ network: {
277
+ type: import("@lssm/lib.schema").EnumType<[string, string, string, string, string, string, string, string]>;
278
+ isOptional: false;
279
+ };
280
+ state: {
281
+ type: import("@lssm/lib.schema").FieldType<string, string>;
282
+ isOptional: false;
283
+ };
284
+ code: {
285
+ type: import("@lssm/lib.schema").FieldType<string, string>;
286
+ isOptional: true;
287
+ };
288
+ providerError: {
289
+ type: import("@lssm/lib.schema").FieldType<string, string>;
290
+ isOptional: true;
291
+ };
292
+ }>;
293
+ export declare const CompleteCommunicationProviderOAuthV2Output: import("@lssm/lib.schema").SchemaModel<{
294
+ connectionId: {
295
+ type: import("@lssm/lib.schema").FieldType<string, string>;
296
+ isOptional: false;
297
+ };
298
+ network: {
299
+ type: import("@lssm/lib.schema").EnumType<[string, string, string, string, string, string, string, string]>;
300
+ isOptional: false;
301
+ };
302
+ returnPath: {
303
+ type: import("@lssm/lib.schema").FieldType<string, string>;
304
+ isOptional: false;
305
+ };
306
+ returnOrigin: {
307
+ type: import("@lssm/lib.schema").FieldType<string, string>;
308
+ isOptional: false;
309
+ };
310
+ }>;
311
+ export declare const CompleteCommunicationProviderOAuthV2Command: import("@lssm/lib.contracts-spec").OperationSpec<import("@lssm/lib.schema").SchemaModel<{
312
+ network: {
313
+ type: import("@lssm/lib.schema").EnumType<[string, string, string, string, string, string, string, string]>;
314
+ isOptional: false;
315
+ };
316
+ state: {
317
+ type: import("@lssm/lib.schema").FieldType<string, string>;
318
+ isOptional: false;
319
+ };
320
+ code: {
321
+ type: import("@lssm/lib.schema").FieldType<string, string>;
322
+ isOptional: true;
323
+ };
324
+ providerError: {
325
+ type: import("@lssm/lib.schema").FieldType<string, string>;
326
+ isOptional: true;
327
+ };
328
+ }>, import("@lssm/lib.schema").SchemaModel<{
329
+ connectionId: {
330
+ type: import("@lssm/lib.schema").FieldType<string, string>;
331
+ isOptional: false;
332
+ };
333
+ network: {
334
+ type: import("@lssm/lib.schema").EnumType<[string, string, string, string, string, string, string, string]>;
335
+ isOptional: false;
336
+ };
337
+ returnPath: {
338
+ type: import("@lssm/lib.schema").FieldType<string, string>;
339
+ isOptional: false;
340
+ };
341
+ returnOrigin: {
342
+ type: import("@lssm/lib.schema").FieldType<string, string>;
343
+ isOptional: false;
344
+ };
345
+ }>, undefined>;
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ import{defineCommand as a,docId as f}from"@lssm/lib.contracts-spec";import{defineSchemaModel as i,ScalarTypeEnum as t}from"@lssm/lib.schema";import{defineEnum as o,defineSchemaModel as n,ScalarTypeEnum as e}from"@lssm/lib.schema";var m=o("CommunicationSpaceKind",["personal","organization"]),d=o("CommunicationPrincipalKind",["human","agent","system"]),u=o("CommunicationConnectionPlacement",["device","managed_cloud","self_hosted"]),p=o("CommunicationConnectionNetwork",["email","sms","slack","teams","telegram","whatsapp","discord","matrix"]),y=o("CommunicationEncryptionMode",["client_encrypted","governed_server_indexable"]),h=o("CommunicationMembershipState",["active","revoked"]),E=o("CommunicationReceiptKind",["delivered","read"]),g=o("CommunicationConnectionHealth",["connecting","healthy","degraded","offline","revoked"]),l={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"},V=n({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}}}),D=n({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:m,isOptional:!1},encryptionMode:{type:y,isOptional:!1},createdAt:{type:e.DateTime(),isOptional:!1}}}),P=n({name:"CommunicationPrincipalV2",description:"Auditable human, agent, or system identity",fields:{id:{type:e.String_unsecure(),isOptional:!1},kind:{type:d,isOptional:!1},displayName:{type:e.String_unsecure(),isOptional:!1},ownerPrincipalId:{type:e.String_unsecure(),isOptional:!0},createdAt:{type:e.DateTime(),isOptional:!1}}}),M=n({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}}}),R=n({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:h,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}}}),z=n({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:u,isOptional:!1},externalAccountRef:{type:e.String_unsecure(),isOptional:!1},credentialRef:{type:e.String_unsecure(),isOptional:!1},health:{type:g,isOptional:!1},capabilities:{type:e.String_unsecure(),isArray:!0,isOptional:!1},createdAt:{type:e.DateTime(),isOptional:!1},updatedAt:{type:e.DateTime(),isOptional:!1}}}),O=n({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}}}),H=n({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:O,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}}}),N=n({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 s=["platform.communication-os"],r=[f(l.id)],c={tenantId:{type:t.String_unsecure(),isOptional:!1},workspaceId:{type:t.String_unsecure(),isOptional:!1},spaceId:{type:t.String_unsecure(),isOptional:!1}},S=i({name:"ExchangeCommunicationHostSessionV2Input",description:"Server-to-server exchange of a verified host assertion for a scoped CommunicationOS token",fields:{issuer:{type:t.String_unsecure(),isOptional:!1},assertion:{type:t.String_unsecure(),isOptional:!1},...c}}),C=i({name:"ExchangeCommunicationHostSessionV2Output",fields:{accessToken:{type:t.String_unsecure(),isOptional:!1},principalId:{type:t.String_unsecure(),isOptional:!1},expiresAt:{type:t.DateTime(),isOptional:!1},...c}}),j=a({meta:{key:"communication.auth.host-session.exchange",version:"2.0.0",stability:"experimental",owners:[...s],tags:["communication","auth","host-exchange","isolation"],description:"Exchange a CompanyOS, Pactena, or approved host session for a short-lived scoped token",goal:"Embed CommunicationOS without sharing host cookies or bypassing its own authorization",context:"The server verifies issuer and assertion, maps issuer plus subject to one canonical principal, and evaluates membership independently; email matching never links identities",docId:r},io:{input:S,output:C},policy:{auth:"admin"}}),_=i({name:"ExchangeCommunicationDirectSessionV2Input",description:"Exchange the current first-party AuthOS cookie or native bearer session for its server-derived personal CommunicationOS scope",fields:{}}),v=i({name:"ExchangeCommunicationDirectSessionV2Output",fields:{accessToken:{type:t.String_unsecure(),isOptional:!1},principalId:{type:t.String_unsecure(),isOptional:!1},expiresAt:{type:t.DateTime(),isOptional:!1},...c}}),q=a({meta:{key:"communication.auth.direct-session.exchange",version:"2.0.0",stability:"experimental",owners:[...s],tags:["communication","auth","standalone","isolation"],description:"Exchange a first-party AuthOS session for a short-lived scoped CommunicationOS token",goal:"Let standalone clients authenticate without sharing host sessions",context:"The server accepts the first-party web cookie or a device-vault-backed AuthOS bearer session, then derives both canonical principal and personal scope from the AuthOS issuer and immutable user id; email and client-provided scope are never identity authority",docId:r},io:{input:_,output:v},policy:{auth:"user"}}),x=i({name:"CreateCommunicationRealtimeTicketV2Input",description:"Authorized space scope for one short-lived realtime ticket",fields:c}),k=i({name:"CreateCommunicationRealtimeTicketV2Output",fields:{ticket:{type:t.String_unsecure(),isOptional:!1},expiresAt:{type:t.DateTime(),isOptional:!1}}}),G=a({meta:{key:"communication.auth.realtime-ticket.create",version:"2.0.0",stability:"experimental",owners:[...s],tags:["communication","auth","realtime","ticket"],description:"Mint a single-purpose, short-lived ticket for the realtime gateway",goal:"Authenticate WebSocket upgrades without exposing bearer tokens in URLs",context:"The ticket is audience-bound, space-scoped, expiring, and must be consumed or rejected by the realtime gateway",docId:r},io:{input:x,output:k},policy:{auth:"user"}}),A=i({name:"StartCommunicationProviderOAuthV2Input",description:"Authenticated request for a scope-bound, short-lived provider OAuth authorization flow",fields:{...c,network:{type:p,isOptional:!1},providerKey:{type:t.String_unsecure(),isOptional:!0},placement:{type:u,isOptional:!1},returnPath:{type:t.String_unsecure(),isOptional:!0}}}),b=i({name:"StartCommunicationProviderOAuthV2Output",description:"Opaque provider authorization URL with no raw credential or PKCE verifier exposure",fields:{authorizationUrl:{type:t.String_unsecure(),isOptional:!1},expiresAt:{type:t.DateTime(),isOptional:!1}}}),W=a({meta:{key:"communication.oauth.start",version:"3.0.0",stability:"experimental",owners:[...s],tags:["communication","provider","oauth","pkce","connection"],description:"Start a provider OAuth flow bound to the authenticated principal and exact CommunicationOS scope",goal:"Connect managed provider accounts without exposing credentials or permitting cross-space callback replay",context:"The server creates one-time state and provider-supported PKCE material, stores it with a short expiry, derives an allowlisted host return origin from the authenticated issuer, and accepts only relative return paths; raw verifier and provider tokens never enter browser projections",docId:r},io:{input:A,output:b,errors:{OAUTH_NETWORK_UNSUPPORTED:{description:"The requested network has no configured OAuth provider",http:422,when:"The network uses another connection method or is not enabled"},OAUTH_NOT_AUTHORIZED:{description:"The actor cannot manage connections in this scope",http:403,when:"Membership, policy, or RoleMorph boundaries deny connection administration"},OAUTH_STATE_UNAVAILABLE:{description:"OAuth state could not be stored durably",http:503,when:"The one-time state store is unavailable"}}},policy:{auth:"user"}}),I=i({name:"CompleteCommunicationProviderOAuthV2Input",description:"Provider callback carrying opaque one-time state and either an authorization code or provider error",fields:{network:{type:p,isOptional:!1},state:{type:t.String_unsecure(),isOptional:!1},code:{type:t.String_unsecure(),isOptional:!0},providerError:{type:t.String_unsecure(),isOptional:!0}}}),T=i({name:"CompleteCommunicationProviderOAuthV2Output",description:"Connected provider projection after one-time state consumption and credential-vault storage",fields:{connectionId:{type:t.String_unsecure(),isOptional:!1},network:{type:p,isOptional:!1},returnPath:{type:t.String_unsecure(),isOptional:!1},returnOrigin:{type:t.String_unsecure(),isOptional:!1}}}),F=a({meta:{key:"communication.oauth.complete",version:"3.0.0",stability:"experimental",owners:[...s],tags:["communication","provider","oauth","callback","replay"],description:"Consume a provider OAuth callback once, vault credentials, and create the scoped connection",goal:"Finish provider onboarding without trusting callback scope or persisting browser-visible tokens",context:"Tenant, workspace, space, principal, placement, provider proof material, allowlisted host return origin, and relative return path are recovered only from atomically consumed state; reused, expired, mismatched, or provider-denied callbacks fail closed",docId:r},io:{input:I,output:T,errors:{OAUTH_STATE_INVALID:{description:"OAuth state is missing, expired, mismatched, or already consumed",http:401,when:"The callback cannot atomically recover its exact scoped authorization intent"},OAUTH_PROVIDER_DENIED:{description:"The provider denied or failed the authorization request",http:422,when:"The callback contains an OAuth error or no authorization code"},OAUTH_EXCHANGE_FAILED:{description:"The authorization code could not be exchanged safely",http:502,when:"Provider token exchange, identity discovery, or credential vault storage fails"}}},policy:{auth:"anonymous"}});export{F as CompleteCommunicationProviderOAuthV2Command,I as CompleteCommunicationProviderOAuthV2Input,T as CompleteCommunicationProviderOAuthV2Output,G as CreateCommunicationRealtimeTicketV2Command,x as CreateCommunicationRealtimeTicketV2Input,k as CreateCommunicationRealtimeTicketV2Output,q as ExchangeCommunicationDirectSessionV2Command,_ as ExchangeCommunicationDirectSessionV2Input,v as ExchangeCommunicationDirectSessionV2Output,j as ExchangeCommunicationHostSessionV2Command,S as ExchangeCommunicationHostSessionV2Input,C as ExchangeCommunicationHostSessionV2Output,W as StartCommunicationProviderOAuthV2Command,A as StartCommunicationProviderOAuthV2Input,b as StartCommunicationProviderOAuthV2Output};