pms-domain-model 0.0.2.0 → 0.0.3.0
raw patch · 4 files changed
+206/−5 lines, 4 files
Files
- CHANGELOG.md +4/−0
- pms-domain-model.cabal +3/−3
- src/PMS/Domain/Model/DM/Constant.hs +5/−0
- src/PMS/Domain/Model/DM/Type.hs +194/−2
CHANGELOG.md view
@@ -1,5 +1,9 @@ # Revision history for pms-domain-model +## 0.0.3.0 -- 2025-06-22++* Added file change monitoring for tools-list.json.+ ## 0.0.2.0 -- 2025-06-15 * Set stdio encoding to UTF-8.
pms-domain-model.cabal view
@@ -20,7 +20,7 @@ -- PVP summary: +-+------- breaking API changes -- | | +----- non-breaking API additions -- | | | +--- code changes with no API change-version: 0.0.2.0+version: 0.0.3.0 -- A short (one-line) description of the package. synopsis: pms-domain-model@@ -55,7 +55,7 @@ -- extra-source-files: library- ghc-options: -Wall -Wno-orphans -Wno-x-partial+ ghc-options: -Wall -threaded -Wno-orphans -Wno-x-partial -- Modules exported by the library. exposed-modules: PMS.Domain.Model.DM.TH,@@ -91,7 +91,7 @@ default-language: GHC2021 test-suite pms-domain-model-test- ghc-options: -Wno-incomplete-uni-patterns+ ghc-options: -threaded -Wno-incomplete-uni-patterns -- Import common warning flags. -- import: warnings
src/PMS/Domain/Model/DM/Constant.hs view
@@ -15,3 +15,8 @@ _TIME_FORMAT :: B.ByteString _TIME_FORMAT = T.encodeUtf8 $ T.pack "%Y/%m/%d %T %z" +-- |+--+_TOOLS_LIST_FILE :: String+_TOOLS_LIST_FILE = "tools-list.json"+
src/PMS/Domain/Model/DM/Type.hs view
@@ -117,6 +117,25 @@ , _resultJsonRpcResponse = def } +-- |+--+data JsonRpcNotification =+ JsonRpcNotification {+ _jsonrpcJsonRpcNotification :: String+ , _methodJsonRpcNotification :: String+ , _paramsJsonRpcNotification :: Maybe RawJsonByteString+ } deriving (Show, Read, Eq)++$(deriveJSON defaultOptions {fieldLabelModifier = dropDataName "JsonRpcNotification", omitNothingFields = True} ''JsonRpcNotification)+makeLenses ''JsonRpcNotification++instance Default JsonRpcNotification where+ def = JsonRpcNotification {+ _jsonrpcJsonRpcNotification = "2.0"+ , _methodJsonRpcNotification = def+ , _paramsJsonRpcNotification = def+ }+ -------------------------------------------------------------------------------- -- |@@ -232,7 +251,35 @@ deriving (Show, Read, Eq) --------------------------------------------------------------------------------+-- |+--+data McpInitializeResponseResultCapabilitiesResources =+ McpInitializeResponseResultCapabilitiesResources {+ _subscribedMcpInitializeResponseResultCapabilitiesResources :: Bool+ , _listChangedMcpInitializeResponseResultCapabilitiesResources :: Bool+ } deriving (Show, Read, Eq)+$(deriveJSON defaultOptions {fieldLabelModifier = dropDataName "McpInitializeResponseResultCapabilitiesResources", omitNothingFields = True} ''McpInitializeResponseResultCapabilitiesResources)+makeLenses ''McpInitializeResponseResultCapabilitiesResources +instance Default McpInitializeResponseResultCapabilitiesResources where+ def = McpInitializeResponseResultCapabilitiesResources {+ _subscribedMcpInitializeResponseResultCapabilitiesResources = def+ , _listChangedMcpInitializeResponseResultCapabilitiesResources = def+ }+++data McpInitializeResponseResultCapabilitiesPrompts =+ McpInitializeResponseResultCapabilitiesPrompts {+ _listChangedMcpInitializeResponseResultCapabilitiesPrompts :: Bool+ } deriving (Show, Read, Eq)+$(deriveJSON defaultOptions {fieldLabelModifier = dropDataName "McpInitializeResponseResultCapabilitiesPrompts", omitNothingFields = True} ''McpInitializeResponseResultCapabilitiesPrompts)+makeLenses ''McpInitializeResponseResultCapabilitiesPrompts++instance Default McpInitializeResponseResultCapabilitiesPrompts where+ def = McpInitializeResponseResultCapabilitiesPrompts {+ _listChangedMcpInitializeResponseResultCapabilitiesPrompts = True+ }+ -- | -- data McpInitializeResponseResultCapabilitiesTools =@@ -252,6 +299,8 @@ data McpInitializeResponseResultCapabilities = McpInitializeResponseResultCapabilities { _toolsMcpInitializeResponseResultCapabilities :: McpInitializeResponseResultCapabilitiesTools+ -- , _promptsMcpInitializeResponseResultCapabilities :: McpInitializeResponseResultCapabilitiesPrompts+ -- , _resourcesMcpInitializeResponseResultCapabilities :: McpInitializeResponseResultCapabilitiesResources } deriving (Show, Read, Eq) $(deriveJSON defaultOptions {fieldLabelModifier = dropDataName "McpInitializeResponseResultCapabilities", omitNothingFields = True} ''McpInitializeResponseResultCapabilities) makeLenses ''McpInitializeResponseResultCapabilities@@ -259,6 +308,8 @@ instance Default McpInitializeResponseResultCapabilities where def = McpInitializeResponseResultCapabilities { _toolsMcpInitializeResponseResultCapabilities = def+ -- , _promptsMcpInitializeResponseResultCapabilities = def+ -- , _resourcesMcpInitializeResponseResultCapabilities = def } -- |@@ -414,6 +465,45 @@ -------------------------------------------------------------------------------- -- | --+data McpToolListChangedNotificationDataParams =+ McpToolListChangedNotificationDataParams {+ _toolsMcpToolListChangedNotificationDataParams :: RawJsonByteString+ } deriving (Show, Read, Eq)++$(deriveJSON defaultOptions {fieldLabelModifier = dropDataName "McpToolListChangedNotificationDataParams", omitNothingFields = True} ''McpToolListChangedNotificationDataParams)+makeLenses ''McpToolListChangedNotificationDataParams++instance Default McpToolListChangedNotificationDataParams where+ def = McpToolListChangedNotificationDataParams {+ _toolsMcpToolListChangedNotificationDataParams = RawJsonByteString "[]"+ }++-- |+--+data McpToolListChangedNotificationData =+ McpToolListChangedNotificationData {+ _methodMcpToolListChangedNotificationData :: String+ , _paramsMcpToolListChangedNotificationData :: McpToolListChangedNotificationDataParams+ } deriving (Show, Read, Eq)++$(deriveJSON defaultOptions {fieldLabelModifier = dropDataName "McpToolListChangedNotificationData", omitNothingFields = True} ''McpToolListChangedNotificationData)+makeLenses ''McpToolListChangedNotificationData++instance Default McpToolListChangedNotificationData where+ def = McpToolListChangedNotificationData {+ _methodMcpToolListChangedNotificationData = "notifications/tools/list_changed"+ , _paramsMcpToolListChangedNotificationData = def+ }++-- |+--+data McpNotification =+ McpToolListChangedNotification McpToolListChangedNotificationData+ deriving (Show, Read, Eq)++--------------------------------------------------------------------------------+-- |+-- type PtyConnectCommandCallback a = ExitCode -> String -- ^ stdout -> String -- ^ stderr@@ -432,6 +522,25 @@ -- | --+type PtyTerminateCommandCallback a = ExitCode+ -> String -- ^ stdout+ -> String -- ^ stderr+ -> IO a++-- |+--+data PtyTerminateCommandData =+ PtyTerminateCommandData {+ _namePtyTerminateCommandData :: String+ , _argumentsPtyTerminateCommandData :: RawJsonByteString+ , _callbackPtyTerminateCommandData :: PtyTerminateCommandCallback ()+ }++makeLenses ''PtyTerminateCommandData+++-- |+-- type PtyMessageCommandCallback a = ExitCode -> String -- ^ stdout -> String -- ^ stderr@@ -467,7 +576,18 @@ makeLenses ''SystemCommandData +{-+-- |+--+data CmdRunCommandData =+ CmdRunCommandData {+ _jsonrpcCmdRunCommandData :: JsonRpcRequest+ , _nameCmdRunCommandData :: String+ , _argumentsCmdRunCommandData :: RawJsonByteString+ } +makeLenses ''CmdRunCommandData+-} -- | -- type EchoCommandCallback a = String -> IO a@@ -487,20 +607,81 @@ data Command = EchoCommand EchoCommandData | PtyConnectCommand PtyConnectCommandData+ | PtyTerminateCommand PtyTerminateCommandData | PtyMessageCommand PtyMessageCommandData | SystemCommand SystemCommandData+-- | CmdRunCommand CmdRunCommandData -------------------------------------------------------------------------------- -- | --+data DefaultCmdRunCommandData =+ DefaultCmdRunCommandData {+ _jsonrpcDefaultCmdRunCommandData :: JsonRpcRequest+ , _nameDefaultCmdRunCommandData :: String+ , _argumentsDefaultCmdRunCommandData :: RawJsonByteString+ } deriving (Show, Read, Eq)++makeLenses ''DefaultCmdRunCommandData++-- |+--+data EchoCmdRunCommandData =+ EchoCmdRunCommandData {+ _jsonrpcEchoCmdRunCommandData :: JsonRpcRequest+ , _valueEchoCmdRunCommandData :: String+ } deriving (Show, Read, Eq)++makeLenses ''EchoCmdRunCommandData++-- |+--+data CmdRunCommand =+ EchoCmdRunCommand EchoCmdRunCommandData+ | DefaultCmdRunCommand DefaultCmdRunCommandData+ deriving (Show, Read, Eq)++--------------------------------------------------------------------------------+-- |+--+data ToolsListWatchCommandData =+ ToolsListWatchCommandData {+ -- _jsonrpcToolsListWatchCommandData :: JsonRpcRequest+ } deriving (Show, Read, Eq)++makeLenses ''ToolsListWatchCommandData++-- |+--+data EchoWatchCommandData =+ EchoWatchCommandData {+ _jsonrpcEchoWatchCommandData :: JsonRpcRequest+ , _valueEchoWatchCommandData :: String+ } deriving (Show, Read, Eq)++makeLenses ''EchoWatchCommandData++-- |+--+data WatchCommand =+ EchoWatchCommand EchoWatchCommandData+ | ToolsListWatchCommand ToolsListWatchCommandData+ deriving (Show, Read, Eq)++--------------------------------------------------------------------------------+-- |+-- data DomainData = DomainData { _logDirDomainData :: Maybe String , _logLevelDomainData :: LogLevel- , _scriptsDirDomainData :: String+ , _toolsDirDomainData :: String , _requestQueueDomainData :: TQueue McpRequest , _responseQueueDomainData :: TQueue McpResponse+ , _notificationQueueDomainData :: TQueue McpNotification , _commandQueueDomainData :: TQueue Command+ , _cmdRunQueueDomainData :: TQueue CmdRunCommand+ , _watchQueueDomainData :: TQueue WatchCommand , _promptsDomainData :: [String] } @@ -509,19 +690,30 @@ defaultDomainData :: IO DomainData defaultDomainData = do hSetEncoding stdin utf8+ hSetBuffering stdin LineBuffering+ hSetEncoding stdout utf8+ hSetBuffering stdout LineBuffering+ hSetEncoding stderr utf8+ hSetBuffering stderr LineBuffering reqQ <- newTQueueIO resQ <- newTQueueIO+ notQ <- newTQueueIO cmdQ <- newTQueueIO+ cmdRunQ <- newTQueueIO+ watchQ <- newTQueueIO return DomainData { _logDirDomainData = Nothing , _logLevelDomainData = LevelDebug- , _scriptsDirDomainData = "./scripts"+ , _toolsDirDomainData = "./tools" , _requestQueueDomainData = reqQ , _responseQueueDomainData = resQ+ , _notificationQueueDomainData = notQ , _commandQueueDomainData = cmdQ+ , _cmdRunQueueDomainData = cmdRunQ+ , _watchQueueDomainData = watchQ , _promptsDomainData = def }