Switch alarms to structured triggers

This commit is contained in:
Eric Traut
2026-04-06 21:58:28 -07:00
parent 117ce78783
commit da2e581411
40 changed files with 1754 additions and 768 deletions

View File

@@ -12,6 +12,63 @@
],
"type": "string"
},
"AlarmTrigger": {
"oneOf": [
{
"properties": {
"kind": {
"enum": [
"delay"
],
"type": "string"
},
"repeat": {
"type": [
"boolean",
"null"
]
},
"seconds": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
}
},
"required": [
"kind",
"seconds"
],
"type": "object"
},
{
"properties": {
"dtstart": {
"type": [
"string",
"null"
]
},
"kind": {
"enum": [
"schedule"
],
"type": "string"
},
"rrule": {
"type": [
"string",
"null"
]
}
},
"required": [
"kind"
],
"title": "KindAlarmTrigger",
"type": "object"
}
]
},
"ApprovalsReviewer": {
"description": "Configures who approval requests are routed to for review. Examples include sandbox escapes, blocked network access, MCP approval prompts, and ARC escalations. Defaults to `user`. `guardian_subagent` uses a carefully prompted subagent to gather relevant context and apply a risk-based decision framework before approving or denying the request.",
"enum": [

View File

@@ -97,6 +97,63 @@
],
"type": "string"
},
"AlarmTrigger": {
"oneOf": [
{
"properties": {
"kind": {
"enum": [
"delay"
],
"type": "string"
},
"repeat": {
"type": [
"boolean",
"null"
]
},
"seconds": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
}
},
"required": [
"kind",
"seconds"
],
"type": "object"
},
{
"properties": {
"dtstart": {
"type": [
"string",
"null"
]
},
"kind": {
"enum": [
"schedule"
],
"type": "string"
},
"rrule": {
"type": [
"string",
"null"
]
}
},
"required": [
"kind"
],
"title": "KindAlarmTrigger",
"type": "object"
}
]
},
"AppBranding": {
"description": "EXPERIMENTAL - app metadata returned by app-list APIs.",
"properties": {
@@ -2532,9 +2589,6 @@
"format": "int64",
"type": "integer"
},
"cronExpression": {
"type": "string"
},
"delivery": {
"$ref": "#/definitions/AlarmDelivery"
},
@@ -2558,17 +2612,16 @@
"prompt": {
"type": "string"
},
"runOnce": {
"type": "boolean"
"trigger": {
"$ref": "#/definitions/AlarmTrigger"
}
},
"required": [
"createdAt",
"cronExpression",
"delivery",
"id",
"prompt",
"runOnce"
"trigger"
],
"type": "object"
},

View File

@@ -4966,6 +4966,63 @@
],
"type": "string"
},
"AlarmTrigger": {
"oneOf": [
{
"properties": {
"kind": {
"enum": [
"delay"
],
"type": "string"
},
"repeat": {
"type": [
"boolean",
"null"
]
},
"seconds": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
}
},
"required": [
"kind",
"seconds"
],
"type": "object"
},
{
"properties": {
"dtstart": {
"type": [
"string",
"null"
]
},
"kind": {
"enum": [
"schedule"
],
"type": "string"
},
"rrule": {
"type": [
"string",
"null"
]
}
},
"required": [
"kind"
],
"title": "KindAlarmTrigger",
"type": "object"
}
]
},
"AnalyticsConfig": {
"additionalProperties": true,
"properties": {
@@ -12333,9 +12390,6 @@
"format": "int64",
"type": "integer"
},
"cronExpression": {
"type": "string"
},
"delivery": {
"$ref": "#/definitions/v2/AlarmDelivery"
},
@@ -12359,17 +12413,16 @@
"prompt": {
"type": "string"
},
"runOnce": {
"type": "boolean"
"trigger": {
"$ref": "#/definitions/v2/AlarmTrigger"
}
},
"required": [
"createdAt",
"cronExpression",
"delivery",
"id",
"prompt",
"runOnce"
"trigger"
],
"type": "object"
},

View File

@@ -149,6 +149,63 @@
],
"type": "string"
},
"AlarmTrigger": {
"oneOf": [
{
"properties": {
"kind": {
"enum": [
"delay"
],
"type": "string"
},
"repeat": {
"type": [
"boolean",
"null"
]
},
"seconds": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
}
},
"required": [
"kind",
"seconds"
],
"type": "object"
},
{
"properties": {
"dtstart": {
"type": [
"string",
"null"
]
},
"kind": {
"enum": [
"schedule"
],
"type": "string"
},
"rrule": {
"type": [
"string",
"null"
]
}
},
"required": [
"kind"
],
"title": "KindAlarmTrigger",
"type": "object"
}
]
},
"AnalyticsConfig": {
"additionalProperties": true,
"properties": {
@@ -10188,9 +10245,6 @@
"format": "int64",
"type": "integer"
},
"cronExpression": {
"type": "string"
},
"delivery": {
"$ref": "#/definitions/AlarmDelivery"
},
@@ -10214,17 +10268,16 @@
"prompt": {
"type": "string"
},
"runOnce": {
"type": "boolean"
"trigger": {
"$ref": "#/definitions/AlarmTrigger"
}
},
"required": [
"createdAt",
"cronExpression",
"delivery",
"id",
"prompt",
"runOnce"
"trigger"
],
"type": "object"
},

View File

@@ -8,15 +8,69 @@
],
"type": "string"
},
"AlarmTrigger": {
"oneOf": [
{
"properties": {
"kind": {
"enum": [
"delay"
],
"type": "string"
},
"repeat": {
"type": [
"boolean",
"null"
]
},
"seconds": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
}
},
"required": [
"kind",
"seconds"
],
"type": "object"
},
{
"properties": {
"dtstart": {
"type": [
"string",
"null"
]
},
"kind": {
"enum": [
"schedule"
],
"type": "string"
},
"rrule": {
"type": [
"string",
"null"
]
}
},
"required": [
"kind"
],
"title": "KindAlarmTrigger",
"type": "object"
}
]
},
"ThreadAlarm": {
"properties": {
"createdAt": {
"format": "int64",
"type": "integer"
},
"cronExpression": {
"type": "string"
},
"delivery": {
"$ref": "#/definitions/AlarmDelivery"
},
@@ -40,17 +94,16 @@
"prompt": {
"type": "string"
},
"runOnce": {
"type": "boolean"
"trigger": {
"$ref": "#/definitions/AlarmTrigger"
}
},
"required": [
"createdAt",
"cronExpression",
"delivery",
"id",
"prompt",
"runOnce"
"trigger"
],
"type": "object"
}

View File

@@ -8,15 +8,69 @@
],
"type": "string"
},
"AlarmTrigger": {
"oneOf": [
{
"properties": {
"kind": {
"enum": [
"delay"
],
"type": "string"
},
"repeat": {
"type": [
"boolean",
"null"
]
},
"seconds": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
}
},
"required": [
"kind",
"seconds"
],
"type": "object"
},
{
"properties": {
"dtstart": {
"type": [
"string",
"null"
]
},
"kind": {
"enum": [
"schedule"
],
"type": "string"
},
"rrule": {
"type": [
"string",
"null"
]
}
},
"required": [
"kind"
],
"title": "KindAlarmTrigger",
"type": "object"
}
]
},
"ThreadAlarm": {
"properties": {
"createdAt": {
"format": "int64",
"type": "integer"
},
"cronExpression": {
"type": "string"
},
"delivery": {
"$ref": "#/definitions/AlarmDelivery"
},
@@ -40,17 +94,16 @@
"prompt": {
"type": "string"
},
"runOnce": {
"type": "boolean"
"trigger": {
"$ref": "#/definitions/AlarmTrigger"
}
},
"required": [
"createdAt",
"cronExpression",
"delivery",
"id",
"prompt",
"runOnce"
"trigger"
],
"type": "object"
}