package ProjectRuntime id "package:project-runtime" revision "package:project-runtime@1" { constructor createProject id "export:project-runtime:create-project" constructs Project : unit; operation addTask id "export:project-runtime:add-task" : string -> atom-ref mode call receiver atom Project requires { edge tasks id "port:project-actions:tasks" : many-unique atom Task [connect]; constructor task id "port:project-actions:task-constructor" : Task; }; operation taskCountGet id "export:project-runtime:task-count-get" : unit -> uint32 mode call receiver atom Project requires { edge tasks id "port:project-count:tasks" : many-unique atom Task [resolve]; }; operation taskCountWatch id "export:project-runtime:task-count-watch" : unit -> watch-handle mode watch-start emits uint32 receiver atom Project requires { edge tasks id "port:project-count:tasks" : many-unique atom Task [resolve]; }; operation taskCountWatchStop id "export:project-runtime:task-count-watch-stop" : watch-handle -> unit mode watch-stop receiver atom Project; operation searchDocumentGet id "export:project-runtime:search-document-get" : unit -> message "org.quixos.web-studio.SearchDocument" mode call receiver atom Project requires { state name id "port:project-search:name" : string [read]; edge tasks id "port:project-search:tasks" : many-unique atom Task [resolve]; }; operation searchDocumentWatch id "export:project-runtime:search-document-watch" : unit -> watch-handle mode watch-start emits message "org.quixos.web-studio.SearchDocument" receiver atom Project requires { state name id "port:project-search:name" : string [read]; edge tasks id "port:project-search:tasks" : many-unique atom Task [resolve]; }; operation searchDocumentWatchStop id "export:project-runtime:search-document-watch-stop" : watch-handle -> unit mode watch-stop receiver atom Project; }