addedInput schema / properties / deadline_hard
Added value: +{
+ "type": "boolean"
+}
addedInput schema / properties / deadline_reason
Added value: +{
+ "description": "Optional reason for the date, without names or contact details.",
+ "maxLength": 300,
+ "type": "string"
+}
addedInput schema / properties / intent_confidence
Added value: +{
+ "enum": [
+ "low",
+ "med",
+ "high"
+ ],
+ "type": "string"
+}
addedInput schema / properties / intent_level
Added value: +{
+ "description": "10 emergency; 8 soon; 6 planned; 4 if the price is right; 2 someday. Use only evidence from the homeowner.",
+ "enum": [
+ 2,
+ 4,
+ 6,
+ 8,
+ 10
+ ],
+ "type": "integer"
+}
addedInput schema / properties / must_haves
Added value: +{
+ "description": "Known answers to this job type’s intake_templates must-haves; unknown answers can come later.",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "answer": {
+ "maxLength": 300,
+ "minLength": 1,
+ "type": "string"
+ },
+ "key": {
+ "maxLength": 100,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "key",
+ "answer"
+ ],
+ "type": "object"
+ },
+ "maxItems": 20,
+ "type": "array"
+}
addedInput schema / properties / photoUrls
Added value: +{
+ "description": "Optional photos; attachment still requires the existing scan and photo permissions.",
+ "items": {
+ "maxLength": 2048,
+ "pattern": "^https://",
+ "type": "string"
+ },
+ "maxItems": 5,
+ "type": "array"
+}
addedInput schema / properties / project_completion_deadline
Added value: +{
+ "description": "ISO date, or null for no deadline; never a price.",
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
+ "type": [
+ "string",
+ "null"
+ ]
+}
addedInput schema / properties / quotes_by
Added value: +{
+ "description": "ISO date, or null for no deadline; never a price.",
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
+ "type": [
+ "string",
+ "null"
+ ]
+}
addedInput schema / properties / trade
Added value: +{
+ "description": "Job trade; generic home repair is allowed.",
+ "maxLength": 100,
+ "minLength": 1,
+ "type": "string"
+}
addedInput schema / properties / walk_clip
Added value: +{
+ "description": "Description or transcript of a 20–60 s walk clip. This tool does not upload video bytes or fetch video URLs.",
+ "maxLength": 1000,
+ "minLength": 1,
+ "type": "string"
+}
changedInput schema / required
Previous value: -[
- "message",
- "zip"
-]New value: +[
+ "message",
+ "zip",
+ "trade"
+]
addedOutput schema / properties / cardUnavailable
Added value: +{
+ "const": true,
+ "type": "boolean"
+}
addedOutput schema / properties / photosAdded
Added value: +{
+ "maximum": 5,
+ "minimum": 0,
+ "type": "integer"
+}
addedOutput schema / properties / photosRefused
Added value: +{
+ "maximum": 5,
+ "minimum": 0,
+ "type": "integer"
+}
addedOutput schema / properties / understood
Added value: +{
+ "additionalProperties": false,
+ "properties": {
+ "missingMustHaves": {
+ "items": {
+ "pattern": "^gap_[a-f0-9]{16}$",
+ "type": "string"
+ },
+ "maxItems": 100,
+ "type": "array"
+ },
+ "nextQuestion": {
+ "additionalProperties": false,
+ "properties": {
+ "author": {
+ "const": "assistant",
+ "type": "string"
+ },
+ "instructionFlags": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "text": {
+ "maxLength": 600,
+ "type": "string"
+ },
+ "untrusted": {
+ "const": true,
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "untrusted",
+ "author",
+ "text",
+ "instructionFlags"
+ ],
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "scopeSummary": {
+ "maxLength": 600,
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "trade": {
+ "maxLength": 600,
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "trade",
+ "scopeSummary",
+ "missingMustHaves",
+ "nextQuestion"
+ ],
+ "type": "object"
+}