@f-o-h/cli 0.1.75 → 0.1.77

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,37 @@
1
+ {
2
+ "schema_version": "business_requirement_brief.v1",
3
+ "business_name": "Acme Estates",
4
+ "industry": "real_estate",
5
+ "desired_use_cases": [
6
+ "buyer enquiry",
7
+ "viewing booking"
8
+ ],
9
+ "channels": [
10
+ "widget",
11
+ "voice"
12
+ ],
13
+ "knowledge_sources": [
14
+ {
15
+ "type": "website",
16
+ "label": "Acme Estates website",
17
+ "uri": "https://example.com"
18
+ },
19
+ {
20
+ "type": "property_feed",
21
+ "label": "Live property feed"
22
+ }
23
+ ],
24
+ "required_outcomes": [
25
+ "capture qualified buyer leads",
26
+ "request or book viewings"
27
+ ],
28
+ "handoff_rules": [
29
+ "handoff urgent buyers to branch staff",
30
+ "handoff if the user asks for a human"
31
+ ],
32
+ "constraints": [
33
+ "do not invent unavailable property facts",
34
+ "do not promise a viewing slot unless it is captured as an action"
35
+ ],
36
+ "optimization_target": "lead_quality"
37
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@f-o-h/cli",
3
- "version": "0.1.75",
3
+ "version": "0.1.77",
4
4
  "description": "FOH CLI - AI-operator provisioning tool for Front Of House",
5
5
  "license": "UNLICENSED",
6
6
  "bin": {
@@ -0,0 +1,67 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://frontofhouse.okii.uk/schemas/business-requirement-brief.v1.json",
4
+ "title": "BusinessRequirementBriefV1",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schema_version",
9
+ "business_name",
10
+ "industry",
11
+ "desired_use_cases",
12
+ "channels",
13
+ "knowledge_sources",
14
+ "required_outcomes",
15
+ "handoff_rules",
16
+ "constraints",
17
+ "optimization_target"
18
+ ],
19
+ "properties": {
20
+ "schema_version": { "const": "business_requirement_brief.v1" },
21
+ "business_name": { "type": "string", "minLength": 1, "maxLength": 200 },
22
+ "industry": { "enum": ["real_estate", "general"] },
23
+ "desired_use_cases": {
24
+ "type": "array",
25
+ "minItems": 1,
26
+ "maxItems": 20,
27
+ "items": { "type": "string", "minLength": 1, "maxLength": 200 }
28
+ },
29
+ "channels": {
30
+ "type": "array",
31
+ "minItems": 1,
32
+ "maxItems": 8,
33
+ "items": { "enum": ["widget", "voice", "whatsapp", "instagram", "sms"] }
34
+ },
35
+ "knowledge_sources": {
36
+ "type": "array",
37
+ "maxItems": 20,
38
+ "items": {
39
+ "type": "object",
40
+ "additionalProperties": false,
41
+ "required": ["type", "label"],
42
+ "properties": {
43
+ "type": { "type": "string", "minLength": 1, "maxLength": 80 },
44
+ "label": { "type": "string", "minLength": 1, "maxLength": 200 },
45
+ "uri": { "type": "string", "minLength": 1, "maxLength": 1000 }
46
+ }
47
+ }
48
+ },
49
+ "required_outcomes": {
50
+ "type": "array",
51
+ "minItems": 1,
52
+ "maxItems": 30,
53
+ "items": { "type": "string", "minLength": 1, "maxLength": 200 }
54
+ },
55
+ "handoff_rules": {
56
+ "type": "array",
57
+ "maxItems": 20,
58
+ "items": { "type": "string", "minLength": 1, "maxLength": 300 }
59
+ },
60
+ "constraints": {
61
+ "type": "array",
62
+ "maxItems": 30,
63
+ "items": { "type": "string", "minLength": 1, "maxLength": 300 }
64
+ },
65
+ "optimization_target": { "enum": ["latency", "lead_quality", "conversion", "cost", "safety", "customer_satisfaction"] }
66
+ }
67
+ }
@@ -0,0 +1,186 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://frontofhouse.okii.uk/schemas/foh-template.v1.json",
4
+ "title": "FohTemplateV1",
5
+ "type": "object",
6
+ "additionalProperties": true,
7
+ "required": [
8
+ "schema_version",
9
+ "template_id",
10
+ "slug",
11
+ "name",
12
+ "version",
13
+ "status",
14
+ "industry",
15
+ "category",
16
+ "use_case",
17
+ "summary",
18
+ "required_inputs",
19
+ "knowledge_expectations",
20
+ "tool_actions",
21
+ "tool_availability_matrix",
22
+ "channel_support",
23
+ "scenario_suites",
24
+ "proof_gates",
25
+ "optimization_targets",
26
+ "outcome_contract",
27
+ "fork_policy",
28
+ "lineage"
29
+ ],
30
+ "properties": {
31
+ "schema_version": { "const": "foh_template.v1" },
32
+ "template_id": { "type": "string", "minLength": 1 },
33
+ "slug": { "type": "string", "minLength": 1 },
34
+ "name": { "type": "string", "minLength": 1 },
35
+ "version": { "type": "string", "minLength": 1 },
36
+ "status": { "enum": ["draft", "certification_ready", "published", "deprecated"] },
37
+ "industry": { "enum": ["real_estate", "general"] },
38
+ "category": { "enum": ["buyer", "seller", "landlord", "tenant", "commercial", "support", "sales", "general"] },
39
+ "use_case": { "type": "string", "minLength": 1 },
40
+ "summary": { "type": "string", "minLength": 1 },
41
+ "channel_support": {
42
+ "type": "array",
43
+ "minItems": 1,
44
+ "items": { "enum": ["widget", "voice", "whatsapp", "instagram", "sms"] }
45
+ },
46
+ "tool_actions": {
47
+ "type": "array",
48
+ "items": {
49
+ "type": "object",
50
+ "required": ["id", "purpose", "required", "required_args", "visibility", "failure_modes"],
51
+ "properties": {
52
+ "id": { "type": "string", "minLength": 1 },
53
+ "purpose": { "type": "string", "minLength": 1 },
54
+ "required": { "type": "boolean" },
55
+ "expected_event": { "type": "string", "minLength": 1 },
56
+ "required_args": { "type": "array", "items": { "type": "string", "minLength": 1 } },
57
+ "visibility": {
58
+ "type": "array",
59
+ "items": { "enum": ["api", "cli", "sdk", "transcript", "proof_report"] }
60
+ },
61
+ "failure_modes": { "type": "array", "items": { "type": "string", "minLength": 1 } }
62
+ }
63
+ }
64
+ },
65
+ "tool_availability_matrix": {
66
+ "type": "array",
67
+ "items": {
68
+ "type": "object",
69
+ "required": [
70
+ "tool_id",
71
+ "declared_required",
72
+ "expected_evidence_surfaces",
73
+ "happy_path_scenario_ids",
74
+ "failure_or_fallback_scenario_ids"
75
+ ],
76
+ "properties": {
77
+ "tool_id": { "type": "string", "minLength": 1 },
78
+ "declared_required": { "type": "boolean" },
79
+ "expected_evidence_surfaces": {
80
+ "type": "array",
81
+ "minItems": 1,
82
+ "items": { "enum": ["api", "cli", "sdk", "transcript", "proof_report"] }
83
+ },
84
+ "happy_path_scenario_ids": { "type": "array", "items": { "type": "string", "minLength": 1 } },
85
+ "failure_or_fallback_scenario_ids": { "type": "array", "items": { "type": "string", "minLength": 1 } }
86
+ }
87
+ }
88
+ },
89
+ "scenario_suites": {
90
+ "type": "array",
91
+ "minItems": 1,
92
+ "items": {
93
+ "type": "object",
94
+ "required": ["id", "purpose", "scenario_ids", "channels"],
95
+ "properties": {
96
+ "id": { "type": "string" },
97
+ "purpose": { "type": "string" },
98
+ "scenario_ids": { "type": "array", "items": { "type": "string" } },
99
+ "channels": { "type": "array", "items": { "enum": ["widget", "voice", "whatsapp", "instagram", "sms"] } }
100
+ }
101
+ }
102
+ },
103
+ "proof_gates": {
104
+ "type": "array",
105
+ "minItems": 1,
106
+ "items": {
107
+ "type": "object",
108
+ "required": ["id", "required", "command", "pass_criteria"],
109
+ "properties": {
110
+ "id": { "type": "string" },
111
+ "required": { "type": "boolean" },
112
+ "channels": { "type": "array", "items": { "enum": ["widget", "voice", "whatsapp", "instagram", "sms"] } },
113
+ "command": { "type": "string" },
114
+ "pass_criteria": { "type": "array", "items": { "type": "string" } }
115
+ }
116
+ }
117
+ },
118
+ "voice_optionality": {
119
+ "type": "object",
120
+ "required": [
121
+ "enabled",
122
+ "selection_mode",
123
+ "no_spend_semantics",
124
+ "expected_hold_reason_codes",
125
+ "options",
126
+ "fallback_chain"
127
+ ],
128
+ "properties": {
129
+ "enabled": { "type": "boolean" },
130
+ "selection_mode": { "enum": ["single_default", "ordered_fallback"] },
131
+ "no_spend_semantics": { "enum": ["expected_hold", "not_supported"] },
132
+ "expected_hold_reason_codes": { "type": "array", "items": { "type": "string", "minLength": 1 } },
133
+ "options": {
134
+ "type": "array",
135
+ "minItems": 1,
136
+ "items": {
137
+ "type": "object",
138
+ "required": ["option_id", "provider", "voice", "language", "selection_priority", "supports_no_spend"],
139
+ "properties": {
140
+ "option_id": { "type": "string", "minLength": 1 },
141
+ "provider": { "type": "string", "minLength": 1 },
142
+ "voice": { "type": "string", "minLength": 1 },
143
+ "language": { "type": "string", "minLength": 1 },
144
+ "accent": { "type": "string", "minLength": 1 },
145
+ "selection_priority": { "type": "integer", "minimum": 1 },
146
+ "supports_no_spend": { "type": "boolean" }
147
+ }
148
+ }
149
+ },
150
+ "fallback_chain": {
151
+ "type": "array",
152
+ "items": {
153
+ "type": "object",
154
+ "required": ["from_option_id", "mode", "reason_code"],
155
+ "properties": {
156
+ "from_option_id": { "type": "string", "minLength": 1 },
157
+ "to_option_id": { "type": "string", "minLength": 1 },
158
+ "mode": { "enum": ["fallback_option", "expected_hold"] },
159
+ "reason_code": { "type": "string", "minLength": 1 }
160
+ }
161
+ }
162
+ }
163
+ }
164
+ },
165
+ "outcome_contract": {
166
+ "type": "object",
167
+ "required": ["primary_outcome", "success_events", "required_lead_fields", "escalation_triggers", "must_not_do"],
168
+ "properties": {
169
+ "primary_outcome": { "type": "string" },
170
+ "success_events": { "type": "array", "items": { "type": "string" } },
171
+ "required_lead_fields": { "type": "array", "items": { "type": "string" } },
172
+ "escalation_triggers": { "type": "array", "items": { "type": "string" } },
173
+ "must_not_do": { "type": "array", "items": { "type": "string" } }
174
+ }
175
+ },
176
+ "fork_policy": {
177
+ "type": "object",
178
+ "required": ["forkable", "clone_mode", "customizable_fields"],
179
+ "properties": {
180
+ "forkable": { "type": "boolean" },
181
+ "clone_mode": { "type": "string" },
182
+ "customizable_fields": { "type": "array", "items": { "type": "string" } }
183
+ }
184
+ }
185
+ }
186
+ }