@ai-matrx/associations 0.2.0
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.
- package/CHANGELOG.md +122 -0
- package/LICENSE +21 -0
- package/README.md +115 -0
- package/dist/core/index.cjs +3191 -0
- package/dist/core/index.cjs.map +1 -0
- package/dist/core/index.d.cts +648 -0
- package/dist/core/index.d.ts +648 -0
- package/dist/core/index.js +3168 -0
- package/dist/core/index.js.map +1 -0
- package/dist/index.cjs +1479 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +11165 -0
- package/dist/index.d.ts +11165 -0
- package/dist/index.js +1456 -0
- package/dist/index.js.map +1 -0
- package/package.json +98 -0
|
@@ -0,0 +1,3168 @@
|
|
|
1
|
+
// src/results.ts
|
|
2
|
+
function isAssociationsRpcErr(r) {
|
|
3
|
+
return r.ok === false;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
// src/entity-types.generated.ts
|
|
7
|
+
var ENTITY_TYPE_METADATA = {
|
|
8
|
+
"access_request": { token: "access_request", schema: "iam", table: "access_requests", label: "Access Request", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: "System", referencePickable: false, titleColumn: null, contentRole: "utility", referenceCategory: null },
|
|
9
|
+
"activity": { token: "activity", schema: "platform", table: "activity_log", label: "Activity Log Entry", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
10
|
+
"agent": { token: "agent", schema: "agent", table: "definition", label: "Agent", baseTier: 1, isComponent: false, isModule: true, isListed: true, scopeable: true, category: "Agents", referencePickable: true, titleColumn: "name", contentRole: "utility", referenceCategory: null },
|
|
11
|
+
"agent_card": { token: "agent_card", schema: "agent", table: "card", label: "Agent Card", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
12
|
+
"agent_definition_version": { token: "agent_definition_version", schema: "agent", table: "definition_version", label: "Agent Definition Version", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "Agents", referencePickable: false, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
13
|
+
"agent_drift_alert": { token: "agent_drift_alert", schema: "agent", table: "drift_alert", label: "Agent Drift Alert", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "Agents", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
14
|
+
"agent_exemplar": { token: "agent_exemplar", schema: "agent", table: "exemplar", label: "Agent Test Case", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
15
|
+
"agent_mandate_note": { token: "agent_mandate_note", schema: "agent", table: "mandate_note", label: "Mandate Note", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
16
|
+
"agent_prompt_remediation": { token: "agent_prompt_remediation", schema: "agent", table: "prompt_remediation", label: "Agent Prompt Remediation", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
17
|
+
"agent_run": { token: "agent_run", schema: "chat", table: "agent_run", label: "Agent Run", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
18
|
+
"agent_run_stage": { token: "agent_run_stage", schema: "chat", table: "agent_run_stage", label: "Agent Run Stage", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
19
|
+
"agent_shortcut": { token: "agent_shortcut", schema: "agent", table: "shortcut", label: "Agent Shortcut", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: "Agents", referencePickable: true, titleColumn: "label", contentRole: "utility", referenceCategory: null },
|
|
20
|
+
"agent_surface_binding": { token: "agent_surface_binding", schema: "platform", table: "associations", label: "Agent Surface Binding", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: "Agents", referencePickable: true, titleColumn: "label", contentRole: null, referenceCategory: null },
|
|
21
|
+
"agent_template": { token: "agent_template", schema: "agent", table: "template", label: "Agent Template", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: "Agents", referencePickable: true, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
22
|
+
"agent_usage": { token: "agent_usage", schema: "agent", table: "usage", label: "Agent Usage", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "Agents", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
23
|
+
"ai_api": { token: "ai_api", schema: "ai", table: "api", label: "AI API", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
24
|
+
"ai_endpoint": { token: "ai_endpoint", schema: "ai", table: "endpoint", label: "AI Endpoint", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "display_name", contentRole: null, referenceCategory: null },
|
|
25
|
+
"ai_model": { token: "ai_model", schema: "ai", table: "model_definition", label: "AI Model", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
26
|
+
"ai_model_alias": { token: "ai_model_alias", schema: "ai", table: "model_alias", label: "AI Model Alias", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
27
|
+
"ai_offering": { token: "ai_offering", schema: "ai", table: "offering", label: "AI Offering", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
28
|
+
"ai_provider": { token: "ai_provider", schema: "ai", table: "provider", label: "AI Provider", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
29
|
+
"ai_setting": { token: "ai_setting", schema: "ai", table: "setting", label: "AI Setting", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: true, titleColumn: "key", contentRole: null, referenceCategory: null },
|
|
30
|
+
"app": { token: "app", schema: "app", table: "definition", label: "App", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: "Apps", referencePickable: true, titleColumn: "name", contentRole: "utility", referenceCategory: null },
|
|
31
|
+
"app_definition_version": { token: "app_definition_version", schema: "app", table: "definition_version", label: "App Definition Version", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "Apps", referencePickable: false, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
32
|
+
"app_error": { token: "app_error", schema: "app", table: "error", label: "App Error", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "Apps", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
33
|
+
"app_execution": { token: "app_execution", schema: "app", table: "execution", label: "App Execution", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "Apps", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
34
|
+
"app_instance": { token: "app_instance", schema: "public", table: "app_instances", label: "App Instance", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
35
|
+
"app_log": { token: "app_log", schema: "ops", table: "app_log", label: "App Log", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
36
|
+
"app_rate_limit": { token: "app_rate_limit", schema: "app", table: "rate_limit", label: "App Rate Limit", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "Apps", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
37
|
+
"app_setting": { token: "app_setting", schema: "public", table: "app_settings", label: "App Setting", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
38
|
+
"app_sync_status": { token: "app_sync_status", schema: "public", table: "app_sync_status", label: "App Sync Status", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
39
|
+
"approach": { token: "approach", schema: "platform", table: "approach", label: "Approach", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
40
|
+
"artifact": { token: "artifact", schema: "chat", table: "artifact", label: "Artifact", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "title", contentRole: null, referenceCategory: null },
|
|
41
|
+
"assessment": { token: "assessment", schema: "education", table: "assessment", label: "Assessment", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "title", contentRole: null, referenceCategory: null },
|
|
42
|
+
"assessment_item": { token: "assessment_item", schema: "education", table: "assessment_item", label: "Assessment Item", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
43
|
+
"assessment_result": { token: "assessment_result", schema: "education", table: "assessment_result", label: "Assessment Result", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
44
|
+
"assist": { token: "assist", schema: "platform", table: "assists", label: "Assist", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: "platform", referencePickable: false, titleColumn: "title", contentRole: null, referenceCategory: null },
|
|
45
|
+
"batch_cost_event": { token: "batch_cost_event", schema: "batch", table: "cost_event", label: "Batch Cost Event", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
46
|
+
"batch_provider_batch": { token: "batch_provider_batch", schema: "batch", table: "provider_batch", label: "Provider Batch", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
47
|
+
"batch_work_item": { token: "batch_work_item", schema: "batch", table: "work_item", label: "Batch Work Item", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
48
|
+
"browser_account_binding": { token: "browser_account_binding", schema: "browser", table: "account_binding", label: "Browser Account Binding", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
49
|
+
"browser_action_event": { token: "browser_action_event", schema: "browser", table: "action_event", label: "Browser Action Event", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
50
|
+
"browser_authenticator_window": { token: "browser_authenticator_window", schema: "browser", table: "authenticator_window", label: "Browser Authenticator Window", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
51
|
+
"browser_capture": { token: "browser_capture", schema: "browser", table: "capture", label: "Browser Capture", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
52
|
+
"browser_control_request": { token: "browser_control_request", schema: "browser", table: "control_request", label: "Browser Control Request", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
53
|
+
"browser_handoff": { token: "browser_handoff", schema: "browser", table: "handoff", label: "Browser Handoff", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
54
|
+
"browser_login_attempt": { token: "browser_login_attempt", schema: "browser", table: "login_attempt", label: "Browser Login Attempt", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
55
|
+
"browser_login_recipe": { token: "browser_login_recipe", schema: "browser", table: "login_recipe", label: "Browser Login Recipe", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
56
|
+
"browser_profile": { token: "browser_profile", schema: "browser", table: "profile", label: "Cloud Browser Profile", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
57
|
+
"browser_profile_checkpoint": { token: "browser_profile_checkpoint", schema: "browser", table: "profile_checkpoint", label: "Browser Profile Checkpoint", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
58
|
+
"browser_run": { token: "browser_run", schema: "browser", table: "run", label: "Cloud Browser Run", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
59
|
+
"browser_site_observation": { token: "browser_site_observation", schema: "browser", table: "site_observation", label: "Browser Site Observation", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
60
|
+
"browser_site_policy": { token: "browser_site_policy", schema: "browser", table: "site_policy", label: "Browser Site Policy", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
61
|
+
"browser_stream_ticket": { token: "browser_stream_ticket", schema: "browser", table: "stream_ticket", label: "Browser Stream Ticket", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
62
|
+
"canvas_comment": { token: "canvas_comment", schema: "canvas", table: "canvas_comments", label: "Canvas Comment", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "display_name", contentRole: null, referenceCategory: null },
|
|
63
|
+
"canvas_comment_like": { token: "canvas_comment_like", schema: "canvas", table: "canvas_comment_likes", label: "Canvas Comment Like", baseTier: 3, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
64
|
+
"canvas_item": { token: "canvas_item", schema: "canvas", table: "canvas_items", label: "Canvas Item", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "title", contentRole: null, referenceCategory: null },
|
|
65
|
+
"canvas_item_state": { token: "canvas_item_state", schema: "canvas", table: "canvas_item_state", label: "Canvas Item State", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
66
|
+
"canvas_like": { token: "canvas_like", schema: "canvas", table: "canvas_likes", label: "Canvas Like", baseTier: 3, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
67
|
+
"canvas_score": { token: "canvas_score", schema: "canvas", table: "canvas_scores", label: "Canvas Score", baseTier: 3, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "display_name", contentRole: null, referenceCategory: null },
|
|
68
|
+
"canvas_view": { token: "canvas_view", schema: "canvas", table: "canvas_views", label: "Canvas View", baseTier: 3, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
69
|
+
"category": { token: "category", schema: "platform", table: "categories", label: "Category", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
70
|
+
"cmp_entry": { token: "cmp_entry", schema: "agent", table: "cmp_comparison_entries", label: "Comparison Entry", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
71
|
+
"cmp_feedback": { token: "cmp_feedback", schema: "agent", table: "cmp_response_feedback", label: "Comparison Response Feedback", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
72
|
+
"code_file": { token: "code_file", schema: "code", table: "code_files", label: "Code File", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: "source", referenceCategory: null },
|
|
73
|
+
"code_folder": { token: "code_folder", schema: "code", table: "code_file_folders", label: "Code Folder", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: "container", referenceCategory: null },
|
|
74
|
+
"code_repository": { token: "code_repository", schema: "code", table: "code_repositories", label: "Code Repository", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: "container", referenceCategory: null },
|
|
75
|
+
"coding_session": { token: "coding_session", schema: "chat", table: "coding_session", label: "Coding Session", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
76
|
+
"coding_session_entry": { token: "coding_session_entry", schema: "chat", table: "coding_session_entry", label: "Coding Session Entry", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
77
|
+
"comment": { token: "comment", schema: "platform", table: "comments", label: "Comment", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
78
|
+
"commerce_asset_allocation": { token: "commerce_asset_allocation", schema: "commerce", table: "asset_allocation", label: "Asset Allocation", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
79
|
+
"commerce_asset_grading": { token: "commerce_asset_grading", schema: "commerce", table: "asset_grading", label: "Asset Grading", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
80
|
+
"commerce_asset_identifier": { token: "commerce_asset_identifier", schema: "commerce", table: "asset_identifier", label: "Asset Identifier", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
81
|
+
"commerce_asset_lot_event": { token: "commerce_asset_lot_event", schema: "commerce", table: "asset_lot_event", label: "Asset Lot Event", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
82
|
+
"commerce_asset_mandate_result": { token: "commerce_asset_mandate_result", schema: "commerce", table: "asset_mandate_result", label: "Asset Mandate Result", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
83
|
+
"commerce_asset_price_factor": { token: "commerce_asset_price_factor", schema: "commerce", table: "asset_price_factor", label: "Asset Price Factor", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
84
|
+
"commerce_asset_reshoot_request": { token: "commerce_asset_reshoot_request", schema: "commerce", table: "asset_reshoot_request", label: "Asset Reshoot Request", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
85
|
+
"commerce_asset_review": { token: "commerce_asset_review", schema: "commerce", table: "asset_review", label: "Asset Review", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
86
|
+
"commerce_asset_unknown": { token: "commerce_asset_unknown", schema: "commerce", table: "asset_unknown", label: "Asset Unknown", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
87
|
+
"commerce_cloud_sync_connection": { token: "commerce_cloud_sync_connection", schema: "commerce", table: "cloud_sync_connection", label: "Cloud Sync Connection", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
88
|
+
"commerce_ebay_business_policy": { token: "commerce_ebay_business_policy", schema: "commerce", table: "ebay_business_policy", label: "eBay Business Policy", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
89
|
+
"commerce_ebay_category": { token: "commerce_ebay_category", schema: "commerce", table: "ebay_category", label: "eBay Category", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
90
|
+
"commerce_ebay_category_aspect": { token: "commerce_ebay_category_aspect", schema: "commerce", table: "ebay_category_aspect", label: "eBay Category Aspect", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
91
|
+
"commerce_ebay_category_tree": { token: "commerce_ebay_category_tree", schema: "commerce", table: "ebay_category_tree", label: "eBay Category Tree", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
92
|
+
"commerce_ebay_custom_policy": { token: "commerce_ebay_custom_policy", schema: "commerce", table: "ebay_custom_policy", label: "eBay Custom Policy", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
93
|
+
"commerce_ebay_inventory_item": { token: "commerce_ebay_inventory_item", schema: "commerce", table: "ebay_inventory_item", label: "eBay Inventory Item", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
94
|
+
"commerce_ebay_inventory_item_group": { token: "commerce_ebay_inventory_item_group", schema: "commerce", table: "ebay_inventory_item_group", label: "eBay Inventory Item Group", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
95
|
+
"commerce_ebay_inventory_item_group_member": { token: "commerce_ebay_inventory_item_group_member", schema: "commerce", table: "ebay_inventory_item_group_member", label: "eBay Inventory Item Group Member", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
96
|
+
"commerce_ebay_inventory_location": { token: "commerce_ebay_inventory_location", schema: "commerce", table: "ebay_inventory_location", label: "eBay Inventory Location", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
97
|
+
"commerce_ebay_listing": { token: "commerce_ebay_listing", schema: "commerce", table: "ebay_listing", label: "eBay Listing", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
98
|
+
"commerce_ebay_marketplace_policy": { token: "commerce_ebay_marketplace_policy", schema: "commerce", table: "ebay_marketplace_policy", label: "eBay Marketplace Policy", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
99
|
+
"commerce_ebay_media_asset": { token: "commerce_ebay_media_asset", schema: "commerce", table: "ebay_media_asset", label: "eBay Media Asset", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
100
|
+
"commerce_ebay_notification_destination": { token: "commerce_ebay_notification_destination", schema: "commerce", table: "ebay_notification_destination", label: "eBay Notification Destination", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
101
|
+
"commerce_ebay_notification_event": { token: "commerce_ebay_notification_event", schema: "commerce", table: "ebay_notification_event", label: "eBay Notification Event", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
102
|
+
"commerce_ebay_notification_subscription": { token: "commerce_ebay_notification_subscription", schema: "commerce", table: "ebay_notification_subscription", label: "eBay Notification Subscription", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
103
|
+
"commerce_ebay_notification_topic": { token: "commerce_ebay_notification_topic", schema: "commerce", table: "ebay_notification_topic", label: "eBay Notification Topic", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
104
|
+
"commerce_ebay_offer": { token: "commerce_ebay_offer", schema: "commerce", table: "ebay_offer", label: "eBay Offer", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
105
|
+
"commerce_ebay_order": { token: "commerce_ebay_order", schema: "commerce", table: "ebay_order", label: "eBay Order", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
106
|
+
"commerce_ebay_order_line_item": { token: "commerce_ebay_order_line_item", schema: "commerce", table: "ebay_order_line_item", label: "eBay Order Line Item", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
107
|
+
"commerce_ebay_shipping_fulfillment": { token: "commerce_ebay_shipping_fulfillment", schema: "commerce", table: "ebay_shipping_fulfillment", label: "eBay Shipping Fulfillment", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
108
|
+
"commerce_ebay_store_category": { token: "commerce_ebay_store_category", schema: "commerce", table: "ebay_store_category", label: "eBay Store Category", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
109
|
+
"commerce_human_correction": { token: "commerce_human_correction", schema: "commerce", table: "human_correction", label: "Human Correction", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
110
|
+
"commerce_intake_artifact": { token: "commerce_intake_artifact", schema: "commerce", table: "intake_artifact", label: "Intake Artifact", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
111
|
+
"commerce_intake_asset": { token: "commerce_intake_asset", schema: "commerce", table: "intake_asset", label: "Intake Asset", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
112
|
+
"commerce_intake_batch": { token: "commerce_intake_batch", schema: "commerce", table: "intake_batch", label: "Intake Batch", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
113
|
+
"commerce_label_batch": { token: "commerce_label_batch", schema: "commerce", table: "label_batch", label: "Label Batch", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
114
|
+
"commerce_label_code": { token: "commerce_label_code", schema: "commerce", table: "label_code", label: "Label Code", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
115
|
+
"commerce_marketplace_account": { token: "commerce_marketplace_account", schema: "commerce", table: "marketplace_account", label: "Marketplace Account", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
116
|
+
"commerce_marketplace_account_deletion_audit": { token: "commerce_marketplace_account_deletion_audit", schema: "commerce", table: "marketplace_account_deletion_audit", label: "Marketplace Account Deletion Audit", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
117
|
+
"commerce_marketplace_api_call": { token: "commerce_marketplace_api_call", schema: "commerce", table: "marketplace_api_call", label: "Marketplace API Call", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
118
|
+
"commerce_marketplace_rate_budget": { token: "commerce_marketplace_rate_budget", schema: "commerce", table: "marketplace_rate_budget", label: "Marketplace Rate Budget", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
119
|
+
"commerce_marketplace_site": { token: "commerce_marketplace_site", schema: "commerce", table: "marketplace_site", label: "Marketplace Site", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
120
|
+
"commerce_marketplace_sync_run": { token: "commerce_marketplace_sync_run", schema: "commerce", table: "marketplace_sync_run", label: "Marketplace Sync Run", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
121
|
+
"commerce_prediction_outcome": { token: "commerce_prediction_outcome", schema: "commerce", table: "prediction_outcome", label: "Prediction Outcome", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
122
|
+
"commerce_product": { token: "commerce_product", schema: "commerce", table: "product", label: "Product", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
123
|
+
"commerce_product_channel_ref": { token: "commerce_product_channel_ref", schema: "commerce", table: "product_channel_ref", label: "Product Channel Reference", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
124
|
+
"commerce_product_media": { token: "commerce_product_media", schema: "commerce", table: "product_media", label: "Product Media", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
125
|
+
"commerce_product_variant": { token: "commerce_product_variant", schema: "commerce", table: "product_variant", label: "Product Variant", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
126
|
+
"commerce_recall_audit": { token: "commerce_recall_audit", schema: "commerce", table: "recall_audit", label: "Recall Audit", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
127
|
+
"comparison_set": { token: "comparison_set", schema: "agent", table: "cmp_comparison_sets", label: "Comparison Set", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
128
|
+
"contact_medium": { token: "contact_medium", schema: "crm", table: "contact_medium", label: "Contact Medium", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "display_value", contentRole: "utility", referenceCategory: null },
|
|
129
|
+
"contact_submission": { token: "contact_submission", schema: "communication", table: "contact_submissions", label: "Contact Submission", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
130
|
+
"content_ir_kind": { token: "content_ir_kind", schema: "content_ir", table: "kind_definition", label: "Content-IR Kind", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: true, titleColumn: "label", contentRole: null, referenceCategory: null },
|
|
131
|
+
"content_ir_kind_component": { token: "content_ir_kind_component", schema: "content_ir", table: "kind_component", label: "Kind Component", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
132
|
+
"content_ir_kind_component_incident": { token: "content_ir_kind_component_incident", schema: "content_ir", table: "kind_component_incident", label: "Kind Component Incident", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
133
|
+
"content_ir_kind_conformance": { token: "content_ir_kind_conformance", schema: "content_ir", table: "kind_conformance", label: "Shape Conformance", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
134
|
+
"content_ir_kind_edge": { token: "content_ir_kind_edge", schema: "content_ir", table: "kind_edge", label: "Content-IR Kind Edge", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
135
|
+
"content_ir_kind_example": { token: "content_ir_kind_example", schema: "content_ir", table: "kind_example", label: "Kind Example", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "label", contentRole: null, referenceCategory: null },
|
|
136
|
+
"content_ir_kind_instance": { token: "content_ir_kind_instance", schema: "content_ir", table: "kind_instance", label: "Saved Result", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: true, titleColumn: "title", contentRole: null, referenceCategory: null },
|
|
137
|
+
"content_ir_kind_surface": { token: "content_ir_kind_surface", schema: "content_ir", table: "kind_surface", label: "Kind Surface", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
138
|
+
"context_item": { token: "context_item", schema: "context", table: "context_items", label: "Context Item", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "display_name", contentRole: null, referenceCategory: null },
|
|
139
|
+
"context_item_suggestion": { token: "context_item_suggestion", schema: "rag", table: "context_item_suggestions", label: "Context Item Suggestion", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
140
|
+
"conversation": { token: "conversation", schema: "chat", table: "conversation", label: "Conversation", baseTier: 1, isComponent: false, isModule: true, isListed: false, scopeable: true, category: "Outputs", referencePickable: true, titleColumn: "title", contentRole: "destination", referenceCategory: null },
|
|
141
|
+
"conversation_value": { token: "conversation_value", schema: "chat", table: "conversation_value", label: "Conversation Value", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: false, category: null, referencePickable: false, titleColumn: "key", contentRole: null, referenceCategory: null },
|
|
142
|
+
"crm_address": { token: "crm_address", schema: "crm", table: "address", label: "Address", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "label", contentRole: null, referenceCategory: null },
|
|
143
|
+
"crm_affiliation": { token: "crm_affiliation", schema: "crm", table: "affiliation", label: "Affiliation", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "title", contentRole: null, referenceCategory: null },
|
|
144
|
+
"crm_blocklist_entry": { token: "crm_blocklist_entry", schema: "crm", table: "blocklist_entry", label: "Blocklist Entry", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
145
|
+
"crm_contact_candidate": { token: "crm_contact_candidate", schema: "crm", table: "contact_candidate", label: "Contact Candidate", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
146
|
+
"crm_deal": { token: "crm_deal", schema: "crm", table: "deal", label: "Deal", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: "source", referenceCategory: null },
|
|
147
|
+
"crm_deal_stage_event": { token: "crm_deal_stage_event", schema: "crm", table: "deal_stage_event", label: "Deal Stage Event", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
148
|
+
"crm_enrichment_call": { token: "crm_enrichment_call", schema: "crm", table: "enrichment_call", label: "Enrichment Call", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
149
|
+
"crm_interaction": { token: "crm_interaction", schema: "crm", table: "interaction", label: "Interaction", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "subject", contentRole: null, referenceCategory: null },
|
|
150
|
+
"crm_merge_candidate": { token: "crm_merge_candidate", schema: "crm", table: "merge_candidate", label: "Merge Candidate", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
151
|
+
"crm_outreach_list": { token: "crm_outreach_list", schema: "crm", table: "outreach_list", label: "Outreach List", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: "container", referenceCategory: null },
|
|
152
|
+
"crm_outreach_list_member": { token: "crm_outreach_list_member", schema: "crm", table: "outreach_list_member", label: "Outreach List Member", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
153
|
+
"crm_party_merge": { token: "crm_party_merge", schema: "crm", table: "party_merge", label: "Party Merge", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
154
|
+
"crm_registry_ingest_run": { token: "crm_registry_ingest_run", schema: "crm", table: "registry_ingest_run", label: "Registry Ingest Run", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
155
|
+
"crm_registry_source": { token: "crm_registry_source", schema: "crm", table: "registry_source", label: "Registry Source", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
156
|
+
"crm_saved_view": { token: "crm_saved_view", schema: "crm", table: "saved_view", label: "Smart View", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
157
|
+
"crm_sending_event": { token: "crm_sending_event", schema: "crm", table: "sending_event", label: "Sending Event", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "subject", contentRole: null, referenceCategory: null },
|
|
158
|
+
"crm_sending_identity": { token: "crm_sending_identity", schema: "crm", table: "sending_identity", label: "Sending Identity", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
159
|
+
"crm_sending_identity_check": { token: "crm_sending_identity_check", schema: "crm", table: "sending_identity_check", label: "Sending Check", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "check_kind", contentRole: null, referenceCategory: null },
|
|
160
|
+
"crm_sending_policy": { token: "crm_sending_policy", schema: "crm", table: "sending_policy", label: "Sending Policy", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
161
|
+
"custom_entity_definition": { token: "custom_entity_definition", schema: "platform", table: "custom_entity_definition", label: "Custom Object", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
162
|
+
"custom_field_definition": { token: "custom_field_definition", schema: "platform", table: "custom_field_definition", label: "Custom Field", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
163
|
+
"custom_field_target": { token: "custom_field_target", schema: "platform", table: "custom_field_target", label: "Custom Field Target", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
164
|
+
"custom_record": { token: "custom_record", schema: "platform", table: "custom_record", label: "Custom Record", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
165
|
+
"cx_agent_memory": { token: "cx_agent_memory", schema: "chat", table: "agent_memory", label: "Agent Memory", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: false, category: "Conversations", referencePickable: true, titleColumn: "key", contentRole: null, referenceCategory: null },
|
|
166
|
+
"cx_agent_plan": { token: "cx_agent_plan", schema: "chat", table: "agent_plan", label: "Agent Plan", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: false, category: "Conversations", referencePickable: false, titleColumn: "title", contentRole: null, referenceCategory: null },
|
|
167
|
+
"cx_agent_task": { token: "cx_agent_task", schema: "chat", table: "agent_task", label: "Agent Task", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: false, category: "Conversations", referencePickable: false, titleColumn: "title", contentRole: null, referenceCategory: null },
|
|
168
|
+
"cx_code_edit": { token: "cx_code_edit", schema: "chat", table: "code_edit", label: "Code Edit", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: false, category: "Conversations", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
169
|
+
"cx_code_message_file": { token: "cx_code_message_file", schema: "chat", table: "code_message_file", label: "Code Message File", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: false, category: "Conversations", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
170
|
+
"cx_media": { token: "cx_media", schema: "chat", table: "media", label: "Media", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: false, category: "Conversations", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
171
|
+
"cx_observational_memory": { token: "cx_observational_memory", schema: "chat", table: "observational_memory", label: "Observational Memory", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: false, category: "Conversations", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
172
|
+
"cx_observational_memory_event": { token: "cx_observational_memory_event", schema: "chat", table: "observational_memory_event", label: "Observational Memory Event", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: false, category: "Conversations", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
173
|
+
"cx_pending_injection": { token: "cx_pending_injection", schema: "chat", table: "pending_injection", label: "Pending Injection", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: false, category: "Conversations", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
174
|
+
"cx_request": { token: "cx_request", schema: "chat", table: "request", label: "Conversation Request", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: false, category: "Conversations", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
175
|
+
"cx_request_snapshot": { token: "cx_request_snapshot", schema: "chat", table: "request_snapshot", label: "Request Snapshot", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: false, category: "Conversations", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
176
|
+
"cx_tool_trace": { token: "cx_tool_trace", schema: "chat", table: "tool_trace", label: "Tool Trace", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: false, category: "Conversations", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
177
|
+
"cx_user_request": { token: "cx_user_request", schema: "chat", table: "user_request", label: "User Request", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: false, category: "Conversations", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
178
|
+
"cx_user_todo": { token: "cx_user_todo", schema: "chat", table: "user_todo", label: "User Todo", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: false, category: "Conversations", referencePickable: false, titleColumn: "title", contentRole: null, referenceCategory: null },
|
|
179
|
+
"data_store": { token: "data_store", schema: "rag", table: "data_stores", label: "Data Store", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: "source", referenceCategory: null },
|
|
180
|
+
"dataset": { token: "dataset", schema: "workbench", table: "udt_datasets", label: "Dataset", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: true, titleColumn: "description", contentRole: "hybrid", referenceCategory: null },
|
|
181
|
+
"derive_run": { token: "derive_run", schema: "docproc", table: "derive_runs", label: "Derive Run", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
182
|
+
"dict_setting": { token: "dict_setting", schema: "dictionary", table: "dict_settings", label: "Dict Setting", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
183
|
+
"dm_conversation": { token: "dm_conversation", schema: "communication", table: "dm_conversations", label: "Direct Conversation", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
184
|
+
"dm_message": { token: "dm_message", schema: "communication", table: "dm_messages", label: "Direct Message", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
185
|
+
"dm_participant": { token: "dm_participant", schema: "communication", table: "dm_conversation_participants", label: "DM Conversation Participant", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
186
|
+
"domain_classification": { token: "domain_classification", schema: "platform", table: "domain_classification", label: "Domain Classification", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
187
|
+
"esign_campaign": { token: "esign_campaign", schema: "esign", table: "campaign", label: "Signature campaign", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
188
|
+
"esign_campaign_member": { token: "esign_campaign_member", schema: "esign", table: "campaign_member", label: "Campaign member", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
189
|
+
"esign_consent_disclosure": { token: "esign_consent_disclosure", schema: "esign", table: "consent_disclosure", label: "E-sign consent disclosure", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
190
|
+
"esign_envelope": { token: "esign_envelope", schema: "esign", table: "envelope", label: "Signature envelope", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
191
|
+
"esign_envelope_certificate": { token: "esign_envelope_certificate", schema: "esign", table: "envelope_certificate", label: "Completion certificate", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
192
|
+
"esign_envelope_document": { token: "esign_envelope_document", schema: "esign", table: "envelope_document", label: "Envelope document", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
193
|
+
"esign_envelope_event": { token: "esign_envelope_event", schema: "esign", table: "envelope_event", label: "Envelope event", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
194
|
+
"esign_envelope_external_ref": { token: "esign_envelope_external_ref", schema: "esign", table: "envelope_external_ref", label: "Envelope external reference", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
195
|
+
"esign_envelope_signer": { token: "esign_envelope_signer", schema: "esign", table: "envelope_signer", label: "Envelope signer", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
196
|
+
"esign_provider": { token: "esign_provider", schema: "esign", table: "provider", label: "E-sign provider", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
197
|
+
"esign_provider_binding": { token: "esign_provider_binding", schema: "esign", table: "provider_binding", label: "E-sign provider binding", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
198
|
+
"esign_signing_key": { token: "esign_signing_key", schema: "esign", table: "signing_key", label: "E-sign certificate signing key", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
199
|
+
"fc_card": { token: "fc_card", schema: "education", table: "fc_card", label: "Flashcard", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
200
|
+
"fc_detail": { token: "fc_detail", schema: "education", table: "fc_detail", label: "Flashcard Detail", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
201
|
+
"fc_set": { token: "fc_set", schema: "education", table: "fc_set", label: "Flashcard Set", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
202
|
+
"feature_doc": { token: "feature_doc", schema: "admin", table: "feature_docs", label: "Feature Doc", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: "documentation", referencePickable: true, titleColumn: "title", contentRole: null, referenceCategory: null },
|
|
203
|
+
"file": { token: "file", schema: "files", table: "files", label: "File", baseTier: 1, isComponent: false, isModule: true, isListed: false, scopeable: true, category: "Sources", referencePickable: true, titleColumn: "file_name", contentRole: "source", referenceCategory: null },
|
|
204
|
+
"file_analysis": { token: "file_analysis", schema: "files", table: "analysis", label: "File Analysis", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
205
|
+
"file_entities": { token: "file_entities", schema: "files", table: "entities", label: "Extracted Term", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "label", contentRole: null, referenceCategory: null },
|
|
206
|
+
"file_overrides": { token: "file_overrides", schema: "files", table: "overrides", label: "File Override", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
207
|
+
"file_page_annotations": { token: "file_page_annotations", schema: "files", table: "page_annotations", label: "Page Annotation", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "label", contentRole: null, referenceCategory: null },
|
|
208
|
+
"file_pages": { token: "file_pages", schema: "files", table: "pages", label: "File Page", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
209
|
+
"file_version": { token: "file_version", schema: "files", table: "file_versions", label: "File Version", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: false, category: "Sources", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
210
|
+
"flexible_data": { token: "flexible_data", schema: "platform", table: "flexible_data", label: "Flexible Data", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "label", contentRole: null, referenceCategory: null },
|
|
211
|
+
"folder": { token: "folder", schema: "files", table: "folders", label: "Folder", baseTier: 1, isComponent: false, isModule: true, isListed: false, scopeable: true, category: "Sources", referencePickable: true, titleColumn: "folder_name", contentRole: "source", referenceCategory: null },
|
|
212
|
+
"game_badge": { token: "game_badge", schema: "education", table: "game_badge", label: "Game Badge", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
213
|
+
"game_result": { token: "game_result", schema: "education", table: "game_result", label: "Game Result", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "display_name", contentRole: null, referenceCategory: null },
|
|
214
|
+
"game_room": { token: "game_room", schema: "education", table: "game_room", label: "Game Room", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
215
|
+
"global_execution": { token: "global_execution", schema: "runtime", table: "global_execution", label: "Runtime Execution", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
216
|
+
"global_execution_checkpoint": { token: "global_execution_checkpoint", schema: "runtime", table: "global_execution_checkpoint", label: "Runtime Checkpoint", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
217
|
+
"global_execution_event": { token: "global_execution_event", schema: "runtime", table: "global_execution_event", label: "Runtime Event", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
218
|
+
"global_meter_entry": { token: "global_meter_entry", schema: "runtime", table: "global_meter_entry", label: "Runtime Meter Entry", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "label", contentRole: null, referenceCategory: null },
|
|
219
|
+
"global_origin": { token: "global_origin", schema: "runtime", table: "global_origin", label: "Runtime Origin", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
220
|
+
"global_request": { token: "global_request", schema: "runtime", table: "global_request", label: "Runtime Request", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
221
|
+
"growth_loop_event": { token: "growth_loop_event", schema: "growth", table: "loop_event", label: "Growth Loop Event", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "marketing", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
222
|
+
"growth_loop_run": { token: "growth_loop_run", schema: "growth", table: "loop_run", label: "Growth Loop Run", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: "label", contentRole: null, referenceCategory: null },
|
|
223
|
+
"growth_loop_stage_run": { token: "growth_loop_stage_run", schema: "growth", table: "loop_stage_run", label: "Growth Loop Stage Run", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "marketing", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
224
|
+
"guided_checklist_run": { token: "guided_checklist_run", schema: "platform", table: "guided_checklist_run", label: "Guided Checklist Run", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
225
|
+
"heatmap_save": { token: "heatmap_save", schema: "workbench", table: "heatmap_saves", label: "Heatmap Save", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "title", contentRole: null, referenceCategory: null },
|
|
226
|
+
"hindsight_enrollment": { token: "hindsight_enrollment", schema: "hindsight", table: "enrollment", label: "Hindsight Enrollment", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "display_name", contentRole: null, referenceCategory: null },
|
|
227
|
+
"hindsight_finding": { token: "hindsight_finding", schema: "hindsight", table: "finding", label: "Hindsight Finding", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
228
|
+
"hindsight_regression_case": { token: "hindsight_regression_case", schema: "hindsight", table: "regression_case", label: "Regression Case", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
229
|
+
"hindsight_replay": { token: "hindsight_replay", schema: "hindsight", table: "replay", label: "Hindsight Replay", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
230
|
+
"hindsight_replay_step": { token: "hindsight_replay_step", schema: "hindsight", table: "replay_step", label: "Wire Replay Step", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
231
|
+
"hindsight_review": { token: "hindsight_review", schema: "hindsight", table: "review", label: "Hindsight Review", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
232
|
+
"hr_access_audit": { token: "hr_access_audit", schema: "hr", table: "access_audit", label: "Access audit", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
233
|
+
"hr_access_role": { token: "hr_access_role", schema: "hr", table: "access_role", label: "HR access role", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "label", contentRole: null, referenceCategory: null },
|
|
234
|
+
"hr_accommodation_request": { token: "hr_accommodation_request", schema: "hr", table: "accommodation_request", label: "Accommodation request", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
235
|
+
"hr_ai_evidence": { token: "hr_ai_evidence", schema: "hr", table: "ai_evidence", label: "AI evidence", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
236
|
+
"hr_alert_routing_rule": { token: "hr_alert_routing_rule", schema: "hr", table: "alert_routing_rule", label: "Alert routing rule", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
237
|
+
"hr_application": { token: "hr_application", schema: "hr", table: "application", label: "Application", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
238
|
+
"hr_approval_authority": { token: "hr_approval_authority", schema: "hr", table: "approval_authority", label: "Approval authority", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
239
|
+
"hr_approval_delegation": { token: "hr_approval_delegation", schema: "hr", table: "approval_delegation", label: "Approval delegation", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
240
|
+
"hr_asset": { token: "hr_asset", schema: "hr", table: "asset", label: "Asset", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
241
|
+
"hr_asset_assignment": { token: "hr_asset_assignment", schema: "hr", table: "asset_assignment", label: "Asset assignment", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
242
|
+
"hr_attendance_exception": { token: "hr_attendance_exception", schema: "hr", table: "attendance_exception", label: "Attendance exception", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
243
|
+
"hr_auto_close_rule": { token: "hr_auto_close_rule", schema: "hr", table: "auto_close_rule", label: "Auto-close rule", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
244
|
+
"hr_availability": { token: "hr_availability", schema: "hr", table: "availability", label: "Availability", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
245
|
+
"hr_background_check": { token: "hr_background_check", schema: "hr", table: "background_check", label: "Background check", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
246
|
+
"hr_benefits_event": { token: "hr_benefits_event", schema: "hr", table: "benefits_event", label: "Benefits event", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
247
|
+
"hr_calculation_snapshot": { token: "hr_calculation_snapshot", schema: "hr", table: "calculation_snapshot", label: "Calculation snapshot", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
248
|
+
"hr_candidate": { token: "hr_candidate", schema: "hr", table: "candidate", label: "Candidate", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: true, titleColumn: "preferred_name", contentRole: null, referenceCategory: null },
|
|
249
|
+
"hr_candidate_conversion": { token: "hr_candidate_conversion", schema: "hr", table: "candidate_conversion", label: "Candidate conversion", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
250
|
+
"hr_candidate_message": { token: "hr_candidate_message", schema: "hr", table: "candidate_message", label: "Candidate message", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
251
|
+
"hr_careers_portal": { token: "hr_careers_portal", schema: "hr", table: "careers_portal", label: "Careers portal", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: true, titleColumn: "display_name", contentRole: null, referenceCategory: null },
|
|
252
|
+
"hr_checklist_item": { token: "hr_checklist_item", schema: "hr", table: "checklist_item", label: "Checklist item", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
253
|
+
"hr_checklist_run": { token: "hr_checklist_run", schema: "hr", table: "checklist_run", label: "Checklist run", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
254
|
+
"hr_checklist_template": { token: "hr_checklist_template", schema: "hr", table: "checklist_template", label: "Checklist template", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
255
|
+
"hr_checklist_template_item": { token: "hr_checklist_template_item", schema: "hr", table: "checklist_template_item", label: "Checklist template item", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
256
|
+
"hr_compensation": { token: "hr_compensation", schema: "hr", table: "compensation", label: "Compensation record", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
257
|
+
"hr_corrective_action": { token: "hr_corrective_action", schema: "hr", table: "corrective_action", label: "Corrective action", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
258
|
+
"hr_course": { token: "hr_course", schema: "hr", table: "course", label: "Course", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: true, titleColumn: "title", contentRole: null, referenceCategory: null },
|
|
259
|
+
"hr_course_version": { token: "hr_course_version", schema: "hr", table: "course_version", label: "Course version", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
260
|
+
"hr_credential": { token: "hr_credential", schema: "hr", table: "credential", label: "Credential", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
261
|
+
"hr_crew": { token: "hr_crew", schema: "hr", table: "crew", label: "Crew", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
262
|
+
"hr_deduction_code": { token: "hr_deduction_code", schema: "hr", table: "deduction_code", label: "Deduction code", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
263
|
+
"hr_department": { token: "hr_department", schema: "hr", table: "department", label: "Department", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
264
|
+
"hr_derived_grant": { token: "hr_derived_grant", schema: "hr", table: "derived_grant", label: "Derived grant", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
265
|
+
"hr_disposition_event": { token: "hr_disposition_event", schema: "hr", table: "disposition_event", label: "Disposition event", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
266
|
+
"hr_earning_code": { token: "hr_earning_code", schema: "hr", table: "earning_code", label: "Earning code", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
267
|
+
"hr_eeo_response": { token: "hr_eeo_response", schema: "hr", table: "eeo_response", label: "EEO self-identification response", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
268
|
+
"hr_emergency_contact": { token: "hr_emergency_contact", schema: "hr", table: "emergency_contact", label: "Emergency contact", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
269
|
+
"hr_employee": { token: "hr_employee", schema: "hr", table: "employee", label: "Employee", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: true, titleColumn: "display_name", contentRole: "container", referenceCategory: null },
|
|
270
|
+
"hr_employee_private": { token: "hr_employee_private", schema: "hr", table: "employee_private", label: "Employee private record", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
271
|
+
"hr_employer_profile": { token: "hr_employer_profile", schema: "hr", table: "employer_profile", label: "Employer profile", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "legal_name", contentRole: null, referenceCategory: null },
|
|
272
|
+
"hr_employment": { token: "hr_employment", schema: "hr", table: "employment", label: "Employment spell", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
273
|
+
"hr_employment_pin": { token: "hr_employment_pin", schema: "hr", table: "employment_pin", label: "Employment PIN", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
274
|
+
"hr_engagement": { token: "hr_engagement", schema: "hr", table: "engagement", label: "Engagement", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
275
|
+
"hr_establishment": { token: "hr_establishment", schema: "hr", table: "establishment", label: "Establishment", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
276
|
+
"hr_external_identity": { token: "hr_external_identity", schema: "hr", table: "external_identity", label: "External identity", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
277
|
+
"hr_field_policy": { token: "hr_field_policy", schema: "hr", table: "field_policy", label: "Self-service field policy", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
278
|
+
"hr_holiday": { token: "hr_holiday", schema: "hr", table: "holiday", label: "Holiday", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
279
|
+
"hr_holiday_calendar": { token: "hr_holiday_calendar", schema: "hr", table: "holiday_calendar", label: "Holiday calendar", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
280
|
+
"hr_i9": { token: "hr_i9", schema: "hr", table: "i9", label: "Form I-9", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
281
|
+
"hr_i9_document": { token: "hr_i9_document", schema: "hr", table: "i9_document", label: "I-9 document", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
282
|
+
"hr_incident": { token: "hr_incident", schema: "hr", table: "incident", label: "Incident", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
283
|
+
"hr_incident_party": { token: "hr_incident_party", schema: "hr", table: "incident_party", label: "Incident party", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
284
|
+
"hr_interview": { token: "hr_interview", schema: "hr", table: "interview", label: "Interview", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
285
|
+
"hr_interview_kit": { token: "hr_interview_kit", schema: "hr", table: "interview_kit", label: "Interview kit", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
286
|
+
"hr_job_title": { token: "hr_job_title", schema: "hr", table: "job_title", label: "Job title", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: true, titleColumn: "title", contentRole: null, referenceCategory: null },
|
|
287
|
+
"hr_jurisdiction": { token: "hr_jurisdiction", schema: "hr", table: "jurisdiction", label: "Jurisdiction", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
288
|
+
"hr_jurisdiction_rule": { token: "hr_jurisdiction_rule", schema: "hr", table: "jurisdiction_rule", label: "Jurisdiction rule", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
289
|
+
"hr_jurisdiction_rule_class": { token: "hr_jurisdiction_rule_class", schema: "hr", table: "jurisdiction_rule_class", label: "Jurisdiction rule class", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "label", contentRole: null, referenceCategory: null },
|
|
290
|
+
"hr_jurisdiction_rule_org_decision": { token: "hr_jurisdiction_rule_org_decision", schema: "hr", table: "jurisdiction_rule_org_decision", label: "Jurisdiction rule org decision", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
291
|
+
"hr_jurisdiction_rule_test": { token: "hr_jurisdiction_rule_test", schema: "hr", table: "jurisdiction_rule_test", label: "Jurisdiction rule fixture", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "title", contentRole: null, referenceCategory: null },
|
|
292
|
+
"hr_kiosk_device": { token: "hr_kiosk_device", schema: "hr", table: "kiosk_device", label: "Kiosk device", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
293
|
+
"hr_kiosk_session": { token: "hr_kiosk_session", schema: "hr", table: "kiosk_session", label: "Kiosk session", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
294
|
+
"hr_labor_target": { token: "hr_labor_target", schema: "hr", table: "labor_target", label: "Labor target", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
295
|
+
"hr_leave_case": { token: "hr_leave_case", schema: "hr", table: "leave_case", label: "Leave case", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
296
|
+
"hr_leave_enrollment": { token: "hr_leave_enrollment", schema: "hr", table: "leave_enrollment", label: "Leave enrollment", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
297
|
+
"hr_leave_ledger": { token: "hr_leave_ledger", schema: "hr", table: "leave_ledger", label: "Leave ledger entry", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
298
|
+
"hr_leave_policy": { token: "hr_leave_policy", schema: "hr", table: "leave_policy", label: "Leave policy", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
299
|
+
"hr_leave_request": { token: "hr_leave_request", schema: "hr", table: "leave_request", label: "Leave request", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
300
|
+
"hr_legal_hold": { token: "hr_legal_hold", schema: "hr", table: "legal_hold", label: "Legal hold", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "matter_name", contentRole: null, referenceCategory: null },
|
|
301
|
+
"hr_legal_hold_item": { token: "hr_legal_hold_item", schema: "hr", table: "legal_hold_item", label: "Legal hold item", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
302
|
+
"hr_location": { token: "hr_location", schema: "hr", table: "location", label: "Location", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
303
|
+
"hr_new_hire_report": { token: "hr_new_hire_report", schema: "hr", table: "new_hire_report", label: "New hire report", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
304
|
+
"hr_offer": { token: "hr_offer", schema: "hr", table: "offer", label: "Offer", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
305
|
+
"hr_opening": { token: "hr_opening", schema: "hr", table: "opening", label: "Opening", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
306
|
+
"hr_overtime_alert": { token: "hr_overtime_alert", schema: "hr", table: "overtime_alert", label: "Overtime alert", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
307
|
+
"hr_overtime_alert_rule": { token: "hr_overtime_alert_rule", schema: "hr", table: "overtime_alert_rule", label: "Overtime alert rule", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
308
|
+
"hr_overtime_preapproval": { token: "hr_overtime_preapproval", schema: "hr", table: "overtime_preapproval", label: "Overtime pre-approval", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
309
|
+
"hr_pay_group": { token: "hr_pay_group", schema: "hr", table: "pay_group", label: "Pay group", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
310
|
+
"hr_pay_period": { token: "hr_pay_period", schema: "hr", table: "pay_period", label: "Pay period", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
311
|
+
"hr_pay_period_employment": { token: "hr_pay_period_employment", schema: "hr", table: "pay_period_employment", label: "Pay period timesheet", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
312
|
+
"hr_payroll_export": { token: "hr_payroll_export", schema: "hr", table: "payroll_export", label: "Payroll export", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
313
|
+
"hr_payroll_export_line": { token: "hr_payroll_export_line", schema: "hr", table: "payroll_export_line", label: "Payroll export line", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
314
|
+
"hr_position_assignment": { token: "hr_position_assignment", schema: "hr", table: "position_assignment", label: "Position assignment", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
315
|
+
"hr_posting": { token: "hr_posting", schema: "hr", table: "posting", label: "Job posting", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: true, titleColumn: "title", contentRole: null, referenceCategory: null },
|
|
316
|
+
"hr_posting_publication": { token: "hr_posting_publication", schema: "hr", table: "posting_publication", label: "Posting publication", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
317
|
+
"hr_provider_binding": { token: "hr_provider_binding", schema: "hr", table: "provider_binding", label: "Provider binding", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
318
|
+
"hr_provider_event": { token: "hr_provider_event", schema: "hr", table: "provider_event", label: "Provider seam event", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
319
|
+
"hr_provisioning_result": { token: "hr_provisioning_result", schema: "hr", table: "provisioning_result", label: "Provisioning result", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
320
|
+
"hr_punch": { token: "hr_punch", schema: "hr", table: "punch", label: "Punch", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
321
|
+
"hr_recalculation_batch": { token: "hr_recalculation_batch", schema: "hr", table: "recalculation_batch", label: "Recalculation batch", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
322
|
+
"hr_record_class": { token: "hr_record_class", schema: "hr", table: "record_class", label: "Record class", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "label", contentRole: null, referenceCategory: null },
|
|
323
|
+
"hr_records_request": { token: "hr_records_request", schema: "hr", table: "records_request", label: "Records request", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
324
|
+
"hr_reference_check": { token: "hr_reference_check", schema: "hr", table: "reference_check", label: "Reference check", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
325
|
+
"hr_reporting_line": { token: "hr_reporting_line", schema: "hr", table: "reporting_line", label: "Reporting line", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
326
|
+
"hr_requisition": { token: "hr_requisition", schema: "hr", table: "requisition", label: "Requisition", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: true, titleColumn: "requisition_number", contentRole: null, referenceCategory: null },
|
|
327
|
+
"hr_restricted_note": { token: "hr_restricted_note", schema: "hr", table: "restricted_note", label: "Restricted note", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
328
|
+
"hr_retention_rule": { token: "hr_retention_rule", schema: "hr", table: "retention_rule", label: "Retention rule", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
329
|
+
"hr_role_assignment": { token: "hr_role_assignment", schema: "hr", table: "role_assignment", label: "HR role assignment", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
330
|
+
"hr_schedule": { token: "hr_schedule", schema: "hr", table: "schedule", label: "Schedule", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
331
|
+
"hr_schedule_change": { token: "hr_schedule_change", schema: "hr", table: "schedule_change", label: "Schedule change", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
332
|
+
"hr_schedule_guidance": { token: "hr_schedule_guidance", schema: "hr", table: "schedule_guidance", label: "Schedule guidance", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: "title", contentRole: null, referenceCategory: null },
|
|
333
|
+
"hr_schedule_template": { token: "hr_schedule_template", schema: "hr", table: "schedule_template", label: "Schedule template", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
334
|
+
"hr_schedule_template_shift": { token: "hr_schedule_template_shift", schema: "hr", table: "schedule_template_shift", label: "Schedule template shift", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
335
|
+
"hr_scorecard": { token: "hr_scorecard", schema: "hr", table: "scorecard", label: "Scorecard", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
336
|
+
"hr_separation": { token: "hr_separation", schema: "hr", table: "separation", label: "Separation", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
337
|
+
"hr_shift": { token: "hr_shift", schema: "hr", table: "shift", label: "Shift", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
338
|
+
"hr_shift_claim": { token: "hr_shift_claim", schema: "hr", table: "shift_claim", label: "Shift claim", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
339
|
+
"hr_staffing_requirement": { token: "hr_staffing_requirement", schema: "hr", table: "staffing_requirement", label: "Staffing requirement", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
340
|
+
"hr_survey": { token: "hr_survey", schema: "hr", table: "survey", label: "Survey", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
341
|
+
"hr_survey_invitation": { token: "hr_survey_invitation", schema: "hr", table: "survey_invitation", label: "Survey invitation", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
342
|
+
"hr_survey_question": { token: "hr_survey_question", schema: "hr", table: "survey_question", label: "Survey question", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
343
|
+
"hr_survey_response": { token: "hr_survey_response", schema: "hr", table: "survey_response", label: "Survey response", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
344
|
+
"hr_tax_registration": { token: "hr_tax_registration", schema: "hr", table: "tax_registration", label: "Tax registration", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
345
|
+
"hr_tax_withholding": { token: "hr_tax_withholding", schema: "hr", table: "tax_withholding", label: "Tax withholding certificate", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
346
|
+
"hr_time_adjustment": { token: "hr_time_adjustment", schema: "hr", table: "time_adjustment", label: "Time adjustment", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
347
|
+
"hr_training_assignment": { token: "hr_training_assignment", schema: "hr", table: "training_assignment", label: "Training assignment", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
348
|
+
"hr_training_attempt": { token: "hr_training_attempt", schema: "hr", table: "training_attempt", label: "Training attempt", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
349
|
+
"hr_transcript_entry": { token: "hr_transcript_entry", schema: "hr", table: "transcript_entry", label: "Transcript entry", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
350
|
+
"hr_verification_letter_request": { token: "hr_verification_letter_request", schema: "hr", table: "verification_letter_request", label: "Verification letter request", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
351
|
+
"hr_work_interval": { token: "hr_work_interval", schema: "hr", table: "work_interval", label: "Work interval", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
352
|
+
"hr_workflow_binding": { token: "hr_workflow_binding", schema: "hr", table: "workflow_binding", label: "HR Workflow Binding", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
353
|
+
"hr_workflow_decision": { token: "hr_workflow_decision", schema: "hr", table: "workflow_decision", label: "HR Workflow Decision", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
354
|
+
"hr_workflow_definition": { token: "hr_workflow_definition", schema: "hr", table: "workflow_definition", label: "HR Workflow Definition", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
355
|
+
"hr_workflow_event": { token: "hr_workflow_event", schema: "hr", table: "workflow_event", label: "HR Workflow Event", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
356
|
+
"hr_workflow_failure": { token: "hr_workflow_failure", schema: "hr", table: "workflow_failure", label: "HR Workflow Failure", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
357
|
+
"hr_workflow_flow_type": { token: "hr_workflow_flow_type", schema: "hr", table: "workflow_flow_type", label: "HR Workflow Flow Type", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
358
|
+
"hr_workflow_instance": { token: "hr_workflow_instance", schema: "hr", table: "workflow_instance", label: "HR Workflow Instance", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
359
|
+
"hr_workflow_step": { token: "hr_workflow_step", schema: "hr", table: "workflow_step", label: "HR Workflow Step", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
360
|
+
"hr_workflow_step_definition": { token: "hr_workflow_step_definition", schema: "hr", table: "workflow_step_definition", label: "HR Workflow Step Definition", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
361
|
+
"hr_workweek": { token: "hr_workweek", schema: "hr", table: "workweek", label: "Workweek", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
362
|
+
"iam_api_key": { token: "iam_api_key", schema: "iam", table: "api_keys", label: "API Key", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
363
|
+
"industry_curator": { token: "industry_curator", schema: "iam", table: "industry_curators", label: "Industry Curator", baseTier: 2, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
364
|
+
"interview_document_revision": { token: "interview_document_revision", schema: "interview", table: "document_revision", label: "Interview Document Revision", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
365
|
+
"interview_hole": { token: "interview_hole", schema: "interview", table: "hole", label: "Interview Adversary Hole", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
366
|
+
"interview_question": { token: "interview_question", schema: "interview", table: "question", label: "Interview Open Question", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
367
|
+
"interview_session": { token: "interview_session", schema: "interview", table: "session", label: "Vision Interview Session", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
368
|
+
"interview_turn": { token: "interview_turn", schema: "interview", table: "turn", label: "Interview Turn", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
369
|
+
"invitation": { token: "invitation", schema: "iam", table: "invitations", label: "Invitation", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
370
|
+
"invitation_code": { token: "invitation_code", schema: "users", table: "invitation_codes", label: "Invitation Code", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
371
|
+
"invitation_request": { token: "invitation_request", schema: "users", table: "invitation_requests", label: "Invitation Request", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
372
|
+
"item_mastery": { token: "item_mastery", schema: "education", table: "item_mastery", label: "Item Mastery", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
373
|
+
"judge_verdict": { token: "judge_verdict", schema: "platform", table: "judge_verdict", label: "Judge Verdict", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
374
|
+
"kg_alert": { token: "kg_alert", schema: "rag", table: "kg_alerts", label: "KG Alert", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
375
|
+
"kg_suggestion_ack": { token: "kg_suggestion_ack", schema: "rag", table: "kg_suggestion_ack", label: "KG Suggestion Ack", baseTier: 3, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
376
|
+
"kg_sweep_queue": { token: "kg_sweep_queue", schema: "rag", table: "kg_sweep_queue", label: "KG Sweep Queue", baseTier: 3, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
377
|
+
"kg_sweep_run": { token: "kg_sweep_run", schema: "rag", table: "kg_sweep_run", label: "KG Sweep Run", baseTier: 3, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
378
|
+
"kg_sweep_state": { token: "kg_sweep_state", schema: "rag", table: "kg_sweep_state", label: "KG Sweep State", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
379
|
+
"kg_value_match": { token: "kg_value_match", schema: "rag", table: "kg_value_matches", label: "KG Value Match", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
380
|
+
"league_membership": { token: "league_membership", schema: "education", table: "league_membership", label: "League Membership", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "display_name", contentRole: null, referenceCategory: null },
|
|
381
|
+
"learn_doc": { token: "learn_doc", schema: "education", table: "learn_doc", label: "Study Guide", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: true, titleColumn: "title", contentRole: null, referenceCategory: null },
|
|
382
|
+
"library_doc": { token: "library_doc", schema: "rag", table: "library_docs", label: "Library Document", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "title", contentRole: null, referenceCategory: null },
|
|
383
|
+
"mandate": { token: "mandate", schema: "mandate", table: "definition", label: "Mandate Definition (new)", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
384
|
+
"mandate_binding": { token: "mandate_binding", schema: "mandate", table: "binding", label: "Mandate Binding (new)", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
385
|
+
"mandate_treatment": { token: "mandate_treatment", schema: "mandate", table: "treatment", label: "Mandate Treatment (new)", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
386
|
+
"marketing_initiative": { token: "marketing_initiative", schema: "marketing", table: "initiative", label: "Initiative", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: "container", referenceCategory: null },
|
|
387
|
+
"masterwork_corpus_item": { token: "masterwork_corpus_item", schema: "platform", table: "masterwork_corpus_item", label: "Masterwork Corpus Piece", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
388
|
+
"masterwork_run": { token: "masterwork_run", schema: "platform", table: "masterwork_run", label: "Masterwork Run", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "Masterwork", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
389
|
+
"membership": { token: "membership", schema: "iam", table: "memberships", label: "Membership", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
390
|
+
"message": { token: "message", schema: "chat", table: "message", label: "Message", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
391
|
+
"message_template": { token: "message_template", schema: "agent", table: "message_template", label: "Message Template", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "label", contentRole: "utility", referenceCategory: null },
|
|
392
|
+
"ner_shadow": { token: "ner_shadow", schema: "rag", table: "ner_canonicalizer_shadow", label: "NER Shadow", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
393
|
+
"note": { token: "note", schema: "workbench", table: "notes", label: "Note", baseTier: 1, isComponent: false, isModule: true, isListed: false, scopeable: true, category: "Sources & Outputs", referencePickable: true, titleColumn: "label", contentRole: "hybrid", referenceCategory: null },
|
|
394
|
+
"note_folder": { token: "note_folder", schema: "workbench", table: "note_folders", label: "Note Folder", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
395
|
+
"notification": { token: "notification", schema: "communication", table: "notification", label: "Notification", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
396
|
+
"notification_channel_preference": { token: "notification_channel_preference", schema: "communication", table: "notification_channel_preference", label: "Notification Channel Preference", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
397
|
+
"notification_event_override": { token: "notification_event_override", schema: "communication", table: "notification_event_override", label: "Notification Event Override", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
398
|
+
"notification_event_type": { token: "notification_event_type", schema: "communication", table: "notification_event_type", label: "Notification Event Type", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
399
|
+
"notification_preference": { token: "notification_preference", schema: "communication", table: "notification_preference", label: "Notification Preference", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
400
|
+
"ops_issue_event": { token: "ops_issue_event", schema: "ops", table: "ops_issue_event", label: "Ops Issue Event", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
401
|
+
"ops_proof_check": { token: "ops_proof_check", schema: "ops", table: "proof_check", label: "Proof Check", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
402
|
+
"ops_proof_run": { token: "ops_proof_run", schema: "ops", table: "proof_run", label: "Proof Run", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
403
|
+
"ops_proof_scenario": { token: "ops_proof_scenario", schema: "ops", table: "proof_scenario", label: "Proof Scenario", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
404
|
+
"organization": { token: "organization", schema: "iam", table: "organizations", label: "Organization", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: "container", referenceCategory: null },
|
|
405
|
+
"output_feedback": { token: "output_feedback", schema: "platform", table: "output_feedback", label: "Output Feedback", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
406
|
+
"page_extraction_job": { token: "page_extraction_job", schema: "docproc", table: "page_extraction_jobs", label: "Extraction Dataset", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
407
|
+
"page_extraction_page_run": { token: "page_extraction_page_run", schema: "docproc", table: "page_extraction_page_runs", label: "Page Extraction Page Run", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
408
|
+
"party": { token: "party", schema: "crm", table: "party", label: "Entity", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: true, titleColumn: "display_name", contentRole: "source", referenceCategory: null },
|
|
409
|
+
"party_contact_point": { token: "party_contact_point", schema: "crm", table: "party_contact_point", label: "Contact Point", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "label", contentRole: null, referenceCategory: null },
|
|
410
|
+
"pc_article": { token: "pc_article", schema: "podcast", table: "pc_articles", label: "Podcast Article", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "title", contentRole: null, referenceCategory: null },
|
|
411
|
+
"pc_episode": { token: "pc_episode", schema: "podcast", table: "pc_episodes", label: "Podcast Episode", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "title", contentRole: null, referenceCategory: null },
|
|
412
|
+
"pc_show": { token: "pc_show", schema: "podcast", table: "pc_shows", label: "Podcast Show", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "title", contentRole: null, referenceCategory: null },
|
|
413
|
+
"pc_studio_run": { token: "pc_studio_run", schema: "podcast", table: "pc_studio_runs", label: "Podcast Studio Run", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "title", contentRole: null, referenceCategory: null },
|
|
414
|
+
"pc_studio_run_asset": { token: "pc_studio_run_asset", schema: "podcast", table: "pc_studio_run_assets", label: "Podcast Studio Run Asset", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
415
|
+
"pdf_redaction_audit": { token: "pdf_redaction_audit", schema: "pdf", table: "pdf_redaction_audits", label: "PDF Redaction Audit", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
416
|
+
"plan_cms_fill_item": { token: "plan_cms_fill_item", schema: "plan", table: "cms_fill_item", label: "CMS Fill Item", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "marketing", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
417
|
+
"plan_cms_fill_job": { token: "plan_cms_fill_job", schema: "plan", table: "cms_fill_job", label: "CMS Fill Job", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "marketing", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
418
|
+
"plan_entity": { token: "plan_entity", schema: "plan", table: "entity", label: "Plan Entity", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: "label", contentRole: null, referenceCategory: null },
|
|
419
|
+
"plan_node": { token: "plan_node", schema: "plan", table: "node", label: "Plan Node", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: "label", contentRole: null, referenceCategory: null },
|
|
420
|
+
"plan_node_artifact": { token: "plan_node_artifact", schema: "plan", table: "node_artifact", label: "Plan Node Artifact", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
421
|
+
"plan_node_step": { token: "plan_node_step", schema: "plan", table: "node_step", label: "Plan Node Step", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
422
|
+
"plan_profile": { token: "plan_profile", schema: "plan", table: "profile", label: "Plan Vertical Profile", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "vertical", contentRole: null, referenceCategory: null },
|
|
423
|
+
"platform_actor_session": { token: "platform_actor_session", schema: "platform", table: "actor_session", label: "Actor session", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
424
|
+
"platform_actor_token": { token: "platform_actor_token", schema: "platform", table: "actor_token", label: "Actor token", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
425
|
+
"platform_actor_token_event": { token: "platform_actor_token_event", schema: "platform", table: "actor_token_event", label: "Actor token event", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
426
|
+
"platform_outcome_event": { token: "platform_outcome_event", schema: "platform", table: "outcome_event", label: "Outcome Event", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
427
|
+
"platform_outsider_consumer": { token: "platform_outsider_consumer", schema: "platform", table: "outsider_consumer", label: "Outsider consumer", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
428
|
+
"platform_saved_view": { token: "platform_saved_view", schema: "platform", table: "saved_view", label: "Saved view", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
429
|
+
"podcast_race": { token: "podcast_race", schema: "podcast", table: "pc_race", label: "Podcast Race Episode", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
430
|
+
"processed_document": { token: "processed_document", schema: "docproc", table: "processed_documents", label: "Processed document", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: "source", referenceCategory: null },
|
|
431
|
+
"processed_document_page": { token: "processed_document_page", schema: "docproc", table: "processed_document_pages", label: "Processed document page", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
432
|
+
"product_capture_file": { token: "product_capture_file", schema: "workbench", table: "product_capture_file", label: "Product Capture File", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
433
|
+
"product_capture_item": { token: "product_capture_item", schema: "workbench", table: "product_capture_item", label: "Product Capture Item", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
434
|
+
"product_capture_payload": { token: "product_capture_payload", schema: "workbench", table: "product_capture_payload", label: "Product Capture Payload", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
435
|
+
"product_capture_product": { token: "product_capture_product", schema: "workbench", table: "product_capture_product", label: "Product Capture Product", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
436
|
+
"product_capture_question": { token: "product_capture_question", schema: "workbench", table: "product_capture_question", label: "Product Capture Question", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
437
|
+
"project": { token: "project", schema: "workspace", table: "projects", label: "Project", baseTier: 1, isComponent: false, isModule: true, isListed: false, scopeable: true, category: "Workspaces", referencePickable: true, titleColumn: "name", contentRole: "container", referenceCategory: null },
|
|
438
|
+
"provision": { token: "provision", schema: "mandate", table: "provision", label: "Mandate Provision (new)", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
439
|
+
"purpose": { token: "purpose", schema: "platform", table: "purpose", label: "Purpose", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: "title", contentRole: null, referenceCategory: null },
|
|
440
|
+
"quiz_session": { token: "quiz_session", schema: "education", table: "quiz_sessions", label: "Quiz Session", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "title", contentRole: "destination", referenceCategory: null },
|
|
441
|
+
"rag_ingest_run": { token: "rag_ingest_run", schema: "rag", table: "ingest_run", label: "Ingest Run", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
442
|
+
"redaction_mapping": { token: "redaction_mapping", schema: "pdf", table: "redaction_mapping", label: "Redaction Mapping", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
443
|
+
"research_analysis": { token: "research_analysis", schema: "research", table: "rs_analysis", label: "Research Analysis", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
444
|
+
"research_content": { token: "research_content", schema: "research", table: "rs_content", label: "Research Content", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
445
|
+
"research_context_bundle": { token: "research_context_bundle", schema: "research", table: "rs_context_bundle", label: "Research Context Bundle", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: "research", referencePickable: false, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
446
|
+
"research_document": { token: "research_document", schema: "research", table: "rs_document", label: "Research Document", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "title", contentRole: null, referenceCategory: null },
|
|
447
|
+
"research_keyword": { token: "research_keyword", schema: "research", table: "rs_keyword", label: "Research Keyword", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
448
|
+
"research_media": { token: "research_media", schema: "research", table: "rs_media", label: "Research Media", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
449
|
+
"research_source": { token: "research_source", schema: "research", table: "rs_source", label: "Research Source", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "title", contentRole: null, referenceCategory: null },
|
|
450
|
+
"research_synthesis": { token: "research_synthesis", schema: "research", table: "rs_synthesis", label: "Research Synthesis", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
451
|
+
"research_tag": { token: "research_tag", schema: "research", table: "rs_tag", label: "Research Tag", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
452
|
+
"research_template": { token: "research_template", schema: "research", table: "rs_template", label: "Research Template", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
453
|
+
"research_topic": { token: "research_topic", schema: "research", table: "rs_topic", label: "Research Topic", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
454
|
+
"rulebook": { token: "rulebook", schema: "platform", table: "rulebook", label: "Rulebook", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: "Knowledge", referencePickable: true, titleColumn: "name", contentRole: "source", referenceCategory: null },
|
|
455
|
+
"sandbox_instance": { token: "sandbox_instance", schema: "public", table: "sandbox_instances", label: "Sandbox Instance", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
456
|
+
"sch_agent_task": { token: "sch_agent_task", schema: "scheduler", table: "sch_agent_task", label: "Agent Task Config", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
457
|
+
"sch_run": { token: "sch_run", schema: "scheduler", table: "sch_run", label: "Task Run", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
458
|
+
"sch_task": { token: "sch_task", schema: "scheduler", table: "sch_task", label: "Scheduled Task", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "title", contentRole: null, referenceCategory: null },
|
|
459
|
+
"sch_trigger": { token: "sch_trigger", schema: "scheduler", table: "sch_trigger", label: "Task Trigger", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
460
|
+
"scope": { token: "scope", schema: "context", table: "scopes", label: "Scope", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "name", contentRole: "container", referenceCategory: null },
|
|
461
|
+
"scope_association_suggestion": { token: "scope_association_suggestion", schema: "rag", table: "scope_association_suggestions", label: "Scope Association Suggestion", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
462
|
+
"scope_item_value_suggestion": { token: "scope_item_value_suggestion", schema: "rag", table: "scope_item_value_suggestions", label: "Scope Item Value Suggestion", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
463
|
+
"scope_suggestion": { token: "scope_suggestion", schema: "rag", table: "scope_suggestions", label: "Scope Suggestion", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
464
|
+
"scope_type": { token: "scope_type", schema: "context", table: "scope_types", label: "Scope Type", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "slug", contentRole: "container", referenceCategory: null },
|
|
465
|
+
"seo_ai_visibility_citation": { token: "seo_ai_visibility_citation", schema: "seo", table: "ai_visibility_citation", label: "AI Visibility Citation", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "marketing", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
466
|
+
"seo_ai_visibility_claim": { token: "seo_ai_visibility_claim", schema: "seo", table: "ai_visibility_claim", label: "AI Visibility Claim", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "marketing", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
467
|
+
"seo_ai_visibility_panel": { token: "seo_ai_visibility_panel", schema: "seo", table: "ai_visibility_panel", label: "AI Visibility Panel", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
468
|
+
"seo_ai_visibility_response": { token: "seo_ai_visibility_response", schema: "seo", table: "ai_visibility_response", label: "AI Visibility Response", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "marketing", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
469
|
+
"seo_ai_visibility_signal": { token: "seo_ai_visibility_signal", schema: "seo", table: "ai_visibility_signal", label: "AI Visibility Signal", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "marketing", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
470
|
+
"seo_backlink": { token: "seo_backlink", schema: "seo", table: "backlink", label: "SEO Backlink", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "marketing", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
471
|
+
"seo_backlink_change_event": { token: "seo_backlink_change_event", schema: "seo", table: "backlink_change_event", label: "Backlink Change Event", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
472
|
+
"seo_backlink_dimension_snapshot": { token: "seo_backlink_dimension_snapshot", schema: "seo", table: "backlink_dimension_snapshot", label: "Backlink Dimension Snapshot", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "marketing", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
473
|
+
"seo_backlink_observation": { token: "seo_backlink_observation", schema: "seo", table: "backlink_observation", label: "Backlink Observation", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "marketing", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
474
|
+
"seo_backlink_snapshot": { token: "seo_backlink_snapshot", schema: "seo", table: "backlink_snapshot", label: "Backlink Snapshot", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "marketing", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
475
|
+
"seo_change_assessment": { token: "seo_change_assessment", schema: "seo", table: "change_assessment", label: "SEO Change Assessment", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "marketing", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
476
|
+
"seo_change_event": { token: "seo_change_event", schema: "seo", table: "change_event", label: "SEO Change Event", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "marketing", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
477
|
+
"seo_change_item": { token: "seo_change_item", schema: "seo", table: "change_item", label: "SEO Change Item", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "marketing", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
478
|
+
"seo_change_metric": { token: "seo_change_metric", schema: "seo", table: "change_metric", label: "SEO Change Metric", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "marketing", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
479
|
+
"seo_change_set": { token: "seo_change_set", schema: "seo", table: "change_set", label: "SEO Change", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "seo", referencePickable: false, titleColumn: "title", contentRole: "source", referenceCategory: null },
|
|
480
|
+
"seo_change_theory": { token: "seo_change_theory", schema: "seo", table: "change_theory", label: "SEO Change Theory", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "marketing", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
481
|
+
"seo_collection_run": { token: "seo_collection_run", schema: "seo", table: "collection_run", label: "SEO Collection Run", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: "seo", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
482
|
+
"seo_competitor": { token: "seo_competitor", schema: "seo", table: "competitor", label: "SEO Competitor", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "marketing", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
483
|
+
"seo_competitor_observation": { token: "seo_competitor_observation", schema: "seo", table: "competitor_observation", label: "Competitor Observation", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "marketing", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
484
|
+
"seo_competitor_opportunity": { token: "seo_competitor_opportunity", schema: "seo", table: "competitor_opportunity", label: "Competitor Opportunity", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "marketing", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
485
|
+
"seo_coverage_mention": { token: "seo_coverage_mention", schema: "seo", table: "coverage_mention", label: "Coverage Mention", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
486
|
+
"seo_coverage_tracker": { token: "seo_coverage_tracker", schema: "seo", table: "coverage_tracker", label: "Coverage Tracker", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
487
|
+
"seo_dimension_value_matcher": { token: "seo_dimension_value_matcher", schema: "seo", table: "dimension_value_matcher", label: "Dimension Value Matcher", baseTier: 1, isComponent: true, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
488
|
+
"seo_engine_schedule": { token: "seo_engine_schedule", schema: "seo", table: "engine_schedule", label: "SEO Engine Schedule", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
489
|
+
"seo_geo_place": { token: "seo_geo_place", schema: "seo", table: "geo_place", label: "Geo Place", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
490
|
+
"seo_gsc_dig_rule": { token: "seo_gsc_dig_rule", schema: "seo", table: "gsc_dig_rule", label: "GSC Dig Rule", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: "marketing", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
491
|
+
"seo_keyword": { token: "seo_keyword", schema: "seo", table: "keyword", label: "SEO Keyword", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: "seo", referencePickable: false, titleColumn: "phrase", contentRole: null, referenceCategory: null },
|
|
492
|
+
"seo_keyword_class_rule": { token: "seo_keyword_class_rule", schema: "seo", table: "keyword_class_rule", label: "Keyword Class Rule", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: "marketing", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
493
|
+
"seo_keyword_edge": { token: "seo_keyword_edge", schema: "seo", table: "keyword_edge", label: "Keyword Edge", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: "seo", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
494
|
+
"seo_keyword_facet": { token: "seo_keyword_facet", schema: "seo", table: "keyword_facet", label: "Keyword Facet", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
495
|
+
"seo_keyword_market": { token: "seo_keyword_market", schema: "seo", table: "keyword_market", label: "Keyword Market Data", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: "seo", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
496
|
+
"seo_keyword_market_observation": { token: "seo_keyword_market_observation", schema: "seo", table: "keyword_market_observation", label: "Keyword Market Observation", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "marketing", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
497
|
+
"seo_keyword_place": { token: "seo_keyword_place", schema: "seo", table: "keyword_place", label: "Keyword Place", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
498
|
+
"seo_keyword_saved_view": { token: "seo_keyword_saved_view", schema: "seo", table: "keyword_saved_view", label: "Keyword Saved View", baseTier: 1, isComponent: true, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
499
|
+
"seo_keyword_topic": { token: "seo_keyword_topic", schema: "seo", table: "keyword_topic", label: "Keyword Topic Assignment", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: "seo", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
500
|
+
"seo_landscape_brief": { token: "seo_landscape_brief", schema: "seo", table: "landscape_brief", label: "Competitive Landscape Brief", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "marketing", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
501
|
+
"seo_link_gap_domain": { token: "seo_link_gap_domain", schema: "seo", table: "link_gap_domain", label: "Link Gap Domain", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "marketing", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
502
|
+
"seo_link_gap_match": { token: "seo_link_gap_match", schema: "seo", table: "link_gap_match", label: "Link Gap Match", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "marketing", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
503
|
+
"seo_page_measurement_health": { token: "seo_page_measurement_health", schema: "seo", table: "page_measurement_health", label: "Page Measurement Health", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
504
|
+
"seo_page_performance": { token: "seo_page_performance", schema: "seo", table: "page_performance", label: "Page Performance", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "marketing", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
505
|
+
"seo_provider_call": { token: "seo_provider_call", schema: "seo", table: "provider_call", label: "SEO Provider Call", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "marketing", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
506
|
+
"seo_provider_task": { token: "seo_provider_task", schema: "seo", table: "provider_task", label: "SEO Provider Task", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "marketing", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
507
|
+
"seo_rank_observation": { token: "seo_rank_observation", schema: "seo", table: "rank_observation", label: "Rank Observation", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "marketing", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
508
|
+
"seo_rank_target": { token: "seo_rank_target", schema: "seo", table: "rank_target", label: "SEO Rank Target", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: "seo", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
509
|
+
"seo_raw_payload": { token: "seo_raw_payload", schema: "seo", table: "raw_payload", label: "SEO Raw Payload", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "marketing", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
510
|
+
"seo_referring_domain_profile": { token: "seo_referring_domain_profile", schema: "seo", table: "referring_domain_profile", label: "Referring Domain Profile", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "marketing", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
511
|
+
"seo_reputation_case": { token: "seo_reputation_case", schema: "seo", table: "reputation_case", label: "Reputation Case", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "marketing", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
512
|
+
"seo_search_performance_daily": { token: "seo_search_performance_daily", schema: "seo", table: "search_performance_daily", label: "Search Performance Daily", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "marketing", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
513
|
+
"seo_serp_mention": { token: "seo_serp_mention", schema: "seo", table: "serp_mention", label: "SERP Prospect Mention", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
514
|
+
"seo_serp_opportunity": { token: "seo_serp_opportunity", schema: "seo", table: "serp_opportunity", label: "SERP Prospect Opportunity", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
515
|
+
"seo_serp_result": { token: "seo_serp_result", schema: "seo", table: "serp_result", label: "SERP Result", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "marketing", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
516
|
+
"seo_serp_snapshot": { token: "seo_serp_snapshot", schema: "seo", table: "serp_snapshot", label: "SERP Snapshot", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "marketing", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
517
|
+
"seo_site_geo_area": { token: "seo_site_geo_area", schema: "seo", table: "site_geo_area", label: "Site Geo Area", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
518
|
+
"seo_site_keyword_offering": { token: "seo_site_keyword_offering", schema: "seo", table: "site_keyword_offering", label: "Site Keyword Offering", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
519
|
+
"seo_site_keyword_value": { token: "seo_site_keyword_value", schema: "seo", table: "site_keyword_value", label: "Site Keyword Value", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "seo", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
520
|
+
"seo_site_offering_value": { token: "seo_site_offering_value", schema: "seo", table: "site_offering_value", label: "Site Offering Value", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
521
|
+
"seo_site_topic_value": { token: "seo_site_topic_value", schema: "seo", table: "site_topic_value", label: "Site Topic Value", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "seo", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
522
|
+
"seo_site_value_combo": { token: "seo_site_value_combo", schema: "seo", table: "site_value_combo", label: "Site Value Combination", baseTier: 1, isComponent: true, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
523
|
+
"seo_site_value_worth": { token: "seo_site_value_worth", schema: "seo", table: "site_value_worth", label: "Site Value Worth", baseTier: 1, isComponent: true, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
524
|
+
"seo_site_vocabulary": { token: "seo_site_vocabulary", schema: "seo", table: "site_vocabulary", label: "Site Vocabulary", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
525
|
+
"seo_source_request": { token: "seo_source_request", schema: "seo", table: "source_request", label: "SEO Source Request", baseTier: 2, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
526
|
+
"seo_starter_pack": { token: "seo_starter_pack", schema: "seo", table: "starter_pack", label: "SEO Industry Starter Pack", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
527
|
+
"seo_starter_pack_item": { token: "seo_starter_pack_item", schema: "seo", table: "starter_pack_item", label: "SEO Starter Pack Item", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
528
|
+
"seo_story_angle": { token: "seo_story_angle", schema: "seo", table: "story_angle", label: "SEO Story Angle", baseTier: 2, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
529
|
+
"seo_topic": { token: "seo_topic", schema: "seo", table: "topic", label: "SEO Topic", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: "seo", referencePickable: true, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
530
|
+
"seo_web_analytics_daily": { token: "seo_web_analytics_daily", schema: "seo", table: "web_analytics_daily", label: "Web Analytics Daily", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "marketing", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
531
|
+
"shared_canvas_item": { token: "shared_canvas_item", schema: "canvas", table: "shared_canvas_items", label: "Shared Canvas Item", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "title", contentRole: null, referenceCategory: null },
|
|
532
|
+
"skill": { token: "skill", schema: "skill", table: "definition", label: "Skill", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: "Skills", referencePickable: true, titleColumn: "label", contentRole: "utility", referenceCategory: null },
|
|
533
|
+
"skill_render_definition": { token: "skill_render_definition", schema: "skill", table: "render_definition", label: "Skill Render Definition", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: "Skills", referencePickable: true, titleColumn: "label", contentRole: null, referenceCategory: null },
|
|
534
|
+
"sms_consent": { token: "sms_consent", schema: "communication", table: "sms_consent", label: "SMS Consent", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
535
|
+
"sms_conversation": { token: "sms_conversation", schema: "communication", table: "sms_conversations", label: "SMS Conversation", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
536
|
+
"sms_message": { token: "sms_message", schema: "communication", table: "sms_messages", label: "SMS Message", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
537
|
+
"sms_message_media": { token: "sms_message_media", schema: "communication", table: "sms_media", label: "SMS Media", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "file_name", contentRole: null, referenceCategory: null },
|
|
538
|
+
"sms_notification": { token: "sms_notification", schema: "communication", table: "sms_notifications", label: "SMS Notification", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
539
|
+
"sms_notification_preference": { token: "sms_notification_preference", schema: "communication", table: "sms_notification_preferences", label: "SMS Notification Preference", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
540
|
+
"sms_phone_number": { token: "sms_phone_number", schema: "communication", table: "sms_phone_numbers", label: "SMS Phone Number", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
541
|
+
"structured_list": { token: "structured_list", schema: "workbench", table: "udt_structured_lists", label: "Structured List", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: true, titleColumn: "list_name", contentRole: "hybrid", referenceCategory: null },
|
|
542
|
+
"studio_documents": { token: "studio_documents", schema: "transcripts", table: "studio_documents", label: "Studio Document", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "title", contentRole: null, referenceCategory: null },
|
|
543
|
+
"studio_recording_chunks": { token: "studio_recording_chunks", schema: "transcripts", table: "studio_recording_chunks", label: "Studio Recording Chunk", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
544
|
+
"studio_recording_segments": { token: "studio_recording_segments", schema: "transcripts", table: "studio_recording_segments", label: "Studio Recording Segment", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
545
|
+
"studio_run": { token: "studio_run", schema: "transcripts", table: "studio_runs", label: "Studio Run", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
546
|
+
"studio_session": { token: "studio_session", schema: "transcripts", table: "studio_sessions", label: "Audio Session", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "title", contentRole: "source", referenceCategory: null },
|
|
547
|
+
"studio_session_settings": { token: "studio_session_settings", schema: "transcripts", table: "studio_session_settings", label: "Studio Session Settings", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
548
|
+
"study_attempt": { token: "study_attempt", schema: "education", table: "study_attempt", label: "Study Attempt", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
549
|
+
"study_goal": { token: "study_goal", schema: "education", table: "study_goal", label: "Study Goal", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "title", contentRole: null, referenceCategory: null },
|
|
550
|
+
"study_media": { token: "study_media", schema: "education", table: "study_media", label: "Study Media", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "title", contentRole: null, referenceCategory: null },
|
|
551
|
+
"study_plan": { token: "study_plan", schema: "education", table: "study_plan", label: "Study Plan", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "title", contentRole: null, referenceCategory: null },
|
|
552
|
+
"study_plan_block": { token: "study_plan_block", schema: "education", table: "study_plan_block", label: "Study Plan Block", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "label", contentRole: null, referenceCategory: null },
|
|
553
|
+
"study_plan_day": { token: "study_plan_day", schema: "education", table: "study_plan_day", label: "Study Plan Day", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
554
|
+
"study_reminder_context": { token: "study_reminder_context", schema: "education", table: "study_reminder_context", label: "Study Reminder Context", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
555
|
+
"study_reminder_delivery": { token: "study_reminder_delivery", schema: "education", table: "study_reminder_delivery", label: "Study Reminder Delivery", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
556
|
+
"study_session": { token: "study_session", schema: "education", table: "study_session", label: "Study Session", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
557
|
+
"surface": { token: "surface", schema: "ui", table: "ui_surface", label: "UI Surface", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
558
|
+
"system_context_item": { token: "system_context_item", schema: "context", table: "system_context_item", label: "System Context Item", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
559
|
+
"system_error": { token: "system_error", schema: "ops", table: "system_error", label: "System Error", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
560
|
+
"system_personal_org_failure": { token: "system_personal_org_failure", schema: "iam", table: "system_personal_org_failures", label: "System Personal Org Failure", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
561
|
+
"system_write_failure": { token: "system_write_failure", schema: "ops", table: "system_write_failure", label: "System Write Failure", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
562
|
+
"task": { token: "task", schema: "workspace", table: "tasks", label: "Task", baseTier: 1, isComponent: false, isModule: true, isListed: false, scopeable: true, category: "Workspaces", referencePickable: true, titleColumn: "title", contentRole: "container", referenceCategory: null },
|
|
563
|
+
"thread": { token: "thread", schema: "workspace", table: "threads", label: "Thread", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "title", contentRole: null, referenceCategory: null },
|
|
564
|
+
"tool": { token: "tool", schema: "tool", table: "definition", label: "Tool", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: "Tools", referencePickable: true, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
565
|
+
"tool_bundle": { token: "tool_bundle", schema: "tool", table: "bundle", label: "Tool Bundle", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: "Tools", referencePickable: true, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
566
|
+
"tool_call": { token: "tool_call", schema: "chat", table: "tool_call", label: "Tool Call", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
567
|
+
"tool_definition_version": { token: "tool_definition_version", schema: "tool", table: "definition_version", label: "Tool Definition Version", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "Tools", referencePickable: false, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
568
|
+
"tool_test_sample": { token: "tool_test_sample", schema: "tool", table: "test_sample", label: "Tool Test Sample", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "Tools", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
569
|
+
"tool_ui": { token: "tool_ui", schema: "tool", table: "ui", label: "Tool UI", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "Tools", referencePickable: false, titleColumn: "display_name", contentRole: null, referenceCategory: null },
|
|
570
|
+
"tool_ui_incident": { token: "tool_ui_incident", schema: "tool", table: "ui_incident", label: "Tool UI Incident", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "Tools", referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
571
|
+
"tool_ui_version": { token: "tool_ui_version", schema: "tool", table: "ui_version", label: "Tool UI Version", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: "Tools", referencePickable: false, titleColumn: "display_name", contentRole: null, referenceCategory: null },
|
|
572
|
+
"transcript": { token: "transcript", schema: "transcripts", table: "transcripts", label: "Transcript", baseTier: 1, isComponent: false, isModule: true, isListed: false, scopeable: true, category: "Sources", referencePickable: true, titleColumn: "title", contentRole: "source", referenceCategory: null },
|
|
573
|
+
"udt_dataset_fields": { token: "udt_dataset_fields", schema: "workbench", table: "udt_dataset_fields", label: "Dataset Field", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "display_name", contentRole: null, referenceCategory: null },
|
|
574
|
+
"udt_dataset_rows": { token: "udt_dataset_rows", schema: "workbench", table: "udt_dataset_rows", label: "Dataset Row", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
575
|
+
"udt_document": { token: "udt_document", schema: "workbench", table: "udt_documents", label: "Document", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "document_name", contentRole: "hybrid", referenceCategory: null },
|
|
576
|
+
"udt_structured_list_items": { token: "udt_structured_list_items", schema: "workbench", table: "udt_structured_list_items", label: "Structured List Item", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "label", contentRole: null, referenceCategory: null },
|
|
577
|
+
"ui_surface_agent_pref": { token: "ui_surface_agent_pref", schema: "ui", table: "ui_surface_agent_pref", label: "UI Surface Agent Pref", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
578
|
+
"ui_surface_config": { token: "ui_surface_config", schema: "ui", table: "ui_surface_config", label: "UI Surface Config", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
579
|
+
"user_achievement": { token: "user_achievement", schema: "users", table: "user_achievements", label: "User Achievement", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
580
|
+
"user_analysis_preference": { token: "user_analysis_preference", schema: "users", table: "user_analysis_preferences", label: "User Analysis Preference", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
581
|
+
"user_bookmark": { token: "user_bookmark", schema: "users", table: "user_bookmarks", label: "User Bookmark", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
582
|
+
"user_email_preference": { token: "user_email_preference", schema: "users", table: "user_email_preferences", label: "User Email Preference", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
583
|
+
"user_feedback": { token: "user_feedback", schema: "users", table: "user_feedback", label: "User Feedback", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
584
|
+
"user_form_profile": { token: "user_form_profile", schema: "users", table: "user_form_profile", label: "User Form Profile", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
585
|
+
"user_markdown_sample": { token: "user_markdown_sample", schema: "users", table: "user_markdown_samples", label: "User Markdown Sample", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
586
|
+
"user_memory": { token: "user_memory", schema: "users", table: "user_memory", label: "User Memory", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
587
|
+
"user_preference": { token: "user_preference", schema: "users", table: "user_preferences", label: "User Preference", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
588
|
+
"user_profile": { token: "user_profile", schema: "users", table: "profiles", label: "User Profile", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "display_name", contentRole: null, referenceCategory: null },
|
|
589
|
+
"user_stat": { token: "user_stat", schema: "users", table: "user_stats", label: "User Stats", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
590
|
+
"user_surface_state": { token: "user_surface_state", schema: "users", table: "user_surface_state", label: "User Surface State", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
591
|
+
"voice": { token: "voice", schema: "ai", table: "voices", label: "Voice", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
592
|
+
"war_room": { token: "war_room", schema: "workspace", table: "war_rooms", label: "War Room", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "title", contentRole: null, referenceCategory: null },
|
|
593
|
+
"wbx_capture": { token: "wbx_capture", schema: "extend", table: "wbx_capture", label: "Extension Web Capture", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "title", contentRole: null, referenceCategory: null },
|
|
594
|
+
"wbx_guidance": { token: "wbx_guidance", schema: "extend", table: "wbx_guidance", label: "Extension Guidance", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
595
|
+
"wbx_highlight": { token: "wbx_highlight", schema: "extend", table: "wbx_highlight", label: "Extension Highlight", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
596
|
+
"wbx_pattern": { token: "wbx_pattern", schema: "extend", table: "wbx_pattern", label: "Extension Scrape Pattern", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
597
|
+
"wbx_screenshot": { token: "wbx_screenshot", schema: "extend", table: "wbx_screenshot", label: "Extension Screenshot", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
598
|
+
"wbx_seo_audit": { token: "wbx_seo_audit", schema: "extend", table: "wbx_seo_audit", label: "Extension SEO Audit", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
599
|
+
"wc_claim": { token: "wc_claim", schema: "legal", table: "wc_claim", label: "WC Claim", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
600
|
+
"wc_impairment_definition": { token: "wc_impairment_definition", schema: "legal", table: "wc_impairment_definition", label: "WC Impairment Definition", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
601
|
+
"wc_injury": { token: "wc_injury", schema: "legal", table: "wc_injury", label: "WC Injury", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
602
|
+
"wc_report": { token: "wc_report", schema: "legal", table: "wc_report", label: "WC Report", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
603
|
+
"web_analysis_item": { token: "web_analysis_item", schema: "web", table: "analysis_item", label: "Analysis Item", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "label", contentRole: null, referenceCategory: null },
|
|
604
|
+
"web_brand": { token: "web_brand", schema: "web", table: "brand", label: "Brand", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
605
|
+
"web_brand_asset": { token: "web_brand_asset", schema: "web", table: "brand_asset", label: "Brand Asset", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "title", contentRole: null, referenceCategory: null },
|
|
606
|
+
"web_brand_offering": { token: "web_brand_offering", schema: "web", table: "brand_offering", label: "Brand Offering", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
607
|
+
"web_business_fact": { token: "web_business_fact", schema: "web", table: "business_fact", label: "Business Fact", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "label", contentRole: null, referenceCategory: null },
|
|
608
|
+
"web_business_location": { token: "web_business_location", schema: "web", table: "business_location", label: "Business Location", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
609
|
+
"web_crawl_event": { token: "web_crawl_event", schema: "web", table: "crawl_event", label: "Web Crawl Event", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
610
|
+
"web_crawl_preset": { token: "web_crawl_preset", schema: "web", table: "crawl_preset", label: "Web Crawl Preset", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
611
|
+
"web_crawl_schedule": { token: "web_crawl_schedule", schema: "web", table: "crawl_schedule", label: "Web Crawl Schedule", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
612
|
+
"web_crawl_session": { token: "web_crawl_session", schema: "web", table: "crawl_session", label: "Crawl Session", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
613
|
+
"web_crawl_url": { token: "web_crawl_url", schema: "web", table: "crawl_url", label: "Web Crawl URL", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
614
|
+
"web_discovered_item": { token: "web_discovered_item", schema: "web", table: "discovered_item", label: "Discovered Item", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
615
|
+
"web_finding": { token: "web_finding", schema: "web", table: "finding", label: "Finding", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
616
|
+
"web_gsc_page_stat": { token: "web_gsc_page_stat", schema: "web", table: "gsc_page_stat", label: "GSC Page Stat", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
617
|
+
"web_link_edge": { token: "web_link_edge", schema: "web", table: "link_edge", label: "Link Edge", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
618
|
+
"web_listing_publisher": { token: "web_listing_publisher", schema: "web", table: "listing_publisher", label: "Listing Publisher", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
619
|
+
"web_location_listing": { token: "web_location_listing", schema: "web", table: "location_listing", label: "Location Listing", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
620
|
+
"web_offering_template": { token: "web_offering_template", schema: "web", table: "offering_template", label: "Offering Template", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
621
|
+
"web_page": { token: "web_page", schema: "web", table: "page", label: "Canonical Page", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "url", contentRole: "source", referenceCategory: null },
|
|
622
|
+
"web_page_content": { token: "web_page_content", schema: "web", table: "page_content", label: "Page Draft Content", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
623
|
+
"web_page_evidence": { token: "web_page_evidence", schema: "web", table: "page_evidence", label: "Web Page Evidence", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
624
|
+
"web_page_sitemap": { token: "web_page_sitemap", schema: "web", table: "page_sitemap", label: "Page Sitemap Membership", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
625
|
+
"web_property": { token: "web_property", schema: "web", table: "property", label: "Brand Property", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "display_name", contentRole: null, referenceCategory: null },
|
|
626
|
+
"web_provider": { token: "web_provider", schema: "web", table: "provider", label: "Provider", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "label", contentRole: null, referenceCategory: null },
|
|
627
|
+
"web_result": { token: "web_result", schema: "web", table: "analysis_result", label: "Analysis Result", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
628
|
+
"web_screenshot": { token: "web_screenshot", schema: "web", table: "screenshot", label: "Screenshot", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
629
|
+
"web_site": { token: "web_site", schema: "web", table: "site", label: "Site", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
630
|
+
"web_site_endpoint_rule": { token: "web_site_endpoint_rule", schema: "web", table: "site_endpoint_rule", label: "Site Endpoint Rule", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "path_prefix", contentRole: null, referenceCategory: null },
|
|
631
|
+
"web_site_item_config": { token: "web_site_item_config", schema: "web", table: "site_item_config", label: "Site Item Config", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
632
|
+
"web_site_offering": { token: "web_site_offering", schema: "web", table: "site_offering", label: "Site Offering", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
633
|
+
"web_sitemap": { token: "web_sitemap", schema: "web", table: "sitemap", label: "Sitemap", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "url", contentRole: null, referenceCategory: null },
|
|
634
|
+
"web_snapshot": { token: "web_snapshot", schema: "web", table: "snapshot", label: "Snapshot", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
635
|
+
"wf_node_data_slot": { token: "wf_node_data_slot", schema: "workflow", table: "node_data_slot", label: "Workflow Node Data Slot", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
636
|
+
"work_item": { token: "work_item", schema: "runtime", table: "work_item", label: "Runtime Work Item", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
637
|
+
"workbook": { token: "workbook", schema: "workbench", table: "udt_workbooks", label: "Workbook", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: true, titleColumn: "description", contentRole: "hybrid", referenceCategory: null },
|
|
638
|
+
"workflow": { token: "workflow", schema: "workflow", table: "definition", label: "Workflow", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: "utility", referenceCategory: null },
|
|
639
|
+
"workflow_card": { token: "workflow_card", schema: "workflow", table: "card", label: "Workflow Card", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
640
|
+
"workflow_checkpoint": { token: "workflow_checkpoint", schema: "workflow", table: "checkpoint", label: "Workflow Checkpoint", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
641
|
+
"workflow_definition_version": { token: "workflow_definition_version", schema: "workflow", table: "definition_version", label: "Workflow Definition Version", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
642
|
+
"workflow_idempotency": { token: "workflow_idempotency", schema: "workflow", table: "idempotency", label: "Workflow Idempotency", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
643
|
+
"workflow_job": { token: "workflow_job", schema: "workflow", table: "job", label: "Workflow Job", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
644
|
+
"workflow_node_events": { token: "workflow_node_events", schema: "workflow", table: "node_events", label: "Workflow Node Events", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
645
|
+
"workflow_node_outcome": { token: "workflow_node_outcome", schema: "workflow", table: "node_outcome", label: "Workflow Node Outcome", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
646
|
+
"workflow_plan": { token: "workflow_plan", schema: "workflow", table: "plan", label: "Workflow Plan", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: false, category: null, referencePickable: true, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
647
|
+
"workflow_plan_event": { token: "workflow_plan_event", schema: "workflow", table: "plan_event", label: "Workflow Plan Event", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: false, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
648
|
+
"workflow_plan_sample": { token: "workflow_plan_sample", schema: "workflow", table: "plan_sample", label: "Workflow Plan Sample", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: false, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
649
|
+
"workflow_recovery_audit": { token: "workflow_recovery_audit", schema: "workflow", table: "recovery_audit", label: "Workflow Recovery Audit", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
650
|
+
"workflow_run": { token: "workflow_run", schema: "workflow", table: "run", label: "Workflow Run", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
651
|
+
"workflow_run_log": { token: "workflow_run_log", schema: "workflow", table: "run_log", label: "Workflow Run Log", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
652
|
+
"workflow_runtime_surface": { token: "workflow_runtime_surface", schema: "workflow", table: "runtime_surface", label: "Run Surface", baseTier: 1, isComponent: false, isModule: false, isListed: true, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
653
|
+
"workflow_template": { token: "workflow_template", schema: "workflow", table: "template", label: "Workflow Template", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
654
|
+
"workflow_trigger": { token: "workflow_trigger", schema: "workflow", table: "trigger", label: "Workflow Trigger", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: true, titleColumn: "name", contentRole: null, referenceCategory: null },
|
|
655
|
+
"workflow_trigger_fire": { token: "workflow_trigger_fire", schema: "workflow", table: "trigger_fire", label: "Workflow Trigger Fire", baseTier: 1, isComponent: true, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
656
|
+
"working_document": { token: "working_document", schema: "workbench", table: "working_documents", label: "Working Documents", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: false, category: "Conversations", referencePickable: true, titleColumn: "title", contentRole: "destination", referenceCategory: null },
|
|
657
|
+
"youtube_search": { token: "youtube_search", schema: "research", table: "youtube_search", label: "YouTube Search", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: null, contentRole: null, referenceCategory: null },
|
|
658
|
+
"youtube_video": { token: "youtube_video", schema: "research", table: "youtube_video", label: "YouTube Video", baseTier: 1, isComponent: false, isModule: false, isListed: false, scopeable: true, category: null, referencePickable: false, titleColumn: "title", contentRole: "source", referenceCategory: null }
|
|
659
|
+
};
|
|
660
|
+
var ENTITY_TYPE_TOKENS = [
|
|
661
|
+
"access_request",
|
|
662
|
+
"activity",
|
|
663
|
+
"agent",
|
|
664
|
+
"agent_card",
|
|
665
|
+
"agent_definition_version",
|
|
666
|
+
"agent_drift_alert",
|
|
667
|
+
"agent_exemplar",
|
|
668
|
+
"agent_mandate_note",
|
|
669
|
+
"agent_prompt_remediation",
|
|
670
|
+
"agent_run",
|
|
671
|
+
"agent_run_stage",
|
|
672
|
+
"agent_shortcut",
|
|
673
|
+
"agent_surface_binding",
|
|
674
|
+
"agent_template",
|
|
675
|
+
"agent_usage",
|
|
676
|
+
"ai_api",
|
|
677
|
+
"ai_endpoint",
|
|
678
|
+
"ai_model",
|
|
679
|
+
"ai_model_alias",
|
|
680
|
+
"ai_offering",
|
|
681
|
+
"ai_provider",
|
|
682
|
+
"ai_setting",
|
|
683
|
+
"app",
|
|
684
|
+
"app_definition_version",
|
|
685
|
+
"app_error",
|
|
686
|
+
"app_execution",
|
|
687
|
+
"app_instance",
|
|
688
|
+
"app_log",
|
|
689
|
+
"app_rate_limit",
|
|
690
|
+
"app_setting",
|
|
691
|
+
"app_sync_status",
|
|
692
|
+
"approach",
|
|
693
|
+
"artifact",
|
|
694
|
+
"assessment",
|
|
695
|
+
"assessment_item",
|
|
696
|
+
"assessment_result",
|
|
697
|
+
"assist",
|
|
698
|
+
"batch_cost_event",
|
|
699
|
+
"batch_provider_batch",
|
|
700
|
+
"batch_work_item",
|
|
701
|
+
"browser_account_binding",
|
|
702
|
+
"browser_action_event",
|
|
703
|
+
"browser_authenticator_window",
|
|
704
|
+
"browser_capture",
|
|
705
|
+
"browser_control_request",
|
|
706
|
+
"browser_handoff",
|
|
707
|
+
"browser_login_attempt",
|
|
708
|
+
"browser_login_recipe",
|
|
709
|
+
"browser_profile",
|
|
710
|
+
"browser_profile_checkpoint",
|
|
711
|
+
"browser_run",
|
|
712
|
+
"browser_site_observation",
|
|
713
|
+
"browser_site_policy",
|
|
714
|
+
"browser_stream_ticket",
|
|
715
|
+
"canvas_comment",
|
|
716
|
+
"canvas_comment_like",
|
|
717
|
+
"canvas_item",
|
|
718
|
+
"canvas_item_state",
|
|
719
|
+
"canvas_like",
|
|
720
|
+
"canvas_score",
|
|
721
|
+
"canvas_view",
|
|
722
|
+
"category",
|
|
723
|
+
"cmp_entry",
|
|
724
|
+
"cmp_feedback",
|
|
725
|
+
"code_file",
|
|
726
|
+
"code_folder",
|
|
727
|
+
"code_repository",
|
|
728
|
+
"coding_session",
|
|
729
|
+
"coding_session_entry",
|
|
730
|
+
"comment",
|
|
731
|
+
"commerce_asset_allocation",
|
|
732
|
+
"commerce_asset_grading",
|
|
733
|
+
"commerce_asset_identifier",
|
|
734
|
+
"commerce_asset_lot_event",
|
|
735
|
+
"commerce_asset_mandate_result",
|
|
736
|
+
"commerce_asset_price_factor",
|
|
737
|
+
"commerce_asset_reshoot_request",
|
|
738
|
+
"commerce_asset_review",
|
|
739
|
+
"commerce_asset_unknown",
|
|
740
|
+
"commerce_cloud_sync_connection",
|
|
741
|
+
"commerce_ebay_business_policy",
|
|
742
|
+
"commerce_ebay_category",
|
|
743
|
+
"commerce_ebay_category_aspect",
|
|
744
|
+
"commerce_ebay_category_tree",
|
|
745
|
+
"commerce_ebay_custom_policy",
|
|
746
|
+
"commerce_ebay_inventory_item",
|
|
747
|
+
"commerce_ebay_inventory_item_group",
|
|
748
|
+
"commerce_ebay_inventory_item_group_member",
|
|
749
|
+
"commerce_ebay_inventory_location",
|
|
750
|
+
"commerce_ebay_listing",
|
|
751
|
+
"commerce_ebay_marketplace_policy",
|
|
752
|
+
"commerce_ebay_media_asset",
|
|
753
|
+
"commerce_ebay_notification_destination",
|
|
754
|
+
"commerce_ebay_notification_event",
|
|
755
|
+
"commerce_ebay_notification_subscription",
|
|
756
|
+
"commerce_ebay_notification_topic",
|
|
757
|
+
"commerce_ebay_offer",
|
|
758
|
+
"commerce_ebay_order",
|
|
759
|
+
"commerce_ebay_order_line_item",
|
|
760
|
+
"commerce_ebay_shipping_fulfillment",
|
|
761
|
+
"commerce_ebay_store_category",
|
|
762
|
+
"commerce_human_correction",
|
|
763
|
+
"commerce_intake_artifact",
|
|
764
|
+
"commerce_intake_asset",
|
|
765
|
+
"commerce_intake_batch",
|
|
766
|
+
"commerce_label_batch",
|
|
767
|
+
"commerce_label_code",
|
|
768
|
+
"commerce_marketplace_account",
|
|
769
|
+
"commerce_marketplace_account_deletion_audit",
|
|
770
|
+
"commerce_marketplace_api_call",
|
|
771
|
+
"commerce_marketplace_rate_budget",
|
|
772
|
+
"commerce_marketplace_site",
|
|
773
|
+
"commerce_marketplace_sync_run",
|
|
774
|
+
"commerce_prediction_outcome",
|
|
775
|
+
"commerce_product",
|
|
776
|
+
"commerce_product_channel_ref",
|
|
777
|
+
"commerce_product_media",
|
|
778
|
+
"commerce_product_variant",
|
|
779
|
+
"commerce_recall_audit",
|
|
780
|
+
"comparison_set",
|
|
781
|
+
"contact_medium",
|
|
782
|
+
"contact_submission",
|
|
783
|
+
"content_ir_kind",
|
|
784
|
+
"content_ir_kind_component",
|
|
785
|
+
"content_ir_kind_component_incident",
|
|
786
|
+
"content_ir_kind_conformance",
|
|
787
|
+
"content_ir_kind_edge",
|
|
788
|
+
"content_ir_kind_example",
|
|
789
|
+
"content_ir_kind_instance",
|
|
790
|
+
"content_ir_kind_surface",
|
|
791
|
+
"context_item",
|
|
792
|
+
"context_item_suggestion",
|
|
793
|
+
"conversation",
|
|
794
|
+
"conversation_value",
|
|
795
|
+
"crm_address",
|
|
796
|
+
"crm_affiliation",
|
|
797
|
+
"crm_blocklist_entry",
|
|
798
|
+
"crm_contact_candidate",
|
|
799
|
+
"crm_deal",
|
|
800
|
+
"crm_deal_stage_event",
|
|
801
|
+
"crm_enrichment_call",
|
|
802
|
+
"crm_interaction",
|
|
803
|
+
"crm_merge_candidate",
|
|
804
|
+
"crm_outreach_list",
|
|
805
|
+
"crm_outreach_list_member",
|
|
806
|
+
"crm_party_merge",
|
|
807
|
+
"crm_registry_ingest_run",
|
|
808
|
+
"crm_registry_source",
|
|
809
|
+
"crm_saved_view",
|
|
810
|
+
"crm_sending_event",
|
|
811
|
+
"crm_sending_identity",
|
|
812
|
+
"crm_sending_identity_check",
|
|
813
|
+
"crm_sending_policy",
|
|
814
|
+
"custom_entity_definition",
|
|
815
|
+
"custom_field_definition",
|
|
816
|
+
"custom_field_target",
|
|
817
|
+
"custom_record",
|
|
818
|
+
"cx_agent_memory",
|
|
819
|
+
"cx_agent_plan",
|
|
820
|
+
"cx_agent_task",
|
|
821
|
+
"cx_code_edit",
|
|
822
|
+
"cx_code_message_file",
|
|
823
|
+
"cx_media",
|
|
824
|
+
"cx_observational_memory",
|
|
825
|
+
"cx_observational_memory_event",
|
|
826
|
+
"cx_pending_injection",
|
|
827
|
+
"cx_request",
|
|
828
|
+
"cx_request_snapshot",
|
|
829
|
+
"cx_tool_trace",
|
|
830
|
+
"cx_user_request",
|
|
831
|
+
"cx_user_todo",
|
|
832
|
+
"data_store",
|
|
833
|
+
"dataset",
|
|
834
|
+
"derive_run",
|
|
835
|
+
"dict_setting",
|
|
836
|
+
"dm_conversation",
|
|
837
|
+
"dm_message",
|
|
838
|
+
"dm_participant",
|
|
839
|
+
"domain_classification",
|
|
840
|
+
"esign_campaign",
|
|
841
|
+
"esign_campaign_member",
|
|
842
|
+
"esign_consent_disclosure",
|
|
843
|
+
"esign_envelope",
|
|
844
|
+
"esign_envelope_certificate",
|
|
845
|
+
"esign_envelope_document",
|
|
846
|
+
"esign_envelope_event",
|
|
847
|
+
"esign_envelope_external_ref",
|
|
848
|
+
"esign_envelope_signer",
|
|
849
|
+
"esign_provider",
|
|
850
|
+
"esign_provider_binding",
|
|
851
|
+
"esign_signing_key",
|
|
852
|
+
"fc_card",
|
|
853
|
+
"fc_detail",
|
|
854
|
+
"fc_set",
|
|
855
|
+
"feature_doc",
|
|
856
|
+
"file",
|
|
857
|
+
"file_analysis",
|
|
858
|
+
"file_entities",
|
|
859
|
+
"file_overrides",
|
|
860
|
+
"file_page_annotations",
|
|
861
|
+
"file_pages",
|
|
862
|
+
"file_version",
|
|
863
|
+
"flexible_data",
|
|
864
|
+
"folder",
|
|
865
|
+
"game_badge",
|
|
866
|
+
"game_result",
|
|
867
|
+
"game_room",
|
|
868
|
+
"global_execution",
|
|
869
|
+
"global_execution_checkpoint",
|
|
870
|
+
"global_execution_event",
|
|
871
|
+
"global_meter_entry",
|
|
872
|
+
"global_origin",
|
|
873
|
+
"global_request",
|
|
874
|
+
"growth_loop_event",
|
|
875
|
+
"growth_loop_run",
|
|
876
|
+
"growth_loop_stage_run",
|
|
877
|
+
"guided_checklist_run",
|
|
878
|
+
"heatmap_save",
|
|
879
|
+
"hindsight_enrollment",
|
|
880
|
+
"hindsight_finding",
|
|
881
|
+
"hindsight_regression_case",
|
|
882
|
+
"hindsight_replay",
|
|
883
|
+
"hindsight_replay_step",
|
|
884
|
+
"hindsight_review",
|
|
885
|
+
"hr_access_audit",
|
|
886
|
+
"hr_access_role",
|
|
887
|
+
"hr_accommodation_request",
|
|
888
|
+
"hr_ai_evidence",
|
|
889
|
+
"hr_alert_routing_rule",
|
|
890
|
+
"hr_application",
|
|
891
|
+
"hr_approval_authority",
|
|
892
|
+
"hr_approval_delegation",
|
|
893
|
+
"hr_asset",
|
|
894
|
+
"hr_asset_assignment",
|
|
895
|
+
"hr_attendance_exception",
|
|
896
|
+
"hr_auto_close_rule",
|
|
897
|
+
"hr_availability",
|
|
898
|
+
"hr_background_check",
|
|
899
|
+
"hr_benefits_event",
|
|
900
|
+
"hr_calculation_snapshot",
|
|
901
|
+
"hr_candidate",
|
|
902
|
+
"hr_candidate_conversion",
|
|
903
|
+
"hr_candidate_message",
|
|
904
|
+
"hr_careers_portal",
|
|
905
|
+
"hr_checklist_item",
|
|
906
|
+
"hr_checklist_run",
|
|
907
|
+
"hr_checklist_template",
|
|
908
|
+
"hr_checklist_template_item",
|
|
909
|
+
"hr_compensation",
|
|
910
|
+
"hr_corrective_action",
|
|
911
|
+
"hr_course",
|
|
912
|
+
"hr_course_version",
|
|
913
|
+
"hr_credential",
|
|
914
|
+
"hr_crew",
|
|
915
|
+
"hr_deduction_code",
|
|
916
|
+
"hr_department",
|
|
917
|
+
"hr_derived_grant",
|
|
918
|
+
"hr_disposition_event",
|
|
919
|
+
"hr_earning_code",
|
|
920
|
+
"hr_eeo_response",
|
|
921
|
+
"hr_emergency_contact",
|
|
922
|
+
"hr_employee",
|
|
923
|
+
"hr_employee_private",
|
|
924
|
+
"hr_employer_profile",
|
|
925
|
+
"hr_employment",
|
|
926
|
+
"hr_employment_pin",
|
|
927
|
+
"hr_engagement",
|
|
928
|
+
"hr_establishment",
|
|
929
|
+
"hr_external_identity",
|
|
930
|
+
"hr_field_policy",
|
|
931
|
+
"hr_holiday",
|
|
932
|
+
"hr_holiday_calendar",
|
|
933
|
+
"hr_i9",
|
|
934
|
+
"hr_i9_document",
|
|
935
|
+
"hr_incident",
|
|
936
|
+
"hr_incident_party",
|
|
937
|
+
"hr_interview",
|
|
938
|
+
"hr_interview_kit",
|
|
939
|
+
"hr_job_title",
|
|
940
|
+
"hr_jurisdiction",
|
|
941
|
+
"hr_jurisdiction_rule",
|
|
942
|
+
"hr_jurisdiction_rule_class",
|
|
943
|
+
"hr_jurisdiction_rule_org_decision",
|
|
944
|
+
"hr_jurisdiction_rule_test",
|
|
945
|
+
"hr_kiosk_device",
|
|
946
|
+
"hr_kiosk_session",
|
|
947
|
+
"hr_labor_target",
|
|
948
|
+
"hr_leave_case",
|
|
949
|
+
"hr_leave_enrollment",
|
|
950
|
+
"hr_leave_ledger",
|
|
951
|
+
"hr_leave_policy",
|
|
952
|
+
"hr_leave_request",
|
|
953
|
+
"hr_legal_hold",
|
|
954
|
+
"hr_legal_hold_item",
|
|
955
|
+
"hr_location",
|
|
956
|
+
"hr_new_hire_report",
|
|
957
|
+
"hr_offer",
|
|
958
|
+
"hr_opening",
|
|
959
|
+
"hr_overtime_alert",
|
|
960
|
+
"hr_overtime_alert_rule",
|
|
961
|
+
"hr_overtime_preapproval",
|
|
962
|
+
"hr_pay_group",
|
|
963
|
+
"hr_pay_period",
|
|
964
|
+
"hr_pay_period_employment",
|
|
965
|
+
"hr_payroll_export",
|
|
966
|
+
"hr_payroll_export_line",
|
|
967
|
+
"hr_position_assignment",
|
|
968
|
+
"hr_posting",
|
|
969
|
+
"hr_posting_publication",
|
|
970
|
+
"hr_provider_binding",
|
|
971
|
+
"hr_provider_event",
|
|
972
|
+
"hr_provisioning_result",
|
|
973
|
+
"hr_punch",
|
|
974
|
+
"hr_recalculation_batch",
|
|
975
|
+
"hr_record_class",
|
|
976
|
+
"hr_records_request",
|
|
977
|
+
"hr_reference_check",
|
|
978
|
+
"hr_reporting_line",
|
|
979
|
+
"hr_requisition",
|
|
980
|
+
"hr_restricted_note",
|
|
981
|
+
"hr_retention_rule",
|
|
982
|
+
"hr_role_assignment",
|
|
983
|
+
"hr_schedule",
|
|
984
|
+
"hr_schedule_change",
|
|
985
|
+
"hr_schedule_guidance",
|
|
986
|
+
"hr_schedule_template",
|
|
987
|
+
"hr_schedule_template_shift",
|
|
988
|
+
"hr_scorecard",
|
|
989
|
+
"hr_separation",
|
|
990
|
+
"hr_shift",
|
|
991
|
+
"hr_shift_claim",
|
|
992
|
+
"hr_staffing_requirement",
|
|
993
|
+
"hr_survey",
|
|
994
|
+
"hr_survey_invitation",
|
|
995
|
+
"hr_survey_question",
|
|
996
|
+
"hr_survey_response",
|
|
997
|
+
"hr_tax_registration",
|
|
998
|
+
"hr_tax_withholding",
|
|
999
|
+
"hr_time_adjustment",
|
|
1000
|
+
"hr_training_assignment",
|
|
1001
|
+
"hr_training_attempt",
|
|
1002
|
+
"hr_transcript_entry",
|
|
1003
|
+
"hr_verification_letter_request",
|
|
1004
|
+
"hr_work_interval",
|
|
1005
|
+
"hr_workflow_binding",
|
|
1006
|
+
"hr_workflow_decision",
|
|
1007
|
+
"hr_workflow_definition",
|
|
1008
|
+
"hr_workflow_event",
|
|
1009
|
+
"hr_workflow_failure",
|
|
1010
|
+
"hr_workflow_flow_type",
|
|
1011
|
+
"hr_workflow_instance",
|
|
1012
|
+
"hr_workflow_step",
|
|
1013
|
+
"hr_workflow_step_definition",
|
|
1014
|
+
"hr_workweek",
|
|
1015
|
+
"iam_api_key",
|
|
1016
|
+
"industry_curator",
|
|
1017
|
+
"interview_document_revision",
|
|
1018
|
+
"interview_hole",
|
|
1019
|
+
"interview_question",
|
|
1020
|
+
"interview_session",
|
|
1021
|
+
"interview_turn",
|
|
1022
|
+
"invitation",
|
|
1023
|
+
"invitation_code",
|
|
1024
|
+
"invitation_request",
|
|
1025
|
+
"item_mastery",
|
|
1026
|
+
"judge_verdict",
|
|
1027
|
+
"kg_alert",
|
|
1028
|
+
"kg_suggestion_ack",
|
|
1029
|
+
"kg_sweep_queue",
|
|
1030
|
+
"kg_sweep_run",
|
|
1031
|
+
"kg_sweep_state",
|
|
1032
|
+
"kg_value_match",
|
|
1033
|
+
"league_membership",
|
|
1034
|
+
"learn_doc",
|
|
1035
|
+
"library_doc",
|
|
1036
|
+
"mandate",
|
|
1037
|
+
"mandate_binding",
|
|
1038
|
+
"mandate_treatment",
|
|
1039
|
+
"marketing_initiative",
|
|
1040
|
+
"masterwork_corpus_item",
|
|
1041
|
+
"masterwork_run",
|
|
1042
|
+
"membership",
|
|
1043
|
+
"message",
|
|
1044
|
+
"message_template",
|
|
1045
|
+
"ner_shadow",
|
|
1046
|
+
"note",
|
|
1047
|
+
"note_folder",
|
|
1048
|
+
"notification",
|
|
1049
|
+
"notification_channel_preference",
|
|
1050
|
+
"notification_event_override",
|
|
1051
|
+
"notification_event_type",
|
|
1052
|
+
"notification_preference",
|
|
1053
|
+
"ops_issue_event",
|
|
1054
|
+
"ops_proof_check",
|
|
1055
|
+
"ops_proof_run",
|
|
1056
|
+
"ops_proof_scenario",
|
|
1057
|
+
"organization",
|
|
1058
|
+
"output_feedback",
|
|
1059
|
+
"page_extraction_job",
|
|
1060
|
+
"page_extraction_page_run",
|
|
1061
|
+
"party",
|
|
1062
|
+
"party_contact_point",
|
|
1063
|
+
"pc_article",
|
|
1064
|
+
"pc_episode",
|
|
1065
|
+
"pc_show",
|
|
1066
|
+
"pc_studio_run",
|
|
1067
|
+
"pc_studio_run_asset",
|
|
1068
|
+
"pdf_redaction_audit",
|
|
1069
|
+
"plan_cms_fill_item",
|
|
1070
|
+
"plan_cms_fill_job",
|
|
1071
|
+
"plan_entity",
|
|
1072
|
+
"plan_node",
|
|
1073
|
+
"plan_node_artifact",
|
|
1074
|
+
"plan_node_step",
|
|
1075
|
+
"plan_profile",
|
|
1076
|
+
"platform_actor_session",
|
|
1077
|
+
"platform_actor_token",
|
|
1078
|
+
"platform_actor_token_event",
|
|
1079
|
+
"platform_outcome_event",
|
|
1080
|
+
"platform_outsider_consumer",
|
|
1081
|
+
"platform_saved_view",
|
|
1082
|
+
"podcast_race",
|
|
1083
|
+
"processed_document",
|
|
1084
|
+
"processed_document_page",
|
|
1085
|
+
"product_capture_file",
|
|
1086
|
+
"product_capture_item",
|
|
1087
|
+
"product_capture_payload",
|
|
1088
|
+
"product_capture_product",
|
|
1089
|
+
"product_capture_question",
|
|
1090
|
+
"project",
|
|
1091
|
+
"provision",
|
|
1092
|
+
"purpose",
|
|
1093
|
+
"quiz_session",
|
|
1094
|
+
"rag_ingest_run",
|
|
1095
|
+
"redaction_mapping",
|
|
1096
|
+
"research_analysis",
|
|
1097
|
+
"research_content",
|
|
1098
|
+
"research_context_bundle",
|
|
1099
|
+
"research_document",
|
|
1100
|
+
"research_keyword",
|
|
1101
|
+
"research_media",
|
|
1102
|
+
"research_source",
|
|
1103
|
+
"research_synthesis",
|
|
1104
|
+
"research_tag",
|
|
1105
|
+
"research_template",
|
|
1106
|
+
"research_topic",
|
|
1107
|
+
"rulebook",
|
|
1108
|
+
"sandbox_instance",
|
|
1109
|
+
"sch_agent_task",
|
|
1110
|
+
"sch_run",
|
|
1111
|
+
"sch_task",
|
|
1112
|
+
"sch_trigger",
|
|
1113
|
+
"scope",
|
|
1114
|
+
"scope_association_suggestion",
|
|
1115
|
+
"scope_item_value_suggestion",
|
|
1116
|
+
"scope_suggestion",
|
|
1117
|
+
"scope_type",
|
|
1118
|
+
"seo_ai_visibility_citation",
|
|
1119
|
+
"seo_ai_visibility_claim",
|
|
1120
|
+
"seo_ai_visibility_panel",
|
|
1121
|
+
"seo_ai_visibility_response",
|
|
1122
|
+
"seo_ai_visibility_signal",
|
|
1123
|
+
"seo_backlink",
|
|
1124
|
+
"seo_backlink_change_event",
|
|
1125
|
+
"seo_backlink_dimension_snapshot",
|
|
1126
|
+
"seo_backlink_observation",
|
|
1127
|
+
"seo_backlink_snapshot",
|
|
1128
|
+
"seo_change_assessment",
|
|
1129
|
+
"seo_change_event",
|
|
1130
|
+
"seo_change_item",
|
|
1131
|
+
"seo_change_metric",
|
|
1132
|
+
"seo_change_set",
|
|
1133
|
+
"seo_change_theory",
|
|
1134
|
+
"seo_collection_run",
|
|
1135
|
+
"seo_competitor",
|
|
1136
|
+
"seo_competitor_observation",
|
|
1137
|
+
"seo_competitor_opportunity",
|
|
1138
|
+
"seo_coverage_mention",
|
|
1139
|
+
"seo_coverage_tracker",
|
|
1140
|
+
"seo_dimension_value_matcher",
|
|
1141
|
+
"seo_engine_schedule",
|
|
1142
|
+
"seo_geo_place",
|
|
1143
|
+
"seo_gsc_dig_rule",
|
|
1144
|
+
"seo_keyword",
|
|
1145
|
+
"seo_keyword_class_rule",
|
|
1146
|
+
"seo_keyword_edge",
|
|
1147
|
+
"seo_keyword_facet",
|
|
1148
|
+
"seo_keyword_market",
|
|
1149
|
+
"seo_keyword_market_observation",
|
|
1150
|
+
"seo_keyword_place",
|
|
1151
|
+
"seo_keyword_saved_view",
|
|
1152
|
+
"seo_keyword_topic",
|
|
1153
|
+
"seo_landscape_brief",
|
|
1154
|
+
"seo_link_gap_domain",
|
|
1155
|
+
"seo_link_gap_match",
|
|
1156
|
+
"seo_page_measurement_health",
|
|
1157
|
+
"seo_page_performance",
|
|
1158
|
+
"seo_provider_call",
|
|
1159
|
+
"seo_provider_task",
|
|
1160
|
+
"seo_rank_observation",
|
|
1161
|
+
"seo_rank_target",
|
|
1162
|
+
"seo_raw_payload",
|
|
1163
|
+
"seo_referring_domain_profile",
|
|
1164
|
+
"seo_reputation_case",
|
|
1165
|
+
"seo_search_performance_daily",
|
|
1166
|
+
"seo_serp_mention",
|
|
1167
|
+
"seo_serp_opportunity",
|
|
1168
|
+
"seo_serp_result",
|
|
1169
|
+
"seo_serp_snapshot",
|
|
1170
|
+
"seo_site_geo_area",
|
|
1171
|
+
"seo_site_keyword_offering",
|
|
1172
|
+
"seo_site_keyword_value",
|
|
1173
|
+
"seo_site_offering_value",
|
|
1174
|
+
"seo_site_topic_value",
|
|
1175
|
+
"seo_site_value_combo",
|
|
1176
|
+
"seo_site_value_worth",
|
|
1177
|
+
"seo_site_vocabulary",
|
|
1178
|
+
"seo_source_request",
|
|
1179
|
+
"seo_starter_pack",
|
|
1180
|
+
"seo_starter_pack_item",
|
|
1181
|
+
"seo_story_angle",
|
|
1182
|
+
"seo_topic",
|
|
1183
|
+
"seo_web_analytics_daily",
|
|
1184
|
+
"shared_canvas_item",
|
|
1185
|
+
"skill",
|
|
1186
|
+
"skill_render_definition",
|
|
1187
|
+
"sms_consent",
|
|
1188
|
+
"sms_conversation",
|
|
1189
|
+
"sms_message",
|
|
1190
|
+
"sms_message_media",
|
|
1191
|
+
"sms_notification",
|
|
1192
|
+
"sms_notification_preference",
|
|
1193
|
+
"sms_phone_number",
|
|
1194
|
+
"structured_list",
|
|
1195
|
+
"studio_documents",
|
|
1196
|
+
"studio_recording_chunks",
|
|
1197
|
+
"studio_recording_segments",
|
|
1198
|
+
"studio_run",
|
|
1199
|
+
"studio_session",
|
|
1200
|
+
"studio_session_settings",
|
|
1201
|
+
"study_attempt",
|
|
1202
|
+
"study_goal",
|
|
1203
|
+
"study_media",
|
|
1204
|
+
"study_plan",
|
|
1205
|
+
"study_plan_block",
|
|
1206
|
+
"study_plan_day",
|
|
1207
|
+
"study_reminder_context",
|
|
1208
|
+
"study_reminder_delivery",
|
|
1209
|
+
"study_session",
|
|
1210
|
+
"surface",
|
|
1211
|
+
"system_context_item",
|
|
1212
|
+
"system_error",
|
|
1213
|
+
"system_personal_org_failure",
|
|
1214
|
+
"system_write_failure",
|
|
1215
|
+
"task",
|
|
1216
|
+
"thread",
|
|
1217
|
+
"tool",
|
|
1218
|
+
"tool_bundle",
|
|
1219
|
+
"tool_call",
|
|
1220
|
+
"tool_definition_version",
|
|
1221
|
+
"tool_test_sample",
|
|
1222
|
+
"tool_ui",
|
|
1223
|
+
"tool_ui_incident",
|
|
1224
|
+
"tool_ui_version",
|
|
1225
|
+
"transcript",
|
|
1226
|
+
"udt_dataset_fields",
|
|
1227
|
+
"udt_dataset_rows",
|
|
1228
|
+
"udt_document",
|
|
1229
|
+
"udt_structured_list_items",
|
|
1230
|
+
"ui_surface_agent_pref",
|
|
1231
|
+
"ui_surface_config",
|
|
1232
|
+
"user_achievement",
|
|
1233
|
+
"user_analysis_preference",
|
|
1234
|
+
"user_bookmark",
|
|
1235
|
+
"user_email_preference",
|
|
1236
|
+
"user_feedback",
|
|
1237
|
+
"user_form_profile",
|
|
1238
|
+
"user_markdown_sample",
|
|
1239
|
+
"user_memory",
|
|
1240
|
+
"user_preference",
|
|
1241
|
+
"user_profile",
|
|
1242
|
+
"user_stat",
|
|
1243
|
+
"user_surface_state",
|
|
1244
|
+
"voice",
|
|
1245
|
+
"war_room",
|
|
1246
|
+
"wbx_capture",
|
|
1247
|
+
"wbx_guidance",
|
|
1248
|
+
"wbx_highlight",
|
|
1249
|
+
"wbx_pattern",
|
|
1250
|
+
"wbx_screenshot",
|
|
1251
|
+
"wbx_seo_audit",
|
|
1252
|
+
"wc_claim",
|
|
1253
|
+
"wc_impairment_definition",
|
|
1254
|
+
"wc_injury",
|
|
1255
|
+
"wc_report",
|
|
1256
|
+
"web_analysis_item",
|
|
1257
|
+
"web_brand",
|
|
1258
|
+
"web_brand_asset",
|
|
1259
|
+
"web_brand_offering",
|
|
1260
|
+
"web_business_fact",
|
|
1261
|
+
"web_business_location",
|
|
1262
|
+
"web_crawl_event",
|
|
1263
|
+
"web_crawl_preset",
|
|
1264
|
+
"web_crawl_schedule",
|
|
1265
|
+
"web_crawl_session",
|
|
1266
|
+
"web_crawl_url",
|
|
1267
|
+
"web_discovered_item",
|
|
1268
|
+
"web_finding",
|
|
1269
|
+
"web_gsc_page_stat",
|
|
1270
|
+
"web_link_edge",
|
|
1271
|
+
"web_listing_publisher",
|
|
1272
|
+
"web_location_listing",
|
|
1273
|
+
"web_offering_template",
|
|
1274
|
+
"web_page",
|
|
1275
|
+
"web_page_content",
|
|
1276
|
+
"web_page_evidence",
|
|
1277
|
+
"web_page_sitemap",
|
|
1278
|
+
"web_property",
|
|
1279
|
+
"web_provider",
|
|
1280
|
+
"web_result",
|
|
1281
|
+
"web_screenshot",
|
|
1282
|
+
"web_site",
|
|
1283
|
+
"web_site_endpoint_rule",
|
|
1284
|
+
"web_site_item_config",
|
|
1285
|
+
"web_site_offering",
|
|
1286
|
+
"web_sitemap",
|
|
1287
|
+
"web_snapshot",
|
|
1288
|
+
"wf_node_data_slot",
|
|
1289
|
+
"work_item",
|
|
1290
|
+
"workbook",
|
|
1291
|
+
"workflow",
|
|
1292
|
+
"workflow_card",
|
|
1293
|
+
"workflow_checkpoint",
|
|
1294
|
+
"workflow_definition_version",
|
|
1295
|
+
"workflow_idempotency",
|
|
1296
|
+
"workflow_job",
|
|
1297
|
+
"workflow_node_events",
|
|
1298
|
+
"workflow_node_outcome",
|
|
1299
|
+
"workflow_plan",
|
|
1300
|
+
"workflow_plan_event",
|
|
1301
|
+
"workflow_plan_sample",
|
|
1302
|
+
"workflow_recovery_audit",
|
|
1303
|
+
"workflow_run",
|
|
1304
|
+
"workflow_run_log",
|
|
1305
|
+
"workflow_runtime_surface",
|
|
1306
|
+
"workflow_template",
|
|
1307
|
+
"workflow_trigger",
|
|
1308
|
+
"workflow_trigger_fire",
|
|
1309
|
+
"working_document",
|
|
1310
|
+
"youtube_search",
|
|
1311
|
+
"youtube_video"
|
|
1312
|
+
];
|
|
1313
|
+
var ENTITY_TYPE_TOKEN_SET = new Set(ENTITY_TYPE_TOKENS);
|
|
1314
|
+
function isEntityTypeToken(value) {
|
|
1315
|
+
return typeof value === "string" && ENTITY_TYPE_TOKEN_SET.has(value);
|
|
1316
|
+
}
|
|
1317
|
+
|
|
1318
|
+
// src/core/guards.ts
|
|
1319
|
+
var UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
1320
|
+
function isUuid(value) {
|
|
1321
|
+
return typeof value === "string" && UUID_RE.test(value);
|
|
1322
|
+
}
|
|
1323
|
+
function show(value) {
|
|
1324
|
+
if (typeof value === "string") return JSON.stringify(value);
|
|
1325
|
+
if (value === null || value === void 0) return String(value);
|
|
1326
|
+
return JSON.stringify(value);
|
|
1327
|
+
}
|
|
1328
|
+
var LEGACY_ENTITY_TOKEN_ALIASES = {
|
|
1329
|
+
cx_message: "message",
|
|
1330
|
+
// chat.message
|
|
1331
|
+
cx_conversation: "conversation",
|
|
1332
|
+
// chat.conversation
|
|
1333
|
+
user_file: "file",
|
|
1334
|
+
// files.files (mirrors war-room entityToSource)
|
|
1335
|
+
agent_app: "app",
|
|
1336
|
+
// app.definition
|
|
1337
|
+
// chat_block: a "block" is a slice of a chat message — the edge's id IS the
|
|
1338
|
+
// message id (metadata.block_index carries the slice), so it maps to message.
|
|
1339
|
+
chat_block: "message"
|
|
1340
|
+
};
|
|
1341
|
+
function firstError(...checks) {
|
|
1342
|
+
for (const c of checks) if (c) return c;
|
|
1343
|
+
return null;
|
|
1344
|
+
}
|
|
1345
|
+
function createAssociationGuards(errorSink) {
|
|
1346
|
+
function invalid(field, value, reason) {
|
|
1347
|
+
const message = `association ${field} ${reason} (got ${show(value)})`;
|
|
1348
|
+
errorSink({
|
|
1349
|
+
code: "invalid_argument",
|
|
1350
|
+
message: `[associations] invalid argument \u2014 ${message}`,
|
|
1351
|
+
context: { field }
|
|
1352
|
+
});
|
|
1353
|
+
return { code: "invalid_argument", message };
|
|
1354
|
+
}
|
|
1355
|
+
return {
|
|
1356
|
+
checkUuid(field, value) {
|
|
1357
|
+
return isUuid(value) ? null : invalid(field, value, "must be a UUID");
|
|
1358
|
+
},
|
|
1359
|
+
checkUuidArray(field, values) {
|
|
1360
|
+
for (let i = 0; i < values.length; i++) {
|
|
1361
|
+
if (!isUuid(values[i]))
|
|
1362
|
+
return invalid(`${field}[${i}]`, values[i], "must be a UUID");
|
|
1363
|
+
}
|
|
1364
|
+
return null;
|
|
1365
|
+
},
|
|
1366
|
+
checkToken(field, value) {
|
|
1367
|
+
if (typeof value !== "string" || value.length === 0)
|
|
1368
|
+
return invalid(field, value, "must be a non-empty entity-type token");
|
|
1369
|
+
if (!isEntityTypeToken(value))
|
|
1370
|
+
return invalid(
|
|
1371
|
+
field,
|
|
1372
|
+
value,
|
|
1373
|
+
"is not a registered entity type (platform.entity_types) \u2014 add it to the registry + upgrade @ai-matrx/associations, never guess a token"
|
|
1374
|
+
);
|
|
1375
|
+
return null;
|
|
1376
|
+
},
|
|
1377
|
+
normalizeEntityToken(value) {
|
|
1378
|
+
const canonical = LEGACY_ENTITY_TOKEN_ALIASES[value];
|
|
1379
|
+
if (canonical) {
|
|
1380
|
+
errorSink({
|
|
1381
|
+
code: "legacy_token_alias",
|
|
1382
|
+
message: `[associations] phantom entity token ${JSON.stringify(value)} mapped to canonical ${JSON.stringify(canonical)} \u2014 fix the callsite to emit the canonical token (FOUND_DEFECTS D27)`,
|
|
1383
|
+
context: { value, canonical }
|
|
1384
|
+
});
|
|
1385
|
+
return canonical;
|
|
1386
|
+
}
|
|
1387
|
+
return value;
|
|
1388
|
+
}
|
|
1389
|
+
};
|
|
1390
|
+
}
|
|
1391
|
+
|
|
1392
|
+
// src/core/rpcResult.ts
|
|
1393
|
+
function err(code, message, detail, hint) {
|
|
1394
|
+
const error = { code, message };
|
|
1395
|
+
if (detail !== void 0) error.detail = detail;
|
|
1396
|
+
if (hint !== void 0) error.hint = hint;
|
|
1397
|
+
return { ok: false, error };
|
|
1398
|
+
}
|
|
1399
|
+
function ok(data) {
|
|
1400
|
+
return { ok: true, data };
|
|
1401
|
+
}
|
|
1402
|
+
function isTransportFailure(e) {
|
|
1403
|
+
if (typeof navigator !== "undefined" && navigator.onLine === false) {
|
|
1404
|
+
return true;
|
|
1405
|
+
}
|
|
1406
|
+
if (e instanceof TypeError) return true;
|
|
1407
|
+
if (e && typeof e === "object") {
|
|
1408
|
+
const o = e;
|
|
1409
|
+
if (o.code || o.status) return false;
|
|
1410
|
+
const text = `${typeof o.name === "string" ? o.name : ""} ${typeof o.message === "string" ? o.message : ""}`.toLowerCase();
|
|
1411
|
+
return text.includes("failed to fetch") || text.includes("networkerror") || text.includes("network request failed") || text.includes("load failed") || // Safari's wording for the same condition
|
|
1412
|
+
text.includes("upstream connect error or disconnect/reset before headers");
|
|
1413
|
+
}
|
|
1414
|
+
return false;
|
|
1415
|
+
}
|
|
1416
|
+
function isPostgrestResultError(e) {
|
|
1417
|
+
if (!e || typeof e !== "object") return false;
|
|
1418
|
+
const value = e;
|
|
1419
|
+
return typeof value.code === "string" && typeof value.message === "string";
|
|
1420
|
+
}
|
|
1421
|
+
function readPgFields(e) {
|
|
1422
|
+
if (e && typeof e === "object") {
|
|
1423
|
+
const o = e;
|
|
1424
|
+
return {
|
|
1425
|
+
pgCode: typeof o.code === "string" && o.code ? o.code : null,
|
|
1426
|
+
// `Error` instances land here too — `message` is an own/inherited
|
|
1427
|
+
// string property either way, so one read covers both shapes.
|
|
1428
|
+
pgMessage: typeof o.message === "string" && o.message ? o.message : null,
|
|
1429
|
+
pgHint: typeof o.hint === "string" && o.hint ? o.hint : void 0
|
|
1430
|
+
};
|
|
1431
|
+
}
|
|
1432
|
+
return { pgCode: null, pgMessage: null, pgHint: void 0 };
|
|
1433
|
+
}
|
|
1434
|
+
function createRpcResultHelpers(errorSink) {
|
|
1435
|
+
function mapPgError(e) {
|
|
1436
|
+
const { pgCode, pgMessage, pgHint } = readPgFields(e);
|
|
1437
|
+
if (pgCode === "PGRST202") {
|
|
1438
|
+
const message = "demanded schema violation: the database this client is pointed at cannot answer a demanded @ai-matrx/associations RPC (PostgREST PGRST202 \u2014 function not found). This package DEMANDS the platform " + `schema (README \xA7 The demanded schema). ${pgMessage ?? ""}`.trim();
|
|
1439
|
+
errorSink({
|
|
1440
|
+
code: "demanded_schema_violation",
|
|
1441
|
+
message,
|
|
1442
|
+
context: { pgCode, detail: e }
|
|
1443
|
+
});
|
|
1444
|
+
const out2 = {
|
|
1445
|
+
code: "demanded_schema_violation",
|
|
1446
|
+
message,
|
|
1447
|
+
detail: e
|
|
1448
|
+
};
|
|
1449
|
+
if (pgHint !== void 0) out2.hint = pgHint;
|
|
1450
|
+
return out2;
|
|
1451
|
+
}
|
|
1452
|
+
if (isTransportFailure(e)) {
|
|
1453
|
+
errorSink({
|
|
1454
|
+
code: "transport_failure",
|
|
1455
|
+
message: "network unreachable (browser offline?)",
|
|
1456
|
+
context: { transient: true, detail: e }
|
|
1457
|
+
});
|
|
1458
|
+
} else if (!isPostgrestResultError(e)) {
|
|
1459
|
+
errorSink({
|
|
1460
|
+
code: "internal",
|
|
1461
|
+
message: pgMessage ?? "Unexpected error talking to the data source",
|
|
1462
|
+
context: { detail: e }
|
|
1463
|
+
});
|
|
1464
|
+
}
|
|
1465
|
+
if (pgCode === "PGRST116")
|
|
1466
|
+
return { code: "not_found", message: "Not found" };
|
|
1467
|
+
if (pgCode === "42501")
|
|
1468
|
+
return { code: "forbidden_org", message: "Permission denied" };
|
|
1469
|
+
if (pgCode === "PGRST301" || pgCode === "PGRST303")
|
|
1470
|
+
return { code: "unauthorized", message: "Your session expired" };
|
|
1471
|
+
if (pgCode === "57014") {
|
|
1472
|
+
const out2 = {
|
|
1473
|
+
code: "internal",
|
|
1474
|
+
message: "The database took too long to respond",
|
|
1475
|
+
detail: e
|
|
1476
|
+
};
|
|
1477
|
+
if (pgHint !== void 0) out2.hint = pgHint;
|
|
1478
|
+
return out2;
|
|
1479
|
+
}
|
|
1480
|
+
const out = {
|
|
1481
|
+
// A real message from PostgREST beats our generic string every time;
|
|
1482
|
+
// the generic one is the LAST resort, not the default.
|
|
1483
|
+
message: pgMessage ?? "Unexpected error talking to the data source",
|
|
1484
|
+
code: "internal",
|
|
1485
|
+
detail: e
|
|
1486
|
+
};
|
|
1487
|
+
if (pgHint !== void 0) out.hint = pgHint;
|
|
1488
|
+
return out;
|
|
1489
|
+
}
|
|
1490
|
+
function mapPgErrorPair(e) {
|
|
1491
|
+
const mapped = mapPgError(e);
|
|
1492
|
+
return [mapped.code, mapped.message, mapped.detail, mapped.hint];
|
|
1493
|
+
}
|
|
1494
|
+
return { ok, err, mapPgError, mapPgErrorPair };
|
|
1495
|
+
}
|
|
1496
|
+
|
|
1497
|
+
// src/core/registry.ts
|
|
1498
|
+
var DEFAULT_OWNER_COLUMN = "created_by";
|
|
1499
|
+
var DEFAULT_ORG_COLUMN = "organization_id";
|
|
1500
|
+
var CONTENT_ROLE_SET = /* @__PURE__ */ new Set([
|
|
1501
|
+
"utility",
|
|
1502
|
+
"source",
|
|
1503
|
+
"destination",
|
|
1504
|
+
"hybrid",
|
|
1505
|
+
"container"
|
|
1506
|
+
]);
|
|
1507
|
+
function isContentRole(value) {
|
|
1508
|
+
return value !== null && CONTENT_ROLE_SET.has(value);
|
|
1509
|
+
}
|
|
1510
|
+
var TOKEN_ALIASES = {
|
|
1511
|
+
cld_file: "file"
|
|
1512
|
+
};
|
|
1513
|
+
function resolveEntityToken(raw) {
|
|
1514
|
+
return TOKEN_ALIASES[raw] ?? raw;
|
|
1515
|
+
}
|
|
1516
|
+
var TABLE_TO_TOKEN = (() => {
|
|
1517
|
+
const m = {};
|
|
1518
|
+
for (const token of Object.keys(ENTITY_TYPE_METADATA)) {
|
|
1519
|
+
const meta = ENTITY_TYPE_METADATA[token];
|
|
1520
|
+
const key = `${meta.schema}.${meta.table}`;
|
|
1521
|
+
if (!(key in m)) m[key] = token;
|
|
1522
|
+
}
|
|
1523
|
+
return m;
|
|
1524
|
+
})();
|
|
1525
|
+
var UNIQUE_TABLE_NAME_TO_TOKEN = (() => {
|
|
1526
|
+
const index = {};
|
|
1527
|
+
for (const token of Object.keys(
|
|
1528
|
+
ENTITY_TYPE_METADATA
|
|
1529
|
+
)) {
|
|
1530
|
+
const table = ENTITY_TYPE_METADATA[token].table;
|
|
1531
|
+
index[table] = table in index ? null : token;
|
|
1532
|
+
}
|
|
1533
|
+
return index;
|
|
1534
|
+
})();
|
|
1535
|
+
function createEntityRegistry(errorSink, initialOverlay) {
|
|
1536
|
+
const overlayByToken = {
|
|
1537
|
+
...initialOverlay ?? {}
|
|
1538
|
+
};
|
|
1539
|
+
function getEntityInfo(token) {
|
|
1540
|
+
const meta = ENTITY_TYPE_METADATA[token];
|
|
1541
|
+
const overlay = overlayByToken[token];
|
|
1542
|
+
const labelPlural = overlay?.labelPlural ?? `${meta.label}s`;
|
|
1543
|
+
const titleColumn = meta.titleColumn;
|
|
1544
|
+
const contentRole = isContentRole(meta.contentRole) ? meta.contentRole : "destination";
|
|
1545
|
+
if (meta.contentRole !== null && !isContentRole(meta.contentRole)) {
|
|
1546
|
+
errorSink({
|
|
1547
|
+
code: "invalid_content_role",
|
|
1548
|
+
message: `[entityRegistry] "${token}" has invalid content_role "${meta.contentRole}" in platform.entity_types; using destination as a loud recovery.`,
|
|
1549
|
+
context: { token, contentRole: meta.contentRole }
|
|
1550
|
+
});
|
|
1551
|
+
}
|
|
1552
|
+
const ownerColumn = overlay?.ownerColumn === void 0 ? DEFAULT_OWNER_COLUMN : overlay.ownerColumn ?? "";
|
|
1553
|
+
const orgColumn = overlay?.orgColumn === void 0 ? DEFAULT_ORG_COLUMN : overlay.orgColumn ?? "";
|
|
1554
|
+
return {
|
|
1555
|
+
token,
|
|
1556
|
+
label: meta.label,
|
|
1557
|
+
labelPlural,
|
|
1558
|
+
schema: meta.schema,
|
|
1559
|
+
table: meta.table,
|
|
1560
|
+
titleColumn,
|
|
1561
|
+
ownerColumn,
|
|
1562
|
+
orgColumn,
|
|
1563
|
+
Icon: overlay?.Icon ?? null,
|
|
1564
|
+
hrefFor: overlay?.hrefFor ?? null,
|
|
1565
|
+
scopeable: meta.scopeable,
|
|
1566
|
+
category: meta.category,
|
|
1567
|
+
contentRole,
|
|
1568
|
+
listCandidates: overlay?.listCandidates ?? null,
|
|
1569
|
+
canListCandidates: titleColumn !== null || overlay?.listCandidates !== void 0
|
|
1570
|
+
};
|
|
1571
|
+
}
|
|
1572
|
+
return {
|
|
1573
|
+
registerEntityOverlay(overlay) {
|
|
1574
|
+
for (const key of Object.keys(overlay)) {
|
|
1575
|
+
const entry = overlay[key];
|
|
1576
|
+
if (!entry) continue;
|
|
1577
|
+
overlayByToken[key] = { ...overlayByToken[key], ...entry };
|
|
1578
|
+
}
|
|
1579
|
+
},
|
|
1580
|
+
getEntityInfo,
|
|
1581
|
+
tryGetEntityInfo(token) {
|
|
1582
|
+
const canonical = resolveEntityToken(token);
|
|
1583
|
+
return isEntityTypeToken(canonical) ? getEntityInfo(canonical) : null;
|
|
1584
|
+
},
|
|
1585
|
+
tryGetEntityInfoByTable(schema, table) {
|
|
1586
|
+
const token = TABLE_TO_TOKEN[`${schema}.${table}`];
|
|
1587
|
+
return token ? getEntityInfo(token) : null;
|
|
1588
|
+
},
|
|
1589
|
+
tryGetEntityInfoByUniqueTableName(table) {
|
|
1590
|
+
const token = UNIQUE_TABLE_NAME_TO_TOKEN[table];
|
|
1591
|
+
return token ? getEntityInfo(token) : null;
|
|
1592
|
+
},
|
|
1593
|
+
curatedTokens() {
|
|
1594
|
+
return Object.keys(ENTITY_TYPE_METADATA).filter(
|
|
1595
|
+
(t) => {
|
|
1596
|
+
const meta = ENTITY_TYPE_METADATA[t];
|
|
1597
|
+
const o = overlayByToken[t];
|
|
1598
|
+
return isContentRole(meta.contentRole) && (meta.titleColumn != null || o?.listCandidates !== void 0);
|
|
1599
|
+
}
|
|
1600
|
+
);
|
|
1601
|
+
},
|
|
1602
|
+
listableTokens() {
|
|
1603
|
+
return Object.keys(ENTITY_TYPE_METADATA).filter(
|
|
1604
|
+
(t) => {
|
|
1605
|
+
const meta = ENTITY_TYPE_METADATA[t];
|
|
1606
|
+
if (!meta.referencePickable) return false;
|
|
1607
|
+
const o = overlayByToken[t];
|
|
1608
|
+
const canList = meta.titleColumn != null || o?.listCandidates !== void 0;
|
|
1609
|
+
if (!canList) {
|
|
1610
|
+
errorSink({
|
|
1611
|
+
code: "unlistable_pickable_token",
|
|
1612
|
+
message: `[entityRegistry] "${t}" is reference_pickable in platform.entity_types but has NO title_column and no host candidate source \u2014 set its title_column in the registry or register a listCandidates override.`,
|
|
1613
|
+
context: { token: t }
|
|
1614
|
+
});
|
|
1615
|
+
}
|
|
1616
|
+
return canList;
|
|
1617
|
+
}
|
|
1618
|
+
);
|
|
1619
|
+
}
|
|
1620
|
+
};
|
|
1621
|
+
}
|
|
1622
|
+
|
|
1623
|
+
// src/core/associationsService.ts
|
|
1624
|
+
function toEdge(row) {
|
|
1625
|
+
return {
|
|
1626
|
+
id: row.id,
|
|
1627
|
+
// PG only ever emits 'outgoing' | 'incoming'; widen-then-narrow for TS.
|
|
1628
|
+
direction: row.direction === "incoming" ? "incoming" : "outgoing",
|
|
1629
|
+
otherType: row.other_type,
|
|
1630
|
+
otherId: row.other_id,
|
|
1631
|
+
role: row.role ?? null,
|
|
1632
|
+
label: row.label ?? null,
|
|
1633
|
+
position: row.position ?? null,
|
|
1634
|
+
metadata: row.metadata ?? {},
|
|
1635
|
+
orgId: row.organization_id ?? null,
|
|
1636
|
+
createdAt: row.created_at
|
|
1637
|
+
};
|
|
1638
|
+
}
|
|
1639
|
+
function toTargetEdge(row) {
|
|
1640
|
+
return {
|
|
1641
|
+
id: row.id,
|
|
1642
|
+
targetId: row.target_id,
|
|
1643
|
+
sourceType: row.source_type,
|
|
1644
|
+
sourceId: row.source_id,
|
|
1645
|
+
role: row.role ?? null,
|
|
1646
|
+
label: row.label ?? null,
|
|
1647
|
+
position: row.position ?? null,
|
|
1648
|
+
metadata: row.metadata ?? {},
|
|
1649
|
+
orgId: row.organization_id ?? null,
|
|
1650
|
+
createdAt: row.created_at
|
|
1651
|
+
};
|
|
1652
|
+
}
|
|
1653
|
+
function toSourceEdge(row) {
|
|
1654
|
+
return {
|
|
1655
|
+
id: row.id,
|
|
1656
|
+
sourceId: row.source_id,
|
|
1657
|
+
targetType: row.target_type,
|
|
1658
|
+
targetId: row.target_id,
|
|
1659
|
+
role: row.role ?? null,
|
|
1660
|
+
label: row.label ?? null,
|
|
1661
|
+
position: row.position ?? null,
|
|
1662
|
+
metadata: row.metadata ?? {},
|
|
1663
|
+
orgId: row.organization_id ?? null,
|
|
1664
|
+
createdAt: row.created_at
|
|
1665
|
+
};
|
|
1666
|
+
}
|
|
1667
|
+
function createAssociationsService(deps) {
|
|
1668
|
+
const { dataSource, identity, guards } = deps;
|
|
1669
|
+
const { ok: ok2, err: err2, mapPgError, mapPgErrorPair } = deps.rpc;
|
|
1670
|
+
const { checkToken, checkUuid, checkUuidArray, normalizeEntityToken } = guards;
|
|
1671
|
+
return {
|
|
1672
|
+
/**
|
|
1673
|
+
* All edges where `${type}:${id}` is either source ("outgoing") or target
|
|
1674
|
+
* ("incoming"), org-filtered by RLS inside the RPC. One round-trip.
|
|
1675
|
+
*/
|
|
1676
|
+
async listForEntity(rawType, id) {
|
|
1677
|
+
try {
|
|
1678
|
+
identity.requireUserId();
|
|
1679
|
+
const type = normalizeEntityToken(rawType);
|
|
1680
|
+
const bad = firstError(checkToken("type", type), checkUuid("id", id));
|
|
1681
|
+
if (bad) return { ok: false, error: bad };
|
|
1682
|
+
const { data, error } = await dataSource.rpc("assoc_for_entity", {
|
|
1683
|
+
p_type: type,
|
|
1684
|
+
p_id: id
|
|
1685
|
+
});
|
|
1686
|
+
if (error) return err2(...mapPgErrorPair(error));
|
|
1687
|
+
const rows = Array.isArray(data) ? data : [];
|
|
1688
|
+
return ok2({ edges: rows.map(toEdge) });
|
|
1689
|
+
} catch (e) {
|
|
1690
|
+
return { ok: false, error: mapPgError(e) };
|
|
1691
|
+
}
|
|
1692
|
+
},
|
|
1693
|
+
/**
|
|
1694
|
+
* Viewer-aware file attachments for a conversation. Unlike the generic
|
|
1695
|
+
* org-filtered association reader, this follows the conversation's
|
|
1696
|
+
* canonical viewer grant, so an explicitly shared cross-org conversation
|
|
1697
|
+
* has the same attachment inventory in every client.
|
|
1698
|
+
*/
|
|
1699
|
+
async listConversationFiles(conversationId) {
|
|
1700
|
+
try {
|
|
1701
|
+
identity.requireUserId();
|
|
1702
|
+
const bad = checkUuid("conversationId", conversationId);
|
|
1703
|
+
if (bad) return { ok: false, error: bad };
|
|
1704
|
+
const { data, error } = await dataSource.rpc("conversation_files", {
|
|
1705
|
+
p_conversation_id: conversationId
|
|
1706
|
+
});
|
|
1707
|
+
if (error) return err2(...mapPgErrorPair(error));
|
|
1708
|
+
const rows = Array.isArray(data) ? data : [];
|
|
1709
|
+
return ok2({
|
|
1710
|
+
files: rows.map((row) => ({
|
|
1711
|
+
fileId: row.file_id,
|
|
1712
|
+
label: row.label ?? null,
|
|
1713
|
+
metadata: row.metadata ?? {},
|
|
1714
|
+
createdAt: row.created_at
|
|
1715
|
+
}))
|
|
1716
|
+
});
|
|
1717
|
+
} catch (e) {
|
|
1718
|
+
return { ok: false, error: mapPgError(e) };
|
|
1719
|
+
}
|
|
1720
|
+
},
|
|
1721
|
+
/**
|
|
1722
|
+
* Every edge whose target is one of `targetIds` (all the same
|
|
1723
|
+
* `targetType`), org-filtered by RLS inside the RPC. The batch
|
|
1724
|
+
* counterpart of `listForEntity` — each row carries `targetId` so
|
|
1725
|
+
* callers can group results back by container.
|
|
1726
|
+
*/
|
|
1727
|
+
async listForTargets(rawTargetType, targetIds) {
|
|
1728
|
+
try {
|
|
1729
|
+
identity.requireUserId();
|
|
1730
|
+
const targetType = normalizeEntityToken(rawTargetType);
|
|
1731
|
+
const ids = Array.from(new Set(targetIds));
|
|
1732
|
+
if (ids.length === 0) return ok2({ edges: [] });
|
|
1733
|
+
const bad = firstError(
|
|
1734
|
+
checkToken("targetType", targetType),
|
|
1735
|
+
checkUuidArray("targetIds", ids)
|
|
1736
|
+
);
|
|
1737
|
+
if (bad) return { ok: false, error: bad };
|
|
1738
|
+
const { data, error } = await dataSource.rpc("assoc_for_targets", {
|
|
1739
|
+
p_target_type: targetType,
|
|
1740
|
+
p_target_ids: ids
|
|
1741
|
+
});
|
|
1742
|
+
if (error) return err2(...mapPgErrorPair(error));
|
|
1743
|
+
const rows = Array.isArray(data) ? data : [];
|
|
1744
|
+
return ok2({ edges: rows.map(toTargetEdge) });
|
|
1745
|
+
} catch (e) {
|
|
1746
|
+
return { ok: false, error: mapPgError(e) };
|
|
1747
|
+
}
|
|
1748
|
+
},
|
|
1749
|
+
/**
|
|
1750
|
+
* Like `listForTargets`, but VISIBILITY-AWARE: an edge is returned when
|
|
1751
|
+
* the caller EITHER shares org access to it OR can VIEW its target via
|
|
1752
|
+
* the canonical row-level authorization truth `iam.has_access(target,
|
|
1753
|
+
* 'viewer')` — honoring `visibility='public'`/`'link'`, share grants,
|
|
1754
|
+
* container memberships, and reachability. A strict SUPERSET of
|
|
1755
|
+
* `listForTargets` access; a stranger with no grant on a private target
|
|
1756
|
+
* still gets nothing. Use for reading the members of a SHAREABLE
|
|
1757
|
+
* container; keep plain `listForTargets` for org-scoped tagging reads.
|
|
1758
|
+
*/
|
|
1759
|
+
async listForTargetsVisible(rawTargetType, targetIds) {
|
|
1760
|
+
try {
|
|
1761
|
+
identity.requireUserId();
|
|
1762
|
+
const targetType = normalizeEntityToken(rawTargetType);
|
|
1763
|
+
const ids = Array.from(new Set(targetIds));
|
|
1764
|
+
if (ids.length === 0) return ok2({ edges: [] });
|
|
1765
|
+
const bad = firstError(
|
|
1766
|
+
checkToken("targetType", targetType),
|
|
1767
|
+
checkUuidArray("targetIds", ids)
|
|
1768
|
+
);
|
|
1769
|
+
if (bad) return { ok: false, error: bad };
|
|
1770
|
+
const { data, error } = await dataSource.rpc("assoc_members_visible", {
|
|
1771
|
+
p_target_type: targetType,
|
|
1772
|
+
p_target_ids: ids
|
|
1773
|
+
});
|
|
1774
|
+
if (error) return err2(...mapPgErrorPair(error));
|
|
1775
|
+
const rows = Array.isArray(data) ? data : [];
|
|
1776
|
+
return ok2({ edges: rows.map(toTargetEdge) });
|
|
1777
|
+
} catch (e) {
|
|
1778
|
+
return { ok: false, error: mapPgError(e) };
|
|
1779
|
+
}
|
|
1780
|
+
},
|
|
1781
|
+
/**
|
|
1782
|
+
* Every edge whose source is one of `sourceIds` (all the same
|
|
1783
|
+
* `sourceType`), org-filtered by RLS inside the RPC. Pass `targetType`
|
|
1784
|
+
* to push the target filter into the DB. Each row carries `sourceId` so
|
|
1785
|
+
* callers can group results back by source.
|
|
1786
|
+
*/
|
|
1787
|
+
async listForSources(rawSourceType, sourceIds, rawTargetType) {
|
|
1788
|
+
try {
|
|
1789
|
+
identity.requireUserId();
|
|
1790
|
+
const sourceType = normalizeEntityToken(rawSourceType);
|
|
1791
|
+
const targetType = rawTargetType != null ? normalizeEntityToken(rawTargetType) : void 0;
|
|
1792
|
+
const ids = Array.from(new Set(sourceIds));
|
|
1793
|
+
if (ids.length === 0) return ok2({ edges: [] });
|
|
1794
|
+
const bad = firstError(
|
|
1795
|
+
checkToken("sourceType", sourceType),
|
|
1796
|
+
checkUuidArray("sourceIds", ids),
|
|
1797
|
+
targetType ? checkToken("targetType", targetType) : null
|
|
1798
|
+
);
|
|
1799
|
+
if (bad) return { ok: false, error: bad };
|
|
1800
|
+
const { data, error } = await dataSource.rpc("assoc_for_sources", {
|
|
1801
|
+
p_source_type: sourceType,
|
|
1802
|
+
p_source_ids: ids,
|
|
1803
|
+
...targetType ? { p_target_type: targetType } : {}
|
|
1804
|
+
});
|
|
1805
|
+
if (error) return err2(...mapPgErrorPair(error));
|
|
1806
|
+
const rows = Array.isArray(data) ? data : [];
|
|
1807
|
+
return ok2({ edges: rows.map(toSourceEdge) });
|
|
1808
|
+
} catch (e) {
|
|
1809
|
+
return { ok: false, error: mapPgError(e) };
|
|
1810
|
+
}
|
|
1811
|
+
},
|
|
1812
|
+
/**
|
|
1813
|
+
* Attach `source` → `target`. Idempotent (ON CONFLICT). When `orgId` is
|
|
1814
|
+
* omitted the RPC resolves org from the endpoints; pass `orgId` for
|
|
1815
|
+
* targets that don't carry one. Returns the association id.
|
|
1816
|
+
*/
|
|
1817
|
+
async add(args) {
|
|
1818
|
+
try {
|
|
1819
|
+
identity.requireUserId();
|
|
1820
|
+
const sourceType = normalizeEntityToken(args.sourceType);
|
|
1821
|
+
const targetType = normalizeEntityToken(args.targetType);
|
|
1822
|
+
const bad = firstError(
|
|
1823
|
+
checkToken("sourceType", sourceType),
|
|
1824
|
+
checkUuid("sourceId", args.sourceId),
|
|
1825
|
+
checkToken("targetType", targetType),
|
|
1826
|
+
checkUuid("targetId", args.targetId),
|
|
1827
|
+
args.orgId != null ? checkUuid("orgId", args.orgId) : null
|
|
1828
|
+
);
|
|
1829
|
+
if (bad) return { ok: false, error: bad };
|
|
1830
|
+
if (sourceType === "file" && targetType === "conversation") {
|
|
1831
|
+
if (args.role != null || args.position != null || args.payloadKind != null || args.payload != null) {
|
|
1832
|
+
return err2(
|
|
1833
|
+
"invalid_argument",
|
|
1834
|
+
"File conversation attachments support only the canonical role-less edge"
|
|
1835
|
+
);
|
|
1836
|
+
}
|
|
1837
|
+
const { data: data2, error: error2 } = await dataSource.rpc(
|
|
1838
|
+
"conversation_file_add",
|
|
1839
|
+
{
|
|
1840
|
+
p_conversation_id: args.targetId,
|
|
1841
|
+
p_file_id: args.sourceId,
|
|
1842
|
+
p_label: args.label,
|
|
1843
|
+
p_metadata: args.metadata ?? {},
|
|
1844
|
+
p_replace_metadata: args.replaceMetadata ?? false
|
|
1845
|
+
}
|
|
1846
|
+
);
|
|
1847
|
+
if (error2) return err2(...mapPgErrorPair(error2));
|
|
1848
|
+
if (!data2 || typeof data2 !== "string") {
|
|
1849
|
+
return err2(
|
|
1850
|
+
"internal",
|
|
1851
|
+
"conversation_file_add returned no association id"
|
|
1852
|
+
);
|
|
1853
|
+
}
|
|
1854
|
+
return ok2({ id: data2 });
|
|
1855
|
+
}
|
|
1856
|
+
if (args.replaceMetadata != null) {
|
|
1857
|
+
return err2(
|
|
1858
|
+
"invalid_argument",
|
|
1859
|
+
"replaceMetadata is supported only for file conversation attachments"
|
|
1860
|
+
);
|
|
1861
|
+
}
|
|
1862
|
+
const { data, error } = await dataSource.rpc("assoc_add", {
|
|
1863
|
+
p_source_type: sourceType,
|
|
1864
|
+
p_source_id: args.sourceId,
|
|
1865
|
+
p_target_type: targetType,
|
|
1866
|
+
p_target_id: args.targetId,
|
|
1867
|
+
p_org_id: args.orgId,
|
|
1868
|
+
p_label: args.label,
|
|
1869
|
+
p_metadata: args.metadata ?? {},
|
|
1870
|
+
p_role: args.role,
|
|
1871
|
+
p_position: args.position,
|
|
1872
|
+
p_payload_kind: args.payloadKind,
|
|
1873
|
+
p_payload: args.payload ?? void 0
|
|
1874
|
+
});
|
|
1875
|
+
if (error) return err2(...mapPgErrorPair(error));
|
|
1876
|
+
if (!data || typeof data !== "string") {
|
|
1877
|
+
return err2("internal", "assoc_add returned no association id");
|
|
1878
|
+
}
|
|
1879
|
+
return ok2({ id: data });
|
|
1880
|
+
} catch (e) {
|
|
1881
|
+
return { ok: false, error: mapPgError(e) };
|
|
1882
|
+
}
|
|
1883
|
+
},
|
|
1884
|
+
/**
|
|
1885
|
+
* Detach `source` → `target`. No-op if the edge doesn't exist. When
|
|
1886
|
+
* `role` is omitted only the role-less edge is removed (role IS NOT
|
|
1887
|
+
* DISTINCT FROM null); pass `role` to detach a specific typed edge.
|
|
1888
|
+
*/
|
|
1889
|
+
async remove(args) {
|
|
1890
|
+
try {
|
|
1891
|
+
identity.requireUserId();
|
|
1892
|
+
const sourceType = normalizeEntityToken(args.sourceType);
|
|
1893
|
+
const targetType = normalizeEntityToken(args.targetType);
|
|
1894
|
+
const bad = firstError(
|
|
1895
|
+
checkToken("sourceType", sourceType),
|
|
1896
|
+
checkUuid("sourceId", args.sourceId),
|
|
1897
|
+
checkToken("targetType", targetType),
|
|
1898
|
+
checkUuid("targetId", args.targetId)
|
|
1899
|
+
);
|
|
1900
|
+
if (bad) return { ok: false, error: bad };
|
|
1901
|
+
if (sourceType === "file" && targetType === "conversation") {
|
|
1902
|
+
if (args.role != null) {
|
|
1903
|
+
return err2(
|
|
1904
|
+
"invalid_argument",
|
|
1905
|
+
"File conversation attachments support only the canonical role-less edge"
|
|
1906
|
+
);
|
|
1907
|
+
}
|
|
1908
|
+
const { error: error2 } = await dataSource.rpc("conversation_file_remove", {
|
|
1909
|
+
p_conversation_id: args.targetId,
|
|
1910
|
+
p_file_id: args.sourceId
|
|
1911
|
+
});
|
|
1912
|
+
if (error2) return err2(...mapPgErrorPair(error2));
|
|
1913
|
+
return ok2(null);
|
|
1914
|
+
}
|
|
1915
|
+
const { error } = await dataSource.rpc("assoc_remove", {
|
|
1916
|
+
p_source_type: sourceType,
|
|
1917
|
+
p_source_id: args.sourceId,
|
|
1918
|
+
p_target_type: targetType,
|
|
1919
|
+
p_target_id: args.targetId,
|
|
1920
|
+
p_role: args.role
|
|
1921
|
+
});
|
|
1922
|
+
if (error) return err2(...mapPgErrorPair(error));
|
|
1923
|
+
return ok2(null);
|
|
1924
|
+
} catch (e) {
|
|
1925
|
+
return { ok: false, error: mapPgError(e) };
|
|
1926
|
+
}
|
|
1927
|
+
},
|
|
1928
|
+
/**
|
|
1929
|
+
* Make the source's edges of `targetType` exactly equal `targetIds`
|
|
1930
|
+
* (adds missing, removes extras) in one transaction.
|
|
1931
|
+
*/
|
|
1932
|
+
async setTargets(args) {
|
|
1933
|
+
try {
|
|
1934
|
+
identity.requireUserId();
|
|
1935
|
+
const sourceType = normalizeEntityToken(args.sourceType);
|
|
1936
|
+
const targetType = normalizeEntityToken(args.targetType);
|
|
1937
|
+
const target = Array.from(new Set(args.targetIds));
|
|
1938
|
+
const bad = firstError(
|
|
1939
|
+
checkToken("sourceType", sourceType),
|
|
1940
|
+
checkUuid("sourceId", args.sourceId),
|
|
1941
|
+
checkToken("targetType", targetType),
|
|
1942
|
+
checkUuidArray("targetIds", target),
|
|
1943
|
+
args.orgId != null ? checkUuid("orgId", args.orgId) : null
|
|
1944
|
+
);
|
|
1945
|
+
if (bad) return { ok: false, error: bad };
|
|
1946
|
+
const { error } = await dataSource.rpc("assoc_set_targets", {
|
|
1947
|
+
p_source_type: sourceType,
|
|
1948
|
+
p_source_id: args.sourceId,
|
|
1949
|
+
p_target_type: targetType,
|
|
1950
|
+
p_target_ids: target,
|
|
1951
|
+
p_org_id: args.orgId,
|
|
1952
|
+
p_role: args.role
|
|
1953
|
+
});
|
|
1954
|
+
if (error) return err2(...mapPgErrorPair(error));
|
|
1955
|
+
return ok2(null);
|
|
1956
|
+
} catch (e) {
|
|
1957
|
+
return { ok: false, error: mapPgError(e) };
|
|
1958
|
+
}
|
|
1959
|
+
},
|
|
1960
|
+
/**
|
|
1961
|
+
* Permanently attach a resource to an agent. The dedicated RPC enforces
|
|
1962
|
+
* the stronger authoring contract this containment edge requires: editor
|
|
1963
|
+
* access to both the agent and source resource. The stored edge is still
|
|
1964
|
+
* the canonical platform association (`role=agent_resource`).
|
|
1965
|
+
*/
|
|
1966
|
+
async addAgentResource(args) {
|
|
1967
|
+
try {
|
|
1968
|
+
identity.requireUserId();
|
|
1969
|
+
const sourceType = normalizeEntityToken(args.sourceType);
|
|
1970
|
+
const bad = firstError(
|
|
1971
|
+
checkUuid("agentId", args.agentId),
|
|
1972
|
+
checkToken("sourceType", sourceType),
|
|
1973
|
+
checkUuid("sourceId", args.sourceId)
|
|
1974
|
+
);
|
|
1975
|
+
if (bad) return { ok: false, error: bad };
|
|
1976
|
+
const { data, error } = await dataSource.rpc("agent_resource_add", {
|
|
1977
|
+
p_agent_id: args.agentId,
|
|
1978
|
+
p_source_type: sourceType,
|
|
1979
|
+
p_source_id: args.sourceId,
|
|
1980
|
+
p_label: args.label,
|
|
1981
|
+
p_metadata: args.metadata ?? {}
|
|
1982
|
+
});
|
|
1983
|
+
if (error) return err2(...mapPgErrorPair(error));
|
|
1984
|
+
if (!data || typeof data !== "string") {
|
|
1985
|
+
return err2("internal", "agent_resource_add returned no association id");
|
|
1986
|
+
}
|
|
1987
|
+
return ok2({ id: data });
|
|
1988
|
+
} catch (e) {
|
|
1989
|
+
return { ok: false, error: mapPgError(e) };
|
|
1990
|
+
}
|
|
1991
|
+
},
|
|
1992
|
+
/** Remove one permanent Agent Resource edge. */
|
|
1993
|
+
async removeAgentResource(args) {
|
|
1994
|
+
try {
|
|
1995
|
+
identity.requireUserId();
|
|
1996
|
+
const sourceType = normalizeEntityToken(args.sourceType);
|
|
1997
|
+
const bad = firstError(
|
|
1998
|
+
checkUuid("agentId", args.agentId),
|
|
1999
|
+
checkToken("sourceType", sourceType),
|
|
2000
|
+
checkUuid("sourceId", args.sourceId)
|
|
2001
|
+
);
|
|
2002
|
+
if (bad) return { ok: false, error: bad };
|
|
2003
|
+
const { error } = await dataSource.rpc("agent_resource_remove", {
|
|
2004
|
+
p_agent_id: args.agentId,
|
|
2005
|
+
p_source_type: sourceType,
|
|
2006
|
+
p_source_id: args.sourceId
|
|
2007
|
+
});
|
|
2008
|
+
if (error) return err2(...mapPgErrorPair(error));
|
|
2009
|
+
return ok2(null);
|
|
2010
|
+
} catch (e) {
|
|
2011
|
+
return { ok: false, error: mapPgError(e) };
|
|
2012
|
+
}
|
|
2013
|
+
},
|
|
2014
|
+
/**
|
|
2015
|
+
* Remove every edge where `${type}:${id}` is the source OR the target,
|
|
2016
|
+
* org-filtered inside the RPC. The deletion counterpart of
|
|
2017
|
+
* `listForEntity` — call it when an entity is deleted so no edge is left
|
|
2018
|
+
* orphaned.
|
|
2019
|
+
*/
|
|
2020
|
+
async removeForEntity(rawType, id) {
|
|
2021
|
+
try {
|
|
2022
|
+
identity.requireUserId();
|
|
2023
|
+
const type = normalizeEntityToken(rawType);
|
|
2024
|
+
const bad = firstError(checkToken("type", type), checkUuid("id", id));
|
|
2025
|
+
if (bad) return { ok: false, error: bad };
|
|
2026
|
+
const { error } = await dataSource.rpc("assoc_remove_for_entity", {
|
|
2027
|
+
p_type: type,
|
|
2028
|
+
p_id: id
|
|
2029
|
+
});
|
|
2030
|
+
if (error) return err2(...mapPgErrorPair(error));
|
|
2031
|
+
return ok2(null);
|
|
2032
|
+
} catch (e) {
|
|
2033
|
+
return { ok: false, error: mapPgError(e) };
|
|
2034
|
+
}
|
|
2035
|
+
}
|
|
2036
|
+
};
|
|
2037
|
+
}
|
|
2038
|
+
|
|
2039
|
+
// src/core/categoriesService.ts
|
|
2040
|
+
function toCategory(row) {
|
|
2041
|
+
return {
|
|
2042
|
+
id: row.id,
|
|
2043
|
+
orgId: row.organization_id ?? null,
|
|
2044
|
+
dimension: row.dimension,
|
|
2045
|
+
name: row.name,
|
|
2046
|
+
slug: row.slug ?? null,
|
|
2047
|
+
parentId: row.parent_id ?? null,
|
|
2048
|
+
isSystem: !!row.is_system,
|
|
2049
|
+
color: row.color ?? null,
|
|
2050
|
+
icon: row.icon ?? null,
|
|
2051
|
+
position: row.position ?? null,
|
|
2052
|
+
metadata: row.metadata && typeof row.metadata === "object" && !Array.isArray(row.metadata) ? row.metadata : null
|
|
2053
|
+
};
|
|
2054
|
+
}
|
|
2055
|
+
function createCategoriesService(deps) {
|
|
2056
|
+
const { dataSource, identity } = deps;
|
|
2057
|
+
const { ok: ok2, err: err2, mapPgError, mapPgErrorPair } = deps.rpc;
|
|
2058
|
+
return {
|
|
2059
|
+
/**
|
|
2060
|
+
* Every category visible to the caller (system + their orgs),
|
|
2061
|
+
* org-filtered by `iam.has_org_access` inside the RPC. Pass `dimension`
|
|
2062
|
+
* to scope to one facet (the common case). Ordered by dimension, then
|
|
2063
|
+
* `position`, then name.
|
|
2064
|
+
*/
|
|
2065
|
+
async list(dimension) {
|
|
2066
|
+
try {
|
|
2067
|
+
identity.requireUserId();
|
|
2068
|
+
const { data, error } = await dataSource.rpc("cat_list", {
|
|
2069
|
+
p_dimension: dimension
|
|
2070
|
+
});
|
|
2071
|
+
if (error) return err2(...mapPgErrorPair(error));
|
|
2072
|
+
const rows = Array.isArray(data) ? data : [];
|
|
2073
|
+
return ok2({ categories: rows.map(toCategory) });
|
|
2074
|
+
} catch (e) {
|
|
2075
|
+
return { ok: false, error: mapPgError(e) };
|
|
2076
|
+
}
|
|
2077
|
+
},
|
|
2078
|
+
/**
|
|
2079
|
+
* Create an org-owned category in `dimension`. `orgId` is REQUIRED and
|
|
2080
|
+
* the RPC rejects callers without access to it (`cat_create` raises
|
|
2081
|
+
* 42501). The created row is always `is_system = false`; seeding
|
|
2082
|
+
* system/global categories is a migration concern, never a client write.
|
|
2083
|
+
*/
|
|
2084
|
+
async create(args) {
|
|
2085
|
+
try {
|
|
2086
|
+
identity.requireUserId();
|
|
2087
|
+
const { data, error } = await dataSource.rpc("cat_create", {
|
|
2088
|
+
p_dimension: args.dimension,
|
|
2089
|
+
p_name: args.name,
|
|
2090
|
+
p_org_id: args.orgId,
|
|
2091
|
+
p_parent_id: args.parentId ?? void 0,
|
|
2092
|
+
p_color: args.color ?? void 0,
|
|
2093
|
+
p_icon: args.icon ?? void 0,
|
|
2094
|
+
p_slug: args.slug ?? void 0
|
|
2095
|
+
});
|
|
2096
|
+
if (error) return err2(...mapPgErrorPair(error));
|
|
2097
|
+
if (!data || typeof data !== "string") {
|
|
2098
|
+
return err2("internal", "cat_create returned no category id");
|
|
2099
|
+
}
|
|
2100
|
+
return ok2({ id: data });
|
|
2101
|
+
} catch (e) {
|
|
2102
|
+
return { ok: false, error: mapPgError(e) };
|
|
2103
|
+
}
|
|
2104
|
+
},
|
|
2105
|
+
/**
|
|
2106
|
+
* Replace the editable scalar fields of one category. The caller
|
|
2107
|
+
* supplies the complete desired state so nullable fields can be cleared
|
|
2108
|
+
* without a JSON patch or a second interpretation of `undefined`.
|
|
2109
|
+
*/
|
|
2110
|
+
async update(args) {
|
|
2111
|
+
try {
|
|
2112
|
+
identity.requireUserId();
|
|
2113
|
+
const { data, error } = await dataSource.rpc("cat_update", {
|
|
2114
|
+
p_category_id: args.id,
|
|
2115
|
+
p_name: args.name,
|
|
2116
|
+
p_slug: args.slug ?? void 0,
|
|
2117
|
+
p_color: args.color ?? void 0,
|
|
2118
|
+
p_icon: args.icon ?? void 0,
|
|
2119
|
+
p_position: args.position ?? void 0
|
|
2120
|
+
});
|
|
2121
|
+
if (error) return err2(...mapPgErrorPair(error));
|
|
2122
|
+
if (!data || typeof data !== "string") {
|
|
2123
|
+
return err2("internal", "cat_update returned no category id");
|
|
2124
|
+
}
|
|
2125
|
+
return ok2({ id: data });
|
|
2126
|
+
} catch (e) {
|
|
2127
|
+
return { ok: false, error: mapPgError(e) };
|
|
2128
|
+
}
|
|
2129
|
+
},
|
|
2130
|
+
/** Move a category to the root or directly beneath one root category. */
|
|
2131
|
+
async reparent(args) {
|
|
2132
|
+
try {
|
|
2133
|
+
identity.requireUserId();
|
|
2134
|
+
const { data, error } = await dataSource.rpc("cat_reparent", {
|
|
2135
|
+
p_category_id: args.id,
|
|
2136
|
+
p_parent_id: args.parentId ?? void 0
|
|
2137
|
+
});
|
|
2138
|
+
if (error) return err2(...mapPgErrorPair(error));
|
|
2139
|
+
if (!data || typeof data !== "string") {
|
|
2140
|
+
return err2("internal", "cat_reparent returned no category id");
|
|
2141
|
+
}
|
|
2142
|
+
return ok2({ id: data });
|
|
2143
|
+
} catch (e) {
|
|
2144
|
+
return { ok: false, error: mapPgError(e) };
|
|
2145
|
+
}
|
|
2146
|
+
},
|
|
2147
|
+
/** Soft-delete a leaf category. Parents with live children are rejected. */
|
|
2148
|
+
async delete(id) {
|
|
2149
|
+
try {
|
|
2150
|
+
identity.requireUserId();
|
|
2151
|
+
const { data, error } = await dataSource.rpc("cat_delete", {
|
|
2152
|
+
p_category_id: id
|
|
2153
|
+
});
|
|
2154
|
+
if (error) return err2(...mapPgErrorPair(error));
|
|
2155
|
+
if (!data || typeof data !== "string") {
|
|
2156
|
+
return err2("internal", "cat_delete returned no category id");
|
|
2157
|
+
}
|
|
2158
|
+
return ok2({ id: data });
|
|
2159
|
+
} catch (e) {
|
|
2160
|
+
return { ok: false, error: mapPgError(e) };
|
|
2161
|
+
}
|
|
2162
|
+
}
|
|
2163
|
+
};
|
|
2164
|
+
}
|
|
2165
|
+
|
|
2166
|
+
// src/core/favoritesService.ts
|
|
2167
|
+
function toState(row) {
|
|
2168
|
+
return {
|
|
2169
|
+
entityType: row.entity_type,
|
|
2170
|
+
entityId: row.entity_id,
|
|
2171
|
+
isFavorite: row.is_favorite,
|
|
2172
|
+
isPinned: row.is_pinned,
|
|
2173
|
+
isHidden: row.is_hidden,
|
|
2174
|
+
lastViewedAt: row.last_viewed_at ?? null
|
|
2175
|
+
};
|
|
2176
|
+
}
|
|
2177
|
+
function createFavoritesService(deps) {
|
|
2178
|
+
const { dataSource, identity } = deps;
|
|
2179
|
+
const { ok: ok2, err: err2, mapPgError, mapPgErrorPair } = deps.rpc;
|
|
2180
|
+
const api = {
|
|
2181
|
+
/**
|
|
2182
|
+
* Upsert the caller's state row for one entity. An OMITTED flag is left
|
|
2183
|
+
* UNCHANGED (the RPC `coalesce`s null → existing), so you can flip just
|
|
2184
|
+
* `isFavorite` without clobbering `isPinned`/`isHidden`. Idempotent.
|
|
2185
|
+
*/
|
|
2186
|
+
async setState(args) {
|
|
2187
|
+
try {
|
|
2188
|
+
identity.requireUserId();
|
|
2189
|
+
const { error } = await dataSource.rpc("ues_set", {
|
|
2190
|
+
p_entity_type: args.entityType,
|
|
2191
|
+
p_entity_id: args.entityId,
|
|
2192
|
+
p_is_favorite: args.isFavorite,
|
|
2193
|
+
p_is_pinned: args.isPinned,
|
|
2194
|
+
p_is_hidden: args.isHidden
|
|
2195
|
+
});
|
|
2196
|
+
if (error) return err2(...mapPgErrorPair(error));
|
|
2197
|
+
return ok2(null);
|
|
2198
|
+
} catch (e) {
|
|
2199
|
+
return { ok: false, error: mapPgError(e) };
|
|
2200
|
+
}
|
|
2201
|
+
},
|
|
2202
|
+
/** Convenience: flip ONLY the favorite flag (leaves pinned/hidden intact). */
|
|
2203
|
+
async setFavorite(entityType, entityId, isFavorite) {
|
|
2204
|
+
return api.setState({ entityType, entityId, isFavorite });
|
|
2205
|
+
},
|
|
2206
|
+
/** Convenience: flip ONLY the pinned flag. */
|
|
2207
|
+
async setPinned(entityType, entityId, isPinned) {
|
|
2208
|
+
return api.setState({ entityType, entityId, isPinned });
|
|
2209
|
+
},
|
|
2210
|
+
/** Convenience: flip ONLY the hidden flag. */
|
|
2211
|
+
async setHidden(entityType, entityId, isHidden) {
|
|
2212
|
+
return api.setState({ entityType, entityId, isHidden });
|
|
2213
|
+
},
|
|
2214
|
+
/**
|
|
2215
|
+
* Every state row the caller owns, optionally filtered to a single
|
|
2216
|
+
* dimension (`"favorite"` | `"pinned"` | `"hidden"`). Pass nothing for all.
|
|
2217
|
+
*/
|
|
2218
|
+
async list(kind) {
|
|
2219
|
+
try {
|
|
2220
|
+
identity.requireUserId();
|
|
2221
|
+
const { data, error } = await dataSource.rpc("ues_list", {
|
|
2222
|
+
p_kind: kind
|
|
2223
|
+
});
|
|
2224
|
+
if (error) return err2(...mapPgErrorPair(error));
|
|
2225
|
+
const rows = Array.isArray(data) ? data : [];
|
|
2226
|
+
return ok2({ items: rows.map(toState) });
|
|
2227
|
+
} catch (e) {
|
|
2228
|
+
return { ok: false, error: mapPgError(e) };
|
|
2229
|
+
}
|
|
2230
|
+
},
|
|
2231
|
+
/**
|
|
2232
|
+
* Bulk-fetch the caller's flags for `entityIds` of one `entityType` —
|
|
2233
|
+
* the read a list view uses to paint its star column in one round-trip.
|
|
2234
|
+
* Only entities that HAVE a state row come back; absent ids mean "no
|
|
2235
|
+
* state yet".
|
|
2236
|
+
*/
|
|
2237
|
+
async getBulk(entityType, entityIds) {
|
|
2238
|
+
try {
|
|
2239
|
+
identity.requireUserId();
|
|
2240
|
+
const ids = Array.from(new Set(entityIds));
|
|
2241
|
+
const { data, error } = await dataSource.rpc("ues_get_bulk", {
|
|
2242
|
+
p_entity_type: entityType,
|
|
2243
|
+
p_entity_ids: ids
|
|
2244
|
+
});
|
|
2245
|
+
if (error) return err2(...mapPgErrorPair(error));
|
|
2246
|
+
const rows = Array.isArray(data) ? data : [];
|
|
2247
|
+
return ok2({
|
|
2248
|
+
items: rows.map((r) => ({
|
|
2249
|
+
entityType,
|
|
2250
|
+
entityId: r.entity_id,
|
|
2251
|
+
isFavorite: r.is_favorite,
|
|
2252
|
+
isPinned: r.is_pinned,
|
|
2253
|
+
isHidden: r.is_hidden,
|
|
2254
|
+
lastViewedAt: r.last_viewed_at ?? null
|
|
2255
|
+
}))
|
|
2256
|
+
});
|
|
2257
|
+
} catch (e) {
|
|
2258
|
+
return { ok: false, error: mapPgError(e) };
|
|
2259
|
+
}
|
|
2260
|
+
},
|
|
2261
|
+
/** Stamp `last_viewed_at = now()` (creates the row if absent). */
|
|
2262
|
+
async touch(entityType, entityId) {
|
|
2263
|
+
try {
|
|
2264
|
+
identity.requireUserId();
|
|
2265
|
+
const { error } = await dataSource.rpc("ues_touch", {
|
|
2266
|
+
p_entity_type: entityType,
|
|
2267
|
+
p_entity_id: entityId
|
|
2268
|
+
});
|
|
2269
|
+
if (error) return err2(...mapPgErrorPair(error));
|
|
2270
|
+
return ok2(null);
|
|
2271
|
+
} catch (e) {
|
|
2272
|
+
return { ok: false, error: mapPgError(e) };
|
|
2273
|
+
}
|
|
2274
|
+
}
|
|
2275
|
+
};
|
|
2276
|
+
return api;
|
|
2277
|
+
}
|
|
2278
|
+
|
|
2279
|
+
// src/core/candidates.ts
|
|
2280
|
+
function createCandidatesService(deps) {
|
|
2281
|
+
const { dataSource, registry, errorSink } = deps;
|
|
2282
|
+
const callReferenceSearchCandidates = async (args) => {
|
|
2283
|
+
const { data, error } = await dataSource.rpc(
|
|
2284
|
+
"reference_search_candidates",
|
|
2285
|
+
args
|
|
2286
|
+
);
|
|
2287
|
+
if (error) return { data: null, error };
|
|
2288
|
+
return {
|
|
2289
|
+
data: Array.isArray(data) ? data : [],
|
|
2290
|
+
error: null
|
|
2291
|
+
};
|
|
2292
|
+
};
|
|
2293
|
+
async function listAssociationCandidates(args) {
|
|
2294
|
+
const { token, search, limit = 100 } = args;
|
|
2295
|
+
const info = registry.getEntityInfo(token);
|
|
2296
|
+
if (info.listCandidates) {
|
|
2297
|
+
try {
|
|
2298
|
+
return await info.listCandidates({
|
|
2299
|
+
...search !== void 0 ? { search } : {},
|
|
2300
|
+
limit
|
|
2301
|
+
});
|
|
2302
|
+
} catch (e) {
|
|
2303
|
+
const msg = e instanceof Error ? e.message : "Failed to load candidates";
|
|
2304
|
+
errorSink({
|
|
2305
|
+
code: "candidate_override_failed",
|
|
2306
|
+
message: `[listAssociationCandidates] override failed for "${token}": ${msg}`,
|
|
2307
|
+
context: { token, detail: e }
|
|
2308
|
+
});
|
|
2309
|
+
return { ok: false, error: msg };
|
|
2310
|
+
}
|
|
2311
|
+
}
|
|
2312
|
+
if (!info.canListCandidates || !info.titleColumn) {
|
|
2313
|
+
const msg = `Entity "${token}" has no title column \u2014 set one in platform.entity_types (or register a listCandidates override) before listing candidates`;
|
|
2314
|
+
errorSink({
|
|
2315
|
+
code: "unlistable_token",
|
|
2316
|
+
message: `[listAssociationCandidates] ${msg}`,
|
|
2317
|
+
context: { token }
|
|
2318
|
+
});
|
|
2319
|
+
return { ok: false, error: msg };
|
|
2320
|
+
}
|
|
2321
|
+
const trimmedSearch = search?.trim() || void 0;
|
|
2322
|
+
const { data, error } = await callReferenceSearchCandidates({
|
|
2323
|
+
p_token: token,
|
|
2324
|
+
...trimmedSearch !== void 0 ? { p_search: trimmedSearch } : {},
|
|
2325
|
+
p_limit: limit
|
|
2326
|
+
});
|
|
2327
|
+
if (error) {
|
|
2328
|
+
errorSink({
|
|
2329
|
+
code: "candidate_rpc_failed",
|
|
2330
|
+
message: `[listAssociationCandidates] candidate RPC failed for "${token}": ${error.message}`,
|
|
2331
|
+
context: { token, detail: error }
|
|
2332
|
+
});
|
|
2333
|
+
return { ok: false, error: error.message };
|
|
2334
|
+
}
|
|
2335
|
+
return {
|
|
2336
|
+
ok: true,
|
|
2337
|
+
data: data.map((row) => ({
|
|
2338
|
+
id: row.id,
|
|
2339
|
+
title: row.title?.trim() || "Untitled"
|
|
2340
|
+
}))
|
|
2341
|
+
};
|
|
2342
|
+
}
|
|
2343
|
+
async function searchCandidatesAcrossTokens(args) {
|
|
2344
|
+
const { tokens, search, ownerId, perTokenLimit = 5, concurrency = 6 } = args;
|
|
2345
|
+
const list = tokens ?? registry.curatedTokens();
|
|
2346
|
+
if (list.length === 0) return [];
|
|
2347
|
+
const out = [];
|
|
2348
|
+
let cursor = 0;
|
|
2349
|
+
async function worker() {
|
|
2350
|
+
while (cursor < list.length) {
|
|
2351
|
+
const token = list[cursor];
|
|
2352
|
+
cursor += 1;
|
|
2353
|
+
if (!token) continue;
|
|
2354
|
+
const res = await listAssociationCandidates({
|
|
2355
|
+
token,
|
|
2356
|
+
ownerId: ownerId ?? null,
|
|
2357
|
+
search,
|
|
2358
|
+
limit: perTokenLimit
|
|
2359
|
+
});
|
|
2360
|
+
if (res.ok) {
|
|
2361
|
+
for (const c of res.data) out.push({ ...c, token });
|
|
2362
|
+
}
|
|
2363
|
+
}
|
|
2364
|
+
}
|
|
2365
|
+
await Promise.all(
|
|
2366
|
+
Array.from({ length: Math.min(concurrency, list.length) }, worker)
|
|
2367
|
+
);
|
|
2368
|
+
const tokenOrder = new Map(list.map((t, i) => [t, i]));
|
|
2369
|
+
out.sort((a, b) => {
|
|
2370
|
+
const ta = tokenOrder.get(a.token) ?? 0;
|
|
2371
|
+
const tb = tokenOrder.get(b.token) ?? 0;
|
|
2372
|
+
if (ta !== tb) return ta - tb;
|
|
2373
|
+
return a.title.localeCompare(b.title);
|
|
2374
|
+
});
|
|
2375
|
+
return out;
|
|
2376
|
+
}
|
|
2377
|
+
return {
|
|
2378
|
+
callReferenceSearchCandidates,
|
|
2379
|
+
listAssociationCandidates,
|
|
2380
|
+
searchCandidatesAcrossTokens
|
|
2381
|
+
};
|
|
2382
|
+
}
|
|
2383
|
+
|
|
2384
|
+
// src/core/titles.ts
|
|
2385
|
+
var CHUNK = 200;
|
|
2386
|
+
function entityTitleCacheKey(token, id) {
|
|
2387
|
+
return `${token}:${id}`;
|
|
2388
|
+
}
|
|
2389
|
+
function createTitlesService(deps, candidates) {
|
|
2390
|
+
const { registry, errorSink } = deps;
|
|
2391
|
+
const titleCache = /* @__PURE__ */ new Map();
|
|
2392
|
+
return {
|
|
2393
|
+
get(token, id) {
|
|
2394
|
+
return titleCache.get(entityTitleCacheKey(token, id)) ?? null;
|
|
2395
|
+
},
|
|
2396
|
+
prime(token, id, title) {
|
|
2397
|
+
const trimmed = title.trim();
|
|
2398
|
+
if (trimmed) titleCache.set(entityTitleCacheKey(token, id), trimmed);
|
|
2399
|
+
},
|
|
2400
|
+
fallback(token) {
|
|
2401
|
+
const info = registry.tryGetEntityInfo(token);
|
|
2402
|
+
return `Untitled ${info?.label ?? token}`;
|
|
2403
|
+
},
|
|
2404
|
+
async fetch(token, ids) {
|
|
2405
|
+
const out = /* @__PURE__ */ new Map();
|
|
2406
|
+
if (ids.length === 0) return out;
|
|
2407
|
+
const info = registry.tryGetEntityInfo(token);
|
|
2408
|
+
const missing = [];
|
|
2409
|
+
for (const id of ids) {
|
|
2410
|
+
const cached = titleCache.get(entityTitleCacheKey(token, id));
|
|
2411
|
+
if (cached !== void 0) out.set(id, cached);
|
|
2412
|
+
else missing.push(id);
|
|
2413
|
+
}
|
|
2414
|
+
if (missing.length === 0 || !info?.titleColumn) return out;
|
|
2415
|
+
for (let index = 0; index < missing.length; index += CHUNK) {
|
|
2416
|
+
const chunk = missing.slice(index, index + CHUNK);
|
|
2417
|
+
const { data, error } = await candidates.callReferenceSearchCandidates({
|
|
2418
|
+
p_token: token,
|
|
2419
|
+
p_ids: chunk,
|
|
2420
|
+
p_limit: chunk.length
|
|
2421
|
+
});
|
|
2422
|
+
if (error) {
|
|
2423
|
+
errorSink({
|
|
2424
|
+
code: "title_rpc_failed",
|
|
2425
|
+
message: `[fetchEntityTitles] candidate RPC failed for "${token}": ${error.message}`,
|
|
2426
|
+
context: {
|
|
2427
|
+
token,
|
|
2428
|
+
chunkStart: index,
|
|
2429
|
+
chunkSize: chunk.length,
|
|
2430
|
+
detail: error
|
|
2431
|
+
}
|
|
2432
|
+
});
|
|
2433
|
+
continue;
|
|
2434
|
+
}
|
|
2435
|
+
for (const row of data) {
|
|
2436
|
+
const title = row.title?.trim();
|
|
2437
|
+
if (!title) continue;
|
|
2438
|
+
titleCache.set(entityTitleCacheKey(token, row.id), title);
|
|
2439
|
+
out.set(row.id, title);
|
|
2440
|
+
}
|
|
2441
|
+
}
|
|
2442
|
+
return out;
|
|
2443
|
+
}
|
|
2444
|
+
};
|
|
2445
|
+
}
|
|
2446
|
+
|
|
2447
|
+
// src/core/entityRows.ts
|
|
2448
|
+
function createEntityRowsService(deps, titles) {
|
|
2449
|
+
const { dataSource, identity, registry, errorSink } = deps;
|
|
2450
|
+
function tableFor(token, schema, table) {
|
|
2451
|
+
if (schema && schema !== "public") {
|
|
2452
|
+
if (!dataSource.schema) {
|
|
2453
|
+
const error = `dataSource has no schema() capability \u2014 entity-row writes for "${token}" (${schema}.${table}) need a table-capable dataSource (a real supabase-js client)`;
|
|
2454
|
+
errorSink({
|
|
2455
|
+
code: "datasource_missing_table_capability",
|
|
2456
|
+
message: `[entityRows] ${error}`,
|
|
2457
|
+
context: { token, schema, table }
|
|
2458
|
+
});
|
|
2459
|
+
return { ok: false, error };
|
|
2460
|
+
}
|
|
2461
|
+
return { ok: true, query: dataSource.schema(schema).from(table) };
|
|
2462
|
+
}
|
|
2463
|
+
if (!dataSource.from) {
|
|
2464
|
+
const error = `dataSource has no from() capability \u2014 entity-row writes for "${token}" need a table-capable dataSource (a real supabase-js client)`;
|
|
2465
|
+
errorSink({
|
|
2466
|
+
code: "datasource_missing_table_capability",
|
|
2467
|
+
message: `[entityRows] ${error}`,
|
|
2468
|
+
context: { token, schema, table }
|
|
2469
|
+
});
|
|
2470
|
+
return { ok: false, error };
|
|
2471
|
+
}
|
|
2472
|
+
return { ok: true, query: dataSource.from(table) };
|
|
2473
|
+
}
|
|
2474
|
+
function requireTitleColumn(token, op) {
|
|
2475
|
+
const info = registry.getEntityInfo(token);
|
|
2476
|
+
if (!info.titleColumn) {
|
|
2477
|
+
const error = `Entity "${token}" has no title_column in platform.entity_types \u2014 add one in the registry before ${op}`;
|
|
2478
|
+
errorSink({
|
|
2479
|
+
code: "missing_title_column",
|
|
2480
|
+
message: `[entityRows] ${error}`,
|
|
2481
|
+
context: { token }
|
|
2482
|
+
});
|
|
2483
|
+
return { ok: false, error };
|
|
2484
|
+
}
|
|
2485
|
+
return { ok: true, titleColumn: info.titleColumn };
|
|
2486
|
+
}
|
|
2487
|
+
return {
|
|
2488
|
+
/**
|
|
2489
|
+
* Insert one row of `token`'s backing table named `title`, owned by the
|
|
2490
|
+
* current user (when the table has an owner column). Returns the new
|
|
2491
|
+
* row's id + title. The caller wires associations afterwards — this
|
|
2492
|
+
* layer never writes edges.
|
|
2493
|
+
*/
|
|
2494
|
+
async createEntityRow(token, args) {
|
|
2495
|
+
const gate = requireTitleColumn(token, "creating rows");
|
|
2496
|
+
if (!gate.ok) return gate;
|
|
2497
|
+
const info = registry.getEntityInfo(token);
|
|
2498
|
+
const title = args.title.trim();
|
|
2499
|
+
if (!title) return { ok: false, error: "Name is required" };
|
|
2500
|
+
try {
|
|
2501
|
+
const userId = identity.requireUserId();
|
|
2502
|
+
const table = tableFor(token, info.schema, info.table);
|
|
2503
|
+
if (!table.ok) return table;
|
|
2504
|
+
const row = {
|
|
2505
|
+
[gate.titleColumn]: title,
|
|
2506
|
+
...info.ownerColumn ? { [info.ownerColumn]: userId } : {},
|
|
2507
|
+
...info.orgColumn && args.orgId ? { [info.orgColumn]: args.orgId } : {},
|
|
2508
|
+
...args.extraColumns ?? {}
|
|
2509
|
+
};
|
|
2510
|
+
const { data, error } = await table.query.insert(row).select("id").single();
|
|
2511
|
+
if (error) {
|
|
2512
|
+
errorSink({
|
|
2513
|
+
code: "entity_row_insert_failed",
|
|
2514
|
+
message: `[createEntityRow] insert failed for "${token}": ${error.message}`,
|
|
2515
|
+
context: { token, detail: error }
|
|
2516
|
+
});
|
|
2517
|
+
return { ok: false, error: error.message };
|
|
2518
|
+
}
|
|
2519
|
+
const id = String(data.id);
|
|
2520
|
+
titles.prime(token, id, title);
|
|
2521
|
+
return { ok: true, data: { id, title } };
|
|
2522
|
+
} catch (e) {
|
|
2523
|
+
const msg = e instanceof Error ? e.message : "Failed to create";
|
|
2524
|
+
errorSink({
|
|
2525
|
+
code: "entity_row_insert_failed",
|
|
2526
|
+
message: `[createEntityRow] exception for "${token}": ${msg}`,
|
|
2527
|
+
context: { token, detail: e }
|
|
2528
|
+
});
|
|
2529
|
+
return { ok: false, error: msg };
|
|
2530
|
+
}
|
|
2531
|
+
},
|
|
2532
|
+
/** Update the registry `titleColumn` of one row of `token`'s table. */
|
|
2533
|
+
async renameEntityRow(token, id, title) {
|
|
2534
|
+
const gate = requireTitleColumn(token, "renaming rows");
|
|
2535
|
+
if (!gate.ok) return gate;
|
|
2536
|
+
const info = registry.getEntityInfo(token);
|
|
2537
|
+
const trimmed = title.trim();
|
|
2538
|
+
if (!trimmed) return { ok: false, error: "Name is required" };
|
|
2539
|
+
try {
|
|
2540
|
+
const table = tableFor(token, info.schema, info.table);
|
|
2541
|
+
if (!table.ok) return table;
|
|
2542
|
+
const { error } = await table.query.update({ [gate.titleColumn]: trimmed }).eq("id", id);
|
|
2543
|
+
if (error) {
|
|
2544
|
+
errorSink({
|
|
2545
|
+
code: "entity_row_update_failed",
|
|
2546
|
+
message: `[renameEntityRow] update failed for "${token}": ${error.message}`,
|
|
2547
|
+
context: { token, id, detail: error }
|
|
2548
|
+
});
|
|
2549
|
+
return { ok: false, error: error.message };
|
|
2550
|
+
}
|
|
2551
|
+
titles.prime(token, id, trimmed);
|
|
2552
|
+
return { ok: true };
|
|
2553
|
+
} catch (e) {
|
|
2554
|
+
const msg = e instanceof Error ? e.message : "Failed to rename";
|
|
2555
|
+
errorSink({
|
|
2556
|
+
code: "entity_row_update_failed",
|
|
2557
|
+
message: `[renameEntityRow] exception for "${token}": ${msg}`,
|
|
2558
|
+
context: { token, id, detail: e }
|
|
2559
|
+
});
|
|
2560
|
+
return { ok: false, error: msg };
|
|
2561
|
+
}
|
|
2562
|
+
}
|
|
2563
|
+
};
|
|
2564
|
+
}
|
|
2565
|
+
|
|
2566
|
+
// src/core/helpers.ts
|
|
2567
|
+
function combine(failures, total) {
|
|
2568
|
+
const first = failures[0] ?? {
|
|
2569
|
+
code: "internal",
|
|
2570
|
+
message: "unknown failure"
|
|
2571
|
+
};
|
|
2572
|
+
return {
|
|
2573
|
+
code: failures.every((f) => f.code === first.code) ? first.code : "internal",
|
|
2574
|
+
message: `${failures.length}/${total} association edge(s) failed: ${first.message}`,
|
|
2575
|
+
detail: failures
|
|
2576
|
+
};
|
|
2577
|
+
}
|
|
2578
|
+
function errArgs(e) {
|
|
2579
|
+
return [e.code, e.message, e.detail];
|
|
2580
|
+
}
|
|
2581
|
+
function createAssociationHelpers(service) {
|
|
2582
|
+
async function linkEdges(edges) {
|
|
2583
|
+
if (edges.length === 0) return ok({ ids: [] });
|
|
2584
|
+
const results = await Promise.all(
|
|
2585
|
+
edges.map(
|
|
2586
|
+
(e) => service.add({
|
|
2587
|
+
sourceType: e.source.type,
|
|
2588
|
+
sourceId: e.source.id,
|
|
2589
|
+
targetType: e.target.type,
|
|
2590
|
+
targetId: e.target.id,
|
|
2591
|
+
...e.orgId !== void 0 ? { orgId: e.orgId } : {},
|
|
2592
|
+
...e.label !== void 0 ? { label: e.label } : {},
|
|
2593
|
+
...e.metadata !== void 0 ? { metadata: e.metadata } : {},
|
|
2594
|
+
...e.role !== void 0 ? { role: e.role } : {},
|
|
2595
|
+
...e.position !== void 0 ? { position: e.position } : {}
|
|
2596
|
+
})
|
|
2597
|
+
)
|
|
2598
|
+
);
|
|
2599
|
+
const ids = [];
|
|
2600
|
+
const failures = [];
|
|
2601
|
+
for (const r of results) {
|
|
2602
|
+
if (isAssociationsRpcErr(r)) failures.push(r.error);
|
|
2603
|
+
else ids.push(r.data.id);
|
|
2604
|
+
}
|
|
2605
|
+
if (failures.length > 0)
|
|
2606
|
+
return err(...errArgs(combine(failures, edges.length)));
|
|
2607
|
+
return ok({ ids });
|
|
2608
|
+
}
|
|
2609
|
+
return {
|
|
2610
|
+
linkEdges,
|
|
2611
|
+
async linkOneToMany({ source, targets, attrs }) {
|
|
2612
|
+
return linkEdges(targets.map((target) => ({ source, target, ...attrs })));
|
|
2613
|
+
},
|
|
2614
|
+
async linkManyToOne({ sources, target, attrs }) {
|
|
2615
|
+
return linkEdges(sources.map((source) => ({ source, target, ...attrs })));
|
|
2616
|
+
},
|
|
2617
|
+
async replaceTargets(args) {
|
|
2618
|
+
return service.setTargets({
|
|
2619
|
+
sourceType: args.source.type,
|
|
2620
|
+
sourceId: args.source.id,
|
|
2621
|
+
targetType: args.targetType,
|
|
2622
|
+
targetIds: args.targetIds,
|
|
2623
|
+
...args.orgId !== void 0 ? { orgId: args.orgId } : {},
|
|
2624
|
+
...args.role !== void 0 ? { role: args.role } : {}
|
|
2625
|
+
});
|
|
2626
|
+
},
|
|
2627
|
+
async linkCreated(args) {
|
|
2628
|
+
return linkEdges(
|
|
2629
|
+
args.targets.map((target) => ({
|
|
2630
|
+
source: args.created,
|
|
2631
|
+
target,
|
|
2632
|
+
...args.attrs
|
|
2633
|
+
}))
|
|
2634
|
+
);
|
|
2635
|
+
},
|
|
2636
|
+
async unlinkEdges(edges) {
|
|
2637
|
+
if (edges.length === 0) return ok(null);
|
|
2638
|
+
const results = await Promise.all(
|
|
2639
|
+
edges.map(
|
|
2640
|
+
(e) => service.remove({
|
|
2641
|
+
sourceType: e.source.type,
|
|
2642
|
+
sourceId: e.source.id,
|
|
2643
|
+
targetType: e.target.type,
|
|
2644
|
+
targetId: e.target.id,
|
|
2645
|
+
...e.role !== void 0 ? { role: e.role } : {}
|
|
2646
|
+
})
|
|
2647
|
+
)
|
|
2648
|
+
);
|
|
2649
|
+
const failures = [];
|
|
2650
|
+
for (const r of results) if (isAssociationsRpcErr(r)) failures.push(r.error);
|
|
2651
|
+
if (failures.length > 0)
|
|
2652
|
+
return err(...errArgs(combine(failures, edges.length)));
|
|
2653
|
+
return ok(null);
|
|
2654
|
+
}
|
|
2655
|
+
};
|
|
2656
|
+
}
|
|
2657
|
+
|
|
2658
|
+
// src/core/store.ts
|
|
2659
|
+
function associationsKey(type, id) {
|
|
2660
|
+
return `${type}:${id}`;
|
|
2661
|
+
}
|
|
2662
|
+
var IDLE_ASSOCIATIONS = Object.freeze({
|
|
2663
|
+
status: "idle",
|
|
2664
|
+
edges: Object.freeze([]),
|
|
2665
|
+
fetchedAt: null,
|
|
2666
|
+
error: null
|
|
2667
|
+
});
|
|
2668
|
+
var IDLE_CATEGORIES = Object.freeze({
|
|
2669
|
+
status: "idle",
|
|
2670
|
+
categories: Object.freeze([]),
|
|
2671
|
+
fetchedAt: null,
|
|
2672
|
+
error: null
|
|
2673
|
+
});
|
|
2674
|
+
function createAssociationsStore(config) {
|
|
2675
|
+
if (!config || typeof config.dataSource?.rpc !== "function") {
|
|
2676
|
+
throw new Error(
|
|
2677
|
+
"@ai-matrx/associations: the REQUIRED dataSource port is missing (need an object with rpc(fn, args) \u2014 a supabase-js client satisfies it structurally). The package IS data operations; there is no degraded mode without one."
|
|
2678
|
+
);
|
|
2679
|
+
}
|
|
2680
|
+
if (typeof config.identity?.requireUserId !== "function") {
|
|
2681
|
+
throw new Error(
|
|
2682
|
+
"@ai-matrx/associations: the REQUIRED identity port is missing (need requireUserId(): string that THROWS when unauthenticated). Identity never comes from a store import."
|
|
2683
|
+
);
|
|
2684
|
+
}
|
|
2685
|
+
if (typeof config.errorSink !== "function") {
|
|
2686
|
+
throw new Error(
|
|
2687
|
+
"@ai-matrx/associations: the REQUIRED errorSink port is missing. Recovery layers must scream somewhere \u2014 bind a sink."
|
|
2688
|
+
);
|
|
2689
|
+
}
|
|
2690
|
+
const errorSink = config.errorSink;
|
|
2691
|
+
const registry = createEntityRegistry(errorSink, config.entityOverlay);
|
|
2692
|
+
const deps = {
|
|
2693
|
+
dataSource: config.dataSource,
|
|
2694
|
+
identity: config.identity,
|
|
2695
|
+
errorSink,
|
|
2696
|
+
guards: createAssociationGuards(errorSink),
|
|
2697
|
+
rpc: createRpcResultHelpers(errorSink),
|
|
2698
|
+
registry
|
|
2699
|
+
};
|
|
2700
|
+
const associations = createAssociationsService(deps);
|
|
2701
|
+
const categories = createCategoriesService(deps);
|
|
2702
|
+
const favorites = createFavoritesService(deps);
|
|
2703
|
+
const candidates = createCandidatesService(deps);
|
|
2704
|
+
const titles = createTitlesService(deps, candidates);
|
|
2705
|
+
const entityRows = createEntityRowsService(deps, titles);
|
|
2706
|
+
const helpers = createAssociationHelpers(associations);
|
|
2707
|
+
const assocByKey = /* @__PURE__ */ new Map();
|
|
2708
|
+
const assocSubs = /* @__PURE__ */ new Map();
|
|
2709
|
+
const assocInFlight = /* @__PURE__ */ new Map();
|
|
2710
|
+
const catByDim = /* @__PURE__ */ new Map();
|
|
2711
|
+
const catSubs = /* @__PURE__ */ new Map();
|
|
2712
|
+
const catInFlight = /* @__PURE__ */ new Map();
|
|
2713
|
+
function notifyAssoc(key) {
|
|
2714
|
+
const subs = assocSubs.get(key);
|
|
2715
|
+
if (subs) for (const cb of [...subs]) cb();
|
|
2716
|
+
}
|
|
2717
|
+
function notifyCat(dimension) {
|
|
2718
|
+
const subs = catSubs.get(dimension);
|
|
2719
|
+
if (subs) for (const cb of [...subs]) cb();
|
|
2720
|
+
}
|
|
2721
|
+
function setAssoc(key, entry) {
|
|
2722
|
+
assocByKey.set(key, entry);
|
|
2723
|
+
notifyAssoc(key);
|
|
2724
|
+
}
|
|
2725
|
+
function setCat(dimension, entry) {
|
|
2726
|
+
catByDim.set(dimension, entry);
|
|
2727
|
+
notifyCat(dimension);
|
|
2728
|
+
}
|
|
2729
|
+
async function load(type, id, opts = {}) {
|
|
2730
|
+
const force = opts.force ?? false;
|
|
2731
|
+
if (!type || !id) return;
|
|
2732
|
+
const key = associationsKey(type, id);
|
|
2733
|
+
const entry = assocByKey.get(key);
|
|
2734
|
+
if (!force && entry?.status === "ready") return;
|
|
2735
|
+
const pending = assocInFlight.get(key);
|
|
2736
|
+
if (!force && entry?.status === "loading" && pending) return pending;
|
|
2737
|
+
const prev = assocByKey.get(key);
|
|
2738
|
+
setAssoc(key, {
|
|
2739
|
+
status: "loading",
|
|
2740
|
+
edges: prev?.edges ?? [],
|
|
2741
|
+
fetchedAt: prev?.fetchedAt ?? null,
|
|
2742
|
+
// Retain the visible failure while a retry is pending — consumers use
|
|
2743
|
+
// status to disable/spin the same retry control.
|
|
2744
|
+
error: prev?.error ?? null
|
|
2745
|
+
});
|
|
2746
|
+
const promise = (async () => {
|
|
2747
|
+
try {
|
|
2748
|
+
const res = await associations.listForEntity(type, id);
|
|
2749
|
+
if (isAssociationsRpcErr(res)) {
|
|
2750
|
+
const before = assocByKey.get(key);
|
|
2751
|
+
setAssoc(key, {
|
|
2752
|
+
status: "error",
|
|
2753
|
+
edges: before?.edges ?? [],
|
|
2754
|
+
fetchedAt: before?.fetchedAt ?? null,
|
|
2755
|
+
error: res.error.message
|
|
2756
|
+
});
|
|
2757
|
+
} else {
|
|
2758
|
+
setAssoc(key, {
|
|
2759
|
+
status: "ready",
|
|
2760
|
+
edges: res.data.edges,
|
|
2761
|
+
fetchedAt: Date.now(),
|
|
2762
|
+
error: null
|
|
2763
|
+
});
|
|
2764
|
+
}
|
|
2765
|
+
} finally {
|
|
2766
|
+
assocInFlight.delete(key);
|
|
2767
|
+
}
|
|
2768
|
+
})();
|
|
2769
|
+
assocInFlight.set(key, promise);
|
|
2770
|
+
return promise;
|
|
2771
|
+
}
|
|
2772
|
+
async function reloadBoth(sourceType, sourceId, targetType, targetId) {
|
|
2773
|
+
await Promise.all([
|
|
2774
|
+
load(sourceType, sourceId, { force: true }),
|
|
2775
|
+
load(targetType, targetId, { force: true })
|
|
2776
|
+
]);
|
|
2777
|
+
}
|
|
2778
|
+
async function loadCategories(dimension, opts = {}) {
|
|
2779
|
+
const force = opts.force ?? false;
|
|
2780
|
+
if (!dimension) return;
|
|
2781
|
+
const entry = catByDim.get(dimension);
|
|
2782
|
+
if (!force && entry?.status === "ready") return;
|
|
2783
|
+
const pending = catInFlight.get(dimension);
|
|
2784
|
+
if (!force && entry?.status === "loading" && pending) return pending;
|
|
2785
|
+
const prev = catByDim.get(dimension);
|
|
2786
|
+
setCat(dimension, {
|
|
2787
|
+
status: "loading",
|
|
2788
|
+
categories: prev?.categories ?? [],
|
|
2789
|
+
fetchedAt: prev?.fetchedAt ?? null,
|
|
2790
|
+
error: null
|
|
2791
|
+
});
|
|
2792
|
+
const promise = (async () => {
|
|
2793
|
+
try {
|
|
2794
|
+
const res = await categories.list(dimension);
|
|
2795
|
+
if (isAssociationsRpcErr(res)) {
|
|
2796
|
+
const before = catByDim.get(dimension);
|
|
2797
|
+
setCat(dimension, {
|
|
2798
|
+
status: "error",
|
|
2799
|
+
categories: before?.categories ?? [],
|
|
2800
|
+
fetchedAt: before?.fetchedAt ?? null,
|
|
2801
|
+
error: res.error.message
|
|
2802
|
+
});
|
|
2803
|
+
} else {
|
|
2804
|
+
setCat(dimension, {
|
|
2805
|
+
status: "ready",
|
|
2806
|
+
categories: res.data.categories,
|
|
2807
|
+
fetchedAt: Date.now(),
|
|
2808
|
+
error: null
|
|
2809
|
+
});
|
|
2810
|
+
}
|
|
2811
|
+
} finally {
|
|
2812
|
+
catInFlight.delete(dimension);
|
|
2813
|
+
}
|
|
2814
|
+
})();
|
|
2815
|
+
catInFlight.set(dimension, promise);
|
|
2816
|
+
return promise;
|
|
2817
|
+
}
|
|
2818
|
+
return {
|
|
2819
|
+
// ── associations ─────────────────────────────────────────────────────
|
|
2820
|
+
getEdges(type, id) {
|
|
2821
|
+
if (!type || !id) return IDLE_ASSOCIATIONS;
|
|
2822
|
+
return assocByKey.get(associationsKey(type, id)) ?? IDLE_ASSOCIATIONS;
|
|
2823
|
+
},
|
|
2824
|
+
load,
|
|
2825
|
+
subscribe(key, cb) {
|
|
2826
|
+
let subs = assocSubs.get(key);
|
|
2827
|
+
if (!subs) {
|
|
2828
|
+
subs = /* @__PURE__ */ new Set();
|
|
2829
|
+
assocSubs.set(key, subs);
|
|
2830
|
+
}
|
|
2831
|
+
subs.add(cb);
|
|
2832
|
+
return () => {
|
|
2833
|
+
subs.delete(cb);
|
|
2834
|
+
if (subs.size === 0) assocSubs.delete(key);
|
|
2835
|
+
};
|
|
2836
|
+
},
|
|
2837
|
+
async add(args) {
|
|
2838
|
+
const res = await associations.add(args);
|
|
2839
|
+
if (isAssociationsRpcErr(res)) {
|
|
2840
|
+
return { ok: false, error: res.error.message };
|
|
2841
|
+
}
|
|
2842
|
+
await reloadBoth(
|
|
2843
|
+
args.sourceType,
|
|
2844
|
+
args.sourceId,
|
|
2845
|
+
args.targetType,
|
|
2846
|
+
args.targetId
|
|
2847
|
+
);
|
|
2848
|
+
return { ok: true, id: res.data.id };
|
|
2849
|
+
},
|
|
2850
|
+
async remove(args) {
|
|
2851
|
+
const res = await associations.remove(args);
|
|
2852
|
+
if (isAssociationsRpcErr(res)) {
|
|
2853
|
+
return { ok: false, error: res.error.message };
|
|
2854
|
+
}
|
|
2855
|
+
await reloadBoth(
|
|
2856
|
+
args.sourceType,
|
|
2857
|
+
args.sourceId,
|
|
2858
|
+
args.targetType,
|
|
2859
|
+
args.targetId
|
|
2860
|
+
);
|
|
2861
|
+
return { ok: true };
|
|
2862
|
+
},
|
|
2863
|
+
/**
|
|
2864
|
+
* Reloads the SOURCE endpoint only — the one endpoint with a
|
|
2865
|
+
* deterministic post-state; each affected target reload would need the
|
|
2866
|
+
* full before/after diff, so callers displaying a specific target
|
|
2867
|
+
* refresh it via `load(..., { force: true })`.
|
|
2868
|
+
*/
|
|
2869
|
+
async setTargets(args) {
|
|
2870
|
+
const res = await associations.setTargets(args);
|
|
2871
|
+
if (isAssociationsRpcErr(res)) {
|
|
2872
|
+
return { ok: false, error: res.error.message };
|
|
2873
|
+
}
|
|
2874
|
+
await load(args.sourceType, args.sourceId, { force: true });
|
|
2875
|
+
return { ok: true };
|
|
2876
|
+
},
|
|
2877
|
+
invalidate(type, id) {
|
|
2878
|
+
const key = associationsKey(type, id);
|
|
2879
|
+
if (assocByKey.delete(key)) notifyAssoc(key);
|
|
2880
|
+
},
|
|
2881
|
+
invalidateAll() {
|
|
2882
|
+
const assocKeys = [...assocByKey.keys()];
|
|
2883
|
+
assocByKey.clear();
|
|
2884
|
+
for (const key of assocKeys) notifyAssoc(key);
|
|
2885
|
+
const dims = [...catByDim.keys()];
|
|
2886
|
+
catByDim.clear();
|
|
2887
|
+
for (const dim of dims) notifyCat(dim);
|
|
2888
|
+
},
|
|
2889
|
+
// ── categories ───────────────────────────────────────────────────────
|
|
2890
|
+
getCategories(dimension) {
|
|
2891
|
+
if (!dimension) return IDLE_CATEGORIES;
|
|
2892
|
+
return catByDim.get(dimension) ?? IDLE_CATEGORIES;
|
|
2893
|
+
},
|
|
2894
|
+
loadCategories,
|
|
2895
|
+
subscribeCategories(dimension, cb) {
|
|
2896
|
+
let subs = catSubs.get(dimension);
|
|
2897
|
+
if (!subs) {
|
|
2898
|
+
subs = /* @__PURE__ */ new Set();
|
|
2899
|
+
catSubs.set(dimension, subs);
|
|
2900
|
+
}
|
|
2901
|
+
subs.add(cb);
|
|
2902
|
+
return () => {
|
|
2903
|
+
subs.delete(cb);
|
|
2904
|
+
if (subs.size === 0) catSubs.delete(dimension);
|
|
2905
|
+
};
|
|
2906
|
+
},
|
|
2907
|
+
async createCategory(args) {
|
|
2908
|
+
const res = await categories.create(args);
|
|
2909
|
+
if (isAssociationsRpcErr(res)) {
|
|
2910
|
+
return { ok: false, error: res.error.message };
|
|
2911
|
+
}
|
|
2912
|
+
const optimistic = {
|
|
2913
|
+
id: res.data.id,
|
|
2914
|
+
orgId: args.orgId,
|
|
2915
|
+
dimension: args.dimension,
|
|
2916
|
+
name: args.name,
|
|
2917
|
+
slug: args.slug ?? null,
|
|
2918
|
+
parentId: args.parentId ?? null,
|
|
2919
|
+
isSystem: false,
|
|
2920
|
+
color: args.color ?? null,
|
|
2921
|
+
icon: args.icon ?? null,
|
|
2922
|
+
metadata: null,
|
|
2923
|
+
position: null
|
|
2924
|
+
};
|
|
2925
|
+
const prev = catByDim.get(args.dimension);
|
|
2926
|
+
const existing = prev?.categories ?? [];
|
|
2927
|
+
if (!existing.some((c) => c.id === optimistic.id)) {
|
|
2928
|
+
setCat(args.dimension, {
|
|
2929
|
+
status: "ready",
|
|
2930
|
+
categories: [...existing, optimistic],
|
|
2931
|
+
fetchedAt: prev?.fetchedAt ?? Date.now(),
|
|
2932
|
+
error: null
|
|
2933
|
+
});
|
|
2934
|
+
}
|
|
2935
|
+
await loadCategories(args.dimension, { force: true });
|
|
2936
|
+
return { ok: true, id: res.data.id };
|
|
2937
|
+
},
|
|
2938
|
+
async updateCategory(args) {
|
|
2939
|
+
const res = await categories.update(args);
|
|
2940
|
+
if (isAssociationsRpcErr(res)) {
|
|
2941
|
+
return { ok: false, error: res.error.message };
|
|
2942
|
+
}
|
|
2943
|
+
await loadCategories(args.dimension, { force: true });
|
|
2944
|
+
return { ok: true, id: res.data.id };
|
|
2945
|
+
},
|
|
2946
|
+
async reparentCategory(args) {
|
|
2947
|
+
const res = await categories.reparent(args);
|
|
2948
|
+
if (isAssociationsRpcErr(res)) {
|
|
2949
|
+
return { ok: false, error: res.error.message };
|
|
2950
|
+
}
|
|
2951
|
+
await loadCategories(args.dimension, { force: true });
|
|
2952
|
+
return { ok: true, id: res.data.id };
|
|
2953
|
+
},
|
|
2954
|
+
async deleteCategory(args) {
|
|
2955
|
+
const res = await categories.delete(args.id);
|
|
2956
|
+
if (isAssociationsRpcErr(res)) {
|
|
2957
|
+
return { ok: false, error: res.error.message };
|
|
2958
|
+
}
|
|
2959
|
+
await loadCategories(args.dimension, { force: true });
|
|
2960
|
+
return { ok: true, id: res.data.id };
|
|
2961
|
+
},
|
|
2962
|
+
// ── seams ────────────────────────────────────────────────────────────
|
|
2963
|
+
titles,
|
|
2964
|
+
favorites,
|
|
2965
|
+
candidates,
|
|
2966
|
+
entityRows,
|
|
2967
|
+
helpers,
|
|
2968
|
+
registry,
|
|
2969
|
+
services: { associations, categories },
|
|
2970
|
+
registerEntityOverlay: registry.registerEntityOverlay
|
|
2971
|
+
};
|
|
2972
|
+
}
|
|
2973
|
+
|
|
2974
|
+
// src/demanded-rpcs.generated.ts
|
|
2975
|
+
var DEMANDED_RPC_NAMES = [
|
|
2976
|
+
"assoc_add",
|
|
2977
|
+
"assoc_remove",
|
|
2978
|
+
"assoc_set_targets",
|
|
2979
|
+
"assoc_remove_for_entity",
|
|
2980
|
+
"assoc_for_entity",
|
|
2981
|
+
"assoc_for_targets",
|
|
2982
|
+
"assoc_for_sources",
|
|
2983
|
+
"assoc_members_visible",
|
|
2984
|
+
"conversation_file_add",
|
|
2985
|
+
"conversation_file_remove",
|
|
2986
|
+
"conversation_files",
|
|
2987
|
+
"agent_resource_add",
|
|
2988
|
+
"agent_resource_remove",
|
|
2989
|
+
"cat_list",
|
|
2990
|
+
"cat_create",
|
|
2991
|
+
"cat_update",
|
|
2992
|
+
"cat_reparent",
|
|
2993
|
+
"cat_delete",
|
|
2994
|
+
"ues_set",
|
|
2995
|
+
"ues_list",
|
|
2996
|
+
"ues_get_bulk",
|
|
2997
|
+
"ues_touch",
|
|
2998
|
+
"reference_search_candidates"
|
|
2999
|
+
];
|
|
3000
|
+
|
|
3001
|
+
// src/core/assertDemandedSchema.ts
|
|
3002
|
+
var BAD_UUID = "__not_a_uuid__";
|
|
3003
|
+
var SELF_TEST_MISSING_RPC = "assoc_probe_self_test_missing_fn";
|
|
3004
|
+
var PROBE_ARGS = {
|
|
3005
|
+
// edges — writes
|
|
3006
|
+
assoc_add: {
|
|
3007
|
+
p_source_type: "note",
|
|
3008
|
+
p_source_id: BAD_UUID,
|
|
3009
|
+
p_target_type: "task",
|
|
3010
|
+
p_target_id: BAD_UUID
|
|
3011
|
+
},
|
|
3012
|
+
assoc_remove: {
|
|
3013
|
+
p_source_type: "note",
|
|
3014
|
+
p_source_id: BAD_UUID,
|
|
3015
|
+
p_target_type: "task",
|
|
3016
|
+
p_target_id: BAD_UUID
|
|
3017
|
+
},
|
|
3018
|
+
assoc_set_targets: {
|
|
3019
|
+
p_source_type: "note",
|
|
3020
|
+
p_source_id: BAD_UUID,
|
|
3021
|
+
p_target_type: "task",
|
|
3022
|
+
p_target_ids: [BAD_UUID]
|
|
3023
|
+
},
|
|
3024
|
+
assoc_remove_for_entity: { p_type: "note", p_id: BAD_UUID },
|
|
3025
|
+
// edges — reads
|
|
3026
|
+
assoc_for_entity: { p_type: "note", p_id: BAD_UUID },
|
|
3027
|
+
assoc_for_targets: { p_target_type: "task", p_target_ids: [BAD_UUID] },
|
|
3028
|
+
assoc_for_sources: { p_source_type: "note", p_source_ids: [BAD_UUID] },
|
|
3029
|
+
assoc_members_visible: { p_target_type: "task", p_target_ids: [BAD_UUID] },
|
|
3030
|
+
// conversation files
|
|
3031
|
+
conversation_file_add: {
|
|
3032
|
+
p_conversation_id: BAD_UUID,
|
|
3033
|
+
p_file_id: BAD_UUID
|
|
3034
|
+
},
|
|
3035
|
+
conversation_file_remove: {
|
|
3036
|
+
p_conversation_id: BAD_UUID,
|
|
3037
|
+
p_file_id: BAD_UUID
|
|
3038
|
+
},
|
|
3039
|
+
conversation_files: { p_conversation_id: BAD_UUID },
|
|
3040
|
+
// agent resources
|
|
3041
|
+
agent_resource_add: {
|
|
3042
|
+
p_agent_id: BAD_UUID,
|
|
3043
|
+
p_source_type: "note",
|
|
3044
|
+
p_source_id: BAD_UUID
|
|
3045
|
+
},
|
|
3046
|
+
agent_resource_remove: {
|
|
3047
|
+
p_agent_id: BAD_UUID,
|
|
3048
|
+
p_source_type: "note",
|
|
3049
|
+
p_source_id: BAD_UUID
|
|
3050
|
+
},
|
|
3051
|
+
// categories
|
|
3052
|
+
cat_list: {},
|
|
3053
|
+
cat_create: { p_dimension: "", p_name: "", p_org_id: BAD_UUID },
|
|
3054
|
+
cat_update: { p_category_id: BAD_UUID, p_name: "__probe__" },
|
|
3055
|
+
cat_reparent: { p_category_id: BAD_UUID },
|
|
3056
|
+
cat_delete: { p_category_id: BAD_UUID },
|
|
3057
|
+
// favorites / recents
|
|
3058
|
+
ues_set: { p_entity_type: "__probe__", p_entity_id: BAD_UUID },
|
|
3059
|
+
ues_list: {},
|
|
3060
|
+
ues_get_bulk: { p_entity_type: "__probe__", p_entity_ids: [BAD_UUID] },
|
|
3061
|
+
ues_touch: { p_entity_type: "__probe__", p_entity_id: BAD_UUID },
|
|
3062
|
+
// candidates
|
|
3063
|
+
reference_search_candidates: { p_token: "__probe__", p_limit: 1 }
|
|
3064
|
+
};
|
|
3065
|
+
function isMissingFunctionError(error) {
|
|
3066
|
+
if (!error || typeof error !== "object") return false;
|
|
3067
|
+
return error.code === "PGRST202";
|
|
3068
|
+
}
|
|
3069
|
+
async function assertDemandedSchema(dataSource, options = {}) {
|
|
3070
|
+
const { selfTest = false, concurrency = 6, throwOnViolation = true } = options;
|
|
3071
|
+
const names = [...DEMANDED_RPC_NAMES];
|
|
3072
|
+
if (selfTest) names.push(SELF_TEST_MISSING_RPC);
|
|
3073
|
+
const missing = [];
|
|
3074
|
+
const unreachable = [];
|
|
3075
|
+
const answered = [];
|
|
3076
|
+
let cursor = 0;
|
|
3077
|
+
async function worker() {
|
|
3078
|
+
while (cursor < names.length) {
|
|
3079
|
+
const fn = names[cursor];
|
|
3080
|
+
cursor += 1;
|
|
3081
|
+
if (!fn) continue;
|
|
3082
|
+
const args = fn === SELF_TEST_MISSING_RPC ? {} : PROBE_ARGS[fn];
|
|
3083
|
+
try {
|
|
3084
|
+
const { error } = await dataSource.rpc(fn, args);
|
|
3085
|
+
if (error == null) answered.push(fn);
|
|
3086
|
+
else if (isMissingFunctionError(error)) missing.push(fn);
|
|
3087
|
+
else answered.push(fn);
|
|
3088
|
+
} catch (e) {
|
|
3089
|
+
unreachable.push({ fn, error: e });
|
|
3090
|
+
}
|
|
3091
|
+
}
|
|
3092
|
+
}
|
|
3093
|
+
await Promise.all(
|
|
3094
|
+
Array.from({ length: Math.min(concurrency, names.length) }, worker)
|
|
3095
|
+
);
|
|
3096
|
+
if (selfTest) {
|
|
3097
|
+
const selfTestMissing = missing.includes(SELF_TEST_MISSING_RPC);
|
|
3098
|
+
const idx = missing.indexOf(SELF_TEST_MISSING_RPC);
|
|
3099
|
+
if (idx >= 0) missing.splice(idx, 1);
|
|
3100
|
+
const answeredIdx = answered.indexOf(SELF_TEST_MISSING_RPC);
|
|
3101
|
+
if (answeredIdx >= 0) answered.splice(answeredIdx, 1);
|
|
3102
|
+
if (!selfTestMissing) {
|
|
3103
|
+
throw new Error(
|
|
3104
|
+
`assertDemandedSchema self-test FAILED: the fabricated function "${SELF_TEST_MISSING_RPC}" did not come back as missing (PGRST202). This probe cannot currently fail, so its green result proves nothing \u2014 the dataSource is swallowing or faking errors.`
|
|
3105
|
+
);
|
|
3106
|
+
}
|
|
3107
|
+
}
|
|
3108
|
+
if (unreachable.length > 0) {
|
|
3109
|
+
throw new Error(
|
|
3110
|
+
`assertDemandedSchema could not complete: ${unreachable.length} probe call(s) failed to reach the database (${unreachable.map((u) => u.fn).join(", ")}). This is NOT a schema verdict \u2014 fix connectivity and re-run.`
|
|
3111
|
+
);
|
|
3112
|
+
}
|
|
3113
|
+
const ok2 = missing.length === 0;
|
|
3114
|
+
const report = { ok: ok2, missing, unreachable, answered };
|
|
3115
|
+
if (!ok2 && throwOnViolation) {
|
|
3116
|
+
throw new Error(
|
|
3117
|
+
`DEMANDED SCHEMA VIOLATION: the database this dataSource points at cannot answer ${missing.length} demanded @ai-matrx/associations function(s): ${missing.join(", ")}. This package demands the AI Matrx platform schema (README \xA7 The demanded schema); a database without it is not this package's database.`
|
|
3118
|
+
);
|
|
3119
|
+
}
|
|
3120
|
+
return report;
|
|
3121
|
+
}
|
|
3122
|
+
|
|
3123
|
+
// src/core/edgeClassifier.ts
|
|
3124
|
+
var NON_CONTENT_SOURCE_TYPES = /* @__PURE__ */ new Set([
|
|
3125
|
+
"thread",
|
|
3126
|
+
"war_room",
|
|
3127
|
+
"scope",
|
|
3128
|
+
"scope_type",
|
|
3129
|
+
"organization"
|
|
3130
|
+
]);
|
|
3131
|
+
function isMembershipMetadata(metadata) {
|
|
3132
|
+
return typeof metadata === "object" && metadata !== null && !Array.isArray(metadata) && metadata.membership === true;
|
|
3133
|
+
}
|
|
3134
|
+
function isContentSourceEdge(sourceType, metadata) {
|
|
3135
|
+
if (NON_CONTENT_SOURCE_TYPES.has(sourceType)) return false;
|
|
3136
|
+
if (isMembershipMetadata(metadata)) return false;
|
|
3137
|
+
return true;
|
|
3138
|
+
}
|
|
3139
|
+
export {
|
|
3140
|
+
DEFAULT_ORG_COLUMN,
|
|
3141
|
+
DEFAULT_OWNER_COLUMN,
|
|
3142
|
+
NON_CONTENT_SOURCE_TYPES,
|
|
3143
|
+
SELF_TEST_MISSING_RPC,
|
|
3144
|
+
assertDemandedSchema,
|
|
3145
|
+
associationsKey,
|
|
3146
|
+
createAssociationGuards,
|
|
3147
|
+
createAssociationHelpers,
|
|
3148
|
+
createAssociationsService,
|
|
3149
|
+
createAssociationsStore,
|
|
3150
|
+
createCandidatesService,
|
|
3151
|
+
createCategoriesService,
|
|
3152
|
+
createEntityRegistry,
|
|
3153
|
+
createEntityRowsService,
|
|
3154
|
+
createFavoritesService,
|
|
3155
|
+
createRpcResultHelpers,
|
|
3156
|
+
createTitlesService,
|
|
3157
|
+
entityTitleCacheKey,
|
|
3158
|
+
err,
|
|
3159
|
+
firstError,
|
|
3160
|
+
isContentRole,
|
|
3161
|
+
isContentSourceEdge,
|
|
3162
|
+
isMembershipMetadata,
|
|
3163
|
+
isTransportFailure,
|
|
3164
|
+
isUuid,
|
|
3165
|
+
ok,
|
|
3166
|
+
resolveEntityToken
|
|
3167
|
+
};
|
|
3168
|
+
//# sourceMappingURL=index.js.map
|