Connector calls, semantic rules, and DuckDB memory keep long runs stable, and stream retry stops chats from stalling. Co-authored-by: Cursor <cursoragent@cursor.com>
260 lines
7.2 KiB
JSON
260 lines
7.2 KiB
JSON
{
|
|
"schema_version": "1.0",
|
|
"provider": "didar",
|
|
"semantic_operations": [
|
|
{
|
|
"name": "sales_summary",
|
|
"title_fa": "خلاصه فروش",
|
|
"enabled": true,
|
|
"input_schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"period": {
|
|
"type": "string"
|
|
},
|
|
"owner_ids": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"pipeline_id": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"period"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"business_definition": "Won deals whose won time belongs to the requested period.",
|
|
"date_basis": "won_at",
|
|
"raw_function": "search_deals",
|
|
"query_template": {
|
|
"Criteria": {
|
|
"Status": "Won",
|
|
"Sort": 9,
|
|
"SearchFromTime": "$period.start_utc",
|
|
"SearchToTime": "$period.end_utc_exclusive",
|
|
"IsDeleted": false
|
|
},
|
|
"From": 0,
|
|
"Limit": 100
|
|
},
|
|
"preferred_server_fields": [
|
|
"Response.WonDealsCount",
|
|
"Response.WonDealsTotalPrice"
|
|
],
|
|
"accuracy": {
|
|
"must_verify_row_status": true,
|
|
"must_verify_won_time_range": true,
|
|
"requires_golden_reconciliation_for_panel_parity": true,
|
|
"do_not_count_page_list_for_total": true
|
|
}
|
|
},
|
|
{
|
|
"name": "won_deals",
|
|
"title_fa": "معاملات موفق در بازه",
|
|
"enabled": true,
|
|
"input_schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"period": {
|
|
"type": "string"
|
|
},
|
|
"owner_ids": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"limit": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 500
|
|
}
|
|
},
|
|
"required": [
|
|
"period"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"business_definition": "Deals currently marked Won whose won time is in the requested period.",
|
|
"date_basis": "won_at",
|
|
"raw_function": "search_deals",
|
|
"status": "Won",
|
|
"materialize_records": true
|
|
},
|
|
{
|
|
"name": "lost_deals",
|
|
"title_fa": "معاملات ناموفق در بازه",
|
|
"enabled": true,
|
|
"input_schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"period": {
|
|
"type": "string"
|
|
},
|
|
"owner_ids": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"period"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"business_definition": "Deals currently marked Lost whose loss time is in the requested period.",
|
|
"date_basis": "lost_at",
|
|
"raw_function": "search_deals",
|
|
"status": "Lost",
|
|
"accuracy": {
|
|
"server_side_loss_date_filter_verified": false,
|
|
"safe_mode": "post_filter_ChangeToLossTime"
|
|
}
|
|
},
|
|
{
|
|
"name": "deals_created",
|
|
"title_fa": "معاملات ثبتشده در بازه",
|
|
"enabled": true,
|
|
"input_schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"period": {
|
|
"type": "string"
|
|
},
|
|
"status": {
|
|
"type": "string",
|
|
"enum": [
|
|
"Pending",
|
|
"Won",
|
|
"Lost"
|
|
]
|
|
},
|
|
"owner_ids": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"period"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"business_definition": "Deals whose RegisterTime belongs to the requested period; current status must be read from Status.",
|
|
"date_basis": "created_at",
|
|
"raw_function": "search_deals",
|
|
"query_sort": 0,
|
|
"response_disclosure": "Period is based on deal registration time."
|
|
},
|
|
{
|
|
"name": "pending_pipeline_snapshot",
|
|
"title_fa": "نمای فعلی معاملات جاری",
|
|
"enabled": true,
|
|
"input_schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"owner_ids": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"pipeline_id": {
|
|
"type": "string"
|
|
},
|
|
"pipeline_stage_ids": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"business_definition": "Current snapshot of deals with Status=Pending and IsDeleted=false.",
|
|
"date_basis": "current_snapshot",
|
|
"raw_function": "search_deals",
|
|
"status": "Pending"
|
|
},
|
|
{
|
|
"name": "sales_by_owner",
|
|
"title_fa": "فروش به تفکیک کارشناس",
|
|
"enabled": true,
|
|
"input_schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"period": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"period"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"business_definition": "Won sales in period grouped by deal OwnerId and resolved via get_users.",
|
|
"depends_on": [
|
|
"sales_summary",
|
|
"get_users"
|
|
],
|
|
"group_by": "OwnerId",
|
|
"owner_resolution": "get_users",
|
|
"requires_code_interpreter": true,
|
|
"money_policy_ref": "money_rules.safe_reporting_policy"
|
|
},
|
|
{
|
|
"name": "sales_over_time",
|
|
"title_fa": "روند فروش در زمان",
|
|
"enabled": true,
|
|
"input_schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"period": {
|
|
"type": "string"
|
|
},
|
|
"grain": {
|
|
"type": "string",
|
|
"enum": [
|
|
"day",
|
|
"week",
|
|
"month"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"period"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"business_definition": "Won sales grouped by ChangeToWonTime.",
|
|
"requires_records": true,
|
|
"group_date_field": "ChangeToWonTime",
|
|
"requires_code_interpreter": true
|
|
},
|
|
{
|
|
"name": "sales_by_product",
|
|
"title_fa": "فروش به تفکیک محصول",
|
|
"enabled": false,
|
|
"business_definition": "Sold quantity and amount by product for won deals in period.",
|
|
"reason_disabled": "Search Deals may not contain complete Items for every account/result. Enable only after a verified retrieval recipe and dashboard reconciliation are implemented."
|
|
},
|
|
{
|
|
"name": "sales_by_product_over_time",
|
|
"title_fa": "فروش محصول در زمان",
|
|
"enabled": false,
|
|
"reason_disabled": "Requires verified product-item retrieval and currency semantics."
|
|
},
|
|
{
|
|
"name": "lead_count",
|
|
"title_fa": "تعداد سرنخ",
|
|
"enabled": false,
|
|
"reason_disabled": "The public API exposes LeadType/LeadStatus/ContactType examples but does not define one authoritative provider-wide lead counting rule. Calibrate against the account UI before enabling."
|
|
}
|
|
]
|
|
} |