What are Aptitudes?
Aptitudes are the functionality that the LDK provides to the developers. They are the primary way that a Loop interacts with the system. Each aptitude serves a unique purpose and has different functions and triggers.
Sensors are functions that observe and relay data on your machine. They're built into the Olive Helps desktop application and are what allows Olive Helps to understand what to do in order to deliver value when it’s needed instead of when someone seeks it out.
Examples of a Sensor can be found in the Filesystem Aptitude with its
readFile()functions. All Sensors can receive information about the state of various parts of the system, and have callbacks to respond accordingly.
Other examples of Sensors:
- Reading data from the clipboard
- Watching what values are typed into the Olive Helps search bar
- Monitoring what windows are being opened
- Listening to data from a WebSocket connection
Aptitudes are a set of functionality meant to interact in one specific way with a your machine. Sensors are listeners set through an Aptitude that are meant to monitor for specific events and report when that event occurs. Not all Aptitudes have Sensors, and not all capabilities of an Aptitude are a Sensor.
Here's a simple example that illustrates the relationship between an Aptitude and a Sensor.
Imagine a Loop where we want to monitor a file on your system for changes and log those changes to another file. A Loop would use the File System Aptitude to detect when a file changes through the
listenFile()Sensor. When one is detected, we would receive a
FileEventgiving us metadata about the change. We would then use the File System Aptitude's
writeFile()capability to copy those changes over to the logging file.
All the sensed data (ex. keystrokes) is not intrinsically sent to our API. Sensed data is kept in-memory in the local Olive Helps installation for short periods of time, but is then sent to any locally installed Loops that may listening for that kind of sensed data.
Metrics/metadata about sensed data will also be sent to Olive’s HIPAA cloud. For example, Olive Helps might collect things like how many words a person types or time spent in specific applications. These are meant to understand how people work and how Olive Helps can add more value over time -- they are not meant to record everything that someone types, for example.