This repository has been archived on 2026-06-01. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
nerve/.knowledge/sense.md
T
xiaomo 97840e25ab chore: add .knowledge/ cards + knowledge.yaml
7 curated knowledge cards extracted from RFCs and docs:
- architecture: core pipeline, extension points, process isolation
- sense: compute behavior, Sense→Workflow, config
- workflow: engine, threads, WorkflowSpec
- adapter: AgentFn protocol, available adapters, extract layer
- coding-conventions: functional-first, Result type, naming
- monorepo: package structure, dependency rules
- knowledge-layer: sync/query CLI, embedding service

knowledge.yaml indexes .knowledge/**/*.md only.
2026-04-29 09:29:29 +00:00

1.1 KiB

Sense

A compute() function that samples or derives external data. The only first-class citizen in nerve.

Behavior

  • Returns T | null — non-null emits a Signal, null is silent (no storage write, no signal, no downstream trigger)
  • Each Sense has its own independent SQLite database
  • Cross-sense reads are read-only via peers parameter
  • Schema defined with Drizzle ORM (schema.ts is single source of truth)

Sense → Workflow

If compute() returns an object with workflow: "name|maxRounds|prompt", the engine starts that workflow and does not emit a Signal. workflow: null or "" means emit signal normally.

See routeSenseComputeOutput / parseSenseWorkflowDirective in @uncaged/nerve-core.

Config (nerve.yaml)

senses:
  cpu-usage:
    group: system        # senses in same group share a worker
    throttle: 10s        # min interval between computes
    timeout: 30s         # max compute duration
    grace_period: 5s     # wait before first compute
    interval: 30s        # periodic trigger (optional)
    on: [disk-pressure]  # trigger on signals from other senses (optional)