@senguoyun/dsh-arkme 0.1.85 → 0.1.87

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 (77) hide show
  1. package/docs/recognized-speaker-directory-backend-handoff-2026-09-28.md +2 -0
  2. package/docs/recognized-speaker-entry-and-visits.md +2 -0
  3. package/docs/recognized-speaker-sorting.md +2 -0
  4. package/docs/self-role-avatar-cache.md +59 -0
  5. package/docs/speaker-directory-integration-2026-09-30.md +53 -0
  6. package/lib/client.js +1336 -1168
  7. package/lib/client.js.map +1 -1
  8. package/lib/harness-model-client.js +14 -0
  9. package/lib/harness-native-selection-client.js +14 -0
  10. package/lib/harness-sidebar-client.js +14 -0
  11. package/lib/index.js +28 -9
  12. package/lib/persistent-extension.js +1 -1
  13. package/lib/{persistent-runtime-adGFmkIa.js → persistent-runtime-0qn1BZ6S.js} +733 -136
  14. package/lib/sdk.js +14 -0
  15. package/lib/types/arkme-service.d.ts +7 -0
  16. package/lib/types/arkme-service.d.ts.map +1 -1
  17. package/lib/types/client/ArkmeAvatar.d.ts +2 -1
  18. package/lib/types/client/ArkmeAvatar.d.ts.map +1 -1
  19. package/lib/types/client/ArkmeRecognizedSpeakersSurface.d.ts +3 -30
  20. package/lib/types/client/ArkmeRecognizedSpeakersSurface.d.ts.map +1 -1
  21. package/lib/types/client/ArkmeSelfRolePicker.d.ts.map +1 -1
  22. package/lib/types/client/ArkmeSidebar.d.ts.map +1 -1
  23. package/lib/types/client/api.d.ts +1 -1
  24. package/lib/types/client/api.d.ts.map +1 -1
  25. package/lib/types/client/avatar-image-runtime.d.ts.map +1 -1
  26. package/lib/types/client/avatar-image-store.d.ts +10 -0
  27. package/lib/types/client/avatar-image-store.d.ts.map +1 -1
  28. package/lib/types/client/avatar-persistent-cache.d.ts +16 -0
  29. package/lib/types/client/avatar-persistent-cache.d.ts.map +1 -0
  30. package/lib/types/client/locales/actions-en.d.ts.map +1 -1
  31. package/lib/types/client/reaction-notifications.d.ts.map +1 -1
  32. package/lib/types/client/reaction-preview-store.d.ts +4 -1
  33. package/lib/types/client/reaction-preview-store.d.ts.map +1 -1
  34. package/lib/types/client/reaction-transport.d.ts +4 -0
  35. package/lib/types/client/reaction-transport.d.ts.map +1 -0
  36. package/lib/types/client/realtime-client-events.d.ts.map +1 -1
  37. package/lib/types/client/recognized-speaker-directory.d.ts +51 -22
  38. package/lib/types/client/recognized-speaker-directory.d.ts.map +1 -1
  39. package/lib/types/client/recordings/RecognizedSpeakerEntry.d.ts +2 -4
  40. package/lib/types/client/recordings/RecognizedSpeakerEntry.d.ts.map +1 -1
  41. package/lib/types/client/recordings/recording-speaker-options-store.d.ts.map +1 -1
  42. package/lib/types/host-api.d.ts.map +1 -1
  43. package/lib/types/local-database.d.ts +1 -0
  44. package/lib/types/local-database.d.ts.map +1 -1
  45. package/lib/types/reaction-contract.d.ts +4 -0
  46. package/lib/types/reaction-contract.d.ts.map +1 -1
  47. package/lib/types/reaction-diagnostics.d.ts +4 -0
  48. package/lib/types/reaction-diagnostics.d.ts.map +1 -0
  49. package/lib/types/reaction-host-diagnostics.d.ts +6 -0
  50. package/lib/types/reaction-host-diagnostics.d.ts.map +1 -0
  51. package/lib/types/recording-presence.d.ts +1 -1
  52. package/lib/types/request-coordinator.d.ts +2 -0
  53. package/lib/types/request-coordinator.d.ts.map +1 -1
  54. package/lib/types/sdk/index.d.ts +2 -0
  55. package/lib/types/sdk/index.d.ts.map +1 -1
  56. package/lib/types/services/chat-service.d.ts +1 -0
  57. package/lib/types/services/chat-service.d.ts.map +1 -1
  58. package/lib/types/services/media-service.d.ts +14 -0
  59. package/lib/types/services/media-service.d.ts.map +1 -1
  60. package/lib/types/services/profile-service.d.ts.map +1 -1
  61. package/lib/types/services/reaction-service.d.ts.map +1 -1
  62. package/lib/types/services/recording-service.d.ts +4 -0
  63. package/lib/types/services/recording-service.d.ts.map +1 -1
  64. package/lib/types/services/service.d.ts +1 -0
  65. package/lib/types/services/service.d.ts.map +1 -1
  66. package/lib/types/services/speaker-directory-service.d.ts +19 -0
  67. package/lib/types/services/speaker-directory-service.d.ts.map +1 -0
  68. package/lib/types/services/unmarked-speaker-service.d.ts +2 -0
  69. package/lib/types/services/unmarked-speaker-service.d.ts.map +1 -1
  70. package/lib/types/speaker-directory-contract.d.ts +71 -0
  71. package/lib/types/speaker-directory-contract.d.ts.map +1 -0
  72. package/lib/types/tools/business/media/read-image.d.ts.map +1 -1
  73. package/lib/types/tools/ports/media.d.ts +1 -0
  74. package/lib/types/tools/ports/media.d.ts.map +1 -1
  75. package/lib/types/types.d.ts +2 -1
  76. package/lib/types/types.d.ts.map +1 -1
  77. package/package.json +5 -5
@@ -2808,6 +2808,20 @@ AI 额度充值流程|AI point purchase
2808
2808
  if (imageRef.trim() === "") throw new TypeError("Arkme image reference must not be empty");
2809
2809
  return await this.call("image.read", { imageRef }, signal);
2810
2810
  }
2811
+ /** Probe immutable image bytes without starting an upstream request. */
2812
+ async readCachedImage(imageRef, signal) {
2813
+ if (imageRef.trim() === "") throw new TypeError("Arkme image reference must not be empty");
2814
+ if ((await this.capabilities(signal)).features.imageCacheRead !== true) throw new Error("当前 Arkme Provider 不支持本地头像探测,请升级");
2815
+ try {
2816
+ return await this.call("image.read", {
2817
+ imageRef,
2818
+ cacheOnly: true
2819
+ }, signal);
2820
+ } catch (error) {
2821
+ if (error instanceof ArkmeClientError && error.body.code === "image-cache-miss") return void 0;
2822
+ throw error;
2823
+ }
2824
+ }
2811
2825
  /** Convert a Provider image payload into a browser-renderable data URL. */
2812
2826
  imageDataUrl(image) {
2813
2827
  return `data:${image.mediaType};base64,${image.dataBase64}`;
@@ -825,6 +825,20 @@ window.__ModuleLoader__.load({
825
825
  if (imageRef.trim() === "") throw new TypeError("Arkme image reference must not be empty");
826
826
  return await this.call("image.read", { imageRef }, signal);
827
827
  }
828
+ /** Probe immutable image bytes without starting an upstream request. */
829
+ async readCachedImage(imageRef, signal) {
830
+ if (imageRef.trim() === "") throw new TypeError("Arkme image reference must not be empty");
831
+ if ((await this.capabilities(signal)).features.imageCacheRead !== true) throw new Error("当前 Arkme Provider 不支持本地头像探测,请升级");
832
+ try {
833
+ return await this.call("image.read", {
834
+ imageRef,
835
+ cacheOnly: true
836
+ }, signal);
837
+ } catch (error) {
838
+ if (error instanceof ArkmeClientError && error.body.code === "image-cache-miss") return void 0;
839
+ throw error;
840
+ }
841
+ }
828
842
  /** Convert a Provider image payload into a browser-renderable data URL. */
829
843
  imageDataUrl(image) {
830
844
  return `data:${image.mediaType};base64,${image.dataBase64}`;
@@ -767,6 +767,20 @@ window.__ModuleLoader__.load({
767
767
  if (imageRef.trim() === "") throw new TypeError("Arkme image reference must not be empty");
768
768
  return await this.call("image.read", { imageRef }, signal);
769
769
  }
770
+ /** Probe immutable image bytes without starting an upstream request. */
771
+ async readCachedImage(imageRef, signal) {
772
+ if (imageRef.trim() === "") throw new TypeError("Arkme image reference must not be empty");
773
+ if ((await this.capabilities(signal)).features.imageCacheRead !== true) throw new Error("当前 Arkme Provider 不支持本地头像探测,请升级");
774
+ try {
775
+ return await this.call("image.read", {
776
+ imageRef,
777
+ cacheOnly: true
778
+ }, signal);
779
+ } catch (error) {
780
+ if (error instanceof ArkmeClientError && error.body.code === "image-cache-miss") return void 0;
781
+ throw error;
782
+ }
783
+ }
770
784
  /** Convert a Provider image payload into a browser-renderable data URL. */
771
785
  imageDataUrl(image) {
772
786
  return `data:${image.mediaType};base64,${image.dataBase64}`;
package/lib/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { A as inspectNativeBundleArtifactV3, At as recordOwnerId, Bt as __exportAll, Ct as recordingImportFileNameKey, D as bundleSha256, E as arkmeSandboxEntryId, Et as registerManagedAiProvider, F as assertExtensionArtifactSize, Ft as parseArrangementBoardCachePages, G as validateVoiceprintPcm16Wav, Ht as __toCommonJS, I as canonicalExtensionJson, It as registerDSHAgentInputRecordSync, J as arkmeRequiredLinkMetadataFallback, K as arkmeExtensionShareRefFromLink, L as sha256Hex, Lt as createDesktopLifecycleReader, M as packLocalNativeBundleDirectoryV3, Mt as parseArkmeRecordReeditAttachments, N as readNativeBundleTarballV3, Nt as parseArkmeRecordReeditMentions, O as canonicalBundleJson, Ot as ArkmePluginError, P as renderArkmeSandboxHostEntry, Q as ARKME_PROVIDER_CONTRACT_VERSION, R as unpackArkmeExtension, Rt as __commonJSMin, S as ARKME_BUNDLE_ARTIFACT_KIND, T as ArkmeBundleArtifactError, Tt as normalizeRecentEmojiIds, U as ARKME_EXTENSION_RUNTIME_UNAVAILABLE_MESSAGE, Vt as __require, W as ArkmeService, X as arkmeRichBackgroundSound, Y as arkmeFileBackgroundSound, Z as ARKME_DEFAULT_SHARE_WEBSITE, _ as arkmeClientContentDigest, _t as ArkmeDirectMessageAdmissionError, at as cachedMemberItem, b as verifyExtensionResolutionSignature, bt as recordingImportFileKind, c as persistentExtensionBundleDirectory, ct as SelfRoleSyncStore, d as readPersistentExtensionActivation, dt as arkmeCanInlineLocalFile, f as refreshPersistentClientWrapper, ft as arkmeNormalizedFileMimeType, g as activeProfileExtensionOwnerConflicts, gt as SecretValue, h as renderArkmeBundleClientBundle, ht as ArkmeOutgoingCallError, i as invokePersistentArkmeExtension, it as applyMemberUpdate, j as packBundleFiles, jt as ArkmeRecordReeditDraftConflict, k as inspectBundleArtifact, kt as retryAfterMillis, l as persistentExtensionPackageIdentity, lt as ARKME_RUNTIME_INSTANCE_ID, m as writePersistentExtensionActivation, mt as isArkmeBotAvatarRef, nt as ARKME_WORLD_PUBLISH_MAX_IMAGES, o as persistentArkmeExtensionRuntimeState, ot as mergeMemberJoinEvents, p as repairPersistentExtensionInstallation, pt as arkmePickedFileKind, q as arkmeIsGenericLinkMetadataTitle, r as deactivatePersistentArkmeExtension, rt as ARKME_WORLD_PUBLISH_MAX_IMAGE_BYTES, s as materializePersistentExtensionBundle, st as validateMemberUpdate, t as activatePersistentArkmeExtension, u as quarantinePersistentExtension, ut as ARKME_TOOL_FILE_MAX_BYTES, v as arkmeClientContentDigestFromSource, vt as isRecordingInstantOnOrAfterUnixEpoch, w as ARKME_NATIVE_BUNDLE_ARTIFACT_KIND, wt as isRecentEmojiId, x as verifyNativeBundleResolutionSignature, xt as sameRecordingImportIdentity, y as verifyBundleResolutionSignature, yt as isUnresolvedRecordingImportJob, z as ARKME_EXTENSION_FORMAT, zt as __esmMin } from "./persistent-runtime-adGFmkIa.js";
1
+ import { A as inspectNativeBundleArtifactV3, At as recordOwnerId, Bt as __exportAll, Ct as recordingImportFileNameKey, D as bundleSha256, E as arkmeSandboxEntryId, Et as registerManagedAiProvider, F as assertExtensionArtifactSize, Ft as parseArrangementBoardCachePages, G as validateVoiceprintPcm16Wav, Ht as __toCommonJS, I as canonicalExtensionJson, It as registerDSHAgentInputRecordSync, J as arkmeRequiredLinkMetadataFallback, K as arkmeExtensionShareRefFromLink, L as sha256Hex, Lt as createDesktopLifecycleReader, M as packLocalNativeBundleDirectoryV3, Mt as parseArkmeRecordReeditAttachments, N as readNativeBundleTarballV3, Nt as parseArkmeRecordReeditMentions, O as canonicalBundleJson, Ot as ArkmePluginError, P as renderArkmeSandboxHostEntry, Q as ARKME_PROVIDER_CONTRACT_VERSION, R as unpackArkmeExtension, Rt as __commonJSMin, S as ARKME_BUNDLE_ARTIFACT_KIND, T as ArkmeBundleArtifactError, Tt as normalizeRecentEmojiIds, U as ARKME_EXTENSION_RUNTIME_UNAVAILABLE_MESSAGE, Vt as __require, W as ArkmeService, X as arkmeRichBackgroundSound, Y as arkmeFileBackgroundSound, Z as ARKME_DEFAULT_SHARE_WEBSITE, _ as arkmeClientContentDigest, _t as ArkmeDirectMessageAdmissionError, at as cachedMemberItem, b as verifyExtensionResolutionSignature, bt as recordingImportFileKind, c as persistentExtensionBundleDirectory, ct as SelfRoleSyncStore, d as readPersistentExtensionActivation, dt as arkmeCanInlineLocalFile, f as refreshPersistentClientWrapper, ft as arkmeNormalizedFileMimeType, g as activeProfileExtensionOwnerConflicts, gt as SecretValue, h as renderArkmeBundleClientBundle, ht as ArkmeOutgoingCallError, i as invokePersistentArkmeExtension, it as applyMemberUpdate, j as packBundleFiles, jt as ArkmeRecordReeditDraftConflict, k as inspectBundleArtifact, kt as retryAfterMillis, l as persistentExtensionPackageIdentity, lt as ARKME_RUNTIME_INSTANCE_ID, m as writePersistentExtensionActivation, mt as isArkmeBotAvatarRef, nt as ARKME_WORLD_PUBLISH_MAX_IMAGES, o as persistentArkmeExtensionRuntimeState, ot as mergeMemberJoinEvents, p as repairPersistentExtensionInstallation, pt as arkmePickedFileKind, q as arkmeIsGenericLinkMetadataTitle, r as deactivatePersistentArkmeExtension, rt as ARKME_WORLD_PUBLISH_MAX_IMAGE_BYTES, s as materializePersistentExtensionBundle, st as validateMemberUpdate, t as activatePersistentArkmeExtension, u as quarantinePersistentExtension, ut as ARKME_TOOL_FILE_MAX_BYTES, v as arkmeClientContentDigestFromSource, vt as isRecordingInstantOnOrAfterUnixEpoch, w as ARKME_NATIVE_BUNDLE_ARTIFACT_KIND, wt as isRecentEmojiId, x as verifyNativeBundleResolutionSignature, xt as sameRecordingImportIdentity, y as verifyBundleResolutionSignature, yt as isUnresolvedRecordingImportJob, z as ARKME_EXTENSION_FORMAT, zt as __esmMin } from "./persistent-runtime-0qn1BZ6S.js";
2
2
  import { i as securePrivateFileSync, n as securePrivateDirectorySync, r as securePrivateFile, t as securePrivateDirectory } from "./private-filesystem-CGh4FtyA.js";
3
3
  import { _ as parsePluginUpdateManifest, b as validatePluginUpdateServiceOrigin, d as writePluginUpdateLifecycleLog, f as PluginUpdateInstallStateStore, g as existingCachedPluginArtifactPath, h as downloadAndCachePluginArtifact, m as PluginUpdateArtifactError, n as buildTargetInstallArgs, o as reconcilePluginUpdaterProfilePolicy, p as ARKME_PLUGIN_PACKAGE_NAME$1, t as assertTargetArtifactIntegrity, u as detachManagedProfilePluginLink, v as pluginUpdateEndpointUrl, y as validatePluginUpdateArtifactOrigin } from "./plugin-updater-helper-dNxHpiVg.js";
4
4
  import { i as prepareProfilePackageManager, n as isArkmeProfilePackageName, r as localExtensionPnpmArgs, t as applyArkmeProfileBundlePolicy } from "./profile-bundle-policy-8_y3QfHe.js";
@@ -14277,6 +14277,7 @@ function createArkmeHostApi(service, options) {
14277
14277
  "recordings.import.session.update-ownership",
14278
14278
  "recordings.import.session.delete",
14279
14279
  "recordings.speaker.assign-item",
14280
+ "speaker-directory.seen",
14280
14281
  "openapi.mcp.retry",
14281
14282
  "team.create",
14282
14283
  "team.join-by-jotmo-id"
@@ -14643,6 +14644,11 @@ async function dispatchArkmeHostOperation(service, operation, params, updateMana
14643
14644
  case "recordings.import.session.delete": return await service.deleteRecordingImportSession(stringParam(params, "sessionRef").trim(), requestSignal);
14644
14645
  case "recordings.playback.open": return await service.recordingPlayback(stringParam(params, "itemRef").trim(), requestSignal);
14645
14646
  case "recordings.speaker.cached-options": return await service.cachedRecordingSpeakerOptions(requestSignal);
14647
+ case "speaker-directory.summary": return await service.speakerDirectorySummary(params, requestSignal);
14648
+ case "speaker-directory.list": return await service.speakerDirectoryList(params, requestSignal);
14649
+ case "speaker-directory.seen": return await service.speakerDirectorySeen(params, requestSignal);
14650
+ case "speaker-directory.open": return await service.speakerDirectoryOpen(params, requestSignal);
14651
+ case "speaker-directory.avatars": return await service.speakerDirectoryAvatars(params, requestSignal);
14646
14652
  case "recordings.speaker.options": return await service.recordingSpeakerOptions(requestSignal);
14647
14653
  case "recordings.speaker.presence": return await service.recordingSpeakerPresence(requestSignal);
14648
14654
  case "recordings.speaker.members": return await service.recordingSpeakerMembers(stringParam(params, "speakerRef").trim(), requestSignal, stringParam(params, "expectedVersion").trim() || void 0);
@@ -14833,7 +14839,7 @@ async function dispatchArkmeHostOperation(service, operation, params, updateMana
14833
14839
  case "user.arkme-id.check": return await service.checkArkmeIdAvailability(stringParam(params, "arkmeId"));
14834
14840
  case "user.arkme-id.set": return await service.setArkmeIdOnce(stringParam(params, "arkmeId"));
14835
14841
  case "image.read": {
14836
- const image = await service.readImage(stringParam(params, "imageRef"));
14842
+ const image = params.cacheOnly === true ? await service.readImage(stringParam(params, "imageRef"), { cacheOnly: true }) : await service.readImage(stringParam(params, "imageRef"));
14837
14843
  return {
14838
14844
  mediaType: image.mediaType,
14839
14845
  bytes: image.bytes,
@@ -19964,6 +19970,9 @@ var ArkmeLocalDatabase = class {
19964
19970
  });
19965
19971
  this.secureDatabaseFiles();
19966
19972
  }
19973
+ async selfRoleAvatarLocalRef(userId, fileAssetUid) {
19974
+ return this.database.prepare("SELECT local_ref FROM self_role_avatar_asset WHERE user_id=? AND asset_uid=? LIMIT 1").get(userId, fileAssetUid)?.local_ref;
19975
+ }
19967
19976
  async readAvatarCache(userId, imageRef) {
19968
19977
  const row = this.database.prepare("SELECT media_type, data FROM avatar_cache WHERE user_id=? AND image_ref=?").get(userId, imageRef);
19969
19978
  if (row === void 0) return void 0;
@@ -27707,7 +27716,7 @@ const readReactionsToolModule = defineArkmeCoreToolModule({
27707
27716
  parameters: { request_json: {
27708
27717
  type: "string",
27709
27718
  required: true,
27710
- description: "ReactionRequest JSON: accountKey and action; notifications after_id/limit (max50); query targets (max50); actors target/key/after_user_id/limit; history start_at/end_at/before_at/before_id/limit (UTC ms, max32 days); groups target/after_key/limit; received world_only/limit/before_at/before_id; history-policy-query and library-query no extra fields."
27719
+ description: "ReactionRequest JSON: accountKey and action; notifications after_id/limit (max50); query targets (max50), optional actorPresentation:\"deferred\" returns authorized actor IDs/memberRefs immediately with presentationPending:true for caller-side cached names; omit it for complete names; actors target/key/after_user_id/limit; history start_at/end_at/before_at/before_id/limit (UTC ms, max32 days); groups target/after_key/limit; received world_only/limit/before_at/before_id; history-policy-query and library-query no extra fields."
27711
27720
  } },
27712
27721
  output: TEXT_OUTPUT$3,
27713
27722
  async execute(args, exec) {
@@ -30144,11 +30153,17 @@ function createArkmeImageToolDefinition(ctx, service) {
30144
30153
  return defineTool({
30145
30154
  name: "arkme_image_read",
30146
30155
  description: "Read an image reference returned by the Arkme Provider and return the image itself. This includes image-library items, the signed-in profile avatar, and authorized private/group chat avatars. The Provider refreshes Arkme authorization without exposing signed OSS URLs and rejects guessed or cross-account references. Requires the current model to accept image input.",
30147
- parameters: { image_ref: {
30148
- type: "string",
30149
- required: true,
30150
- description: "An image reference returned by arkme_images_list, arkme_user_profile, or arkme_sources_list. Never construct, parse, or guess this value."
30151
- } },
30156
+ parameters: {
30157
+ cache_only: {
30158
+ type: "boolean",
30159
+ description: "Only read locally cached immutable file-asset bytes; never query or download upstream. A miss returns image-cache-miss."
30160
+ },
30161
+ image_ref: {
30162
+ type: "string",
30163
+ required: true,
30164
+ description: "An image reference returned by arkme_images_list, arkme_user_profile, or arkme_sources_list. Never construct, parse, or guess this value."
30165
+ }
30166
+ },
30152
30167
  output: {
30153
30168
  schema: {
30154
30169
  type: "object",
@@ -30207,7 +30222,11 @@ function createArkmeImageToolDefinition(ctx, service) {
30207
30222
  const byteCap = Math.min(attachments.imageLimits.maxImageBytes, attachments.imageLimits.maxMessageImageBytes);
30208
30223
  const resolved = await service.readImage(imageRef, {
30209
30224
  maxBytes: byteCap,
30210
- signal: exec.signal
30225
+ signal: exec.signal,
30226
+ ...args.cache_only === true ? { cacheOnly: true } : {}
30227
+ }).catch((error) => {
30228
+ if (args.cache_only === true && error instanceof ArkmePluginError && error.code === "image-cache-miss") throw new Error(`[image-cache-miss] ${error.message}`, { cause: error });
30229
+ throw error;
30211
30230
  });
30212
30231
  if (!attachments.imageLimits.mediaTypes.includes(resolved.mediaType)) throw new Error(`cannot read the Arkme image: ${resolved.mediaType} is not accepted by this deployment`);
30213
30232
  let ref;
@@ -1,2 +1,2 @@
1
- import { a as persistentArkmeExtensionActive, i as invokePersistentArkmeExtension, n as applyPersistentArkmeHostExtension, o as persistentArkmeExtensionRuntimeState, r as deactivatePersistentArkmeExtension, t as activatePersistentArkmeExtension } from "./persistent-runtime-adGFmkIa.js";
1
+ import { a as persistentArkmeExtensionActive, i as invokePersistentArkmeExtension, n as applyPersistentArkmeHostExtension, o as persistentArkmeExtensionRuntimeState, r as deactivatePersistentArkmeExtension, t as activatePersistentArkmeExtension } from "./persistent-runtime-0qn1BZ6S.js";
2
2
  export { activatePersistentArkmeExtension, applyPersistentArkmeHostExtension, deactivatePersistentArkmeExtension, invokePersistentArkmeExtension, persistentArkmeExtensionActive, persistentArkmeExtensionRuntimeState };