blob: 42742f599ccf372b278ff08d8db86b4e948e1521 [file] [log] [blame]
// Copyright 2017 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
library fuchsia.modular;
using fuchsia.speech;
using fuchsia.sys;
interface UserIntelligenceProvider {
// Creates an |IntelligenceServices| scoped to a specific Component,
// identified by |scope|.
//
// NOTE: Eventually |component_id| will become more complex, specifying
// information needed to evaluate access-control policies for downstream
// services.
//
// ANOTHER NOTE: |IntelligenceServices| is a short-term "big bucket" in which
// to put any and all services that are to be exposed to Agents and Modules.
// Once our understanding of the needs of Agents/Modules is clearer, we
// should break the bucket apart.
1: GetComponentIntelligenceServices(ComponentScope scope,
request<IntelligenceServices> services);
2: GetSuggestionProvider(request<SuggestionProvider> suggestion_provider);
3: GetSpeechToText(request<fuchsia.speech.SpeechToText> speech_to_text);
// The |ComponentContext| is used to create agents and use message queues.
5: StartAgents(ComponentContext user_intelligence_context,
vector<string> session_agents,
vector<string> startup_agents);
// A standard set of services provided to all agents at startup,
// along with services particuarly for this agent.
6: GetServicesForAgent(string agent_url)
-> (fuchsia.sys.ServiceList service_list);
};