@salesforce/afv-skills 1.14.0 → 1.16.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/package.json +1 -1
- package/skills/activating-datacloud/SKILL.md +0 -1
- package/skills/analyzing-omnistudio-dependencies/SKILL.md +0 -1
- package/skills/applying-slds/SKILL.md +322 -0
- package/skills/applying-slds/checklists.md +83 -0
- package/skills/applying-slds/examples.md +283 -0
- package/skills/applying-slds/guidance/README.md +83 -0
- package/skills/applying-slds/guidance/blueprints-index.md +213 -0
- package/skills/applying-slds/guidance/icons-guidance.md +186 -0
- package/skills/applying-slds/guidance/overviews/borders.md +236 -0
- package/skills/applying-slds/guidance/overviews/color.md +266 -0
- package/skills/applying-slds/guidance/overviews/display-density.md +366 -0
- package/skills/applying-slds/guidance/overviews/icons.md +240 -0
- package/skills/applying-slds/guidance/overviews/illustrations.md +235 -0
- package/skills/applying-slds/guidance/overviews/shadows.md +176 -0
- package/skills/applying-slds/guidance/overviews/spacing.md +216 -0
- package/skills/applying-slds/guidance/overviews/typography.md +323 -0
- package/skills/applying-slds/guidance/overviews/utilities.md +542 -0
- package/skills/applying-slds/guidance/slds-development-guide.md +288 -0
- package/skills/applying-slds/guidance/styling-hooks/borders.md +202 -0
- package/skills/applying-slds/guidance/styling-hooks/color/expressive-palette-hooks.md +153 -0
- package/skills/applying-slds/guidance/styling-hooks/color/index.md +171 -0
- package/skills/applying-slds/guidance/styling-hooks/color/semantic/accent-hooks.md +204 -0
- package/skills/applying-slds/guidance/styling-hooks/color/semantic/feedback-hooks.md +768 -0
- package/skills/applying-slds/guidance/styling-hooks/color/semantic/surface-hooks.md +337 -0
- package/skills/applying-slds/guidance/styling-hooks/color/system-hooks.md +132 -0
- package/skills/applying-slds/guidance/styling-hooks/index.md +327 -0
- package/skills/applying-slds/guidance/styling-hooks/shadows.md +238 -0
- package/skills/applying-slds/guidance/styling-hooks/spacing.md +254 -0
- package/skills/applying-slds/guidance/styling-hooks/typography.md +448 -0
- package/skills/applying-slds/guidance/utilities/alignment.md +119 -0
- package/skills/applying-slds/guidance/utilities/borders.md +131 -0
- package/skills/applying-slds/guidance/utilities/box.md +125 -0
- package/skills/applying-slds/guidance/utilities/color.md +165 -0
- package/skills/applying-slds/guidance/utilities/dark-mode.md +111 -0
- package/skills/applying-slds/guidance/utilities/description-list.md +168 -0
- package/skills/applying-slds/guidance/utilities/floats.md +117 -0
- package/skills/applying-slds/guidance/utilities/grid.md +264 -0
- package/skills/applying-slds/guidance/utilities/horizontal-list.md +110 -0
- package/skills/applying-slds/guidance/utilities/hyphenation.md +84 -0
- package/skills/applying-slds/guidance/utilities/index.md +205 -0
- package/skills/applying-slds/guidance/utilities/interactions.md +89 -0
- package/skills/applying-slds/guidance/utilities/layout.md +109 -0
- package/skills/applying-slds/guidance/utilities/line-clamp.md +131 -0
- package/skills/applying-slds/guidance/utilities/margin.md +155 -0
- package/skills/applying-slds/guidance/utilities/media-object.md +161 -0
- package/skills/applying-slds/guidance/utilities/name-value-list.md +152 -0
- package/skills/applying-slds/guidance/utilities/padding.md +155 -0
- package/skills/applying-slds/guidance/utilities/position.md +177 -0
- package/skills/applying-slds/guidance/utilities/print.md +114 -0
- package/skills/applying-slds/guidance/utilities/scrollable.md +126 -0
- package/skills/applying-slds/guidance/utilities/sizing.md +190 -0
- package/skills/applying-slds/guidance/utilities/themes.md +121 -0
- package/skills/applying-slds/guidance/utilities/truncate.md +127 -0
- package/skills/applying-slds/guidance/utilities/typography.md +166 -0
- package/skills/applying-slds/guidance/utilities/vertical-list.md +166 -0
- package/skills/applying-slds/guidance/utilities/visibility.md +228 -0
- package/skills/applying-slds/metadata/README.md +84 -0
- package/skills/applying-slds/metadata/blueprints/components/accordion.yaml +304 -0
- package/skills/applying-slds/metadata/blueprints/components/activity-timeline.yaml +92 -0
- package/skills/applying-slds/metadata/blueprints/components/alert.yaml +103 -0
- package/skills/applying-slds/metadata/blueprints/components/app-launcher.yaml +94 -0
- package/skills/applying-slds/metadata/blueprints/components/avatar-group.yaml +81 -0
- package/skills/applying-slds/metadata/blueprints/components/avatar.yaml +97 -0
- package/skills/applying-slds/metadata/blueprints/components/badges.yaml +102 -0
- package/skills/applying-slds/metadata/blueprints/components/brand-band.yaml +198 -0
- package/skills/applying-slds/metadata/blueprints/components/breadcrumbs.yaml +95 -0
- package/skills/applying-slds/metadata/blueprints/components/builder-header.yaml +192 -0
- package/skills/applying-slds/metadata/blueprints/components/button-groups.yaml +82 -0
- package/skills/applying-slds/metadata/blueprints/components/button-icons.yaml +295 -0
- package/skills/applying-slds/metadata/blueprints/components/buttons.yaml +230 -0
- package/skills/applying-slds/metadata/blueprints/components/cards.yaml +124 -0
- package/skills/applying-slds/metadata/blueprints/components/carousel.yaml +140 -0
- package/skills/applying-slds/metadata/blueprints/components/chat.yaml +179 -0
- package/skills/applying-slds/metadata/blueprints/components/checkbox-button-group.yaml +192 -0
- package/skills/applying-slds/metadata/blueprints/components/checkbox-button.yaml +204 -0
- package/skills/applying-slds/metadata/blueprints/components/checkbox-toggle.yaml +177 -0
- package/skills/applying-slds/metadata/blueprints/components/checkbox.yaml +108 -0
- package/skills/applying-slds/metadata/blueprints/components/color-picker.yaml +172 -0
- package/skills/applying-slds/metadata/blueprints/components/combobox.yaml +136 -0
- package/skills/applying-slds/metadata/blueprints/components/counter.yaml +147 -0
- package/skills/applying-slds/metadata/blueprints/components/data-tables.yaml +157 -0
- package/skills/applying-slds/metadata/blueprints/components/datepickers.yaml +130 -0
- package/skills/applying-slds/metadata/blueprints/components/datetime-picker.yaml +155 -0
- package/skills/applying-slds/metadata/blueprints/components/docked-composer.yaml +201 -0
- package/skills/applying-slds/metadata/blueprints/components/docked-form-footer.yaml +161 -0
- package/skills/applying-slds/metadata/blueprints/components/docked-utility-bar.yaml +175 -0
- package/skills/applying-slds/metadata/blueprints/components/drop-zone.yaml +115 -0
- package/skills/applying-slds/metadata/blueprints/components/dueling-picklist.yaml +196 -0
- package/skills/applying-slds/metadata/blueprints/components/dynamic-icons.yaml +128 -0
- package/skills/applying-slds/metadata/blueprints/components/dynamic-menu.yaml +141 -0
- package/skills/applying-slds/metadata/blueprints/components/expandable-section.yaml +115 -0
- package/skills/applying-slds/metadata/blueprints/components/expression.yaml +143 -0
- package/skills/applying-slds/metadata/blueprints/components/feeds.yaml +125 -0
- package/skills/applying-slds/metadata/blueprints/components/file-selector.yaml +154 -0
- package/skills/applying-slds/metadata/blueprints/components/files.yaml +119 -0
- package/skills/applying-slds/metadata/blueprints/components/form-element.yaml +145 -0
- package/skills/applying-slds/metadata/blueprints/components/global-header.yaml +120 -0
- package/skills/applying-slds/metadata/blueprints/components/global-navigation.yaml +100 -0
- package/skills/applying-slds/metadata/blueprints/components/icons.yaml +138 -0
- package/skills/applying-slds/metadata/blueprints/components/illustration.yaml +205 -0
- package/skills/applying-slds/metadata/blueprints/components/input.yaml +151 -0
- package/skills/applying-slds/metadata/blueprints/components/list-builder.yaml +127 -0
- package/skills/applying-slds/metadata/blueprints/components/lookups.yaml +132 -0
- package/skills/applying-slds/metadata/blueprints/components/map.yaml +118 -0
- package/skills/applying-slds/metadata/blueprints/components/menus.yaml +134 -0
- package/skills/applying-slds/metadata/blueprints/components/modals.yaml +152 -0
- package/skills/applying-slds/metadata/blueprints/components/notifications.yaml +88 -0
- package/skills/applying-slds/metadata/blueprints/components/page-headers.yaml +135 -0
- package/skills/applying-slds/metadata/blueprints/components/panels.yaml +149 -0
- package/skills/applying-slds/metadata/blueprints/components/path.yaml +154 -0
- package/skills/applying-slds/metadata/blueprints/components/picklist.yaml +125 -0
- package/skills/applying-slds/metadata/blueprints/components/pills.yaml +154 -0
- package/skills/applying-slds/metadata/blueprints/components/popovers.yaml +120 -0
- package/skills/applying-slds/metadata/blueprints/components/progress-bar.yaml +110 -0
- package/skills/applying-slds/metadata/blueprints/components/progress-indicator.yaml +133 -0
- package/skills/applying-slds/metadata/blueprints/components/progress-ring.yaml +102 -0
- package/skills/applying-slds/metadata/blueprints/components/prompt.yaml +126 -0
- package/skills/applying-slds/metadata/blueprints/components/publishers.yaml +178 -0
- package/skills/applying-slds/metadata/blueprints/components/radio-button-group.yaml +172 -0
- package/skills/applying-slds/metadata/blueprints/components/radio-group.yaml +112 -0
- package/skills/applying-slds/metadata/blueprints/components/rich-text-editor.yaml +135 -0
- package/skills/applying-slds/metadata/blueprints/components/scoped-notifications.yaml +188 -0
- package/skills/applying-slds/metadata/blueprints/components/scoped-tabs.yaml +97 -0
- package/skills/applying-slds/metadata/blueprints/components/select.yaml +127 -0
- package/skills/applying-slds/metadata/blueprints/components/setup-assistant.yaml +152 -0
- package/skills/applying-slds/metadata/blueprints/components/slider.yaml +111 -0
- package/skills/applying-slds/metadata/blueprints/components/spinners.yaml +135 -0
- package/skills/applying-slds/metadata/blueprints/components/split-view.yaml +112 -0
- package/skills/applying-slds/metadata/blueprints/components/summary-detail.yaml +103 -0
- package/skills/applying-slds/metadata/blueprints/components/tabs.yaml +138 -0
- package/skills/applying-slds/metadata/blueprints/components/textarea.yaml +116 -0
- package/skills/applying-slds/metadata/blueprints/components/tiles.yaml +108 -0
- package/skills/applying-slds/metadata/blueprints/components/timepicker.yaml +111 -0
- package/skills/applying-slds/metadata/blueprints/components/toast.yaml +154 -0
- package/skills/applying-slds/metadata/blueprints/components/tooltips.yaml +107 -0
- package/skills/applying-slds/metadata/blueprints/components/tree-grid.yaml +116 -0
- package/skills/applying-slds/metadata/blueprints/components/trees.yaml +116 -0
- package/skills/applying-slds/metadata/blueprints/components/trial-bar.yaml +112 -0
- package/skills/applying-slds/metadata/blueprints/components/vertical-navigation.yaml +130 -0
- package/skills/applying-slds/metadata/blueprints/components/vertical-tabs.yaml +140 -0
- package/skills/applying-slds/metadata/blueprints/components/visual-picker.yaml +150 -0
- package/skills/applying-slds/metadata/blueprints/components/welcome-mat.yaml +136 -0
- package/skills/applying-slds/metadata/hooks-index.json +6272 -0
- package/skills/applying-slds/metadata/icon-metadata.json +38466 -0
- package/skills/applying-slds/metadata/utilities-index.json +21912 -0
- package/skills/applying-slds/references/component-selection.md +112 -0
- package/skills/applying-slds/references/icons-decision-guide.md +124 -0
- package/skills/applying-slds/references/styling-decision-guide.md +228 -0
- package/skills/applying-slds/references/utilities-quick-ref.md +125 -0
- package/skills/applying-slds/scripts/search-blueprints.cjs +117 -0
- package/skills/applying-slds/scripts/search-hooks.cjs +139 -0
- package/skills/applying-slds/scripts/search-icons.cjs +174 -0
- package/skills/applying-slds/scripts/search-utilities.cjs +161 -0
- package/skills/building-mobile-apps/SKILL.md +0 -1
- package/skills/building-omnistudio-callable-apex/SKILL.md +0 -1
- package/skills/building-omnistudio-datamapper/SKILL.md +0 -1
- package/skills/building-omnistudio-flexcard/SKILL.md +0 -1
- package/skills/building-omnistudio-integration-procedure/SKILL.md +0 -1
- package/skills/building-omnistudio-omniscript/SKILL.md +0 -1
- package/skills/building-sf-integrations/SKILL.md +0 -1
- package/skills/configuring-connected-apps/SKILL.md +0 -1
- package/skills/connecting-datacloud/SKILL.md +0 -1
- package/skills/creating-b2b-commerce-store/SKILL.md +0 -1
- package/skills/debugging-apex-logs/SKILL.md +0 -1
- package/skills/deploying-metadata/SKILL.md +0 -1
- package/skills/deploying-omnistudio-datapacks/SKILL.md +0 -1
- package/skills/developing-agentforce/SKILL.md +0 -1
- package/skills/fetching-salesforce-docs/SKILL.md +0 -1
- package/skills/generating-custom-lightning-type/SKILL.md +17 -39
- package/skills/generating-custom-lightning-type/assets/primitive-types-and-constraints.md +41 -0
- package/skills/generating-custom-lightning-type/references/widget-rendition.md +124 -0
- package/skills/generating-lwc-components/SKILL.md +0 -1
- package/skills/generating-mermaid-diagrams/SKILL.md +0 -1
- package/skills/generating-visual-diagrams/SKILL.md +0 -1
- package/skills/handling-sf-data/SKILL.md +0 -1
- package/skills/harmonizing-datacloud/SKILL.md +0 -1
- package/skills/integrating-b2b-commerce-open-code-components/SKILL.md +0 -1
- package/skills/investigating-agentforce-architecture/README.md +156 -0
- package/skills/investigating-agentforce-architecture/SKILL.md +230 -0
- package/skills/investigating-agentforce-architecture/assets/cli/describe_sobject.yaml +16 -0
- package/skills/investigating-agentforce-architecture/assets/cli/describe_tooling_sobject.yaml +17 -0
- package/skills/investigating-agentforce-architecture/assets/cli/list_metadata_genaiprompttemplate.yaml +17 -0
- package/skills/investigating-agentforce-architecture/assets/cli/org_display.yaml +15 -0
- package/skills/investigating-agentforce-architecture/assets/cli/retrieve_genai_plugin.yaml +18 -0
- package/skills/investigating-agentforce-architecture/assets/cli/show_access_token.yaml +27 -0
- package/skills/investigating-agentforce-architecture/assets/mermaid/action_tree.mmd +20 -0
- package/skills/investigating-agentforce-architecture/assets/mermaid/data_flow.mmd +19 -0
- package/skills/investigating-agentforce-architecture/assets/mermaid/dependency_graph.mmd +19 -0
- package/skills/investigating-agentforce-architecture/assets/mermaid/invocation_sequence.mmd +20 -0
- package/skills/investigating-agentforce-architecture/assets/mermaid/planner_state.mmd +18 -0
- package/skills/investigating-agentforce-architecture/assets/soql/apex_class_bodies_by_ids.soql +3 -0
- package/skills/investigating-agentforce-architecture/assets/soql/apex_class_bodies_by_names.soql +3 -0
- package/skills/investigating-agentforce-architecture/assets/soql/bot_definition_details.soql +3 -0
- package/skills/investigating-agentforce-architecture/assets/soql/bot_version_lookup.soql +4 -0
- package/skills/investigating-agentforce-architecture/assets/soql/flow_definition_by_ids.soql +3 -0
- package/skills/investigating-agentforce-architecture/assets/soql/flow_definition_ids_by_names.soql +3 -0
- package/skills/investigating-agentforce-architecture/assets/soql/flow_definition_view_by_durable_ids.soql +4 -0
- package/skills/investigating-agentforce-architecture/assets/soql/flow_metadata_by_id.soql +3 -0
- package/skills/investigating-agentforce-architecture/assets/soql/functions_by_plugins.soql +5 -0
- package/skills/investigating-agentforce-architecture/assets/soql/planner_attrs_by_parent_ids.soql +3 -0
- package/skills/investigating-agentforce-architecture/assets/soql/planner_bundle_functions.soql +3 -0
- package/skills/investigating-agentforce-architecture/assets/soql/planner_definition_by_agent_chain.soql +3 -0
- package/skills/investigating-agentforce-architecture/assets/soql/plugin_functions_by_plugin_ids.soql +3 -0
- package/skills/investigating-agentforce-architecture/assets/soql/plugin_instructions_by_plugin_ids.soql +3 -0
- package/skills/investigating-agentforce-architecture/assets/soql/plugins_by_planner.soql +4 -0
- package/skills/investigating-agentforce-architecture/references/architecture_sections.md +243 -0
- package/skills/investigating-agentforce-architecture/references/contract.json +244 -0
- package/skills/investigating-agentforce-architecture/references/soql_fields.md +512 -0
- package/skills/investigating-agentforce-architecture/scripts/_shared/__init__.py +1 -0
- package/skills/investigating-agentforce-architecture/scripts/_shared/fs_guard.py +329 -0
- package/skills/investigating-agentforce-architecture/scripts/_shared/paths.py +110 -0
- package/skills/investigating-agentforce-architecture/scripts/_shared/runtime.py +59 -0
- package/skills/investigating-agentforce-architecture/scripts/_shared/sql.py +10 -0
- package/skills/investigating-agentforce-architecture/scripts/cache_check.py +234 -0
- package/skills/investigating-agentforce-architecture/scripts/config.py +131 -0
- package/skills/investigating-agentforce-architecture/scripts/fetch_soql.py +689 -0
- package/skills/investigating-agentforce-architecture/scripts/finalize.py +295 -0
- package/skills/investigating-agentforce-architecture/scripts/main.py +2835 -0
- package/skills/investigating-agentforce-architecture/scripts/metadata_listing.py +265 -0
- package/skills/investigating-agentforce-architecture/scripts/parallel_retrieve.py +69 -0
- package/skills/investigating-agentforce-architecture/scripts/parse_bundle.py +215 -0
- package/skills/investigating-agentforce-architecture/scripts/parse_wave.py +845 -0
- package/skills/investigating-agentforce-architecture/scripts/probe_channels.py +302 -0
- package/skills/investigating-agentforce-architecture/scripts/render_architecture.py +1043 -0
- package/skills/investigating-agentforce-architecture/scripts/resolve_bot.py +255 -0
- package/skills/investigating-agentforce-architecture/scripts/resolve_invocation_target.py +130 -0
- package/skills/investigating-agentforce-architecture/scripts/rest_client.py +763 -0
- package/skills/investigating-agentforce-architecture/scripts/retrieve_planner.py +13 -0
- package/skills/investigating-agentforce-architecture/scripts/sf_cli.py +242 -0
- package/skills/investigating-agentforce-architecture/scripts/soql_loader.py +253 -0
- package/skills/investigating-agentforce-architecture/scripts/summarize_tree.py +143 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/__init__.py +0 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/_bootstrap.py +23 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/fixtures/__init__.py +0 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/fixtures/genai_payloads.py +400 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_cache_check.py +307 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_cache_check_main.py +283 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_config.py +115 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_end_to_end_fixture.py +651 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_finalize.py +278 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_flow_children_inflation.py +582 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_fs_guard.py +113 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_iterative_wave_b.py +478 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_main_pipeline.py +3359 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_parallel_retrieve.py +131 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_parse_bundle.py +400 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_parse_wave.py +644 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_parse_wave_classifiers.py +224 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_parse_wave_helpers.py +380 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_parse_wave_main.py +397 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_per_branch_visited.py +244 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_probe_channels.py +359 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_probe_cli_recipes.py +185 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_render_architecture.py +810 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_resolve_bot.py +203 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_resolve_creds.py +157 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_resolve_invocation_target.py +145 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_rest_client.py +1253 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_runtime_override.py +100 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_sf_cli.py +261 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_signature_stamping.py +466 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_soql_loader.py +501 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_summarize_tree.py +241 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_write_emit_ctx.py +480 -0
- package/skills/investigating-agentforce-architecture/tools/emit_env.py +157 -0
- package/skills/investigating-agentforce-architecture/tools/emit_result.py +262 -0
- package/skills/investigating-agentforce-architecture/tools/sanitize.py +33 -0
- package/skills/investigating-agentforce-architecture/tools/write_emit_ctx.py +332 -0
- package/skills/investigating-agentforce-d360/README.md +123 -0
- package/skills/investigating-agentforce-d360/SKILL.md +163 -0
- package/skills/investigating-agentforce-d360/assets/dc/app_generation.sql +51 -0
- package/skills/investigating-agentforce-d360/assets/dc/content_category.sql +44 -0
- package/skills/investigating-agentforce-d360/assets/dc/content_quality.sql +41 -0
- package/skills/investigating-agentforce-d360/assets/dc/discover_sessions.sql +36 -0
- package/skills/investigating-agentforce-d360/assets/dc/feedback.sql +47 -0
- package/skills/investigating-agentforce-d360/assets/dc/feedback_details.sql +38 -0
- package/skills/investigating-agentforce-d360/assets/dc/gateway_records.sql +45 -0
- package/skills/investigating-agentforce-d360/assets/dc/gateway_request_llm.sql +50 -0
- package/skills/investigating-agentforce-d360/assets/dc/gateway_request_metadata.sql +44 -0
- package/skills/investigating-agentforce-d360/assets/dc/gateway_request_tags.sql +42 -0
- package/skills/investigating-agentforce-d360/assets/dc/gateway_requests.sql +89 -0
- package/skills/investigating-agentforce-d360/assets/dc/gateway_responses.sql +43 -0
- package/skills/investigating-agentforce-d360/assets/dc/generations.sql +52 -0
- package/skills/investigating-agentforce-d360/assets/dc/interactions.sql +53 -0
- package/skills/investigating-agentforce-d360/assets/dc/messages.sql +53 -0
- package/skills/investigating-agentforce-d360/assets/dc/messaging_session.sql +37 -0
- package/skills/investigating-agentforce-d360/assets/dc/moment_interactions.sql +34 -0
- package/skills/investigating-agentforce-d360/assets/dc/moments.sql +39 -0
- package/skills/investigating-agentforce-d360/assets/dc/participants.sql +48 -0
- package/skills/investigating-agentforce-d360/assets/dc/sessions.sql +78 -0
- package/skills/investigating-agentforce-d360/assets/dc/steps.sql +64 -0
- package/skills/investigating-agentforce-d360/assets/dc/tag_associations.sql +46 -0
- package/skills/investigating-agentforce-d360/assets/dc/tag_definition_associations.sql +37 -0
- package/skills/investigating-agentforce-d360/assets/dc/tag_definitions.sql +50 -0
- package/skills/investigating-agentforce-d360/assets/dc/tags.sql +37 -0
- package/skills/investigating-agentforce-d360/assets/dc/telemetry_spans.sql +55 -0
- package/skills/investigating-agentforce-d360/references/artifacts.md +50 -0
- package/skills/investigating-agentforce-d360/references/dc_dmo_fields.md +823 -0
- package/skills/investigating-agentforce-d360/references/dc_pipeline_contract.md +608 -0
- package/skills/investigating-agentforce-d360/scripts/_shared/__init__.py +2 -0
- package/skills/investigating-agentforce-d360/scripts/_shared/cli_override.py +98 -0
- package/skills/investigating-agentforce-d360/scripts/_shared/fs_guard.py +334 -0
- package/skills/investigating-agentforce-d360/scripts/_shared/paths.py +155 -0
- package/skills/investigating-agentforce-d360/scripts/_shared/runtime.py +59 -0
- package/skills/investigating-agentforce-d360/scripts/_shared/sql.py +14 -0
- package/skills/investigating-agentforce-d360/scripts/assemble_dc.py +1624 -0
- package/skills/investigating-agentforce-d360/scripts/config.py +45 -0
- package/skills/investigating-agentforce-d360/scripts/dc.py +188 -0
- package/skills/investigating-agentforce-d360/scripts/discover_sessions.py +556 -0
- package/skills/investigating-agentforce-d360/scripts/fetch_dc.py +1045 -0
- package/skills/investigating-agentforce-d360/scripts/render_dc.py +1750 -0
- package/skills/investigating-agentforce-d360/scripts/resolve_session.py +264 -0
- package/skills/investigating-agentforce-d360/scripts/storage.py +92 -0
- package/skills/investigating-agentforce-d360/scripts/tests/__init__.py +0 -0
- package/skills/investigating-agentforce-d360/scripts/tests/_bootstrap.py +15 -0
- package/skills/investigating-agentforce-d360/scripts/tests/fixtures/__init__.py +0 -0
- package/skills/investigating-agentforce-d360/scripts/tests/fixtures/synthetic_session.py +424 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_assemble_dc_bootstrap_and_mode.py +115 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_assemble_dc_gateway_direct.py +220 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_assemble_dc_gateway_direct_integration.py +158 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_assemble_dc_helpers.py +287 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_assemble_dc_integration.py +247 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_dc_and_resolve_session.py +433 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_discover_sessions.py +458 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_discover_sessions_grep_ci.py +193 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_fetch_dc_helpers.py +266 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_fetch_dc_identity.py +528 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_fetch_dc_main.py +251 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_fetch_dc_waterfall.py +229 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_fetch_dc_waterfall_full.py +283 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_identity_coherence.py +327 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_render_dc_branches.py +256 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_render_dc_gateway_direct.py +130 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_render_dc_helpers.py +291 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_render_dc_integration.py +220 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_render_dc_planner_llm_calls.py +284 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_render_dc_show_prompts_gating.py +215 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_resolve_from_disk.py +100 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_resolve_session_main.py +149 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_runtime_override.py +104 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_session_shape.py +95 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_session_shape_dropped_by_stdm.py +85 -0
- package/skills/managing-managed-event-subscription/SKILL.md +152 -0
- package/skills/managing-managed-event-subscription/assets/managed-event-subscription-template.xml +20 -0
- package/skills/managing-managed-event-subscription/references/delete-guide.md +57 -0
- package/skills/managing-managed-event-subscription/references/topic-name-formats.md +26 -0
- package/skills/managing-managed-event-subscription/references/update-constraints.md +30 -0
- package/skills/modeling-omnistudio-epc-catalog/SKILL.md +0 -1
- package/skills/observing-agentforce/SKILL.md +0 -1
- package/skills/orchestrating-datacloud/SKILL.md +0 -1
- package/skills/preparing-datacloud/SKILL.md +0 -1
- package/skills/querying-soql/SKILL.md +0 -1
- package/skills/retrieving-datacloud/SKILL.md +0 -1
- package/skills/running-apex-tests/SKILL.md +0 -1
- package/skills/running-code-analyzer/SKILL.md +0 -1
- package/skills/segmenting-datacloud/SKILL.md +0 -1
- package/skills/testing-agentforce/SKILL.md +0 -1
- package/skills/uplifting-components-to-slds2/SKILL.md +3 -2
- package/skills/uplifting-components-to-slds2/references/color-hooks-decision-guide.md +30 -9
- package/skills/uplifting-components-to-slds2/references/examples.md +24 -6
- package/skills/validating-slds/SKILL.md +262 -0
- package/skills/validating-slds/references/quality-checks.md +308 -0
- package/skills/validating-slds/references/report-format.md +302 -0
- package/skills/validating-slds/scripts/analyze-quality.cjs +521 -0
|
@@ -0,0 +1,512 @@
|
|
|
1
|
+
# sObject field reference — architecture skill
|
|
2
|
+
|
|
3
|
+
Field reference for the 13 sObjects this skill queries across the 15
|
|
4
|
+
SOQL templates under `assets/soql/`. Two are reached via the Data API
|
|
5
|
+
(`BotDefinition`, `BotVersion`); the remaining 11 are Tooling-only.
|
|
6
|
+
|
|
7
|
+
**Source of truth: the live org** (`sf sobject describe --sobject <Name>
|
|
8
|
+
[--use-tooling-api]`). Schemas verified against live Salesforce API
|
|
9
|
+
v66.0 via `sf sobject describe` on `my-org-alias` + `my-org-alias-2`,
|
|
10
|
+
2026-05-02. Official Salesforce Help pages describe logical structures
|
|
11
|
+
that frequently diverge from the physical fields the REST / Tooling API
|
|
12
|
+
actually expose. When a Help page disagrees with a live describe, trust
|
|
13
|
+
the live describe — the names in this reference are what you query.
|
|
14
|
+
|
|
15
|
+
The source of truth for "mandatory" is `scripts/probe_channels.py`'s
|
|
16
|
+
`MANDATORY_FIELDS` map. A probe that sees any `[mandatory]` field
|
|
17
|
+
missing flips to `status: "PROBE_FAILED"` — the skill aborts with a
|
|
18
|
+
clean error rather than producing a subtly-wrong tree. `[optional]`
|
|
19
|
+
fields degrade gracefully — missing ones are recorded but don't block
|
|
20
|
+
the run.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Casing gotchas
|
|
25
|
+
|
|
26
|
+
- **Mixed case is mandatory for `GenAi*` sObjects.** API names are
|
|
27
|
+
`GenAiPlannerDefinition`, `GenAiPluginDefinition`, `GenAiFunctionDefinition`,
|
|
28
|
+
`GenAiPluginFunctionDef`, `GenAiPluginInstructionDef`,
|
|
29
|
+
`GenAiPlannerFunctionDef`, `GenAiPlannerAttrDefinition`. Lowercase
|
|
30
|
+
variants (`genai_planner_definition`, `genaiplannerdefinition`) do not
|
|
31
|
+
resolve. The SOQL parser is case-insensitive on keywords but
|
|
32
|
+
sObject + field names must match the describe output for Tooling API
|
|
33
|
+
calls to route correctly.
|
|
34
|
+
- **`GenAiPluginFunctionDef` vs `GenAiPlannerFunctionDef` are different
|
|
35
|
+
tables.** Plugin-scope join (topic → function, via `PluginId`) vs
|
|
36
|
+
planner-bundle-scope join (planner → function, via `PlannerId`). Both
|
|
37
|
+
are 10-field join tables with nearly identical shape; keep them
|
|
38
|
+
straight.
|
|
39
|
+
- **`BotVersion.DeveloperName` is the version id, not the version
|
|
40
|
+
label.** `DeveloperName` on BotVersion is the version API name (e.g.
|
|
41
|
+
`v5`), used as the second path segment under
|
|
42
|
+
`<org_id15>/<agent>__<version>/`. `MasterLabel` is the
|
|
43
|
+
human-readable label (e.g. "Version 5 — ported from staging"). Never
|
|
44
|
+
mix them — the data dir layout and the SKILL.md input contract both
|
|
45
|
+
key on `DeveloperName`.
|
|
46
|
+
- **`complexvalue` fields require single-row retrieval.** `Metadata`
|
|
47
|
+
(on `Flow`, `FlowDefinition`, `GenAiPluginDefinition`,
|
|
48
|
+
`GenAiFunctionDefinition`), `SymbolTable` (on `ApexClass`), and
|
|
49
|
+
`AgentGraph` (on `GenAiPlannerDefinition`, often null in practice) are
|
|
50
|
+
`complexvalue` types. Salesforce enforces
|
|
51
|
+
`MALFORMED_QUERY: When retrieving results with Metadata or FullName
|
|
52
|
+
fields, the query qualifications must specify no more than one row for
|
|
53
|
+
retrieval.` Batch IN-clause SELECTs that return ≥2 rows fail. Use a
|
|
54
|
+
single-row equality (`WHERE Id = '<id>'`) per fetch; parallelize
|
|
55
|
+
across ids via `concurrent.futures`. `ApexClass.Body` +
|
|
56
|
+
`ApexClass.SymbolTable` is the one notable exception: the
|
|
57
|
+
`Name IN (...)` batch works even though `SymbolTable` is complex.
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Cross-sObject join map
|
|
62
|
+
|
|
63
|
+
Every edge is strictly **forward** from the entry query
|
|
64
|
+
(`GenAiPlannerDefinition WHERE DeveloperName = :planner_name`). No
|
|
65
|
+
backward lookups.
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
BotDefinition (Data API, PK Id, matched by DeveloperName)
|
|
69
|
+
└── BotVersion (Data API, FK BotDefinitionId)
|
|
70
|
+
│ [resolved to planner name via Bot metadata retrieve]
|
|
71
|
+
▼
|
|
72
|
+
GenAiPlannerDefinition (Tooling, PK Id, matched by DeveloperName)
|
|
73
|
+
│
|
|
74
|
+
├── GenAiPluginDefinition ← WHERE PlannerId = :plannerId
|
|
75
|
+
│ ├── GenAiPluginInstructionDef ← WHERE GenAiPluginDefinitionId IN (:topic_ids)
|
|
76
|
+
│ ├── GenAiPluginFunctionDef ← WHERE PluginId IN (:topic_ids)
|
|
77
|
+
│ │ └── Function picklist → GenAiFunctionDefinition.Id
|
|
78
|
+
│ └── GenAiFunctionDefinition ← WHERE PluginId IN (:topic_ids)
|
|
79
|
+
│
|
|
80
|
+
├── GenAiPlannerFunctionDef ← WHERE PlannerId = :plannerId
|
|
81
|
+
│ └── Plugin picklist → GenAiPluginDefinition.Id (or external via retrieve)
|
|
82
|
+
│
|
|
83
|
+
├── GenAiFunctionDefinition ← WHERE PluginId IN (:topic_ids)
|
|
84
|
+
│ │ (single-query — see functions_by_plugins.soql)
|
|
85
|
+
│ │
|
|
86
|
+
│ └── InvocationTargetType + InvocationTarget route to:
|
|
87
|
+
│ ├── flow → FlowDefinition (batch IN) → Flow.Metadata (parallel single-row)
|
|
88
|
+
│ ├── apex → ApexClass (batch IN, Body + SymbolTable)
|
|
89
|
+
│ ├── standardInvocableAction → (no further fetch — declared only)
|
|
90
|
+
│ └── generatePromptResponse → GenAiPromptTemplate (Metadata API retrieve)
|
|
91
|
+
│
|
|
92
|
+
└── GenAiPlannerAttrDefinition ← WHERE ParentId IN (:function_ids, :planner_id)
|
|
93
|
+
(polymorphic ParentId: GenAiFunctionDefinition OR GenAiPlannerDefinition)
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Per-channel row counts + `_unresolved[]` reasons are recorded in
|
|
97
|
+
`metadata_tree.json` under `_channels` and `_unresolved` keys.
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Data API sObjects (2)
|
|
102
|
+
|
|
103
|
+
### `BotDefinition` (Data API) — one row per agent
|
|
104
|
+
|
|
105
|
+
Root of the agent metadata. Matched by `DeveloperName`; the rest of the
|
|
106
|
+
tree is resolved forward from the `BotVersion` child.
|
|
107
|
+
|
|
108
|
+
| Name | Type | Nillable | Filterable | Tag |
|
|
109
|
+
|---|---|---|---|---|
|
|
110
|
+
| `Id` | id | no | yes | [mandatory] |
|
|
111
|
+
| `DeveloperName` | string | no | yes | [mandatory] |
|
|
112
|
+
| `MasterLabel` | string | yes | yes | [optional] |
|
|
113
|
+
| `Description` | textarea | yes | no | [optional] |
|
|
114
|
+
| `AgentType` | picklist | yes | yes | [optional] — discriminator for classic vs NGA in some orgs |
|
|
115
|
+
| `Type` | picklist | yes | yes | [optional] |
|
|
116
|
+
| `AgentTemplate` | string | yes | yes | [optional] — e.g. `SvcCopilotTmpl__EinsteinAgentKind` |
|
|
117
|
+
| `BotSource` | picklist | yes | yes | [optional] |
|
|
118
|
+
| `AgentUser` | reference | yes | yes | [optional] — FK to `User` |
|
|
119
|
+
| `IsDeleted` | boolean | no | yes | [optional] |
|
|
120
|
+
| `CreatedById` | reference | no | yes | [optional] |
|
|
121
|
+
| `CreatedDate` | datetime | no | yes | [optional] |
|
|
122
|
+
| `LastModifiedById` | reference | no | yes | [optional] |
|
|
123
|
+
| `LastModifiedDate` | datetime | no | yes | [optional] |
|
|
124
|
+
| `SystemModstamp` | datetime | no | yes | [optional] |
|
|
125
|
+
|
|
126
|
+
### `BotVersion` (Data API) — one row per agent version
|
|
127
|
+
|
|
128
|
+
Resolves the active version (or user-pinned version) for a given bot.
|
|
129
|
+
Parent relationship: `BotDefinition` via `BotDefinitionId`.
|
|
130
|
+
|
|
131
|
+
| Name | Type | Nillable | Filterable | Tag |
|
|
132
|
+
|---|---|---|---|---|
|
|
133
|
+
| `Id` | id | no | yes | [mandatory] |
|
|
134
|
+
| `BotDefinitionId` | reference | no | yes | [mandatory] |
|
|
135
|
+
| `DeveloperName` | string | no | yes | [optional] — version id (e.g. `v5`) |
|
|
136
|
+
| `MasterLabel` | string | yes | yes | [optional] — human label |
|
|
137
|
+
| `Status` | picklist | yes | yes | [optional] — `Active` on the current published version |
|
|
138
|
+
| `VersionNumber` | int | yes | yes | [optional] |
|
|
139
|
+
| `Description` | textarea | yes | no | [optional] |
|
|
140
|
+
| `AiReplyRecordVisibility` | picklist | yes | yes | [optional] |
|
|
141
|
+
| `ResponseDelayMilliseconds` | int | yes | yes | [optional] |
|
|
142
|
+
| `IsDeleted` | boolean | no | yes | [optional] |
|
|
143
|
+
| `CreatedById` | reference | no | yes | [optional] |
|
|
144
|
+
| `CreatedDate` | datetime | no | yes | [optional] |
|
|
145
|
+
| `LastModifiedById` | reference | no | yes | [optional] |
|
|
146
|
+
| `LastModifiedDate` | datetime | no | yes | [optional] |
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## Tooling API sObjects (11)
|
|
151
|
+
|
|
152
|
+
All sObjects in this section are reachable via the Tooling API only
|
|
153
|
+
(`sf data query --use-tooling-api` or `sf sobject describe --use-tooling-api`).
|
|
154
|
+
|
|
155
|
+
### `ApexClass` (Tooling) — Apex source + parsed AST
|
|
156
|
+
|
|
157
|
+
Source + full method/property AST for Apex referenced by
|
|
158
|
+
`GenAiFunctionDefinition.InvocationTarget` when
|
|
159
|
+
`InvocationTargetType = 'apex'`. Batch-safe on `Name IN (...)` or
|
|
160
|
+
`Id IN (...)` (despite `SymbolTable` being `complexvalue`, Salesforce
|
|
161
|
+
permits the batch for this particular sObject — verified live).
|
|
162
|
+
|
|
163
|
+
**Note:** `SymbolTable` is **not part of `FIELDS(ALL)`** and must be
|
|
164
|
+
named explicitly in the SELECT.
|
|
165
|
+
|
|
166
|
+
| Name | Type | Nillable | Filterable | Tag |
|
|
167
|
+
|---|---|---|---|---|
|
|
168
|
+
| `Id` | id | no | yes | [mandatory] |
|
|
169
|
+
| `Name` | string | no | yes | [mandatory] |
|
|
170
|
+
| `Body` | textarea | yes | no | [optional] — full Apex source |
|
|
171
|
+
| `SymbolTable` | complexvalue | yes | no | [optional] — parsed AST (methods, params, annotations, line/col) |
|
|
172
|
+
| `ApiVersion` | double | no | yes | [optional] |
|
|
173
|
+
| `IsValid` | boolean | no | yes | [optional] |
|
|
174
|
+
| `Status` | picklist | no | yes | [optional] |
|
|
175
|
+
| `LengthWithoutComments` | int | yes | yes | [optional] |
|
|
176
|
+
| `NamespacePrefix` | string | yes | yes | [optional] |
|
|
177
|
+
| `FullName` | string | yes | no | [optional] — complexvalue companion |
|
|
178
|
+
| `Metadata` | complexvalue | yes | no | [optional] |
|
|
179
|
+
| `ManageableState` | picklist | yes | yes | [optional] |
|
|
180
|
+
| `IsDeleted` | boolean | no | yes | [optional] |
|
|
181
|
+
| `CreatedById` | reference | no | yes | [optional] |
|
|
182
|
+
| `CreatedDate` | datetime | no | yes | [optional] |
|
|
183
|
+
| `LastModifiedById` | reference | no | yes | [optional] |
|
|
184
|
+
| `LastModifiedDate` | datetime | no | yes | [optional] |
|
|
185
|
+
| `SystemModstamp` | datetime | no | yes | [optional] |
|
|
186
|
+
|
|
187
|
+
**Single-row requirement for complexvalue columns:** `Metadata` and
|
|
188
|
+
`FullName` on `ApexClass` follow the standard `MALFORMED_QUERY` rule —
|
|
189
|
+
batch IN-clause SELECTs that return ≥2 rows fail when these two are
|
|
190
|
+
selected. `Body` + `SymbolTable` are the exception (batch works).
|
|
191
|
+
Comments in `assets/soql/apex_class_bodies_by_ids.soql` +
|
|
192
|
+
`apex_class_bodies_by_names.soql` pin this.
|
|
193
|
+
|
|
194
|
+
### `Flow` (Tooling) — Flow version body
|
|
195
|
+
|
|
196
|
+
Single-row retrieval required — `Metadata` and `FullName` are both
|
|
197
|
+
`complexvalue`. Fired once per `activeVersionId` returned by
|
|
198
|
+
`FlowDefinition`; parallelized via `ThreadPoolExecutor`.
|
|
199
|
+
|
|
200
|
+
**Filterability quirk:** `FullName` is selectable but **not filterable**
|
|
201
|
+
(`INVALID_FIELD: field 'FullName' can not be filtered in a query call`).
|
|
202
|
+
Filter by `Id` instead.
|
|
203
|
+
|
|
204
|
+
| Name | Type | Nillable | Filterable | Tag |
|
|
205
|
+
|---|---|---|---|---|
|
|
206
|
+
| `Id` | id | no | yes | [mandatory] |
|
|
207
|
+
| `DefinitionId` | reference | no | yes | [mandatory] |
|
|
208
|
+
| `FullName` | string | yes | **no** | [optional] — complexvalue companion; not filterable |
|
|
209
|
+
| `Metadata` | complexvalue | yes | no | [optional] — full flow JSON (actionCalls, subflows, variables, decisions, formulas, assignments, apexPluginCalls) |
|
|
210
|
+
| `MasterLabel` | string | yes | yes | [optional] |
|
|
211
|
+
| `Description` | textarea | yes | no | [optional] |
|
|
212
|
+
| `VersionNumber` | int | yes | yes | [optional] |
|
|
213
|
+
| `ProcessType` | picklist | yes | yes | [optional] |
|
|
214
|
+
| `Status` | picklist | yes | yes | [optional] |
|
|
215
|
+
| `ApiVersion` | double | yes | yes | [optional] |
|
|
216
|
+
| `IsActive` | boolean | no | yes | [optional] |
|
|
217
|
+
| `IsTemplate` | boolean | no | yes | [optional] |
|
|
218
|
+
| `RunInMode` | picklist | yes | yes | [optional] |
|
|
219
|
+
| `Environments` | picklist | yes | yes | [optional] |
|
|
220
|
+
| `NamespacePrefix` | string | yes | yes | [optional] |
|
|
221
|
+
| `ManageableState` | picklist | yes | yes | [optional] |
|
|
222
|
+
| `OverriddenFlowId` | reference | yes | yes | [optional] |
|
|
223
|
+
| `SourceTemplateId` | reference | yes | yes | [optional] |
|
|
224
|
+
| `TriggerType` | picklist | yes | yes | [optional] |
|
|
225
|
+
| `IsDeleted` | boolean | no | yes | [optional] |
|
|
226
|
+
| `CreatedById` | reference | no | yes | [optional] |
|
|
227
|
+
| `CreatedDate` | datetime | no | yes | [optional] |
|
|
228
|
+
| `LastModifiedById` | reference | no | yes | [optional] |
|
|
229
|
+
| `LastModifiedDate` | datetime | no | yes | [optional] |
|
|
230
|
+
| `SystemModstamp` | datetime | no | yes | [optional] |
|
|
231
|
+
| `InstalledPackageName` | string | yes | yes | [optional] |
|
|
232
|
+
|
|
233
|
+
**Single-row requirement:** `Metadata` and `FullName` force
|
|
234
|
+
`WHERE Id = '<version_id>'`. The SOQL asset `flow_metadata_by_id.soql`
|
|
235
|
+
encodes this as a single `Id = '...'` predicate.
|
|
236
|
+
|
|
237
|
+
### `FlowDefinition` (Tooling) — Flow versioning index
|
|
238
|
+
|
|
239
|
+
Two-hop feeder to `Flow`. Batch IN-clause works. Returns
|
|
240
|
+
`ActiveVersionId` + `LatestVersionId` — the skill prefers active.
|
|
241
|
+
|
|
242
|
+
| Name | Type | Nillable | Filterable | Tag |
|
|
243
|
+
|---|---|---|---|---|
|
|
244
|
+
| `Id` | id | no | yes | [mandatory] |
|
|
245
|
+
| `DeveloperName` | string | no | yes | [mandatory] |
|
|
246
|
+
| `ActiveVersionId` | reference | yes | yes | [optional] — FK to `Flow.Id` |
|
|
247
|
+
| `LatestVersionId` | reference | yes | yes | [optional] — FK to `Flow.Id` |
|
|
248
|
+
| `MasterLabel` | string | yes | yes | [optional] |
|
|
249
|
+
| `Description` | textarea | yes | no | [optional] |
|
|
250
|
+
| `NamespacePrefix` | string | yes | yes | [optional] |
|
|
251
|
+
| `ManageableState` | picklist | yes | yes | [optional] |
|
|
252
|
+
| `Metadata` | complexvalue | yes | no | [optional] — definition-level metadata (may carry what the Flow hop provides on some orgs) |
|
|
253
|
+
| `FullName` | string | yes | no | [optional] |
|
|
254
|
+
| `IsDeleted` | boolean | no | yes | [optional] |
|
|
255
|
+
| `CreatedById` | reference | no | yes | [optional] |
|
|
256
|
+
| `CreatedDate` | datetime | no | yes | [optional] |
|
|
257
|
+
| `LastModifiedById` | reference | no | yes | [optional] |
|
|
258
|
+
| `LastModifiedDate` | datetime | no | yes | [optional] |
|
|
259
|
+
| `SystemModstamp` | datetime | no | yes | [optional] |
|
|
260
|
+
|
|
261
|
+
### `GenAiPlannerDefinition` (Tooling) — planner root
|
|
262
|
+
|
|
263
|
+
Entry query for the tree. Matched by `DeveloperName` (the
|
|
264
|
+
`<genAiPlannerName>` extracted from the Bot metadata retrieve). The
|
|
265
|
+
`PlannerType` picklist is the classifier for classic ReAct vs NGA.
|
|
266
|
+
|
|
267
|
+
**Seven-value `PlannerType` picklist** (verified consistent across
|
|
268
|
+
`my-org-alias`, `my-org-alias-2`, `my-org-alias-3`): grouped by
|
|
269
|
+
namespace — `AiCopilot__*` = classic ReAct family,
|
|
270
|
+
`Atlas__*` = NGA family. `startswith("Atlas__")` is a clean
|
|
271
|
+
classic-vs-NGA discriminator.
|
|
272
|
+
|
|
273
|
+
| Name | Type | Nillable | Filterable | Tag |
|
|
274
|
+
|---|---|---|---|---|
|
|
275
|
+
| `Id` | id | no | yes | [mandatory] |
|
|
276
|
+
| `DeveloperName` | string | no | yes | [mandatory] |
|
|
277
|
+
| `PlannerType` | picklist | yes | yes | [mandatory] |
|
|
278
|
+
| `MasterLabel` | string | yes | yes | [optional] |
|
|
279
|
+
| `Description` | textarea | yes | no | [optional] |
|
|
280
|
+
| `Capabilities` | textarea | yes | no | [optional] — null in every row tested on both classic + NGA |
|
|
281
|
+
| `AgentGraph` | complexvalue | yes | no | [optional] — null in every row tested; single-row rule still applies |
|
|
282
|
+
| `NamespacePrefix` | string | yes | yes | [optional] |
|
|
283
|
+
| `ManageableState` | picklist | yes | yes | [optional] |
|
|
284
|
+
| `Metadata` | complexvalue | yes | no | [optional] |
|
|
285
|
+
| `FullName` | string | yes | no | [optional] |
|
|
286
|
+
| `IsDeleted` | boolean | no | yes | [optional] |
|
|
287
|
+
| `CreatedById` | reference | no | yes | [optional] |
|
|
288
|
+
| `CreatedDate` | datetime | no | yes | [optional] |
|
|
289
|
+
| `LastModifiedById` | reference | no | yes | [optional] |
|
|
290
|
+
| `LastModifiedDate` | datetime | no | yes | [optional] |
|
|
291
|
+
| `SystemModstamp` | datetime | no | yes | [optional] |
|
|
292
|
+
|
|
293
|
+
**Single-row requirement for complexvalue columns:** `AgentGraph`,
|
|
294
|
+
`Metadata`, `FullName` — select individually; entry query pins
|
|
295
|
+
`WHERE DeveloperName = '...' LIMIT 1`.
|
|
296
|
+
|
|
297
|
+
### `GenAiPluginDefinition` (Tooling) — topics
|
|
298
|
+
|
|
299
|
+
All topics for a planner via `WHERE PlannerId = :plannerId`. Carries
|
|
300
|
+
`PluginType` + `Scope` for topic classification and `CanEscalate` /
|
|
301
|
+
`IsLocal` for behavior flags.
|
|
302
|
+
|
|
303
|
+
| Name | Type | Nillable | Filterable | Tag |
|
|
304
|
+
|---|---|---|---|---|
|
|
305
|
+
| `Id` | id | no | yes | [mandatory] |
|
|
306
|
+
| `DeveloperName` | string | no | yes | [mandatory] |
|
|
307
|
+
| `PluginType` | picklist | yes | yes | [optional] — topic type classifier |
|
|
308
|
+
| `Scope` | textarea | yes | no | [optional] — natural-language topic scope |
|
|
309
|
+
| `MasterLabel` | string | yes | yes | [optional] |
|
|
310
|
+
| `Description` | textarea | yes | no | [optional] |
|
|
311
|
+
| `CanEscalate` | boolean | yes | yes | [optional] |
|
|
312
|
+
| `IsLocal` | boolean | yes | yes | [optional] |
|
|
313
|
+
| `Source` | picklist | yes | yes | [optional] |
|
|
314
|
+
| `ParentId` | reference | yes | yes | [optional] — planner FK (sometimes referred to as `PlannerId` in SOQL filter clauses) |
|
|
315
|
+
| `LocalDeveloperName` | string | yes | yes | [optional] |
|
|
316
|
+
| `Language` | picklist | yes | yes | [optional] |
|
|
317
|
+
| `NamespacePrefix` | string | yes | yes | [optional] |
|
|
318
|
+
| `ManageableState` | picklist | yes | yes | [optional] |
|
|
319
|
+
| `Metadata` | complexvalue | yes | no | [optional] |
|
|
320
|
+
| `FullName` | string | yes | no | [optional] |
|
|
321
|
+
| `ClassificationDescription` | textarea | yes | no | [optional] |
|
|
322
|
+
| `GenAiFunctionInvoker` | string | yes | yes | [optional] |
|
|
323
|
+
| `IsDeleted` | boolean | no | yes | [optional] |
|
|
324
|
+
| `CreatedById` | reference | no | yes | [optional] |
|
|
325
|
+
| `CreatedDate` | datetime | no | yes | [optional] |
|
|
326
|
+
| `LastModifiedById` | reference | no | yes | [optional] |
|
|
327
|
+
|
|
328
|
+
**Single-row requirement:** `Metadata` + `FullName` require per-id
|
|
329
|
+
retrieval. The production path doesn't SELECT `Metadata` on this sObject
|
|
330
|
+
(see `plugins_by_planner.soql`) — it pulls `Scope` + scalar fields
|
|
331
|
+
instead, which batch-safely over `PlannerId = :id`.
|
|
332
|
+
|
|
333
|
+
### `GenAiPluginFunctionDef` (Tooling) — plugin-function join
|
|
334
|
+
|
|
335
|
+
Join table: `GenAiPluginDefinition` → `GenAiFunctionDefinition`. Batch-
|
|
336
|
+
safe on `PluginId IN (...)`.
|
|
337
|
+
|
|
338
|
+
| Name | Type | Nillable | Filterable | Tag |
|
|
339
|
+
|---|---|---|---|---|
|
|
340
|
+
| `Id` | id | no | yes | [mandatory] |
|
|
341
|
+
| `PluginId` | reference | no | yes | [mandatory] |
|
|
342
|
+
| `Function` | picklist | yes | yes | [optional] — references `GenAiFunctionDefinition.Id` |
|
|
343
|
+
| `NamespacePrefix` | string | yes | yes | [optional] |
|
|
344
|
+
| `ManageableState` | picklist | yes | yes | [optional] |
|
|
345
|
+
| `IsDeleted` | boolean | no | yes | [optional] |
|
|
346
|
+
| `CreatedById` | reference | no | yes | [optional] |
|
|
347
|
+
| `CreatedDate` | datetime | no | yes | [optional] |
|
|
348
|
+
| `LastModifiedById` | reference | no | yes | [optional] |
|
|
349
|
+
| `SystemModstamp` | datetime | no | yes | [optional] |
|
|
350
|
+
|
|
351
|
+
### `GenAiPluginInstructionDef` (Tooling) — per-topic instructions
|
|
352
|
+
|
|
353
|
+
Per-topic instruction text + ordering. Batch-safe on
|
|
354
|
+
`GenAiPluginDefinitionId IN (...)`.
|
|
355
|
+
|
|
356
|
+
| Name | Type | Nillable | Filterable | Tag |
|
|
357
|
+
|---|---|---|---|---|
|
|
358
|
+
| `Id` | id | no | yes | [mandatory] |
|
|
359
|
+
| `GenAiPluginDefinitionId` | reference | no | yes | [mandatory] |
|
|
360
|
+
| `DeveloperName` | string | no | yes | [optional] |
|
|
361
|
+
| `MasterLabel` | string | yes | yes | [optional] |
|
|
362
|
+
| `Description` | textarea | yes | no | [optional] — the instruction text |
|
|
363
|
+
| `SortOrder` | int | yes | yes | [optional] |
|
|
364
|
+
| `Language` | picklist | yes | yes | [optional] |
|
|
365
|
+
| `NamespacePrefix` | string | yes | yes | [optional] |
|
|
366
|
+
| `ManageableState` | picklist | yes | yes | [optional] |
|
|
367
|
+
| `FullName` | string | yes | no | [optional] |
|
|
368
|
+
| `Metadata` | complexvalue | yes | no | [optional] |
|
|
369
|
+
| `IsDeleted` | boolean | no | yes | [optional] |
|
|
370
|
+
| `CreatedById` | reference | no | yes | [optional] |
|
|
371
|
+
| `CreatedDate` | datetime | no | yes | [optional] |
|
|
372
|
+
| `LastModifiedById` | reference | no | yes | [optional] |
|
|
373
|
+
|
|
374
|
+
**Single-row requirement:** `Metadata` + `FullName` complexvalue pair;
|
|
375
|
+
the production SOQL omits them (scalar fields batch-safely).
|
|
376
|
+
|
|
377
|
+
### `GenAiFunctionDefinition` (Tooling) — actions
|
|
378
|
+
|
|
379
|
+
The actions. Combined single-query fetches both bundle-scope (`PlannerId`)
|
|
380
|
+
and topic-scope (`PluginId IN`) functions. `InvocationTargetType`
|
|
381
|
+
+ `InvocationTarget` route to the downstream fetch (Flow, Apex, prompt,
|
|
382
|
+
standard invocable).
|
|
383
|
+
|
|
384
|
+
**`InvocationTarget` format varies by planner shape** (the ID-prefix
|
|
385
|
+
router lives in `scripts/resolve_invocation_target.py`):
|
|
386
|
+
- Classic ReAct: DeveloperName string (e.g. `AGNT_SetUserSelectedOption`).
|
|
387
|
+
- NGA: Salesforce 15/18-char Id (e.g. `01pVF...` = ApexClass,
|
|
388
|
+
`300VF...` = FlowDefinition, `0hf...` = GenAiPromptTemplate).
|
|
389
|
+
|
|
390
|
+
| Name | Type | Nillable | Filterable | Tag |
|
|
391
|
+
|---|---|---|---|---|
|
|
392
|
+
| `Id` | id | no | yes | [mandatory] |
|
|
393
|
+
| `DeveloperName` | string | no | yes | [mandatory] |
|
|
394
|
+
| `InvocationTarget` | string | yes | yes | [mandatory] |
|
|
395
|
+
| `InvocationTargetType` | picklist | yes | yes | [optional] — `flow` / `apex` / `standardInvocableAction` / `generatePromptResponse` |
|
|
396
|
+
| `MasterLabel` | string | yes | yes | [optional] |
|
|
397
|
+
| `Description` | textarea | yes | no | [optional] |
|
|
398
|
+
| `IsLocal` | boolean | yes | yes | [optional] |
|
|
399
|
+
| `IsConfirmationRequired` | boolean | yes | yes | [optional] |
|
|
400
|
+
| `IsIncludeInProgressIndicator` | boolean | yes | yes | [optional] |
|
|
401
|
+
| `ProgressIndicatorMessage` | string | yes | yes | [optional] |
|
|
402
|
+
| `Source` | picklist | yes | yes | [optional] |
|
|
403
|
+
| `PluginId` | reference | yes | yes | [optional] — topic-scope FK (null for bundle-scope functions) |
|
|
404
|
+
| `PlannerId` | reference | yes | yes | [optional] — bundle-scope FK (null on NGA — attachment is plugin-only) |
|
|
405
|
+
| `ParentId` | reference | yes | yes | [optional] |
|
|
406
|
+
| `LocalDeveloperName` | string | yes | yes | [optional] |
|
|
407
|
+
| `Language` | picklist | yes | yes | [optional] |
|
|
408
|
+
| `InvocationTargetApiName` | string | yes | yes | [optional] |
|
|
409
|
+
| `MissingValuePromptMessage` | string | yes | yes | [optional] |
|
|
410
|
+
| `NamespacePrefix` | string | yes | yes | [optional] |
|
|
411
|
+
| `ManageableState` | picklist | yes | yes | [optional] |
|
|
412
|
+
| `Metadata` | complexvalue | yes | no | [optional] |
|
|
413
|
+
| `FullName` | string | yes | no | [optional] |
|
|
414
|
+
| `IsDeleted` | boolean | no | yes | [optional] |
|
|
415
|
+
| `CreatedById` | reference | no | yes | [optional] |
|
|
416
|
+
| `CreatedDate` | datetime | no | yes | [optional] |
|
|
417
|
+
| `LastModifiedById` | reference | no | yes | [optional] |
|
|
418
|
+
|
|
419
|
+
**Single-row requirement:** `Metadata` + `FullName` complexvalue
|
|
420
|
+
columns; production SOQL omits both to keep the `PlannerId / PluginId IN`
|
|
421
|
+
batch path intact.
|
|
422
|
+
|
|
423
|
+
### `GenAiPlannerFunctionDef` (Tooling) — planner-bundle join
|
|
424
|
+
|
|
425
|
+
Bundle-scope join: planner → function. Analogous to
|
|
426
|
+
`GenAiPluginFunctionDef` but keyed on `PlannerId`. Batch-safe on
|
|
427
|
+
`PlannerId = :id`.
|
|
428
|
+
|
|
429
|
+
| Name | Type | Nillable | Filterable | Tag |
|
|
430
|
+
|---|---|---|---|---|
|
|
431
|
+
| `Id` | id | no | yes | [mandatory] |
|
|
432
|
+
| `PlannerId` | reference | no | yes | [mandatory] |
|
|
433
|
+
| `Plugin` | picklist | yes | yes | [optional] — references plugin DeveloperName / id |
|
|
434
|
+
| `NamespacePrefix` | string | yes | yes | [optional] |
|
|
435
|
+
| `ManageableState` | picklist | yes | yes | [optional] |
|
|
436
|
+
| `IsDeleted` | boolean | no | yes | [optional] |
|
|
437
|
+
| `CreatedById` | reference | no | yes | [optional] |
|
|
438
|
+
| `CreatedDate` | datetime | no | yes | [optional] |
|
|
439
|
+
| `LastModifiedById` | reference | no | yes | [optional] |
|
|
440
|
+
| `SystemModstamp` | datetime | no | yes | [optional] |
|
|
441
|
+
|
|
442
|
+
### `GenAiPlannerAttrDefinition` (Tooling) — parameter mappings
|
|
443
|
+
|
|
444
|
+
The `attributeMappings` — I/O parameter bindings between actions and
|
|
445
|
+
the planner. **Polymorphic `ParentId`**: points at either a
|
|
446
|
+
`GenAiFunctionDefinition` (function-scope mappings) or
|
|
447
|
+
`GenAiPlannerDefinition` (bundle-scope mappings). The production SOQL
|
|
448
|
+
passes the union of function ids + planner id via
|
|
449
|
+
`WHERE ParentId IN (:function_ids, :planner_id)`.
|
|
450
|
+
|
|
451
|
+
`MappingType` is the `input` / `output` picklist; `ParameterName`
|
|
452
|
+
identifies the bound variable on the planner side.
|
|
453
|
+
|
|
454
|
+
| Name | Type | Nillable | Filterable | Tag |
|
|
455
|
+
|---|---|---|---|---|
|
|
456
|
+
| `Id` | id | no | yes | [mandatory] |
|
|
457
|
+
| `ParentId` | reference | yes | yes | [optional] — polymorphic: GenAiFunctionDefinition \| GenAiPlannerDefinition |
|
|
458
|
+
| `DeveloperName` | string | no | yes | [optional] |
|
|
459
|
+
| `MasterLabel` | string | yes | yes | [optional] |
|
|
460
|
+
| `Description` | textarea | yes | no | [optional] |
|
|
461
|
+
| `MappingType` | picklist | yes | yes | [optional] — `input` / `output` |
|
|
462
|
+
| `ParameterName` | string | yes | yes | [optional] |
|
|
463
|
+
| `Language` | picklist | yes | yes | [optional] |
|
|
464
|
+
| `NamespacePrefix` | string | yes | yes | [optional] |
|
|
465
|
+
| `ManageableState` | picklist | yes | yes | [optional] |
|
|
466
|
+
| `IsDeleted` | boolean | no | yes | [optional] |
|
|
467
|
+
| `CreatedById` | reference | no | yes | [optional] |
|
|
468
|
+
| `CreatedDate` | datetime | no | yes | [optional] |
|
|
469
|
+
| `LastModifiedById` | reference | no | yes | [optional] |
|
|
470
|
+
|
|
471
|
+
---
|
|
472
|
+
|
|
473
|
+
## Known picklist values (live-API verified, 2026-05-02)
|
|
474
|
+
|
|
475
|
+
| sObject | Field | Values |
|
|
476
|
+
|---|---|---|
|
|
477
|
+
| `GenAiPlannerDefinition` | `PlannerType` | Seven values split by namespace. Classic family: `AiCopilot__ReAct`, `AiCopilot__ReactAiPlannerV1`, `AiCopilot__SequentialPlannerIntentClassifier`. NGA family: `Atlas__ConcurrentMultiAgentOrchestration`, `Atlas__AnthropicCompatibleV1`, `Atlas__AtlasReactV1`, `Atlas__MainSubAgent` (exact set may vary by release — `startswith("Atlas__")` is the stable classic-vs-NGA discriminator). |
|
|
478
|
+
| `GenAiFunctionDefinition` | `InvocationTargetType` | `flow`, `apex`, `standardInvocableAction`, `generatePromptResponse` |
|
|
479
|
+
| `GenAiPlannerAttrDefinition` | `MappingType` | `input`, `output` |
|
|
480
|
+
| `BotVersion` | `Status` | `Inactive`, `Active` (active = currently published version) |
|
|
481
|
+
|
|
482
|
+
---
|
|
483
|
+
|
|
484
|
+
## Mandatory-field enforcement
|
|
485
|
+
|
|
486
|
+
The `[mandatory]` tags above mirror `scripts/probe_channels.py`:
|
|
487
|
+
|
|
488
|
+
```python
|
|
489
|
+
MANDATORY_FIELDS: Dict[str, set[str]] = {
|
|
490
|
+
"BotDefinition": {"Id", "DeveloperName"},
|
|
491
|
+
"BotVersion": {"Id", "BotDefinitionId"},
|
|
492
|
+
"ApexClass": {"Id", "Name"},
|
|
493
|
+
"Flow": {"Id", "MasterLabel", "DefinitionId"},
|
|
494
|
+
"FlowDefinition": {"Id", "DeveloperName"},
|
|
495
|
+
"GenAiPlannerDefinition": {"Id", "DeveloperName", "PlannerType"},
|
|
496
|
+
"GenAiPluginDefinition": {"Id", "DeveloperName"},
|
|
497
|
+
"GenAiFunctionDefinition": {"Id", "DeveloperName", "InvocationTarget"},
|
|
498
|
+
"GenAiPlannerAttrDefinition": {"Id"},
|
|
499
|
+
}
|
|
500
|
+
```
|
|
501
|
+
|
|
502
|
+
`GenAiPluginFunctionDef`, `GenAiPluginInstructionDef`, and
|
|
503
|
+
`GenAiPlannerFunctionDef` don't appear in `MANDATORY_FIELDS` — they're
|
|
504
|
+
join tables whose `Id` + FK columns are present by construction on
|
|
505
|
+
every query. The per-sObject tables above tag their FK columns as
|
|
506
|
+
`[mandatory]` because the SOQL assets SELECT them; a probe that saw
|
|
507
|
+
them missing would still flip `PROBE_FAILED` via the `Id` check, but
|
|
508
|
+
the tag reflects "the skill's SOQL will fail if this column is gone."
|
|
509
|
+
|
|
510
|
+
When a Salesforce quarterly release renames or removes a
|
|
511
|
+
`[mandatory]` field, run with `--reprobe` to force a fresh describe and
|
|
512
|
+
surface the drift cleanly.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# Shared path / fs-guard / sql helpers for investigating-agentforce-architecture.
|