@openclaw/crabline 0.1.11 → 0.1.13

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 (214) hide show
  1. package/README.md +137 -23
  2. package/dist/src/bin/crabline.js +3 -1
  3. package/dist/src/bin/crabline.js.map +1 -1
  4. package/dist/src/cli/program.d.ts +5 -1
  5. package/dist/src/cli/program.js +281 -52
  6. package/dist/src/cli/program.js.map +1 -1
  7. package/dist/src/config/load.js +39 -3
  8. package/dist/src/config/load.js.map +1 -1
  9. package/dist/src/config/schema.d.ts +20 -0
  10. package/dist/src/config/schema.js +163 -35
  11. package/dist/src/config/schema.js.map +1 -1
  12. package/dist/src/core/errors.d.ts +1 -0
  13. package/dist/src/core/errors.js +6 -3
  14. package/dist/src/core/errors.js.map +1 -1
  15. package/dist/src/core/http-path.d.ts +1 -0
  16. package/dist/src/core/http-path.js +14 -0
  17. package/dist/src/core/http-path.js.map +1 -0
  18. package/dist/src/core/matcher.d.ts +3 -1
  19. package/dist/src/core/matcher.js +58 -2
  20. package/dist/src/core/matcher.js.map +1 -1
  21. package/dist/src/core/nonces.d.ts +2 -0
  22. package/dist/src/core/nonces.js +11 -1
  23. package/dist/src/core/nonces.js.map +1 -1
  24. package/dist/src/core/reporters.d.ts +5 -0
  25. package/dist/src/core/reporters.js +26 -2
  26. package/dist/src/core/reporters.js.map +1 -1
  27. package/dist/src/core/run.d.ts +3 -1
  28. package/dist/src/core/run.js +178 -66
  29. package/dist/src/core/run.js.map +1 -1
  30. package/dist/src/index.d.ts +12 -10
  31. package/dist/src/index.js +6 -5
  32. package/dist/src/index.js.map +1 -1
  33. package/dist/src/matrix-ids.d.ts +5 -0
  34. package/dist/src/matrix-ids.js +83 -0
  35. package/dist/src/matrix-ids.js.map +1 -0
  36. package/dist/src/openclaw/artifact-generation.d.ts +7 -6
  37. package/dist/src/openclaw/artifact-generation.js +385 -41
  38. package/dist/src/openclaw/artifact-generation.js.map +1 -1
  39. package/dist/src/openclaw/bridges/discord.d.ts +1 -0
  40. package/dist/src/openclaw/bridges/discord.js +149 -0
  41. package/dist/src/openclaw/bridges/discord.js.map +1 -0
  42. package/dist/src/openclaw/bridges/matrix.js +22 -5
  43. package/dist/src/openclaw/bridges/matrix.js.map +1 -1
  44. package/dist/src/openclaw/bridges/mattermost.js +14 -9
  45. package/dist/src/openclaw/bridges/mattermost.js.map +1 -1
  46. package/dist/src/openclaw/bridges/probe-response.d.ts +1 -0
  47. package/dist/src/openclaw/bridges/probe-response.js +5 -0
  48. package/dist/src/openclaw/bridges/probe-response.js.map +1 -0
  49. package/dist/src/openclaw/bridges/signal.js +16 -7
  50. package/dist/src/openclaw/bridges/signal.js.map +1 -1
  51. package/dist/src/openclaw/bridges/slack.js +117 -24
  52. package/dist/src/openclaw/bridges/slack.js.map +1 -1
  53. package/dist/src/openclaw/bridges/telegram.js +46 -20
  54. package/dist/src/openclaw/bridges/telegram.js.map +1 -1
  55. package/dist/src/openclaw/bridges/whatsapp.js +33 -17
  56. package/dist/src/openclaw/bridges/whatsapp.js.map +1 -1
  57. package/dist/src/openclaw/bridges/zalo.js +9 -4
  58. package/dist/src/openclaw/bridges/zalo.js.map +1 -1
  59. package/dist/src/openclaw/outbound-contract.js +3 -0
  60. package/dist/src/openclaw/outbound-contract.js.map +1 -1
  61. package/dist/src/openclaw/private-file.d.ts +38 -3
  62. package/dist/src/openclaw/private-file.js +2008 -87
  63. package/dist/src/openclaw/private-file.js.map +1 -1
  64. package/dist/src/openclaw/{smoke-lock.d.ts → provider-readiness-lock.d.ts} +14 -5
  65. package/dist/src/openclaw/provider-readiness-lock.js +1320 -0
  66. package/dist/src/openclaw/provider-readiness-lock.js.map +1 -0
  67. package/dist/src/openclaw/shared.d.ts +10 -17
  68. package/dist/src/openclaw/shared.js +53 -19
  69. package/dist/src/openclaw/shared.js.map +1 -1
  70. package/dist/src/openclaw.d.ts +3 -5
  71. package/dist/src/openclaw.js +245 -60
  72. package/dist/src/openclaw.js.map +1 -1
  73. package/dist/src/platform/process-owned-lock.d.ts +11 -0
  74. package/dist/src/platform/process-owned-lock.js +1698 -0
  75. package/dist/src/platform/process-owned-lock.js.map +1 -0
  76. package/dist/src/platform/recorder-directory.d.ts +1 -0
  77. package/dist/src/platform/recorder-directory.js +14 -0
  78. package/dist/src/platform/recorder-directory.js.map +1 -0
  79. package/dist/src/platform/windows-acl.d.ts +18 -0
  80. package/dist/src/platform/windows-acl.js +1367 -0
  81. package/dist/src/platform/windows-acl.js.map +1 -0
  82. package/dist/src/platform/windows-lock-root.d.ts +13 -0
  83. package/dist/src/platform/windows-lock-root.js +98 -0
  84. package/dist/src/platform/windows-lock-root.js.map +1 -0
  85. package/dist/src/providers/builtin/discord.d.ts +4 -0
  86. package/dist/src/providers/builtin/discord.js +52 -9
  87. package/dist/src/providers/builtin/discord.js.map +1 -1
  88. package/dist/src/providers/builtin/external-webhook-auth.d.ts +1 -0
  89. package/dist/src/providers/builtin/external-webhook-auth.js +38 -1
  90. package/dist/src/providers/builtin/external-webhook-auth.js.map +1 -1
  91. package/dist/src/providers/builtin/feishu.d.ts +1 -0
  92. package/dist/src/providers/builtin/feishu.js +96 -26
  93. package/dist/src/providers/builtin/feishu.js.map +1 -1
  94. package/dist/src/providers/builtin/googlechat.d.ts +1 -0
  95. package/dist/src/providers/builtin/googlechat.js +95 -26
  96. package/dist/src/providers/builtin/googlechat.js.map +1 -1
  97. package/dist/src/providers/builtin/imessage.js +60 -17
  98. package/dist/src/providers/builtin/imessage.js.map +1 -1
  99. package/dist/src/providers/builtin/loopback.js +88 -35
  100. package/dist/src/providers/builtin/loopback.js.map +1 -1
  101. package/dist/src/providers/builtin/matrix.d.ts +2 -2
  102. package/dist/src/providers/builtin/matrix.js +78 -21
  103. package/dist/src/providers/builtin/matrix.js.map +1 -1
  104. package/dist/src/providers/builtin/mattermost.d.ts +11 -7
  105. package/dist/src/providers/builtin/mattermost.js +138 -24
  106. package/dist/src/providers/builtin/mattermost.js.map +1 -1
  107. package/dist/src/providers/builtin/msteams.d.ts +1 -0
  108. package/dist/src/providers/builtin/msteams.js +118 -38
  109. package/dist/src/providers/builtin/msteams.js.map +1 -1
  110. package/dist/src/providers/builtin/native-local-mock.js +4 -4
  111. package/dist/src/providers/builtin/native-local-mock.js.map +1 -1
  112. package/dist/src/providers/builtin/script.js +1057 -146
  113. package/dist/src/providers/builtin/script.js.map +1 -1
  114. package/dist/src/providers/builtin/slack.d.ts +8 -1
  115. package/dist/src/providers/builtin/slack.js +327 -24
  116. package/dist/src/providers/builtin/slack.js.map +1 -1
  117. package/dist/src/providers/builtin/telegram.d.ts +1 -1
  118. package/dist/src/providers/builtin/telegram.js +55 -14
  119. package/dist/src/providers/builtin/telegram.js.map +1 -1
  120. package/dist/src/providers/builtin/whatsapp.d.ts +4 -3
  121. package/dist/src/providers/builtin/whatsapp.js +157 -29
  122. package/dist/src/providers/builtin/whatsapp.js.map +1 -1
  123. package/dist/src/providers/builtin/zalo.d.ts +5 -2
  124. package/dist/src/providers/builtin/zalo.js +31 -7
  125. package/dist/src/providers/builtin/zalo.js.map +1 -1
  126. package/dist/src/providers/catalog.d.ts +1 -1
  127. package/dist/src/providers/catalog.js +1 -1
  128. package/dist/src/providers/catalog.js.map +1 -1
  129. package/dist/src/providers/local-mock.d.ts +4 -0
  130. package/dist/src/providers/local-mock.js +162 -35
  131. package/dist/src/providers/local-mock.js.map +1 -1
  132. package/dist/src/providers/native-ids.d.ts +2 -0
  133. package/dist/src/providers/native-ids.js +3 -0
  134. package/dist/src/providers/native-ids.js.map +1 -1
  135. package/dist/src/providers/recorder.d.ts +14 -3
  136. package/dist/src/providers/recorder.js +521 -41
  137. package/dist/src/providers/recorder.js.map +1 -1
  138. package/dist/src/providers/registry.d.ts +1 -0
  139. package/dist/src/providers/registry.js +65 -20
  140. package/dist/src/providers/registry.js.map +1 -1
  141. package/dist/src/providers/signed-jwt.d.ts +6 -1
  142. package/dist/src/providers/signed-jwt.js +241 -50
  143. package/dist/src/providers/signed-jwt.js.map +1 -1
  144. package/dist/src/providers/slack-ids.d.ts +1 -0
  145. package/dist/src/providers/slack-ids.js +5 -0
  146. package/dist/src/providers/slack-ids.js.map +1 -1
  147. package/dist/src/providers/target-normalizers.d.ts +9 -1
  148. package/dist/src/providers/target-normalizers.js +177 -58
  149. package/dist/src/providers/target-normalizers.js.map +1 -1
  150. package/dist/src/providers/webhook-server.d.ts +3 -0
  151. package/dist/src/providers/webhook-server.js +268 -47
  152. package/dist/src/providers/webhook-server.js.map +1 -1
  153. package/dist/src/servers/discord.d.ts +40 -0
  154. package/dist/src/servers/discord.js +842 -0
  155. package/dist/src/servers/discord.js.map +1 -0
  156. package/dist/src/servers/http.d.ts +14 -2
  157. package/dist/src/servers/http.js +229 -58
  158. package/dist/src/servers/http.js.map +1 -1
  159. package/dist/src/servers/index.d.ts +10 -4
  160. package/dist/src/servers/index.js +4 -0
  161. package/dist/src/servers/index.js.map +1 -1
  162. package/dist/src/servers/matrix.d.ts +3 -0
  163. package/dist/src/servers/matrix.js +268 -110
  164. package/dist/src/servers/matrix.js.map +1 -1
  165. package/dist/src/servers/mattermost.d.ts +5 -0
  166. package/dist/src/servers/mattermost.js +389 -91
  167. package/dist/src/servers/mattermost.js.map +1 -1
  168. package/dist/src/servers/recorder.d.ts +11 -0
  169. package/dist/src/servers/recorder.js +1072 -69
  170. package/dist/src/servers/recorder.js.map +1 -1
  171. package/dist/src/servers/signal.d.ts +1 -0
  172. package/dist/src/servers/signal.js +279 -44
  173. package/dist/src/servers/signal.js.map +1 -1
  174. package/dist/src/servers/slack.d.ts +15 -0
  175. package/dist/src/servers/slack.js +270 -54
  176. package/dist/src/servers/slack.js.map +1 -1
  177. package/dist/src/servers/telegram-identity.d.ts +6 -0
  178. package/dist/src/servers/telegram-identity.js +27 -0
  179. package/dist/src/servers/telegram-identity.js.map +1 -0
  180. package/dist/src/servers/telegram.d.ts +17 -6
  181. package/dist/src/servers/telegram.js +1218 -107
  182. package/dist/src/servers/telegram.js.map +1 -1
  183. package/dist/src/servers/webhook-target.d.ts +12 -4
  184. package/dist/src/servers/webhook-target.js +226 -28
  185. package/dist/src/servers/webhook-target.js.map +1 -1
  186. package/dist/src/servers/whatsapp-baileys-websocket.d.ts +60 -1
  187. package/dist/src/servers/whatsapp-baileys-websocket.js +782 -112
  188. package/dist/src/servers/whatsapp-baileys-websocket.js.map +1 -1
  189. package/dist/src/servers/whatsapp-jid.d.ts +1 -0
  190. package/dist/src/servers/whatsapp-jid.js +9 -5
  191. package/dist/src/servers/whatsapp-jid.js.map +1 -1
  192. package/dist/src/servers/whatsapp-wire/binary-node.d.ts +1 -0
  193. package/dist/src/servers/whatsapp-wire/binary-node.js +37 -13
  194. package/dist/src/servers/whatsapp-wire/binary-node.js.map +1 -1
  195. package/dist/src/servers/whatsapp-wire/crypto.d.ts +3 -0
  196. package/dist/src/servers/whatsapp-wire/crypto.js +23 -8
  197. package/dist/src/servers/whatsapp-wire/crypto.js.map +1 -1
  198. package/dist/src/servers/whatsapp-wire/handshake.d.ts +9 -3
  199. package/dist/src/servers/whatsapp-wire/handshake.js +173 -12
  200. package/dist/src/servers/whatsapp-wire/handshake.js.map +1 -1
  201. package/dist/src/servers/whatsapp-wire/signal.js +3 -3
  202. package/dist/src/servers/whatsapp-wire/signal.js.map +1 -1
  203. package/dist/src/servers/whatsapp.d.ts +7 -1
  204. package/dist/src/servers/whatsapp.js +149 -25
  205. package/dist/src/servers/whatsapp.js.map +1 -1
  206. package/dist/src/servers/zalo.d.ts +1 -0
  207. package/dist/src/servers/zalo.js +193 -82
  208. package/dist/src/servers/zalo.js.map +1 -1
  209. package/docs/channel-setup.md +251 -64
  210. package/fixtures/examples/crabline.example.yaml +3 -2
  211. package/package.json +18 -10
  212. package/dist/src/openclaw/smoke-lock.js +0 -1004
  213. package/dist/src/openclaw/smoke-lock.js.map +0 -1
  214. package/fixtures/examples/openclaw-bridge.yaml +0 -125
@@ -1,14 +1,15 @@
1
1
  export { resolveTelegramAdapterConfig } from "./providers/builtin/telegram.js";
2
2
  export { resolveWhatsAppAdapterConfig } from "./providers/builtin/whatsapp.js";
3
+ export { startDiscordServer } from "./servers/discord.js";
3
4
  export { startMattermostServer } from "./servers/mattermost.js";
4
5
  export { startMatrixServer } from "./servers/matrix.js";
5
6
  export { startSignalServer } from "./servers/signal.js";
6
- export { startSlackServer, startSlackServer as startSlackFakeServer } from "./servers/slack.js";
7
- export { startTelegramServer, startTelegramServer as startTelegramFakeServer, } from "./servers/telegram.js";
8
- export { startWhatsAppServer, startWhatsAppServer as startWhatsAppFakeServer, } from "./servers/whatsapp.js";
7
+ export { startSlackServer } from "./servers/slack.js";
8
+ export { startTelegramServer } from "./servers/telegram.js";
9
+ export { startWhatsAppServer } from "./servers/whatsapp.js";
9
10
  export { startZaloServer } from "./servers/zalo.js";
10
- export { CRABLINE_SERVER_CHANNELS, CRABLINE_SERVER_CHANNELS as CRABLINE_FAKE_PROVIDER_CHANNELS, isCrablineServerChannel, isCrablineServerChannel as isCrablineFakeProviderChannel, startCrablineServer, startCrablineServer as startCrablineFakeProviderServer, } from "./servers/index.js";
11
- export { createOpenClawCrablineAgentDelivery, createOpenClawCrablineChannelReportNotes, createOpenClawCrablineProviderBinding as createOpenClawCrablineFakeProviderBinding, createOpenClawCrablineProviderBinding, createOpenClawCrablineInbound, createOpenClawCrablineOutboundFromRecorderEvent, OPENCLAW_CRABLINE_ARTIFACT_POINTER_PATH, OPENCLAW_CRABLINE_ARTIFACT_STORE_DIRECTORY, OPENCLAW_CRABLINE_CHANNEL_CAPABILITY_MATRIX_PATH, OPENCLAW_CRABLINE_CHANNEL_SMOKE_PATH, OPENCLAW_CRABLINE_PROVIDER_READINESS_PATH, OPENCLAW_CRABLINE_DEFAULT_CHANNEL, OPENCLAW_CRABLINE_MANIFEST_PATH, probeOpenClawCrablineProvider as probeOpenClawCrablineFakeProvider, probeOpenClawCrablineProvider, resolveOpenClawCrablineChannel, resolveOpenClawCrablineChannelDriverSelection, runOpenClawCrablineProviderReadiness, runOpenClawCrablineChannelDriverSmoke, startOpenClawCrablineAdapter, } from "./openclaw.js";
11
+ export { CRABLINE_SERVER_CHANNELS, isCrablineServerChannel, startCrablineServer, } from "./servers/index.js";
12
+ export { createOpenClawCrablineAgentDelivery, createOpenClawCrablineChannelReportNotes, createOpenClawCrablineProviderBinding, createOpenClawCrablineInbound, createOpenClawCrablineOutboundFromRecorderEvent, OPENCLAW_CRABLINE_ARTIFACT_POINTER_PATH, OPENCLAW_CRABLINE_ARTIFACT_STORE_DIRECTORY, OPENCLAW_CRABLINE_CHANNEL_CAPABILITY_MATRIX_PATH, OPENCLAW_CRABLINE_PROVIDER_READINESS_PATH, OPENCLAW_CRABLINE_DEFAULT_CHANNEL, OPENCLAW_CRABLINE_MANIFEST_PATH, probeOpenClawCrablineProvider, resolveOpenClawCrablineChannel, resolveOpenClawCrablineChannelDriverSelection, runOpenClawCrablineProviderReadiness, startOpenClawCrablineAdapter, } from "./openclaw.js";
12
13
  export { BUILTIN_ADAPTERS, FIXTURE_MODES, INBOUND_AUTHORS, INBOUND_NONCE_MODES, INBOUND_STRATEGIES, ManifestSchema, PROVIDER_PLATFORMS, ProviderConfigSchema, } from "./config/schema.js";
13
14
  export { OPENCLAW_SUPPORT_CATALOG } from "./providers/catalog.js";
14
15
  export { createRegistry } from "./providers/registry.js";
@@ -16,14 +17,15 @@ export type { CatalogEntry } from "./providers/catalog.js";
16
17
  export type { Registry } from "./providers/registry.js";
17
18
  export type { ServerRequestEvent } from "./servers/http.js";
18
19
  export type { ServerEventObserver } from "./servers/recorder.js";
20
+ export type { DiscordServerManifest, StartedDiscordServer, StartDiscordServerParams, } from "./servers/discord.js";
19
21
  export type { BuiltinAdapterId, FixtureDefinition, FixtureMode, ManifestDefinition, ProviderConfig, ProviderPlatform, } from "./config/schema.js";
20
22
  export type { InboundEnvelope, NormalizedTarget, ProbeResult, ProviderAdapter, ProviderContext, ProviderSupportStatus, SendContext, SendResult, WaitContext, WatchContext, } from "./providers/types.js";
21
23
  export type { MattermostServerManifest, StartedMattermostServer, StartMattermostServerParams, } from "./servers/mattermost.js";
22
24
  export type { MatrixServerManifest, StartedMatrixServer, StartMatrixServerParams, } from "./servers/matrix.js";
23
25
  export type { SignalServerManifest, StartedSignalServer, StartSignalServerParams, } from "./servers/signal.js";
24
- export type { SlackServerManifest as SlackFakeServerManifest, SlackServerManifest, StartedSlackServer as StartedSlackFakeServer, StartedSlackServer, StartSlackServerParams as StartSlackFakeServerParams, StartSlackServerParams, } from "./servers/slack.js";
25
- export type { StartedTelegramServer as StartedTelegramFakeServer, StartedTelegramServer, StartTelegramServerParams as StartTelegramFakeServerParams, StartTelegramServerParams, TelegramServerManifest as TelegramFakeServerManifest, TelegramServerManifest, } from "./servers/telegram.js";
26
- export type { StartedWhatsAppServer as StartedWhatsAppFakeServer, StartedWhatsAppServer, StartWhatsAppServerParams as StartWhatsAppFakeServerParams, StartWhatsAppServerParams, WhatsAppBaileysMessage, WhatsAppServerManifest as WhatsAppFakeServerManifest, WhatsAppServerManifest, } from "./servers/whatsapp.js";
26
+ export type { SlackServerManifest, StartedSlackServer, StartSlackServerParams, } from "./servers/slack.js";
27
+ export type { StartedTelegramServer, StartTelegramServerParams, TelegramServerManifest, } from "./servers/telegram.js";
28
+ export type { StartedWhatsAppServer, StartWhatsAppServerParams, WhatsAppBaileysMessage, WhatsAppServerManifest, } from "./servers/whatsapp.js";
27
29
  export type { StartedZaloServer, StartZaloServerParams, ZaloServerManifest, } from "./servers/zalo.js";
28
- export type { CrablineServerChannel as CrablineFakeProviderChannel, CrablineServerChannel, CrablineServerManifest as CrablineFakeProviderManifest, CrablineServerManifest, StartedCrablineServer as StartedCrablineFakeProviderServer, StartedCrablineServer, StartCrablineServerParams as StartCrablineFakeProviderServerParams, StartCrablineServerParams, } from "./servers/index.js";
29
- export type { OpenClawCrablineAgentDelivery, OpenClawCrablineChannelDriverSelection, OpenClawCrablineChannelDriverSmokeResult, OpenClawCrablineProviderReadinessResult, OpenClawCrablineConversation, OpenClawCrablineGatewayBinding, OpenClawCrablineInbound, OpenClawCrablineInboundInput, OpenClawCrablineOutboundMessage, StartedOpenClawCrablineAdapter, StartOpenClawCrablineAdapterParams, } from "./openclaw.js";
30
+ export type { CrablineServerChannel, CrablineServerManifest, StartedCrablineServer, StartCrablineServerParams, } from "./servers/index.js";
31
+ export type { OpenClawCrablineAgentDelivery, OpenClawCrablineChannelDriverSelection, OpenClawCrablineProviderReadinessResult, OpenClawCrablineConversation, OpenClawCrablineGatewayBinding, OpenClawCrablineInbound, OpenClawCrablineInboundInput, OpenClawCrablineOutboundMessage, StartedOpenClawCrablineAdapter, StartOpenClawCrablineAdapterParams, } from "./openclaw.js";
package/dist/src/index.js CHANGED
@@ -1,14 +1,15 @@
1
1
  export { resolveTelegramAdapterConfig } from "./providers/builtin/telegram.js";
2
2
  export { resolveWhatsAppAdapterConfig } from "./providers/builtin/whatsapp.js";
3
+ export { startDiscordServer } from "./servers/discord.js";
3
4
  export { startMattermostServer } from "./servers/mattermost.js";
4
5
  export { startMatrixServer } from "./servers/matrix.js";
5
6
  export { startSignalServer } from "./servers/signal.js";
6
- export { startSlackServer, startSlackServer as startSlackFakeServer } from "./servers/slack.js";
7
- export { startTelegramServer, startTelegramServer as startTelegramFakeServer, } from "./servers/telegram.js";
8
- export { startWhatsAppServer, startWhatsAppServer as startWhatsAppFakeServer, } from "./servers/whatsapp.js";
7
+ export { startSlackServer } from "./servers/slack.js";
8
+ export { startTelegramServer } from "./servers/telegram.js";
9
+ export { startWhatsAppServer } from "./servers/whatsapp.js";
9
10
  export { startZaloServer } from "./servers/zalo.js";
10
- export { CRABLINE_SERVER_CHANNELS, CRABLINE_SERVER_CHANNELS as CRABLINE_FAKE_PROVIDER_CHANNELS, isCrablineServerChannel, isCrablineServerChannel as isCrablineFakeProviderChannel, startCrablineServer, startCrablineServer as startCrablineFakeProviderServer, } from "./servers/index.js";
11
- export { createOpenClawCrablineAgentDelivery, createOpenClawCrablineChannelReportNotes, createOpenClawCrablineProviderBinding as createOpenClawCrablineFakeProviderBinding, createOpenClawCrablineProviderBinding, createOpenClawCrablineInbound, createOpenClawCrablineOutboundFromRecorderEvent, OPENCLAW_CRABLINE_ARTIFACT_POINTER_PATH, OPENCLAW_CRABLINE_ARTIFACT_STORE_DIRECTORY, OPENCLAW_CRABLINE_CHANNEL_CAPABILITY_MATRIX_PATH, OPENCLAW_CRABLINE_CHANNEL_SMOKE_PATH, OPENCLAW_CRABLINE_PROVIDER_READINESS_PATH, OPENCLAW_CRABLINE_DEFAULT_CHANNEL, OPENCLAW_CRABLINE_MANIFEST_PATH, probeOpenClawCrablineProvider as probeOpenClawCrablineFakeProvider, probeOpenClawCrablineProvider, resolveOpenClawCrablineChannel, resolveOpenClawCrablineChannelDriverSelection, runOpenClawCrablineProviderReadiness, runOpenClawCrablineChannelDriverSmoke, startOpenClawCrablineAdapter, } from "./openclaw.js";
11
+ export { CRABLINE_SERVER_CHANNELS, isCrablineServerChannel, startCrablineServer, } from "./servers/index.js";
12
+ export { createOpenClawCrablineAgentDelivery, createOpenClawCrablineChannelReportNotes, createOpenClawCrablineProviderBinding, createOpenClawCrablineInbound, createOpenClawCrablineOutboundFromRecorderEvent, OPENCLAW_CRABLINE_ARTIFACT_POINTER_PATH, OPENCLAW_CRABLINE_ARTIFACT_STORE_DIRECTORY, OPENCLAW_CRABLINE_CHANNEL_CAPABILITY_MATRIX_PATH, OPENCLAW_CRABLINE_PROVIDER_READINESS_PATH, OPENCLAW_CRABLINE_DEFAULT_CHANNEL, OPENCLAW_CRABLINE_MANIFEST_PATH, probeOpenClawCrablineProvider, resolveOpenClawCrablineChannel, resolveOpenClawCrablineChannelDriverSelection, runOpenClawCrablineProviderReadiness, startOpenClawCrablineAdapter, } from "./openclaw.js";
12
13
  export { BUILTIN_ADAPTERS, FIXTURE_MODES, INBOUND_AUTHORS, INBOUND_NONCE_MODES, INBOUND_STRATEGIES, ManifestSchema, PROVIDER_PLATFORMS, ProviderConfigSchema, } from "./config/schema.js";
13
14
  export { OPENCLAW_SUPPORT_CATALOG } from "./providers/catalog.js";
14
15
  export { createRegistry } from "./providers/registry.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,IAAI,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAChG,OAAO,EACL,mBAAmB,EACnB,mBAAmB,IAAI,uBAAuB,GAC/C,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,mBAAmB,EACnB,mBAAmB,IAAI,uBAAuB,GAC/C,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EACL,wBAAwB,EACxB,wBAAwB,IAAI,+BAA+B,EAC3D,uBAAuB,EACvB,uBAAuB,IAAI,6BAA6B,EACxD,mBAAmB,EACnB,mBAAmB,IAAI,+BAA+B,GACvD,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,mCAAmC,EACnC,wCAAwC,EACxC,qCAAqC,IAAI,yCAAyC,EAClF,qCAAqC,EACrC,6BAA6B,EAC7B,+CAA+C,EAC/C,uCAAuC,EACvC,0CAA0C,EAC1C,gDAAgD,EAChD,oCAAoC,EACpC,yCAAyC,EACzC,iCAAiC,EACjC,+BAA+B,EAC/B,6BAA6B,IAAI,iCAAiC,EAClE,6BAA6B,EAC7B,8BAA8B,EAC9B,6CAA6C,EAC7C,oCAAoC,EACpC,qCAAqC,EACrC,4BAA4B,GAC7B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC","sourcesContent":["export { resolveTelegramAdapterConfig } from \"./providers/builtin/telegram.js\";\nexport { resolveWhatsAppAdapterConfig } from \"./providers/builtin/whatsapp.js\";\nexport { startMattermostServer } from \"./servers/mattermost.js\";\nexport { startMatrixServer } from \"./servers/matrix.js\";\nexport { startSignalServer } from \"./servers/signal.js\";\nexport { startSlackServer, startSlackServer as startSlackFakeServer } from \"./servers/slack.js\";\nexport {\n startTelegramServer,\n startTelegramServer as startTelegramFakeServer,\n} from \"./servers/telegram.js\";\nexport {\n startWhatsAppServer,\n startWhatsAppServer as startWhatsAppFakeServer,\n} from \"./servers/whatsapp.js\";\nexport { startZaloServer } from \"./servers/zalo.js\";\nexport {\n CRABLINE_SERVER_CHANNELS,\n CRABLINE_SERVER_CHANNELS as CRABLINE_FAKE_PROVIDER_CHANNELS,\n isCrablineServerChannel,\n isCrablineServerChannel as isCrablineFakeProviderChannel,\n startCrablineServer,\n startCrablineServer as startCrablineFakeProviderServer,\n} from \"./servers/index.js\";\nexport {\n createOpenClawCrablineAgentDelivery,\n createOpenClawCrablineChannelReportNotes,\n createOpenClawCrablineProviderBinding as createOpenClawCrablineFakeProviderBinding,\n createOpenClawCrablineProviderBinding,\n createOpenClawCrablineInbound,\n createOpenClawCrablineOutboundFromRecorderEvent,\n OPENCLAW_CRABLINE_ARTIFACT_POINTER_PATH,\n OPENCLAW_CRABLINE_ARTIFACT_STORE_DIRECTORY,\n OPENCLAW_CRABLINE_CHANNEL_CAPABILITY_MATRIX_PATH,\n OPENCLAW_CRABLINE_CHANNEL_SMOKE_PATH,\n OPENCLAW_CRABLINE_PROVIDER_READINESS_PATH,\n OPENCLAW_CRABLINE_DEFAULT_CHANNEL,\n OPENCLAW_CRABLINE_MANIFEST_PATH,\n probeOpenClawCrablineProvider as probeOpenClawCrablineFakeProvider,\n probeOpenClawCrablineProvider,\n resolveOpenClawCrablineChannel,\n resolveOpenClawCrablineChannelDriverSelection,\n runOpenClawCrablineProviderReadiness,\n runOpenClawCrablineChannelDriverSmoke,\n startOpenClawCrablineAdapter,\n} from \"./openclaw.js\";\nexport {\n BUILTIN_ADAPTERS,\n FIXTURE_MODES,\n INBOUND_AUTHORS,\n INBOUND_NONCE_MODES,\n INBOUND_STRATEGIES,\n ManifestSchema,\n PROVIDER_PLATFORMS,\n ProviderConfigSchema,\n} from \"./config/schema.js\";\nexport { OPENCLAW_SUPPORT_CATALOG } from \"./providers/catalog.js\";\nexport { createRegistry } from \"./providers/registry.js\";\nexport type { CatalogEntry } from \"./providers/catalog.js\";\nexport type { Registry } from \"./providers/registry.js\";\nexport type { ServerRequestEvent } from \"./servers/http.js\";\nexport type { ServerEventObserver } from \"./servers/recorder.js\";\nexport type {\n BuiltinAdapterId,\n FixtureDefinition,\n FixtureMode,\n ManifestDefinition,\n ProviderConfig,\n ProviderPlatform,\n} from \"./config/schema.js\";\nexport type {\n InboundEnvelope,\n NormalizedTarget,\n ProbeResult,\n ProviderAdapter,\n ProviderContext,\n ProviderSupportStatus,\n SendContext,\n SendResult,\n WaitContext,\n WatchContext,\n} from \"./providers/types.js\";\nexport type {\n MattermostServerManifest,\n StartedMattermostServer,\n StartMattermostServerParams,\n} from \"./servers/mattermost.js\";\nexport type {\n MatrixServerManifest,\n StartedMatrixServer,\n StartMatrixServerParams,\n} from \"./servers/matrix.js\";\nexport type {\n SignalServerManifest,\n StartedSignalServer,\n StartSignalServerParams,\n} from \"./servers/signal.js\";\nexport type {\n SlackServerManifest as SlackFakeServerManifest,\n SlackServerManifest,\n StartedSlackServer as StartedSlackFakeServer,\n StartedSlackServer,\n StartSlackServerParams as StartSlackFakeServerParams,\n StartSlackServerParams,\n} from \"./servers/slack.js\";\nexport type {\n StartedTelegramServer as StartedTelegramFakeServer,\n StartedTelegramServer,\n StartTelegramServerParams as StartTelegramFakeServerParams,\n StartTelegramServerParams,\n TelegramServerManifest as TelegramFakeServerManifest,\n TelegramServerManifest,\n} from \"./servers/telegram.js\";\nexport type {\n StartedWhatsAppServer as StartedWhatsAppFakeServer,\n StartedWhatsAppServer,\n StartWhatsAppServerParams as StartWhatsAppFakeServerParams,\n StartWhatsAppServerParams,\n WhatsAppBaileysMessage,\n WhatsAppServerManifest as WhatsAppFakeServerManifest,\n WhatsAppServerManifest,\n} from \"./servers/whatsapp.js\";\nexport type {\n StartedZaloServer,\n StartZaloServerParams,\n ZaloServerManifest,\n} from \"./servers/zalo.js\";\nexport type {\n CrablineServerChannel as CrablineFakeProviderChannel,\n CrablineServerChannel,\n CrablineServerManifest as CrablineFakeProviderManifest,\n CrablineServerManifest,\n StartedCrablineServer as StartedCrablineFakeProviderServer,\n StartedCrablineServer,\n StartCrablineServerParams as StartCrablineFakeProviderServerParams,\n StartCrablineServerParams,\n} from \"./servers/index.js\";\nexport type {\n OpenClawCrablineAgentDelivery,\n OpenClawCrablineChannelDriverSelection,\n OpenClawCrablineChannelDriverSmokeResult,\n OpenClawCrablineProviderReadinessResult,\n OpenClawCrablineConversation,\n OpenClawCrablineGatewayBinding,\n OpenClawCrablineInbound,\n OpenClawCrablineInboundInput,\n OpenClawCrablineOutboundMessage,\n StartedOpenClawCrablineAdapter,\n StartOpenClawCrablineAdapterParams,\n} from \"./openclaw.js\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,mCAAmC,EACnC,wCAAwC,EACxC,qCAAqC,EACrC,6BAA6B,EAC7B,+CAA+C,EAC/C,uCAAuC,EACvC,0CAA0C,EAC1C,gDAAgD,EAChD,yCAAyC,EACzC,iCAAiC,EACjC,+BAA+B,EAC/B,6BAA6B,EAC7B,8BAA8B,EAC9B,6CAA6C,EAC7C,oCAAoC,EACpC,4BAA4B,GAC7B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC","sourcesContent":["export { resolveTelegramAdapterConfig } from \"./providers/builtin/telegram.js\";\nexport { resolveWhatsAppAdapterConfig } from \"./providers/builtin/whatsapp.js\";\nexport { startDiscordServer } from \"./servers/discord.js\";\nexport { startMattermostServer } from \"./servers/mattermost.js\";\nexport { startMatrixServer } from \"./servers/matrix.js\";\nexport { startSignalServer } from \"./servers/signal.js\";\nexport { startSlackServer } from \"./servers/slack.js\";\nexport { startTelegramServer } from \"./servers/telegram.js\";\nexport { startWhatsAppServer } from \"./servers/whatsapp.js\";\nexport { startZaloServer } from \"./servers/zalo.js\";\nexport {\n CRABLINE_SERVER_CHANNELS,\n isCrablineServerChannel,\n startCrablineServer,\n} from \"./servers/index.js\";\nexport {\n createOpenClawCrablineAgentDelivery,\n createOpenClawCrablineChannelReportNotes,\n createOpenClawCrablineProviderBinding,\n createOpenClawCrablineInbound,\n createOpenClawCrablineOutboundFromRecorderEvent,\n OPENCLAW_CRABLINE_ARTIFACT_POINTER_PATH,\n OPENCLAW_CRABLINE_ARTIFACT_STORE_DIRECTORY,\n OPENCLAW_CRABLINE_CHANNEL_CAPABILITY_MATRIX_PATH,\n OPENCLAW_CRABLINE_PROVIDER_READINESS_PATH,\n OPENCLAW_CRABLINE_DEFAULT_CHANNEL,\n OPENCLAW_CRABLINE_MANIFEST_PATH,\n probeOpenClawCrablineProvider,\n resolveOpenClawCrablineChannel,\n resolveOpenClawCrablineChannelDriverSelection,\n runOpenClawCrablineProviderReadiness,\n startOpenClawCrablineAdapter,\n} from \"./openclaw.js\";\nexport {\n BUILTIN_ADAPTERS,\n FIXTURE_MODES,\n INBOUND_AUTHORS,\n INBOUND_NONCE_MODES,\n INBOUND_STRATEGIES,\n ManifestSchema,\n PROVIDER_PLATFORMS,\n ProviderConfigSchema,\n} from \"./config/schema.js\";\nexport { OPENCLAW_SUPPORT_CATALOG } from \"./providers/catalog.js\";\nexport { createRegistry } from \"./providers/registry.js\";\nexport type { CatalogEntry } from \"./providers/catalog.js\";\nexport type { Registry } from \"./providers/registry.js\";\nexport type { ServerRequestEvent } from \"./servers/http.js\";\nexport type { ServerEventObserver } from \"./servers/recorder.js\";\nexport type {\n DiscordServerManifest,\n StartedDiscordServer,\n StartDiscordServerParams,\n} from \"./servers/discord.js\";\nexport type {\n BuiltinAdapterId,\n FixtureDefinition,\n FixtureMode,\n ManifestDefinition,\n ProviderConfig,\n ProviderPlatform,\n} from \"./config/schema.js\";\nexport type {\n InboundEnvelope,\n NormalizedTarget,\n ProbeResult,\n ProviderAdapter,\n ProviderContext,\n ProviderSupportStatus,\n SendContext,\n SendResult,\n WaitContext,\n WatchContext,\n} from \"./providers/types.js\";\nexport type {\n MattermostServerManifest,\n StartedMattermostServer,\n StartMattermostServerParams,\n} from \"./servers/mattermost.js\";\nexport type {\n MatrixServerManifest,\n StartedMatrixServer,\n StartMatrixServerParams,\n} from \"./servers/matrix.js\";\nexport type {\n SignalServerManifest,\n StartedSignalServer,\n StartSignalServerParams,\n} from \"./servers/signal.js\";\nexport type {\n SlackServerManifest,\n StartedSlackServer,\n StartSlackServerParams,\n} from \"./servers/slack.js\";\nexport type {\n StartedTelegramServer,\n StartTelegramServerParams,\n TelegramServerManifest,\n} from \"./servers/telegram.js\";\nexport type {\n StartedWhatsAppServer,\n StartWhatsAppServerParams,\n WhatsAppBaileysMessage,\n WhatsAppServerManifest,\n} from \"./servers/whatsapp.js\";\nexport type {\n StartedZaloServer,\n StartZaloServerParams,\n ZaloServerManifest,\n} from \"./servers/zalo.js\";\nexport type {\n CrablineServerChannel,\n CrablineServerManifest,\n StartedCrablineServer,\n StartCrablineServerParams,\n} from \"./servers/index.js\";\nexport type {\n OpenClawCrablineAgentDelivery,\n OpenClawCrablineChannelDriverSelection,\n OpenClawCrablineProviderReadinessResult,\n OpenClawCrablineConversation,\n OpenClawCrablineGatewayBinding,\n OpenClawCrablineInbound,\n OpenClawCrablineInboundInput,\n OpenClawCrablineOutboundMessage,\n StartedOpenClawCrablineAdapter,\n StartOpenClawCrablineAdapterParams,\n} from \"./openclaw.js\";\n"]}
@@ -0,0 +1,5 @@
1
+ export declare function isMatrixServerName(value: string): boolean;
2
+ export declare function isMatrixRoomId(value: string): boolean;
3
+ export declare function isMatrixEventId(value: string): boolean;
4
+ export declare function isMatrixUserId(value: string): boolean;
5
+ export declare function isHistoricalMatrixUserId(value: string): boolean;
@@ -0,0 +1,83 @@
1
+ import { isIP } from "node:net";
2
+ const MAX_MATRIX_IDENTIFIER_BYTES = 255;
3
+ function isMatrixIpv4Address(value) {
4
+ const octets = value.split(".");
5
+ return (octets.length === 4 && octets.every((octet) => /^\d{1,3}$/u.test(octet) && Number(octet) <= 255));
6
+ }
7
+ export function isMatrixServerName(value) {
8
+ const ipv6 = /^\[([^\]]+)\](?::(\d{1,5}))?$/u.exec(value);
9
+ if (ipv6) {
10
+ return isIP(ipv6[1]) === 6;
11
+ }
12
+ const hostAndPort = /^([^:]+?)(?::(\d{1,5}))?$/u.exec(value);
13
+ if (!hostAndPort) {
14
+ return false;
15
+ }
16
+ const hostname = hostAndPort[1];
17
+ if (isMatrixIpv4Address(hostname)) {
18
+ return true;
19
+ }
20
+ if (/^\d+\.\d+\.\d+\.\d+$/u.test(hostname)) {
21
+ return false;
22
+ }
23
+ return hostname.length <= 255 && /^[A-Za-z0-9.-]+$/u.test(hostname);
24
+ }
25
+ function hasLoneSurrogate(value) {
26
+ for (let index = 0; index < value.length; index += 1) {
27
+ const code = value.charCodeAt(index);
28
+ if (code >= 0xd800 && code <= 0xdbff) {
29
+ const next = value.charCodeAt(index + 1);
30
+ if (next < 0xdc00 || next > 0xdfff) {
31
+ return true;
32
+ }
33
+ index += 1;
34
+ }
35
+ else if (code >= 0xdc00 && code <= 0xdfff) {
36
+ return true;
37
+ }
38
+ }
39
+ return false;
40
+ }
41
+ function isMatrixScopedIdentifier(value, sigil, allowEmptyLocalpart = false) {
42
+ const separator = value.indexOf(":");
43
+ const localpart = value.slice(1, separator);
44
+ return (value.startsWith(sigil) &&
45
+ Buffer.byteLength(value, "utf8") <= MAX_MATRIX_IDENTIFIER_BYTES &&
46
+ separator >= (allowEmptyLocalpart ? 1 : 2) &&
47
+ !localpart.includes("\0") &&
48
+ !hasLoneSurrogate(localpart) &&
49
+ isMatrixServerName(value.slice(separator + 1)));
50
+ }
51
+ function isMatrixHashIdentifier(value, sigil, allowLegacyBase64) {
52
+ if (!value.startsWith(sigil) || Buffer.byteLength(value, "utf8") > MAX_MATRIX_IDENTIFIER_BYTES) {
53
+ return false;
54
+ }
55
+ const opaqueId = value.slice(1);
56
+ const encoding = allowLegacyBase64 && /^[A-Za-z0-9+/]{43}$/u.test(opaqueId)
57
+ ? "base64"
58
+ : /^[A-Za-z0-9_-]{43}$/u.test(opaqueId)
59
+ ? "base64url"
60
+ : undefined;
61
+ if (!encoding) {
62
+ return false;
63
+ }
64
+ const decoded = Buffer.from(opaqueId, encoding);
65
+ return decoded.length === 32 && decoded.toString(encoding).replace(/=+$/u, "") === opaqueId;
66
+ }
67
+ export function isMatrixRoomId(value) {
68
+ return isMatrixScopedIdentifier(value, "!") || isMatrixHashIdentifier(value, "!", false);
69
+ }
70
+ export function isMatrixEventId(value) {
71
+ return isMatrixScopedIdentifier(value, "$") || isMatrixHashIdentifier(value, "$", true);
72
+ }
73
+ export function isMatrixUserId(value) {
74
+ if (!isMatrixScopedIdentifier(value, "@")) {
75
+ return false;
76
+ }
77
+ const localpart = value.slice(1, value.indexOf(":"));
78
+ return /^[a-z0-9._=/+-]+$/u.test(localpart);
79
+ }
80
+ export function isHistoricalMatrixUserId(value) {
81
+ return isMatrixScopedIdentifier(value, "@", true);
82
+ }
83
+ //# sourceMappingURL=matrix-ids.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matrix-ids.js","sourceRoot":"","sources":["../../src/matrix-ids.ts"],"names":[],"mappings":"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","sourcesContent":["import { isIP } from \"node:net\";\n\nconst MAX_MATRIX_IDENTIFIER_BYTES = 255;\n\nfunction isMatrixIpv4Address(value: string): boolean {\n const octets = value.split(\".\");\n return (\n octets.length === 4 && octets.every((octet) => /^\\d{1,3}$/u.test(octet) && Number(octet) <= 255)\n );\n}\n\nexport function isMatrixServerName(value: string): boolean {\n const ipv6 = /^\\[([^\\]]+)\\](?::(\\d{1,5}))?$/u.exec(value);\n if (ipv6) {\n return isIP(ipv6[1]!) === 6;\n }\n const hostAndPort = /^([^:]+?)(?::(\\d{1,5}))?$/u.exec(value);\n if (!hostAndPort) {\n return false;\n }\n const hostname = hostAndPort[1]!;\n if (isMatrixIpv4Address(hostname)) {\n return true;\n }\n if (/^\\d+\\.\\d+\\.\\d+\\.\\d+$/u.test(hostname)) {\n return false;\n }\n return hostname.length <= 255 && /^[A-Za-z0-9.-]+$/u.test(hostname);\n}\n\nfunction hasLoneSurrogate(value: string): boolean {\n for (let index = 0; index < value.length; index += 1) {\n const code = value.charCodeAt(index);\n if (code >= 0xd800 && code <= 0xdbff) {\n const next = value.charCodeAt(index + 1);\n if (next < 0xdc00 || next > 0xdfff) {\n return true;\n }\n index += 1;\n } else if (code >= 0xdc00 && code <= 0xdfff) {\n return true;\n }\n }\n return false;\n}\n\nfunction isMatrixScopedIdentifier(\n value: string,\n sigil: \"!\" | \"$\" | \"@\",\n allowEmptyLocalpart = false,\n): boolean {\n const separator = value.indexOf(\":\");\n const localpart = value.slice(1, separator);\n return (\n value.startsWith(sigil) &&\n Buffer.byteLength(value, \"utf8\") <= MAX_MATRIX_IDENTIFIER_BYTES &&\n separator >= (allowEmptyLocalpart ? 1 : 2) &&\n !localpart.includes(\"\\0\") &&\n !hasLoneSurrogate(localpart) &&\n isMatrixServerName(value.slice(separator + 1))\n );\n}\n\nfunction isMatrixHashIdentifier(\n value: string,\n sigil: \"!\" | \"$\",\n allowLegacyBase64: boolean,\n): boolean {\n if (!value.startsWith(sigil) || Buffer.byteLength(value, \"utf8\") > MAX_MATRIX_IDENTIFIER_BYTES) {\n return false;\n }\n const opaqueId = value.slice(1);\n const encoding =\n allowLegacyBase64 && /^[A-Za-z0-9+/]{43}$/u.test(opaqueId)\n ? \"base64\"\n : /^[A-Za-z0-9_-]{43}$/u.test(opaqueId)\n ? \"base64url\"\n : undefined;\n if (!encoding) {\n return false;\n }\n const decoded = Buffer.from(opaqueId, encoding);\n return decoded.length === 32 && decoded.toString(encoding).replace(/=+$/u, \"\") === opaqueId;\n}\n\nexport function isMatrixRoomId(value: string): boolean {\n return isMatrixScopedIdentifier(value, \"!\") || isMatrixHashIdentifier(value, \"!\", false);\n}\n\nexport function isMatrixEventId(value: string): boolean {\n return isMatrixScopedIdentifier(value, \"$\") || isMatrixHashIdentifier(value, \"$\", true);\n}\n\nexport function isMatrixUserId(value: string): boolean {\n if (!isMatrixScopedIdentifier(value, \"@\")) {\n return false;\n }\n const localpart = value.slice(1, value.indexOf(\":\"));\n return /^[a-z0-9._=/+-]+$/u.test(localpart);\n}\n\nexport function isHistoricalMatrixUserId(value: string): boolean {\n return isMatrixScopedIdentifier(value, \"@\", true);\n}\n"]}
@@ -1,20 +1,21 @@
1
1
  import type { CrablineServerManifest } from "../servers/index.js";
2
2
  import { publishPrivateFileAtomically, syncParentDirectory } from "./private-file.js";
3
3
  import { type OpenClawCrablineChannelDriverSelection } from "./shared.js";
4
- import type { OpenClawCrablineSmokeRunLock } from "./smoke-lock.js";
5
- export type OpenClawCrablineArtifactPointer = {
4
+ import type { OpenClawCrablineProviderReadinessLock } from "./provider-readiness-lock.js";
5
+ type OpenClawCrablineArtifactPointerBase = {
6
6
  capabilityMatrixPath: string;
7
7
  generation: string;
8
8
  manifestPath: string;
9
9
  previousGeneration?: string;
10
10
  providerReadinessArtifactPath: string;
11
- smokeArtifactPath: string;
12
- version: 1;
11
+ };
12
+ export type OpenClawCrablineArtifactPointer = OpenClawCrablineArtifactPointerBase & {
13
+ recorderSnapshotPath: string | null;
14
+ version: 3;
13
15
  };
14
16
  export type PublishedOpenClawCrablineArtifactGeneration = OpenClawCrablineArtifactPointer & {
15
17
  pointerPath: string;
16
18
  providerReadiness: Record<string, unknown>;
17
- smoke: Record<string, unknown>;
18
19
  warnings?: string[];
19
20
  };
20
21
  type PublishGenerationDependencies = {
@@ -33,7 +34,7 @@ type RecorderSnapshot = {
33
34
  export declare function readOpenClawCrablineArtifactPointer(outputDir: string): Promise<OpenClawCrablineArtifactPointer | null>;
34
35
  export declare function publishOpenClawCrablineArtifactGeneration(params: {
35
36
  capabilityReport: unknown;
36
- lock: OpenClawCrablineSmokeRunLock;
37
+ lock: OpenClawCrablineProviderReadinessLock;
37
38
  manifest: CrablineServerManifest;
38
39
  outputDir: string;
39
40
  recorderSnapshot?: RecorderSnapshot;