happy2 0.0.12 → 0.0.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.
- package/package.json +2 -2
- package/packages/happy2-server/PLUGINS.md +99 -11
- package/packages/happy2-server/README.md +8 -7
- package/packages/happy2-server/dist/index.d.ts +2 -1
- package/packages/happy2-server/dist/index.d.ts.map +1 -1
- package/packages/happy2-server/dist/index.js +1 -0
- package/packages/happy2-server/dist/index.js.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentChatBind.d.ts +1 -0
- package/packages/happy2-server/dist/modules/agent/agentChatBind.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentChatBind.js +4 -0
- package/packages/happy2-server/dist/modules/agent/agentChatBind.js.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentChatGetContext.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentChatGetContext.js +3 -1
- package/packages/happy2-server/dist/modules/agent/agentChatGetContext.js.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentChatGetIdBySession.d.ts +7 -0
- package/packages/happy2-server/dist/modules/agent/agentChatGetIdBySession.d.ts.map +1 -0
- package/packages/happy2-server/dist/modules/agent/agentChatGetIdBySession.js +15 -0
- package/packages/happy2-server/dist/modules/agent/agentChatGetIdBySession.js.map +1 -0
- package/packages/happy2-server/dist/modules/agent/agentCreate.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentCreate.js +1 -0
- package/packages/happy2-server/dist/modules/agent/agentCreate.js.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentEffortBindingList.d.ts +4 -2
- package/packages/happy2-server/dist/modules/agent/agentEffortBindingList.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentEffortBindingList.js +8 -8
- package/packages/happy2-server/dist/modules/agent/agentEffortBindingList.js.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentEffortGetContext.d.ts +3 -3
- package/packages/happy2-server/dist/modules/agent/agentEffortGetContext.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentEffortGetContext.js +4 -4
- package/packages/happy2-server/dist/modules/agent/agentEffortGetContext.js.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentEffortUpdate.d.ts +4 -4
- package/packages/happy2-server/dist/modules/agent/agentEffortUpdate.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentEffortUpdate.js +57 -41
- package/packages/happy2-server/dist/modules/agent/agentEffortUpdate.js.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentImageCommitChange.d.ts +1 -1
- package/packages/happy2-server/dist/modules/agent/agentImageCommitChange.js +3 -3
- package/packages/happy2-server/dist/modules/agent/agentImageCommitChange.js.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentImageCreate.d.ts +1 -1
- package/packages/happy2-server/dist/modules/agent/agentImageCreate.js +3 -3
- package/packages/happy2-server/dist/modules/agent/agentImageCreate.js.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentImageGet.d.ts +1 -1
- package/packages/happy2-server/dist/modules/agent/agentImageGet.js +3 -3
- package/packages/happy2-server/dist/modules/agent/agentImageGet.js.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentImageGetChangeContext.d.ts +2 -1
- package/packages/happy2-server/dist/modules/agent/agentImageGetChangeContext.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentImageGetChangeContext.js +11 -4
- package/packages/happy2-server/dist/modules/agent/agentImageGetChangeContext.js.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentImageList.d.ts +2 -2
- package/packages/happy2-server/dist/modules/agent/agentImageList.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentImageList.js +8 -4
- package/packages/happy2-server/dist/modules/agent/agentImageList.js.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentImageRequestBuild.d.ts +1 -1
- package/packages/happy2-server/dist/modules/agent/agentImageRequestBuild.js +3 -3
- package/packages/happy2-server/dist/modules/agent/agentImageRequestBuild.js.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentImageSetDefault.d.ts +1 -1
- package/packages/happy2-server/dist/modules/agent/agentImageSetDefault.js +3 -3
- package/packages/happy2-server/dist/modules/agent/agentImageSetDefault.js.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentSecretAssignmentDelete.d.ts +1 -1
- package/packages/happy2-server/dist/modules/agent/agentSecretAssignmentDelete.js +3 -3
- package/packages/happy2-server/dist/modules/agent/agentSecretAssignmentDelete.js.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentSecretAssignmentList.d.ts +1 -1
- package/packages/happy2-server/dist/modules/agent/agentSecretAssignmentList.js +3 -3
- package/packages/happy2-server/dist/modules/agent/agentSecretAssignmentList.js.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentSecretAttachToAgent.d.ts +1 -1
- package/packages/happy2-server/dist/modules/agent/agentSecretAttachToAgent.js +3 -3
- package/packages/happy2-server/dist/modules/agent/agentSecretAttachToAgent.js.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentSecretAttachToChannel.d.ts +1 -1
- package/packages/happy2-server/dist/modules/agent/agentSecretAttachToChannel.js +3 -3
- package/packages/happy2-server/dist/modules/agent/agentSecretAttachToChannel.js.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentSecretAuthorizeManagement.d.ts +4 -3
- package/packages/happy2-server/dist/modules/agent/agentSecretAuthorizeManagement.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentSecretAuthorizeManagement.js +5 -5
- package/packages/happy2-server/dist/modules/agent/agentSecretAuthorizeManagement.js.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentSecretDetachFromAgent.d.ts +1 -1
- package/packages/happy2-server/dist/modules/agent/agentSecretDetachFromAgent.js +3 -3
- package/packages/happy2-server/dist/modules/agent/agentSecretDetachFromAgent.js.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentSecretDetachFromChannel.d.ts +2 -2
- package/packages/happy2-server/dist/modules/agent/agentSecretDetachFromChannel.js +4 -4
- package/packages/happy2-server/dist/modules/agent/agentSecretDetachFromChannel.js.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentSecretRecordRegistration.d.ts +1 -1
- package/packages/happy2-server/dist/modules/agent/agentSecretRecordRegistration.js +3 -3
- package/packages/happy2-server/dist/modules/agent/agentSecretRecordRegistration.js.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentTurnStreamReply.d.ts +4 -0
- package/packages/happy2-server/dist/modules/agent/agentTurnStreamReply.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentTurnStreamReply.js +207 -9
- package/packages/happy2-server/dist/modules/agent/agentTurnStreamReply.js.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentTurnTraceGet.d.ts +8 -0
- package/packages/happy2-server/dist/modules/agent/agentTurnTraceGet.d.ts.map +1 -0
- package/packages/happy2-server/dist/modules/agent/agentTurnTraceGet.js +86 -0
- package/packages/happy2-server/dist/modules/agent/agentTurnTraceGet.js.map +1 -0
- package/packages/happy2-server/dist/modules/agent/agentTurnTraceStart.d.ts +19 -0
- package/packages/happy2-server/dist/modules/agent/agentTurnTraceStart.d.ts.map +1 -0
- package/packages/happy2-server/dist/modules/agent/agentTurnTraceStart.js +87 -0
- package/packages/happy2-server/dist/modules/agent/agentTurnTraceStart.js.map +1 -0
- package/packages/happy2-server/dist/modules/agent/impl/agentChatContext.d.ts +2 -1
- package/packages/happy2-server/dist/modules/agent/impl/agentChatContext.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/agent/impl/agentEffortContext.d.ts +4 -1
- package/packages/happy2-server/dist/modules/agent/impl/agentEffortContext.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/agent/impl/agentEffortContextDb.d.ts +3 -3
- package/packages/happy2-server/dist/modules/agent/impl/agentEffortContextDb.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/agent/impl/agentEffortContextDb.js +26 -40
- package/packages/happy2-server/dist/modules/agent/impl/agentEffortContextDb.js.map +1 -1
- package/packages/happy2-server/dist/modules/agent/impl/finishAgentTurn.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/agent/impl/finishAgentTurn.js +63 -2
- package/packages/happy2-server/dist/modules/agent/impl/finishAgentTurn.js.map +1 -1
- package/packages/happy2-server/dist/modules/agent/types.d.ts +53 -0
- package/packages/happy2-server/dist/modules/agent/types.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/agents/daemon.d.ts +31 -2
- package/packages/happy2-server/dist/modules/agents/daemon.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/agents/daemon.js +12 -2
- package/packages/happy2-server/dist/modules/agents/daemon.js.map +1 -1
- package/packages/happy2-server/dist/modules/agents/service.d.ts +13 -6
- package/packages/happy2-server/dist/modules/agents/service.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/agents/service.js +497 -49
- package/packages/happy2-server/dist/modules/agents/service.js.map +1 -1
- package/packages/happy2-server/dist/modules/auth/developmentTokenCreate.d.ts +12 -0
- package/packages/happy2-server/dist/modules/auth/developmentTokenCreate.d.ts.map +1 -0
- package/packages/happy2-server/dist/modules/auth/developmentTokenCreate.js +27 -0
- package/packages/happy2-server/dist/modules/auth/developmentTokenCreate.js.map +1 -0
- package/packages/happy2-server/dist/modules/auth/developmentTokenFindActive.d.ts +8 -0
- package/packages/happy2-server/dist/modules/auth/developmentTokenFindActive.d.ts.map +1 -0
- package/packages/happy2-server/dist/modules/auth/developmentTokenFindActive.js +22 -0
- package/packages/happy2-server/dist/modules/auth/developmentTokenFindActive.js.map +1 -0
- package/packages/happy2-server/dist/modules/auth/methods.d.ts +1 -0
- package/packages/happy2-server/dist/modules/auth/methods.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/auth/methods.js +10 -6
- package/packages/happy2-server/dist/modules/auth/methods.js.map +1 -1
- package/packages/happy2-server/dist/modules/auth/service.d.ts +2 -0
- package/packages/happy2-server/dist/modules/auth/service.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/auth/service.js +26 -0
- package/packages/happy2-server/dist/modules/auth/service.js.map +1 -1
- package/packages/happy2-server/dist/modules/auth/tokens.d.ts +6 -0
- package/packages/happy2-server/dist/modules/auth/tokens.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/auth/tokens.js +26 -0
- package/packages/happy2-server/dist/modules/auth/tokens.js.map +1 -1
- package/packages/happy2-server/dist/modules/auth/tokens.test.js +20 -0
- package/packages/happy2-server/dist/modules/auth/tokens.test.js.map +1 -1
- package/packages/happy2-server/dist/modules/chat/asAgentTurnTrace.d.ts +17 -0
- package/packages/happy2-server/dist/modules/chat/asAgentTurnTrace.d.ts.map +1 -0
- package/packages/happy2-server/dist/modules/chat/asAgentTurnTrace.js +98 -0
- package/packages/happy2-server/dist/modules/chat/asAgentTurnTrace.js.map +1 -0
- package/packages/happy2-server/dist/modules/chat/asServiceMessage.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/chat/asServiceMessage.js +13 -5
- package/packages/happy2-server/dist/modules/chat/asServiceMessage.js.map +1 -1
- package/packages/happy2-server/dist/modules/chat/chatUpdateMetadata.d.ts +20 -0
- package/packages/happy2-server/dist/modules/chat/chatUpdateMetadata.d.ts.map +1 -0
- package/packages/happy2-server/dist/modules/chat/chatUpdateMetadata.js +38 -0
- package/packages/happy2-server/dist/modules/chat/chatUpdateMetadata.js.map +1 -0
- package/packages/happy2-server/dist/modules/chat/types.d.ts +6 -0
- package/packages/happy2-server/dist/modules/chat/types.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/chat/types.js.map +1 -1
- package/packages/happy2-server/dist/modules/chat/userRequireActiveHuman.d.ts +7 -0
- package/packages/happy2-server/dist/modules/chat/userRequireActiveHuman.d.ts.map +1 -0
- package/packages/happy2-server/dist/modules/chat/userRequireActiveHuman.js +19 -0
- package/packages/happy2-server/dist/modules/chat/userRequireActiveHuman.js.map +1 -0
- package/packages/happy2-server/dist/modules/chat/userRequireServerAdmin.d.ts +2 -2
- package/packages/happy2-server/dist/modules/chat/userRequireServerAdmin.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/chat/userRequireServerAdmin.js +8 -5
- package/packages/happy2-server/dist/modules/chat/userRequireServerAdmin.js.map +1 -1
- package/packages/happy2-server/dist/modules/config/defaults.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/config/defaults.js +1 -0
- package/packages/happy2-server/dist/modules/config/defaults.js.map +1 -1
- package/packages/happy2-server/dist/modules/config/defaults.test.js +1 -0
- package/packages/happy2-server/dist/modules/config/defaults.test.js.map +1 -1
- package/packages/happy2-server/dist/modules/config/loader.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/config/loader.js +4 -0
- package/packages/happy2-server/dist/modules/config/loader.js.map +1 -1
- package/packages/happy2-server/dist/modules/config/loader.test.js +12 -0
- package/packages/happy2-server/dist/modules/config/loader.test.js.map +1 -1
- package/packages/happy2-server/dist/modules/config/type.d.ts +3 -0
- package/packages/happy2-server/dist/modules/config/type.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/message/messageGetProjection.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/message/messageGetProjection.js +28 -0
- package/packages/happy2-server/dist/modules/message/messageGetProjection.js.map +1 -1
- package/packages/happy2-server/dist/modules/permission/impl/permissionEffectiveDb.d.ts +4 -0
- package/packages/happy2-server/dist/modules/permission/impl/permissionEffectiveDb.d.ts.map +1 -0
- package/packages/happy2-server/dist/modules/permission/impl/permissionEffectiveDb.js +39 -0
- package/packages/happy2-server/dist/modules/permission/impl/permissionEffectiveDb.js.map +1 -0
- package/packages/happy2-server/dist/modules/permission/impl/permissionMutationRecord.d.ts +10 -0
- package/packages/happy2-server/dist/modules/permission/impl/permissionMutationRecord.d.ts.map +1 -0
- package/packages/happy2-server/dist/modules/permission/impl/permissionMutationRecord.js +31 -0
- package/packages/happy2-server/dist/modules/permission/impl/permissionMutationRecord.js.map +1 -0
- package/packages/happy2-server/dist/modules/permission/permissionGetEffective.d.ts +8 -0
- package/packages/happy2-server/dist/modules/permission/permissionGetEffective.d.ts.map +1 -0
- package/packages/happy2-server/dist/modules/permission/permissionGetEffective.js +13 -0
- package/packages/happy2-server/dist/modules/permission/permissionGetEffective.js.map +1 -0
- package/packages/happy2-server/dist/modules/permission/roleCreate.d.ts +16 -0
- package/packages/happy2-server/dist/modules/permission/roleCreate.d.ts.map +1 -0
- package/packages/happy2-server/dist/modules/permission/roleCreate.js +70 -0
- package/packages/happy2-server/dist/modules/permission/roleCreate.js.map +1 -0
- package/packages/happy2-server/dist/modules/permission/roleDelete.d.ts +11 -0
- package/packages/happy2-server/dist/modules/permission/roleDelete.d.ts.map +1 -0
- package/packages/happy2-server/dist/modules/permission/roleDelete.js +41 -0
- package/packages/happy2-server/dist/modules/permission/roleDelete.js.map +1 -0
- package/packages/happy2-server/dist/modules/permission/roleList.d.ts +8 -0
- package/packages/happy2-server/dist/modules/permission/roleList.d.ts.map +1 -0
- package/packages/happy2-server/dist/modules/permission/roleList.js +36 -0
- package/packages/happy2-server/dist/modules/permission/roleList.js.map +1 -0
- package/packages/happy2-server/dist/modules/permission/roleUpdate.d.ts +14 -0
- package/packages/happy2-server/dist/modules/permission/roleUpdate.d.ts.map +1 -0
- package/packages/happy2-server/dist/modules/permission/roleUpdate.js +78 -0
- package/packages/happy2-server/dist/modules/permission/roleUpdate.js.map +1 -0
- package/packages/happy2-server/dist/modules/permission/types.d.ts +24 -0
- package/packages/happy2-server/dist/modules/permission/types.d.ts.map +1 -0
- package/packages/happy2-server/dist/modules/permission/types.js +10 -0
- package/packages/happy2-server/dist/modules/permission/types.js.map +1 -0
- package/packages/happy2-server/dist/modules/permission/userPermissionGet.d.ts +16 -0
- package/packages/happy2-server/dist/modules/permission/userPermissionGet.d.ts.map +1 -0
- package/packages/happy2-server/dist/modules/permission/userPermissionGet.js +33 -0
- package/packages/happy2-server/dist/modules/permission/userPermissionGet.js.map +1 -0
- package/packages/happy2-server/dist/modules/permission/userPermissionUpdate.d.ts +12 -0
- package/packages/happy2-server/dist/modules/permission/userPermissionUpdate.d.ts.map +1 -0
- package/packages/happy2-server/dist/modules/permission/userPermissionUpdate.js +44 -0
- package/packages/happy2-server/dist/modules/permission/userPermissionUpdate.js.map +1 -0
- package/packages/happy2-server/dist/modules/permission/userRequireAnyPermission.d.ts +8 -0
- package/packages/happy2-server/dist/modules/permission/userRequireAnyPermission.d.ts.map +1 -0
- package/packages/happy2-server/dist/modules/permission/userRequireAnyPermission.js +12 -0
- package/packages/happy2-server/dist/modules/permission/userRequireAnyPermission.js.map +1 -0
- package/packages/happy2-server/dist/modules/permission/userRequirePermission.d.ts +8 -0
- package/packages/happy2-server/dist/modules/permission/userRequirePermission.d.ts.map +1 -0
- package/packages/happy2-server/dist/modules/permission/userRequirePermission.js +12 -0
- package/packages/happy2-server/dist/modules/permission/userRequirePermission.js.map +1 -0
- package/packages/happy2-server/dist/modules/permission/userRoleAssign.d.ts +12 -0
- package/packages/happy2-server/dist/modules/permission/userRoleAssign.d.ts.map +1 -0
- package/packages/happy2-server/dist/modules/permission/userRoleAssign.js +46 -0
- package/packages/happy2-server/dist/modules/permission/userRoleAssign.js.map +1 -0
- package/packages/happy2-server/dist/modules/permission/userRoleUnassign.d.ts +12 -0
- package/packages/happy2-server/dist/modules/permission/userRoleUnassign.d.ts.map +1 -0
- package/packages/happy2-server/dist/modules/permission/userRoleUnassign.js +53 -0
- package/packages/happy2-server/dist/modules/permission/userRoleUnassign.js.map +1 -0
- package/packages/happy2-server/dist/modules/plugin/archive.d.ts +7 -0
- package/packages/happy2-server/dist/modules/plugin/archive.d.ts.map +1 -0
- package/packages/happy2-server/dist/modules/plugin/archive.js +222 -0
- package/packages/happy2-server/dist/modules/plugin/archive.js.map +1 -0
- package/packages/happy2-server/dist/modules/plugin/catalog.d.ts +5 -1
- package/packages/happy2-server/dist/modules/plugin/catalog.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/plugin/catalog.js +33 -14
- package/packages/happy2-server/dist/modules/plugin/catalog.js.map +1 -1
- package/packages/happy2-server/dist/modules/plugin/catalog.test.js +6 -2
- package/packages/happy2-server/dist/modules/plugin/catalog.test.js.map +1 -1
- package/packages/happy2-server/dist/modules/plugin/httpBridge.d.ts +1 -0
- package/packages/happy2-server/dist/modules/plugin/httpBridge.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/plugin/httpBridge.js +7 -0
- package/packages/happy2-server/dist/modules/plugin/httpBridge.js.map +1 -1
- package/packages/happy2-server/dist/modules/plugin/impl/asInstallation.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/plugin/impl/asInstallation.js +3 -2
- package/packages/happy2-server/dist/modules/plugin/impl/asInstallation.js.map +1 -1
- package/packages/happy2-server/dist/modules/plugin/impl/asPlugin.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/plugin/impl/asPlugin.js +3 -2
- package/packages/happy2-server/dist/modules/plugin/impl/asPlugin.js.map +1 -1
- package/packages/happy2-server/dist/modules/plugin/impl/installedManifest.js +1 -1
- package/packages/happy2-server/dist/modules/plugin/impl/installedManifest.js.map +1 -1
- package/packages/happy2-server/dist/modules/plugin/impl/pluginSkillSource.d.ts +11 -0
- package/packages/happy2-server/dist/modules/plugin/impl/pluginSkillSource.d.ts.map +1 -0
- package/packages/happy2-server/dist/modules/plugin/impl/pluginSkillSource.js +2 -0
- package/packages/happy2-server/dist/modules/plugin/impl/pluginSkillSource.js.map +1 -0
- package/packages/happy2-server/dist/modules/plugin/packageStore.d.ts +13 -0
- package/packages/happy2-server/dist/modules/plugin/packageStore.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/plugin/packageStore.js +122 -14
- package/packages/happy2-server/dist/modules/plugin/packageStore.js.map +1 -1
- package/packages/happy2-server/dist/modules/plugin/pluginAuthorizeManagement.d.ts +1 -1
- package/packages/happy2-server/dist/modules/plugin/pluginAuthorizeManagement.js +3 -3
- package/packages/happy2-server/dist/modules/plugin/pluginAuthorizeManagement.js.map +1 -1
- package/packages/happy2-server/dist/modules/plugin/pluginFindBySource.d.ts +3 -1
- package/packages/happy2-server/dist/modules/plugin/pluginFindBySource.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/plugin/pluginFindBySource.js +1 -1
- package/packages/happy2-server/dist/modules/plugin/pluginFindBySource.js.map +1 -1
- package/packages/happy2-server/dist/modules/plugin/pluginGetImage.d.ts +1 -1
- package/packages/happy2-server/dist/modules/plugin/pluginGetImage.js +3 -3
- package/packages/happy2-server/dist/modules/plugin/pluginGetImage.js.map +1 -1
- package/packages/happy2-server/dist/modules/plugin/pluginGetSource.d.ts +13 -0
- package/packages/happy2-server/dist/modules/plugin/pluginGetSource.d.ts.map +1 -0
- package/packages/happy2-server/dist/modules/plugin/pluginGetSource.js +37 -0
- package/packages/happy2-server/dist/modules/plugin/pluginGetSource.js.map +1 -0
- package/packages/happy2-server/dist/modules/plugin/pluginInstall.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/plugin/pluginInstall.js +18 -4
- package/packages/happy2-server/dist/modules/plugin/pluginInstall.js.map +1 -1
- package/packages/happy2-server/dist/modules/plugin/pluginInstallationList.d.ts +1 -1
- package/packages/happy2-server/dist/modules/plugin/pluginInstallationList.js +3 -3
- package/packages/happy2-server/dist/modules/plugin/pluginInstallationList.js.map +1 -1
- package/packages/happy2-server/dist/modules/plugin/pluginList.d.ts +1 -1
- package/packages/happy2-server/dist/modules/plugin/pluginList.js +3 -3
- package/packages/happy2-server/dist/modules/plugin/pluginList.js.map +1 -1
- package/packages/happy2-server/dist/modules/plugin/pluginSkillsListInstalled.d.ts +8 -0
- package/packages/happy2-server/dist/modules/plugin/pluginSkillsListInstalled.d.ts.map +1 -0
- package/packages/happy2-server/dist/modules/plugin/pluginSkillsListInstalled.js +24 -0
- package/packages/happy2-server/dist/modules/plugin/pluginSkillsListInstalled.js.map +1 -0
- package/packages/happy2-server/dist/modules/plugin/pluginSkillsListReady.d.ts +8 -0
- package/packages/happy2-server/dist/modules/plugin/pluginSkillsListReady.d.ts.map +1 -0
- package/packages/happy2-server/dist/modules/plugin/pluginSkillsListReady.js +25 -0
- package/packages/happy2-server/dist/modules/plugin/pluginSkillsListReady.js.map +1 -0
- package/packages/happy2-server/dist/modules/plugin/pluginUninstall.d.ts +13 -0
- package/packages/happy2-server/dist/modules/plugin/pluginUninstall.d.ts.map +1 -0
- package/packages/happy2-server/dist/modules/plugin/pluginUninstall.js +63 -0
- package/packages/happy2-server/dist/modules/plugin/pluginUninstall.js.map +1 -0
- package/packages/happy2-server/dist/modules/plugin/runtime.d.ts +1 -0
- package/packages/happy2-server/dist/modules/plugin/runtime.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/plugin/runtime.js +1 -0
- package/packages/happy2-server/dist/modules/plugin/runtime.js.map +1 -1
- package/packages/happy2-server/dist/modules/plugin/service.d.ts +54 -3
- package/packages/happy2-server/dist/modules/plugin/service.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/plugin/service.js +339 -6
- package/packages/happy2-server/dist/modules/plugin/service.js.map +1 -1
- package/packages/happy2-server/dist/modules/plugin/source.d.ts +35 -0
- package/packages/happy2-server/dist/modules/plugin/source.d.ts.map +1 -0
- package/packages/happy2-server/dist/modules/plugin/source.js +189 -0
- package/packages/happy2-server/dist/modules/plugin/source.js.map +1 -0
- package/packages/happy2-server/dist/modules/plugin/types.d.ts +48 -9
- package/packages/happy2-server/dist/modules/plugin/types.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/plugin/types.js.map +1 -1
- package/packages/happy2-server/dist/modules/realtime/events.d.ts +3 -0
- package/packages/happy2-server/dist/modules/realtime/events.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/realtime/events.js +37 -5
- package/packages/happy2-server/dist/modules/realtime/events.js.map +1 -1
- package/packages/happy2-server/dist/modules/realtime/local.test.js +2 -0
- package/packages/happy2-server/dist/modules/realtime/local.test.js.map +1 -1
- package/packages/happy2-server/dist/modules/sandbox/localOciSandboxProvider.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/sandbox/localOciSandboxProvider.js +4 -2
- package/packages/happy2-server/dist/modules/sandbox/localOciSandboxProvider.js.map +1 -1
- package/packages/happy2-server/dist/modules/sandbox/localOciSandboxProvider.test.js +4 -1
- package/packages/happy2-server/dist/modules/sandbox/localOciSandboxProvider.test.js.map +1 -1
- package/packages/happy2-server/dist/modules/sandbox/types.d.ts +1 -0
- package/packages/happy2-server/dist/modules/sandbox/types.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/schema.d.ts +1949 -331
- package/packages/happy2-server/dist/modules/schema.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/schema.js +105 -0
- package/packages/happy2-server/dist/modules/schema.js.map +1 -1
- package/packages/happy2-server/dist/modules/sync/syncGetDifference.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/sync/syncGetDifference.js +2 -0
- package/packages/happy2-server/dist/modules/sync/syncGetDifference.js.map +1 -1
- package/packages/happy2-server/dist/modules/user/userAdministrationList.js +2 -2
- package/packages/happy2-server/dist/modules/user/userAdministrationList.js.map +1 -1
- package/packages/happy2-server/dist/modules/user/userAdministrationUpdate.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/user/userAdministrationUpdate.js +49 -6
- package/packages/happy2-server/dist/modules/user/userAdministrationUpdate.js.map +1 -1
- package/packages/happy2-server/dist/modules/user/userCreateProfile.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/user/userCreateProfile.js +17 -2
- package/packages/happy2-server/dist/modules/user/userCreateProfile.js.map +1 -1
- package/packages/happy2-server/dist/routes/agents.d.ts.map +1 -1
- package/packages/happy2-server/dist/routes/agents.js +4 -2
- package/packages/happy2-server/dist/routes/agents.js.map +1 -1
- package/packages/happy2-server/dist/routes/auth.d.ts.map +1 -1
- package/packages/happy2-server/dist/routes/auth.js +12 -0
- package/packages/happy2-server/dist/routes/auth.js.map +1 -1
- package/packages/happy2-server/dist/routes/collaboration.d.ts.map +1 -1
- package/packages/happy2-server/dist/routes/collaboration.js +7 -0
- package/packages/happy2-server/dist/routes/collaboration.js.map +1 -1
- package/packages/happy2-server/dist/routes/files.d.ts.map +1 -1
- package/packages/happy2-server/dist/routes/files.js +2 -0
- package/packages/happy2-server/dist/routes/files.js.map +1 -1
- package/packages/happy2-server/dist/routes/permissions.d.ts +6 -0
- package/packages/happy2-server/dist/routes/permissions.d.ts.map +1 -0
- package/packages/happy2-server/dist/routes/permissions.js +207 -0
- package/packages/happy2-server/dist/routes/permissions.js.map +1 -0
- package/packages/happy2-server/dist/routes/pluginHost.d.ts.map +1 -1
- package/packages/happy2-server/dist/routes/pluginHost.js +70 -1
- package/packages/happy2-server/dist/routes/pluginHost.js.map +1 -1
- package/packages/happy2-server/dist/routes/plugins.d.ts.map +1 -1
- package/packages/happy2-server/dist/routes/plugins.js +147 -5
- package/packages/happy2-server/dist/routes/plugins.js.map +1 -1
- package/packages/happy2-server/dist/server.d.ts +2 -0
- package/packages/happy2-server/dist/server.d.ts.map +1 -1
- package/packages/happy2-server/dist/server.js +4 -1
- package/packages/happy2-server/dist/server.js.map +1 -1
- package/packages/happy2-server/dist/web/assets/index-BaPUPGPe.css +2 -0
- package/packages/happy2-server/dist/web/assets/index-BnhFxR3U.js +39 -0
- package/packages/happy2-server/dist/web/index.html +2 -2
- package/packages/happy2-server/drizzle/0023_roles_and_permissions.sql +82 -0
- package/packages/happy2-server/drizzle/0024_session_bound_dev_tokens.sql +11 -0
- package/packages/happy2-server/drizzle/0025_plugin_skills.sql +8 -0
- package/packages/happy2-server/drizzle/0026_agent_turn_traces.sql +35 -0
- package/packages/happy2-server/drizzle/0027_chat_agent_effort.sql +9 -0
- package/packages/happy2-server/drizzle/meta/_journal.json +35 -0
- package/packages/happy2-server/happy2.example.toml +6 -0
- package/packages/happy2-server/plugins/README.md +3 -1
- package/packages/happy2-server/plugins/chat-management/container/Dockerfile +6 -0
- package/packages/happy2-server/plugins/chat-management/plugin.json +17 -0
- package/packages/happy2-server/plugins/chat-management/plugin.png +0 -0
- package/packages/happy2-server/plugins/chat-management/server.mjs +113 -0
- package/packages/happy2-server/dist/web/assets/index-9SGCQLg7.js +0 -46
- package/packages/happy2-server/dist/web/assets/index-DWXBQDJB.css +0 -2
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import { createHash } from "node:crypto";
|
|
1
|
+
import { createHash, randomBytes, timingSafeEqual } from "node:crypto";
|
|
2
2
|
import { createId } from "@paralleldrive/cuid2";
|
|
3
3
|
import { readFile } from "node:fs/promises";
|
|
4
4
|
import { join } from "node:path";
|
|
5
5
|
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
|
|
6
6
|
import { realtimeTopics } from "../realtime/index.js";
|
|
7
|
+
import { chatUpdateMetadata } from "../chat/chatUpdateMetadata.js";
|
|
7
8
|
import { pluginInstall } from "./pluginInstall.js";
|
|
8
9
|
import { pluginFindBySource } from "./pluginFindBySource.js";
|
|
10
|
+
import { pluginGetSource } from "./pluginGetSource.js";
|
|
9
11
|
import { pluginGetImage } from "./pluginGetImage.js";
|
|
10
12
|
import { pluginAuthorizeManagement } from "./pluginAuthorizeManagement.js";
|
|
11
13
|
import { pluginInstallationGetRuntimeConfiguration } from "./pluginInstallationGetRuntimeConfiguration.js";
|
|
@@ -15,14 +17,23 @@ import { pluginInstallationUpdateStatus } from "./pluginInstallationUpdateStatus
|
|
|
15
17
|
import { pluginRemoveMissingBuiltins } from "./pluginRemoveMissingBuiltins.js";
|
|
16
18
|
import { pluginMcpToolsReplace } from "./pluginMcpToolsReplace.js";
|
|
17
19
|
import { pluginMcpToolsListReady } from "./pluginMcpToolsListReady.js";
|
|
20
|
+
import { pluginSkillsListReady } from "./pluginSkillsListReady.js";
|
|
21
|
+
import { pluginSkillsListInstalled } from "./pluginSkillsListInstalled.js";
|
|
18
22
|
import { pluginContainerInstanceAuthorize } from "./pluginContainerInstanceAuthorize.js";
|
|
19
23
|
import { pluginContainerInstanceInvalidate } from "./pluginContainerInstanceInvalidate.js";
|
|
24
|
+
import { pluginUninstall } from "./pluginUninstall.js";
|
|
25
|
+
import { pluginArchiveExtract } from "./archive.js";
|
|
26
|
+
import { pluginPackageLoadSource } from "./catalog.js";
|
|
20
27
|
import { RemotePluginMcpTransport } from "./utils/remoteMcpTransport.js";
|
|
28
|
+
import { downloadedPluginSource, remotePluginSource, remotePluginSourceFromInstalled, uploadedPluginSource, } from "./source.js";
|
|
21
29
|
import { PluginError, MAX_PLUGIN_MCP_TOOLS, } from "./types.js";
|
|
22
30
|
const HEALTH_TIMEOUT_MS = 15_000;
|
|
23
31
|
const COMMAND_STARTUP_GRACE_MS = 250;
|
|
24
32
|
const FUNCTION_EXECUTION_TIMEOUT_MS = 30_000;
|
|
25
33
|
const MAX_RIG_PLUGIN_FUNCTIONS = 128;
|
|
34
|
+
const MAX_RIG_PLUGIN_SKILLS = 128;
|
|
35
|
+
const PREPARATION_TTL_MS = 15 * 60_000;
|
|
36
|
+
const PLUGIN_CHAT_META_KEY = "happy2/chat";
|
|
26
37
|
/** Coordinates durable plugin installs with asynchronous container preparation, MCP health probes, restart recovery, and local connection creation. */
|
|
27
38
|
export class PluginService {
|
|
28
39
|
executor;
|
|
@@ -35,11 +46,13 @@ export class PluginService {
|
|
|
35
46
|
urlPolicy;
|
|
36
47
|
remoteTransport;
|
|
37
48
|
hostApiUrl;
|
|
49
|
+
archiveDownloader;
|
|
38
50
|
onError;
|
|
39
51
|
activations = new Map();
|
|
40
52
|
commandHandles = new Map();
|
|
53
|
+
preparations = new Map();
|
|
41
54
|
closed = false;
|
|
42
|
-
constructor(executor, pubsub, catalog, packages, secrets, runtime, tokens, urlPolicy, remoteTransport, hostApiUrl, onError) {
|
|
55
|
+
constructor(executor, pubsub, catalog, packages, secrets, runtime, tokens, urlPolicy, remoteTransport, hostApiUrl, archiveDownloader, onError) {
|
|
43
56
|
this.executor = executor;
|
|
44
57
|
this.pubsub = pubsub;
|
|
45
58
|
this.catalog = catalog;
|
|
@@ -50,9 +63,11 @@ export class PluginService {
|
|
|
50
63
|
this.urlPolicy = urlPolicy;
|
|
51
64
|
this.remoteTransport = remoteTransport;
|
|
52
65
|
this.hostApiUrl = hostApiUrl;
|
|
66
|
+
this.archiveDownloader = archiveDownloader;
|
|
53
67
|
this.onError = onError;
|
|
54
68
|
}
|
|
55
69
|
async start() {
|
|
70
|
+
await this.packages.cleanupTemporary();
|
|
56
71
|
const removed = await pluginRemoveMissingBuiltins(this.executor, this.catalog.list().map(({ source }) => source.reference));
|
|
57
72
|
await Promise.all([
|
|
58
73
|
...removed.plugins.map(({ pluginId }) => this.packages.remove(pluginId).catch(this.onError)),
|
|
@@ -92,11 +107,141 @@ export class PluginService {
|
|
|
92
107
|
}
|
|
93
108
|
if (candidateId && !result.pluginCreated)
|
|
94
109
|
await this.packages.remove(candidateId);
|
|
110
|
+
await this.packages.workspaceDirectory(result.pluginId, installationId);
|
|
95
111
|
await this.publish(result.hint).catch(this.onError);
|
|
96
112
|
if (result.installation.status === "preparing")
|
|
97
113
|
this.activate(installationId);
|
|
98
114
|
return result.installation;
|
|
99
115
|
}
|
|
116
|
+
async prepareUpload(actorUserId, archive, onProgress) {
|
|
117
|
+
await pluginAuthorizeManagement(this.executor, actorUserId);
|
|
118
|
+
onProgress("verifying", "Inspecting uploaded ZIP package.");
|
|
119
|
+
const prepared = await this.prepareArchive(actorUserId, archive, "zip", undefined, onProgress);
|
|
120
|
+
return { selectionRequired: false, candidates: prepared };
|
|
121
|
+
}
|
|
122
|
+
async prepareRemote(actorUserId, input, onProgress, signal) {
|
|
123
|
+
await pluginAuthorizeManagement(this.executor, actorUserId);
|
|
124
|
+
const remote = remotePluginSource(input.kind, input.url);
|
|
125
|
+
onProgress("downloading", "Downloading plugin ZIP from its remote source.");
|
|
126
|
+
const downloaded = await this.archiveDownloader.download(remote.archiveUrl, {
|
|
127
|
+
signal,
|
|
128
|
+
onProgress: (bytes) => onProgress("downloading", "Downloading plugin ZIP.", bytes),
|
|
129
|
+
});
|
|
130
|
+
onProgress("verifying", "Verifying archive structure and plugin metadata.");
|
|
131
|
+
const candidates = await this.prepareArchive(actorUserId, downloaded.body, input.kind === "github" ? "github" : "zip", remote, onProgress);
|
|
132
|
+
return { selectionRequired: candidates.length > 1, candidates };
|
|
133
|
+
}
|
|
134
|
+
async installPrepared(input) {
|
|
135
|
+
await pluginAuthorizeManagement(this.executor, input.actorUserId);
|
|
136
|
+
const prepared = await this.preparationTake(input.actorUserId, input.preparedToken);
|
|
137
|
+
try {
|
|
138
|
+
const existing = await pluginFindBySource(this.executor, prepared.plugin.source.kind, prepared.plugin.source.reference);
|
|
139
|
+
if (existing && existing.packageDigest !== prepared.plugin.packageDigest)
|
|
140
|
+
throw new PluginError("conflict", "This remote plugin has changed since its installed snapshot; update it before adding another installation");
|
|
141
|
+
const installationId = createId();
|
|
142
|
+
const candidateId = existing ? undefined : createId();
|
|
143
|
+
const candidate = candidateId
|
|
144
|
+
? {
|
|
145
|
+
pluginId: candidateId,
|
|
146
|
+
...(await this.packages.install(prepared.plugin, candidateId)),
|
|
147
|
+
}
|
|
148
|
+
: undefined;
|
|
149
|
+
let result;
|
|
150
|
+
try {
|
|
151
|
+
result = await pluginInstall(this.executor, this.secrets, {
|
|
152
|
+
actorUserId: input.actorUserId,
|
|
153
|
+
installationId,
|
|
154
|
+
plugin: prepared.plugin,
|
|
155
|
+
candidate,
|
|
156
|
+
variables: input.variables,
|
|
157
|
+
containerImageId: input.containerImageId,
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
catch (error) {
|
|
161
|
+
if (candidateId)
|
|
162
|
+
await this.packages.remove(candidateId);
|
|
163
|
+
throw error;
|
|
164
|
+
}
|
|
165
|
+
if (candidateId && !result.pluginCreated)
|
|
166
|
+
await this.packages.remove(candidateId);
|
|
167
|
+
await this.packages.workspaceDirectory(result.pluginId, installationId);
|
|
168
|
+
await this.publish(result.hint).catch(this.onError);
|
|
169
|
+
if (result.installation.status === "preparing")
|
|
170
|
+
this.activate(installationId);
|
|
171
|
+
return result.installation;
|
|
172
|
+
}
|
|
173
|
+
finally {
|
|
174
|
+
await this.packages.removePreparation(prepared.id).catch(this.onError);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
async uninstall(actorUserId, pluginId) {
|
|
178
|
+
const result = await pluginUninstall(this.executor, actorUserId, pluginId);
|
|
179
|
+
for (const installationId of result.installationIds) {
|
|
180
|
+
const activation = this.activations.get(installationId);
|
|
181
|
+
activation?.controller.abort();
|
|
182
|
+
this.closeCommand(installationId);
|
|
183
|
+
}
|
|
184
|
+
await Promise.allSettled(result.installationIds.flatMap((installationId) => {
|
|
185
|
+
const activation = this.activations.get(installationId);
|
|
186
|
+
return activation ? [activation.promise] : [];
|
|
187
|
+
}));
|
|
188
|
+
await this.publish(result.hint).catch(this.onError);
|
|
189
|
+
await Promise.allSettled([
|
|
190
|
+
...result.containerNames.map((containerName) => {
|
|
191
|
+
return this.runtime.removeLocal(containerName);
|
|
192
|
+
}),
|
|
193
|
+
this.packages.remove(pluginId),
|
|
194
|
+
]).then((settled) => {
|
|
195
|
+
for (const item of settled)
|
|
196
|
+
if (item.status === "rejected")
|
|
197
|
+
this.onError(item.reason);
|
|
198
|
+
});
|
|
199
|
+
return { installationIds: result.installationIds, pluginId };
|
|
200
|
+
}
|
|
201
|
+
async checkForUpdate(actorUserId, pluginId, onProgress, signal) {
|
|
202
|
+
const installed = await pluginGetSource(this.executor, actorUserId, pluginId);
|
|
203
|
+
let remotePackage;
|
|
204
|
+
if (installed.source.kind === "builtin") {
|
|
205
|
+
const catalogPackage = this.catalog.get(installed.source.reference);
|
|
206
|
+
if (!catalogPackage)
|
|
207
|
+
throw new PluginError("not_found", "Built-in plugin is no longer in the catalog");
|
|
208
|
+
remotePackage = catalogPackage;
|
|
209
|
+
}
|
|
210
|
+
else {
|
|
211
|
+
const remote = remotePluginSourceFromInstalled(installed.source);
|
|
212
|
+
onProgress("downloading", "Downloading the current remote plugin package.");
|
|
213
|
+
const downloaded = await this.archiveDownloader.download(remote.archiveUrl, {
|
|
214
|
+
signal,
|
|
215
|
+
onProgress: (bytes) => onProgress("downloading", "Downloading remote package.", bytes),
|
|
216
|
+
});
|
|
217
|
+
const directory = await this.packages.createDownloadDirectory();
|
|
218
|
+
try {
|
|
219
|
+
onProgress("verifying", "Verifying the current remote plugin package.");
|
|
220
|
+
const candidates = await pluginArchiveExtract(downloaded.body, directory, remote.kind === "github" ? "github" : "zip");
|
|
221
|
+
const candidate = remote.packagePath === undefined
|
|
222
|
+
? candidates[0]
|
|
223
|
+
: candidates.find(({ packagePath }) => packagePath === remote.packagePath);
|
|
224
|
+
if (!candidate)
|
|
225
|
+
throw new PluginError("invalid_package", "The installed plugin path no longer exists remotely");
|
|
226
|
+
remotePackage = await pluginPackageLoadSource(candidate.directory, installed.source);
|
|
227
|
+
}
|
|
228
|
+
finally {
|
|
229
|
+
await this.packages.removeDownloadDirectory(directory);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
if (remotePackage.manifest.shortName !== installed.shortName)
|
|
233
|
+
throw new PluginError("invalid_package", "Remote plugin shortName changed");
|
|
234
|
+
return {
|
|
235
|
+
pluginId,
|
|
236
|
+
checkedAt: new Date().toISOString(),
|
|
237
|
+
updateAvailable: remotePackage.packageDigest !== installed.packageDigest,
|
|
238
|
+
installed: { version: installed.sourceVersion, packageDigest: installed.packageDigest },
|
|
239
|
+
remote: {
|
|
240
|
+
version: remotePackage.manifest.version,
|
|
241
|
+
packageDigest: remotePackage.packageDigest,
|
|
242
|
+
},
|
|
243
|
+
};
|
|
244
|
+
}
|
|
100
245
|
async image(actorUserId, pluginId) {
|
|
101
246
|
const image = await pluginGetImage(this.executor, actorUserId, pluginId);
|
|
102
247
|
const body = await this.packages.readImage(image.pluginId, image.packageDirectory, image.storageKey, image.shortName, image.packageDigest);
|
|
@@ -133,9 +278,44 @@ export class PluginService {
|
|
|
133
278
|
parameters: tool.inputSchema,
|
|
134
279
|
}));
|
|
135
280
|
}
|
|
136
|
-
async
|
|
281
|
+
async listSkills(signal) {
|
|
282
|
+
const skills = this.skillSources(await pluginSkillsListReady(this.executor), signal);
|
|
283
|
+
if (skills.length > MAX_RIG_PLUGIN_SKILLS)
|
|
284
|
+
throw new PluginSkillCatalogError(`Installed plugins expose ${skills.length} skills, exceeding Rig's ${MAX_RIG_PLUGIN_SKILLS}-skill limit`);
|
|
285
|
+
return skills.map(({ name, description }) => ({
|
|
286
|
+
name,
|
|
287
|
+
description,
|
|
288
|
+
location: "durable",
|
|
289
|
+
}));
|
|
290
|
+
}
|
|
291
|
+
async readSkill(skill, signal) {
|
|
292
|
+
try {
|
|
293
|
+
return await withOperationTimeout(FUNCTION_EXECUTION_TIMEOUT_MS, "Plugin skill read", signal, async (operationSignal) => {
|
|
294
|
+
const sources = this.skillSources(await pluginSkillsListInstalled(this.executor), operationSignal);
|
|
295
|
+
const source = sources.find(({ name }) => name === skill.name);
|
|
296
|
+
if (!source || source.description !== skill.description)
|
|
297
|
+
throw new Error("The plugin no longer provides this durable skill");
|
|
298
|
+
const loaded = await this.packages.readSkill(source.pluginId, source.packageDirectory, source.shortName, source.packageDigest, source.name, source.directory, operationSignal);
|
|
299
|
+
if (loaded.description !== skill.description)
|
|
300
|
+
throw new Error("Installed plugin skill metadata no longer matches");
|
|
301
|
+
return { status: "completed", output: loaded.source };
|
|
302
|
+
});
|
|
303
|
+
}
|
|
304
|
+
catch (error) {
|
|
305
|
+
if (signal?.aborted)
|
|
306
|
+
throw error;
|
|
307
|
+
return {
|
|
308
|
+
status: "failed",
|
|
309
|
+
error: {
|
|
310
|
+
code: "plugin_skill_failed",
|
|
311
|
+
message: errorMessage(error),
|
|
312
|
+
},
|
|
313
|
+
};
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
async callFunction(functionName, args, context, signal) {
|
|
137
317
|
try {
|
|
138
|
-
return await withOperationTimeout(FUNCTION_EXECUTION_TIMEOUT_MS, "Plugin MCP function execution", signal, (operationSignal) => this.callFunctionWithSignal(functionName, args, operationSignal));
|
|
318
|
+
return await withOperationTimeout(FUNCTION_EXECUTION_TIMEOUT_MS, "Plugin MCP function execution", signal, (operationSignal) => this.callFunctionWithSignal(functionName, args, context, operationSignal));
|
|
139
319
|
}
|
|
140
320
|
catch (error) {
|
|
141
321
|
if (signal?.aborted)
|
|
@@ -149,7 +329,7 @@ export class PluginService {
|
|
|
149
329
|
};
|
|
150
330
|
}
|
|
151
331
|
}
|
|
152
|
-
async callFunctionWithSignal(functionName, args, signal) {
|
|
332
|
+
async callFunctionWithSignal(functionName, args, context, signal) {
|
|
153
333
|
const installationId = pluginFunctionInstallationId(functionName);
|
|
154
334
|
if (!installationId)
|
|
155
335
|
throw new Error(`Unknown plugin function ${JSON.stringify(functionName)}`);
|
|
@@ -164,10 +344,20 @@ export class PluginService {
|
|
|
164
344
|
pluginFunctionName(installationId, tool.name) === functionName);
|
|
165
345
|
if (!cached)
|
|
166
346
|
throw new Error("The plugin no longer exposes this cached function");
|
|
347
|
+
const chatToken = await this.tokens.issuePluginChatToken({
|
|
348
|
+
installationId,
|
|
349
|
+
chatId: context.chatId,
|
|
350
|
+
});
|
|
167
351
|
const result = await this.withClient(installationId, signal, async (client) => {
|
|
168
352
|
const result = await client.callTool({
|
|
169
353
|
name: cached.name,
|
|
170
354
|
arguments: jsonArguments(args),
|
|
355
|
+
_meta: {
|
|
356
|
+
[PLUGIN_CHAT_META_KEY]: {
|
|
357
|
+
id: context.chatId,
|
|
358
|
+
token: chatToken,
|
|
359
|
+
},
|
|
360
|
+
},
|
|
171
361
|
});
|
|
172
362
|
if (result.isError)
|
|
173
363
|
return {
|
|
@@ -184,6 +374,17 @@ export class PluginService {
|
|
|
184
374
|
throw new Error("The plugin does not expose MCP tools");
|
|
185
375
|
return result;
|
|
186
376
|
}
|
|
377
|
+
skillSources(records, signal) {
|
|
378
|
+
const names = new Map();
|
|
379
|
+
for (const record of records) {
|
|
380
|
+
signal?.throwIfAborted();
|
|
381
|
+
const existing = names.get(record.name);
|
|
382
|
+
if (existing)
|
|
383
|
+
throw new PluginSkillCatalogError(`Installed plugins ${existing} and ${record.shortName} both provide skill ${record.name}`);
|
|
384
|
+
names.set(record.name, record.shortName);
|
|
385
|
+
}
|
|
386
|
+
return [...records];
|
|
387
|
+
}
|
|
187
388
|
async authorizeHost(token, permission) {
|
|
188
389
|
let claims;
|
|
189
390
|
try {
|
|
@@ -210,6 +411,32 @@ export class PluginService {
|
|
|
210
411
|
}
|
|
211
412
|
return claims.installationId;
|
|
212
413
|
}
|
|
414
|
+
async chatUpdate(runtimeToken, chatToken, input) {
|
|
415
|
+
const installationId = await this.authorizeHost(runtimeToken, "chats:update");
|
|
416
|
+
let claims;
|
|
417
|
+
try {
|
|
418
|
+
claims = await this.tokens.verifyPluginChatToken(chatToken);
|
|
419
|
+
}
|
|
420
|
+
catch {
|
|
421
|
+
throw new PluginError("forbidden", "Plugin chat token is invalid");
|
|
422
|
+
}
|
|
423
|
+
if (claims.installationId !== installationId)
|
|
424
|
+
throw new PluginError("forbidden", "Plugin chat token belongs to another installation");
|
|
425
|
+
const result = await chatUpdateMetadata(this.executor, {
|
|
426
|
+
chatId: claims.chatId,
|
|
427
|
+
...input,
|
|
428
|
+
});
|
|
429
|
+
const event = { type: "sync", ...result.hint };
|
|
430
|
+
await Promise.allSettled([
|
|
431
|
+
this.pubsub.publish(realtimeTopics.chat(claims.chatId), event),
|
|
432
|
+
this.pubsub.publish(realtimeTopics.server, event),
|
|
433
|
+
]).then((publications) => {
|
|
434
|
+
for (const publication of publications)
|
|
435
|
+
if (publication.status === "rejected")
|
|
436
|
+
this.onError(publication.reason);
|
|
437
|
+
});
|
|
438
|
+
return { chat: result.chat, sync: result.hint };
|
|
439
|
+
}
|
|
213
440
|
async close() {
|
|
214
441
|
this.closed = true;
|
|
215
442
|
for (const { controller } of this.activations.values())
|
|
@@ -218,6 +445,73 @@ export class PluginService {
|
|
|
218
445
|
for (const handle of this.commandHandles.values())
|
|
219
446
|
handle.close();
|
|
220
447
|
this.commandHandles.clear();
|
|
448
|
+
await Promise.allSettled([...this.preparations.values()].map(({ id }) => this.packages.removePreparation(id)));
|
|
449
|
+
this.preparations.clear();
|
|
450
|
+
}
|
|
451
|
+
async prepareArchive(actorUserId, archive, kind, remote, onProgress) {
|
|
452
|
+
this.preparationsExpire();
|
|
453
|
+
const directory = await this.packages.createDownloadDirectory();
|
|
454
|
+
try {
|
|
455
|
+
const candidates = await pluginArchiveExtract(archive, directory, kind);
|
|
456
|
+
const prepared = [];
|
|
457
|
+
for (const candidate of candidates) {
|
|
458
|
+
const provisionalSource = remote
|
|
459
|
+
? downloadedPluginSource(remote, candidate.packagePath)
|
|
460
|
+
: { kind: "upload", reference: "upload:pending" };
|
|
461
|
+
let plugin = await pluginPackageLoadSource(candidate.directory, provisionalSource);
|
|
462
|
+
if (/^plugins\/[^/]+$/.test(candidate.packagePath)) {
|
|
463
|
+
const folder = candidate.packagePath.split("/").at(-1);
|
|
464
|
+
if (plugin.manifest.shortName !== folder)
|
|
465
|
+
throw new PluginError("invalid_package", `${candidate.packagePath}: shortName must match its plugin folder`);
|
|
466
|
+
}
|
|
467
|
+
if (!remote)
|
|
468
|
+
plugin = { ...plugin, source: uploadedPluginSource(plugin.packageDigest) };
|
|
469
|
+
const id = createId();
|
|
470
|
+
plugin = await this.packages.prepare(plugin, id);
|
|
471
|
+
const secret = randomBytes(32).toString("base64url");
|
|
472
|
+
const token = `${id}.${secret}`;
|
|
473
|
+
const expiresAt = Date.now() + PREPARATION_TTL_MS;
|
|
474
|
+
this.preparations.set(id, {
|
|
475
|
+
actorUserId,
|
|
476
|
+
expiresAt,
|
|
477
|
+
id,
|
|
478
|
+
plugin,
|
|
479
|
+
secretHash: createHash("sha256").update(secret).digest(),
|
|
480
|
+
});
|
|
481
|
+
prepared.push(preparedSummary(plugin, token, expiresAt));
|
|
482
|
+
}
|
|
483
|
+
onProgress("prepared", "Plugin package is verified and ready to install.");
|
|
484
|
+
return prepared;
|
|
485
|
+
}
|
|
486
|
+
catch (error) {
|
|
487
|
+
if (error instanceof PluginError)
|
|
488
|
+
throw error;
|
|
489
|
+
throw new PluginError("invalid_package", errorMessage(error));
|
|
490
|
+
}
|
|
491
|
+
finally {
|
|
492
|
+
await this.packages.removeDownloadDirectory(directory);
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
async preparationTake(actorUserId, token) {
|
|
496
|
+
this.preparationsExpire();
|
|
497
|
+
const match = /^([a-z0-9]+)\.([A-Za-z0-9_-]{43})$/.exec(token);
|
|
498
|
+
const prepared = match ? this.preparations.get(match[1]) : undefined;
|
|
499
|
+
const suppliedHash = match ? createHash("sha256").update(match[2]).digest() : undefined;
|
|
500
|
+
if (!prepared ||
|
|
501
|
+
!suppliedHash ||
|
|
502
|
+
prepared.actorUserId !== actorUserId ||
|
|
503
|
+
!timingSafeEqual(prepared.secretHash, suppliedHash))
|
|
504
|
+
throw new PluginError("not_found", "Prepared plugin token was not found or expired");
|
|
505
|
+
this.preparations.delete(prepared.id);
|
|
506
|
+
return prepared;
|
|
507
|
+
}
|
|
508
|
+
preparationsExpire() {
|
|
509
|
+
const now = Date.now();
|
|
510
|
+
for (const [id, prepared] of this.preparations)
|
|
511
|
+
if (prepared.expiresAt <= now) {
|
|
512
|
+
this.preparations.delete(id);
|
|
513
|
+
void this.packages.removePreparation(id).catch(this.onError);
|
|
514
|
+
}
|
|
221
515
|
}
|
|
222
516
|
activate(installationId) {
|
|
223
517
|
if (this.closed || this.activations.has(installationId))
|
|
@@ -267,6 +561,7 @@ export class PluginService {
|
|
|
267
561
|
let preparedContainerName;
|
|
268
562
|
let preparedContainerInstanceId;
|
|
269
563
|
let commandHandle;
|
|
564
|
+
let buildContextDirectory;
|
|
270
565
|
this.closeCommand(installationId);
|
|
271
566
|
try {
|
|
272
567
|
signal.throwIfAborted();
|
|
@@ -288,16 +583,19 @@ export class PluginService {
|
|
|
288
583
|
const dockerfile = configuration.bundledDockerfile
|
|
289
584
|
? await readFile(join(configuration.packageDirectory, configuration.bundledDockerfile), "utf8")
|
|
290
585
|
: undefined;
|
|
586
|
+
if (dockerfile)
|
|
587
|
+
buildContextDirectory = await this.packages.createBuildContext(configuration.pluginId, configuration.packageDirectory, configuration.shortName, configuration.packageDigest);
|
|
291
588
|
const prepared = await this.runtime.prepareLocal({
|
|
292
589
|
installationId,
|
|
293
590
|
containerName: configuration.containerName,
|
|
294
591
|
containerInstanceId: createId(),
|
|
295
592
|
existingContainerInstanceId: configuration.containerInstanceId,
|
|
296
593
|
imageTag: configuration.imageTag,
|
|
594
|
+
workspaceDirectory: await this.packages.workspaceDirectory(configuration.pluginId, installationId),
|
|
297
595
|
...(dockerfile
|
|
298
596
|
? {
|
|
299
597
|
build: {
|
|
300
|
-
contextDirectory:
|
|
598
|
+
contextDirectory: buildContextDirectory,
|
|
301
599
|
dockerfile,
|
|
302
600
|
tag: configuration.imageTag,
|
|
303
601
|
},
|
|
@@ -351,6 +649,10 @@ export class PluginService {
|
|
|
351
649
|
? "Plugin configuration must be corrected before it can start."
|
|
352
650
|
: "Plugin runtime failed to prepare or start.", errorMessage(error), undefined, preparedContainerInstanceId ? null : undefined).catch(this.onError);
|
|
353
651
|
}
|
|
652
|
+
finally {
|
|
653
|
+
if (buildContextDirectory)
|
|
654
|
+
await this.packages.removeBuildContext(buildContextDirectory).catch(this.onError);
|
|
655
|
+
}
|
|
354
656
|
}
|
|
355
657
|
async probeLocal(configuration, environment, signal) {
|
|
356
658
|
if (!configuration.mcp)
|
|
@@ -458,6 +760,8 @@ export class PluginService {
|
|
|
458
760
|
}
|
|
459
761
|
class PluginFunctionCatalogError extends Error {
|
|
460
762
|
}
|
|
763
|
+
class PluginSkillCatalogError extends Error {
|
|
764
|
+
}
|
|
461
765
|
function pluginFunctionName(installationId, toolName) {
|
|
462
766
|
const normalized = toolName
|
|
463
767
|
.normalize("NFKD")
|
|
@@ -581,4 +885,33 @@ function errorMessage(error) {
|
|
|
581
885
|
const message = error instanceof Error ? error.message : String(error);
|
|
582
886
|
return message.slice(0, 4_000);
|
|
583
887
|
}
|
|
888
|
+
function preparedSummary(plugin, preparedToken, expiresAt) {
|
|
889
|
+
const mcp = plugin.manifest.mcp;
|
|
890
|
+
return {
|
|
891
|
+
preparedToken,
|
|
892
|
+
expiresAt: new Date(expiresAt).toISOString(),
|
|
893
|
+
sourceKind: plugin.source.kind,
|
|
894
|
+
sourceReference: plugin.source.reference,
|
|
895
|
+
packageDigest: plugin.packageDigest,
|
|
896
|
+
version: plugin.manifest.version,
|
|
897
|
+
displayName: plugin.manifest.displayName,
|
|
898
|
+
shortName: plugin.manifest.shortName,
|
|
899
|
+
description: plugin.manifest.description,
|
|
900
|
+
skills: plugin.skills.map(({ name, description }) => ({ name, description })),
|
|
901
|
+
variables: plugin.manifest.variables,
|
|
902
|
+
...(mcp
|
|
903
|
+
? {
|
|
904
|
+
mcp: {
|
|
905
|
+
type: mcp.type,
|
|
906
|
+
container: mcp.type === "remote"
|
|
907
|
+
? "none"
|
|
908
|
+
: mcp.container
|
|
909
|
+
? "bundled"
|
|
910
|
+
: "selection_required",
|
|
911
|
+
},
|
|
912
|
+
}
|
|
913
|
+
: {}),
|
|
914
|
+
image: plugin.image,
|
|
915
|
+
};
|
|
916
|
+
}
|
|
584
917
|
//# sourceMappingURL=service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../sources/modules/plugin/service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../sources/modules/plugin/service.ts"],"names":[],"mappings":"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"}
|