AppSummary object is the entry type returned in the array from GET /apps. Rather than returning full state snapshots for every tracked application, NSP gives you a compact view of each one — enough to determine whether an application is ready for reads and writes, what runtime it uses, and where it currently is in its lifecycle. You use AppSummary to decide which applications to target and to pick the right pid or app_id before calling GET /state or POST /action.
The OS process ID of the tracked application. Valid for the lifetime of the current process instance. Because the OS recycles PIDs after a process exits, you should pair
pid with probe_status to confirm the process is still live before using it in an ActionRequest.A stable semantic identifier for the application that persists across process restarts. On first detection NSP derives a candidate ID from the process name and PID (for example
gmail-chrome-12847), then promotes it to a content-hash-based identifier once the probe has confirmed the app’s identity through the signature registry. You can use app_id as a durable reference — if Gmail restarts and gets a new PID, the app_id remains the same and NSP automatically associates the new process with it.Human-readable display name assigned by the signature registry, for example
"Gmail", "Mission Planner", or "VS Code". Suitable for display and logging. For programmatic identity checks, always use app_id.The runtime environment detected for this application. One of
v8, jvm, clr, native, or unknown. Determines which probe strategy NSP uses and the expected confidence ceiling for the app.The current lifecycle state of the probe attached to this application. Use this to determine whether the app is ready to serve state and accept actions.
Only apps with
probe_status: "active" are ready for action dispatch. Apps in detecting, attaching, or cold states will become active shortly; error states self-recover on the next retry cycle; detached apps require the process to restart.The current probe quality score from
0.0 to 1.0 for this application, matching the semantics of SubstrateState.confidence. Use this alongside probe_status to decide whether the app is ready for writes:confidence >= 0.80— safe forreversible_writeactionsconfidence >= 0.95— safe forirreversible_writeactions (also requiresverify_expression)
The number of dot-notation state keys currently in the application’s SSF objects map. A value of
0 while probe_status is active may indicate the probe is between cycles; a sustained 0 may indicate a labeling failure.The number of actions currently available in the application’s schema. This may grow over time as the probe learns more of the app’s action surface across sessions.
Full JSON Example
app_id Stability
Unlike pid, which changes whenever the OS assigns a new process slot, app_id is designed to remain constant for the same logical application across restarts, updates, and machine reboots. NSP builds it in two stages:
- Bootstrap ID — generated immediately on process detection using the exe name, runtime, and initial PID:
gmail-chrome-12847. This appears inAppSummaryduring the first probe cycle. - Stable ID — once the signature registry confirms the app identity (typically within the first active poll cycle), NSP promotes the ID to a content-hash form derived from the app’s name, runtime, and version fingerprint. This ID does not contain the PID and survives restarts.
app_id in your agent’s configuration and use it as your primary reference. When an app restarts, NSP automatically re-links the new PID to the same app_id so your stored reference remains valid.