mirror of
https://github.com/bckelley/cgm-remote-monitor.git
synced 2026-08-24 03:14:12 -05:00
Create a new RFC document and associated JSON schemas defining an agentic control plane for automated insulin delivery systems, including event envelopes, capabilities models, delivery tracking, and conflict rules. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 06715f81-f852-4156-8ab0-cf9e0aa3564d Replit-Commit-Checkpoint-Type: intermediate_checkpoint Replit-Commit-Event-Id: 010cdc4a-2c86-4d2e-9768-bf2769a89953 Replit-Helium-Checkpoint-Created: true
182 lines
5.2 KiB
JSON
182 lines
5.2 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "https://nightscout.github.io/schemas/capability-snapshot.schema.json",
|
|
"title": "CapabilitySnapshot",
|
|
"description": "Point-in-time snapshot of what the controller can actually do right now",
|
|
"type": "object",
|
|
"required": ["snapshotId", "controllerInstanceId", "snapshotAt"],
|
|
"properties": {
|
|
"snapshotId": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"description": "Unique identifier for this snapshot"
|
|
},
|
|
"controllerInstanceId": {
|
|
"type": "string",
|
|
"description": "Reference to ControllerInstanceRegistration"
|
|
},
|
|
"connectivity": {
|
|
"type": "object",
|
|
"description": "Current connectivity status",
|
|
"properties": {
|
|
"pumpConnected": {
|
|
"type": "boolean",
|
|
"description": "Is pump currently connected"
|
|
},
|
|
"pumpLastContact": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"description": "Last successful communication with pump"
|
|
},
|
|
"pumpRSSI": {
|
|
"type": "integer",
|
|
"description": "Pump radio signal strength"
|
|
},
|
|
"cgmConnected": {
|
|
"type": "boolean",
|
|
"description": "Is CGM currently connected"
|
|
},
|
|
"cgmLastReading": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"description": "Timestamp of last CGM reading"
|
|
},
|
|
"internetConnected": {
|
|
"type": "boolean",
|
|
"description": "Is device online"
|
|
}
|
|
}
|
|
},
|
|
"automationState": {
|
|
"type": "object",
|
|
"description": "Current automation status",
|
|
"properties": {
|
|
"closedLoopEnabled": {
|
|
"type": "boolean",
|
|
"description": "Is closed-loop automation active"
|
|
},
|
|
"suspended": {
|
|
"type": "boolean",
|
|
"description": "Is insulin delivery suspended"
|
|
},
|
|
"suspendReason": {
|
|
"type": "string",
|
|
"description": "Why suspended (if applicable)"
|
|
},
|
|
"lastLoopTime": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"description": "When loop algorithm last ran"
|
|
},
|
|
"lastEnactTime": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"description": "When last delivery was enacted"
|
|
}
|
|
}
|
|
},
|
|
"effectiveLimits": {
|
|
"type": "object",
|
|
"description": "Current safety limits in effect",
|
|
"properties": {
|
|
"maxBasal": {
|
|
"type": "number",
|
|
"description": "Maximum basal rate allowed (U/hr)"
|
|
},
|
|
"maxBolus": {
|
|
"type": "number",
|
|
"description": "Maximum bolus allowed (U)"
|
|
},
|
|
"maxIOB": {
|
|
"type": "number",
|
|
"description": "Maximum IOB allowed (U)"
|
|
},
|
|
"minBG": {
|
|
"type": "number",
|
|
"description": "Minimum target BG"
|
|
}
|
|
}
|
|
},
|
|
"health": {
|
|
"type": "object",
|
|
"description": "Device health indicators",
|
|
"properties": {
|
|
"reservoirUnits": {
|
|
"type": "number",
|
|
"description": "Remaining insulin units in reservoir"
|
|
},
|
|
"reservoirLevel": {
|
|
"type": "string",
|
|
"enum": ["full", "adequate", "low", "critical"],
|
|
"description": "Reservoir level category"
|
|
},
|
|
"batteryPercent": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 100,
|
|
"description": "Pump battery percentage"
|
|
},
|
|
"phoneBatteryPercent": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 100,
|
|
"description": "Controller device battery"
|
|
},
|
|
"podAge": {
|
|
"type": "integer",
|
|
"description": "Hours since pod was activated (for pod pumps)"
|
|
},
|
|
"podExpires": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"description": "When pod expires"
|
|
},
|
|
"cgmCalibrationStatus": {
|
|
"type": "string",
|
|
"enum": ["ok", "needed", "overdue", "na"],
|
|
"description": "CGM calibration status"
|
|
},
|
|
"sensorAge": {
|
|
"type": "integer",
|
|
"description": "Hours since sensor was started"
|
|
},
|
|
"timeSyncHealth": {
|
|
"type": "string",
|
|
"enum": ["good", "drift", "unknown"],
|
|
"description": "Clock synchronization status"
|
|
}
|
|
}
|
|
},
|
|
"degradedCapabilities": {
|
|
"type": "array",
|
|
"description": "Capabilities that are currently degraded or unavailable",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"capability": {
|
|
"type": "string",
|
|
"description": "Which capability is affected"
|
|
},
|
|
"reason": {
|
|
"type": "string",
|
|
"description": "Why it's degraded"
|
|
},
|
|
"since": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"snapshotAt": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"description": "When this snapshot was taken"
|
|
},
|
|
"validFor": {
|
|
"type": "integer",
|
|
"description": "How long this snapshot is valid (seconds)"
|
|
}
|
|
}
|
|
}
|