-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathmanifest_schema.json
More file actions
128 lines (128 loc) · 5.72 KB
/
manifest_schema.json
File metadata and controls
128 lines (128 loc) · 5.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"bot_name",
"accent_color",
"title1",
"title2",
"author",
"occupation",
"typical_group",
"github_repo",
"integrations",
"featured_actions",
"intro_message",
"preferred_model_default",
"daily_budget_default",
"default_inbox_default",
"tags"
],
"additionalProperties": false,
"properties": {
"bot_name": {
"type": "string",
"title": "Bot Name",
"pattern": "^[a-z][a-z0-9_]*$",
"description": "Unique bot identifier used internally and in API calls. Lowercase letters, digits, and underscores only, must start with a letter. Example: 'productman', 'owl_strategist'."
},
"accent_color": {
"type": "string",
"title": "Accent Color",
"pattern": "^#[0-9a-fA-F]{6}$",
"description": "Hex color code for the bot's UI theme in the marketplace and chat interface. Example: '#4A90E2'."
},
"title1": {
"type": "string",
"title": "Display Name",
"description": "Bot's display name shown in the marketplace and UI. Example: 'Productman', 'Ad Monster'."
},
"title2": {
"type": "string",
"title": "Tagline",
"description": "Short tagline describing what the bot does, shown below title1 in the marketplace. Example: 'Discovery Agent. Understand what to sell and to whom, validated by market logic.'."
},
"author": {
"type": "string",
"title": "Author",
"description": "Name of the bot's author or organization."
},
"occupation": {
"type": "string",
"title": "Occupation",
"description": "Bot's role or job title displayed in the marketplace. Example: 'Product Manager', 'Advertising Campaign Manager', 'Secretary Assistant'."
},
"typical_group": {
"type": "string",
"title": "Typical Group",
"description": "Default group or category path where the bot appears when installed into a workspace. Use '/' for root. Example: 'Marketing', 'Product / Research', 'Admin Tools'."
},
"github_repo": {
"type": "string",
"title": "GitHub Repository",
"description": "Git repository URL where the bot's source code lives. Example: 'https://github.com/smallcloudai/flexus-client-kit.git'."
},
"featured_actions": {
"type": "array",
"title": "Featured Actions",
"items": {
"type": "object",
"required": ["feat_question", "feat_expert"],
"additionalProperties": false,
"properties": {
"feat_question": {
"type": "string",
"title": "Question",
"description": "Suggested action text shown as a quick-start button in the UI."
},
"feat_expert": {
"type": "string",
"title": "Expert",
"description": "Name of the expert that handles this action. Use 'default' for the main expert."
}
}
},
"description": "Quick-start actions shown in the chat UI as clickable suggestions. Each action sends feat_question to the specified expert."
},
"intro_message": {
"type": "string",
"title": "Intro Message",
"description": "First message the bot sends when a user opens a new chat. Should briefly introduce the bot and its capabilities."
},
"preferred_model_default": {
"type": "string",
"title": "Preferred Model",
"description": "Default LLM model used for this bot's chat completions. Example: 'grok-4-1-fast-non-reasoning', 'grok-4-1-fast-reasoning'."
},
"daily_budget_default": {
"type": "integer",
"title": "Daily Budget",
"minimum": 1,
"description": "Default daily token budget for the bot in tokens. Admin can override in workspace settings. Example: 200000, 1000000."
},
"default_inbox_default": {
"type": "integer",
"title": "Default Inbox Size",
"minimum": 1,
"description": "Default maximum number of kanban inbox items the bot will accept. Controls backpressure on incoming tasks. Example: 20000, 100000."
},
"tags": {
"type": "array",
"title": "Tags",
"items": { "type": "string" },
"description": "Marketplace tags for discovery and filtering. Example: ['Marketing', 'Strategy', 'Hypothesis Validation']."
},
"integrations": {
"type": "array",
"title": "Tools and Integrations",
"items": { "type": "string" },
"description": "List of tools and integrations the bot uses. Accepts built-in integrations (flexus_policy_document, print_widget, gmail, google_calendar, jira, skills, mongo_store) and cloud tool names. Each provides tools and optionally OAuth. Example: ['flexus_policy_document', 'gmail', 'google_calendar']."
},
"shared_skills_allowlist": {
"type": "string",
"title": "Allow These Shared Skills",
"default": "",
"description": "Take skills in shared_skills/ that match any of the patterns in this comma-separated list, example: 'strategy-*,report-*'. Empty string means none, '*' means all."
}
}
}