@salesforce/afv-skills 1.13.0 → 1.15.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 +3 -3
- 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-ui-bundle-app/SKILL.md +33 -8
- package/skills/generating-custom-application/SKILL.md +1 -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-ui-bundle-custom-app/SKILL.md +93 -0
- package/skills/generating-ui-bundle-custom-app/docs/configure-metadata-custom-application.md +70 -0
- package/skills/generating-ui-bundle-metadata/SKILL.md +39 -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/reviewing-lwc-mobile-offline/SKILL.md +168 -0
- package/skills/reviewing-lwc-mobile-offline/references/grounding.md +7 -0
- package/skills/reviewing-lwc-mobile-offline/references/inline-graphql.md +43 -0
- package/skills/reviewing-lwc-mobile-offline/references/komaci-eslint.md +125 -0
- package/skills/reviewing-lwc-mobile-offline/references/lwc-if.md +78 -0
- package/skills/reviewing-lwc-mobile-offline/scripts/komaci.config.mjs +18 -0
- package/skills/reviewing-lwc-mobile-offline/scripts/package.json +10 -0
- package/skills/reviewing-lwc-mobile-offline/scripts/run-komaci.sh +69 -0
- 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/using-mobile-native-capabilities/SKILL.md +182 -0
- package/skills/using-mobile-native-capabilities/references/app-review.md +68 -0
- package/skills/using-mobile-native-capabilities/references/ar-space-capture.md +125 -0
- package/skills/using-mobile-native-capabilities/references/barcode-scanner.md +219 -0
- package/skills/using-mobile-native-capabilities/references/base-capability.md +22 -0
- package/skills/using-mobile-native-capabilities/references/biometrics.md +90 -0
- package/skills/using-mobile-native-capabilities/references/calendar.md +213 -0
- package/skills/using-mobile-native-capabilities/references/contacts.md +232 -0
- package/skills/using-mobile-native-capabilities/references/document-scanner.md +342 -0
- package/skills/using-mobile-native-capabilities/references/geofencing.md +123 -0
- package/skills/using-mobile-native-capabilities/references/location.md +158 -0
- package/skills/using-mobile-native-capabilities/references/mobile-capabilities.md +30 -0
- package/skills/using-mobile-native-capabilities/references/nfc.md +181 -0
- package/skills/using-mobile-native-capabilities/references/payments.md +95 -0
- 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,44 @@
|
|
|
1
|
+
-- Additional per-request metadata — reusable for any WHERE filter.
|
|
2
|
+
-- DMO: GenAIGtwyRequestMetadata__dlm
|
|
3
|
+
--
|
|
4
|
+
-- Placeholders (substituted by scripts/dc.py.load_sql):
|
|
5
|
+
-- WHERE_CLAUSE — the filter expression, no "WHERE" keyword
|
|
6
|
+
-- ORDER_BY — full "ORDER BY <col>" or empty string
|
|
7
|
+
--
|
|
8
|
+
-- Child of GenAIGatewayRequest__dlm. Holds typed metadata rows for a
|
|
9
|
+
-- request — observed values include `metadataType__c = 'ToolCall'` and
|
|
10
|
+
-- `feature__c = 'plannerservice'`, so this is where planner/tool-call
|
|
11
|
+
-- metadata on a gateway request lives.
|
|
12
|
+
--
|
|
13
|
+
-- No `ssot__` prefix — fields end in `__c` directly.
|
|
14
|
+
--
|
|
15
|
+
-- Joined via `parent__c = GatewayRequest.gatewayRequestId__c`.
|
|
16
|
+
-- Join direction verified live: sampled row's parent__c matched exactly
|
|
17
|
+
-- one row in GenAIGatewayRequest__dlm. The table is usually heavily
|
|
18
|
+
-- populated on orgs with Trust Layer gateway logging enabled.
|
|
19
|
+
|
|
20
|
+
SELECT
|
|
21
|
+
id__c,
|
|
22
|
+
parent__c,
|
|
23
|
+
metadataType__c,
|
|
24
|
+
metadata__c,
|
|
25
|
+
feature__c,
|
|
26
|
+
timestamp__c,
|
|
27
|
+
orgId__c,
|
|
28
|
+
cloud__c
|
|
29
|
+
FROM GenAIGtwyRequestMetadata__dlm
|
|
30
|
+
WHERE {{WHERE_CLAUSE}}
|
|
31
|
+
{{ORDER_BY}};
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
-- ============================================================================
|
|
35
|
+
-- EXAMPLE WHERE clauses (pass via where_clause=)
|
|
36
|
+
-- ============================================================================
|
|
37
|
+
|
|
38
|
+
-- All metadata rows for a set of gateway request ids
|
|
39
|
+
-- WHERE → parent__c IN ('<req_id1>','<req_id2>',...)
|
|
40
|
+
-- ORDER BY → ORDER BY timestamp__c
|
|
41
|
+
|
|
42
|
+
-- Only ToolCall-type metadata
|
|
43
|
+
-- WHERE → parent__c IN ('<req_id1>','<req_id2>')
|
|
44
|
+
-- AND metadataType__c = 'ToolCall'
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
-- Gateway request tags — k/v metadata attached to a gateway request.
|
|
2
|
+
-- DMO: GenAIGatewayRequestTag__dlm
|
|
3
|
+
--
|
|
4
|
+
-- Placeholders (substituted by scripts/dc.py.load_sql):
|
|
5
|
+
-- WHERE_CLAUSE — the filter expression, no "WHERE" keyword
|
|
6
|
+
-- ORDER_BY — full "ORDER BY <col>" or empty string
|
|
7
|
+
--
|
|
8
|
+
-- Many rows per request. Common tags include:
|
|
9
|
+
-- - `prompt_template_dev_name` → which prompt template was used
|
|
10
|
+
-- - `user_utterance` → raw user input that triggered this request
|
|
11
|
+
--
|
|
12
|
+
-- Joined via `parent__c = GatewayRequest.gatewayRequestId__c`.
|
|
13
|
+
-- No `ssot__` prefix — fields end in `__c` directly.
|
|
14
|
+
|
|
15
|
+
SELECT
|
|
16
|
+
id__c,
|
|
17
|
+
parent__c,
|
|
18
|
+
tag__c,
|
|
19
|
+
tagValue__c,
|
|
20
|
+
timestamp__c,
|
|
21
|
+
orgId__c,
|
|
22
|
+
cloud__c
|
|
23
|
+
FROM GenAIGatewayRequestTag__dlm
|
|
24
|
+
WHERE {{WHERE_CLAUSE}}
|
|
25
|
+
{{ORDER_BY}};
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
-- ============================================================================
|
|
29
|
+
-- EXAMPLE WHERE clauses (pass via where_clause=)
|
|
30
|
+
-- ============================================================================
|
|
31
|
+
|
|
32
|
+
-- All tags for a set of request ids
|
|
33
|
+
-- WHERE → parent__c IN ('<req_id1>','<req_id2>',...)
|
|
34
|
+
-- ORDER BY → ORDER BY timestamp__c
|
|
35
|
+
|
|
36
|
+
-- Only `prompt_template_dev_name` tags
|
|
37
|
+
-- WHERE → parent__c IN ('<req_id1>','<req_id2>')
|
|
38
|
+
-- AND tag__c = 'prompt_template_dev_name'
|
|
39
|
+
|
|
40
|
+
-- Find requests where the user utterance matched a pattern
|
|
41
|
+
-- WHERE → tag__c = 'user_utterance'
|
|
42
|
+
-- AND tagValue__c LIKE '%refund%'
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
-- Gateway requests — one row per LLM request at the GenAI Gateway.
|
|
2
|
+
-- DMO: GenAIGatewayRequest__dlm
|
|
3
|
+
--
|
|
4
|
+
-- Placeholders (substituted by scripts/dc.py.load_sql):
|
|
5
|
+
-- WHERE_CLAUSE — the filter expression, no "WHERE" keyword
|
|
6
|
+
-- ORDER_BY — full "ORDER BY <col>" or empty string
|
|
7
|
+
--
|
|
8
|
+
-- Richer than GenAIGeneration — carries the actual prompt text, token counts,
|
|
9
|
+
-- model params (temperature/penalties), session/user IDs, bot version, and
|
|
10
|
+
-- the masked-prompt variant.
|
|
11
|
+
--
|
|
12
|
+
-- NOTE: No `ssot__` prefix — fields end in `__c` directly.
|
|
13
|
+
--
|
|
14
|
+
-- sessionId__c storage format (verified live): the value is stored as a
|
|
15
|
+
-- literal 40-char string INCLUDING surrounding double-quotes, e.g.
|
|
16
|
+
-- sessionId__c = "<session_uuid>"
|
|
17
|
+
-- Non-session features (prompt-builder previews, eval harnesses, etc.) store
|
|
18
|
+
-- the literal sentinel "no_session". Exact-match queries MUST include the
|
|
19
|
+
-- double-quotes:
|
|
20
|
+
-- WHERE sessionId__c = '"<session_uuid>"'
|
|
21
|
+
-- Or use LIKE with wildcards (robust against format variants):
|
|
22
|
+
-- WHERE sessionId__c LIKE '%<session_uuid>%'
|
|
23
|
+
-- Raw-UUID exact match returns 0 rows — the quotes are part of the stored value.
|
|
24
|
+
--
|
|
25
|
+
-- Forward join path from a session:
|
|
26
|
+
-- Session.ssot__Id__c → GatewayRequest.sessionId__c (LIKE or quoted match)
|
|
27
|
+
-- This is the authoritative and only supported entry point. GatewayRequest is
|
|
28
|
+
-- then the parent for all downstream audit-chain children — Response (via
|
|
29
|
+
-- generationRequestId__c), Tag/ObjRecord/Metadata/LLM (via parent__c).
|
|
30
|
+
-- See `scripts/fetch_dc.py` wave 3 and `references/dc_dmo_fields.md` "Cross-DMO
|
|
31
|
+
-- join map" for the full forward tree.
|
|
32
|
+
|
|
33
|
+
SELECT
|
|
34
|
+
gatewayRequestId__c,
|
|
35
|
+
generationGroupId__c,
|
|
36
|
+
sessionId__c,
|
|
37
|
+
userId__c,
|
|
38
|
+
botVersionId__c,
|
|
39
|
+
plannerId__c,
|
|
40
|
+
feature__c,
|
|
41
|
+
appType__c,
|
|
42
|
+
model__c,
|
|
43
|
+
provider__c,
|
|
44
|
+
promptTemplateDevName__c,
|
|
45
|
+
promptTemplateVersionNo__c,
|
|
46
|
+
prompt__c,
|
|
47
|
+
maskedPrompt__c,
|
|
48
|
+
parameters__c,
|
|
49
|
+
temperature__c,
|
|
50
|
+
frequencyPenalty__c,
|
|
51
|
+
presencePenalty__c,
|
|
52
|
+
stopSequences__c,
|
|
53
|
+
numGenerations__c,
|
|
54
|
+
promptTokens__c,
|
|
55
|
+
completionTokens__c,
|
|
56
|
+
totalTokens__c,
|
|
57
|
+
enableInputSafetyScoring__c,
|
|
58
|
+
enableOutputSafetyScoring__c,
|
|
59
|
+
enablePiiMasking__c,
|
|
60
|
+
timestamp__c,
|
|
61
|
+
orgId__c,
|
|
62
|
+
cloud__c
|
|
63
|
+
FROM GenAIGatewayRequest__dlm
|
|
64
|
+
WHERE {{WHERE_CLAUSE}}
|
|
65
|
+
{{ORDER_BY}};
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
-- ============================================================================
|
|
69
|
+
-- EXAMPLE WHERE clauses (pass via where_clause=)
|
|
70
|
+
-- ============================================================================
|
|
71
|
+
|
|
72
|
+
-- Requests for one session (direct FK; note the mandatory double-quoted form).
|
|
73
|
+
-- Two equivalent WHERE forms — both verified live, both return the same rows:
|
|
74
|
+
-- WHERE → sessionId__c = '"<session_id>"' (exact match on quoted string)
|
|
75
|
+
-- WHERE → sessionId__c LIKE '%<session_id>%' (format-tolerant)
|
|
76
|
+
-- ORDER BY → ORDER BY timestamp__c
|
|
77
|
+
|
|
78
|
+
-- Requests for a specific set of gatewayRequestIds (e.g. narrowing after a
|
|
79
|
+
-- session fetch, or lookup by ids harvested from another query)
|
|
80
|
+
-- WHERE → gatewayRequestId__c IN ('<req_id1>','<req_id2>',...)
|
|
81
|
+
|
|
82
|
+
-- All requests for a bot version in a time window
|
|
83
|
+
-- WHERE → botVersionId__c = '<version_id>'
|
|
84
|
+
-- AND timestamp__c >= '<iso_cutoff>'
|
|
85
|
+
-- ORDER BY → ORDER BY timestamp__c DESC
|
|
86
|
+
|
|
87
|
+
-- Requests using a specific prompt template
|
|
88
|
+
-- WHERE → promptTemplateDevName__c = '<template_dev_name>'
|
|
89
|
+
-- AND timestamp__c >= '<iso_cutoff>'
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
-- Gateway responses — one row per LLM call response at the GenAI Gateway.
|
|
2
|
+
-- DMO: GenAIGatewayResponse__dlm
|
|
3
|
+
--
|
|
4
|
+
-- Placeholders (substituted by scripts/dc.py.load_sql):
|
|
5
|
+
-- WHERE_CLAUSE — the filter expression, no "WHERE" keyword
|
|
6
|
+
-- ORDER_BY — full "ORDER BY <col>" or empty string
|
|
7
|
+
--
|
|
8
|
+
-- FK shape (small table; documented for reference only):
|
|
9
|
+
-- generationRequestId__c = GatewayRequest.gatewayRequestId__c
|
|
10
|
+
-- generationResponseId__c = Step.ssot__GenAiGatewayResponseId__c
|
|
11
|
+
-- = Generation.generationResponseId__c
|
|
12
|
+
--
|
|
13
|
+
-- Forward join path from a session:
|
|
14
|
+
-- Session → GatewayRequest (sessionId__c LIKE)
|
|
15
|
+
-- → GatewayResponse (generationRequestId__c IN {gw_req_ids})
|
|
16
|
+
-- This is the canonical and only supported direction. 1:1 invariant holds
|
|
17
|
+
-- in live data — every GatewayRequest for a session produces one Response
|
|
18
|
+
-- row (modulo in-flight calls at fetch time).
|
|
19
|
+
--
|
|
20
|
+
-- NOTE: No `ssot__` prefix — fields end in `__c` directly.
|
|
21
|
+
|
|
22
|
+
SELECT
|
|
23
|
+
generationResponseId__c,
|
|
24
|
+
generationRequestId__c,
|
|
25
|
+
parameters__c,
|
|
26
|
+
timestamp__c,
|
|
27
|
+
orgId__c,
|
|
28
|
+
cloud__c
|
|
29
|
+
FROM GenAIGatewayResponse__dlm
|
|
30
|
+
WHERE {{WHERE_CLAUSE}}
|
|
31
|
+
{{ORDER_BY}};
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
-- ============================================================================
|
|
35
|
+
-- EXAMPLE WHERE clauses (pass via where_clause=)
|
|
36
|
+
-- ============================================================================
|
|
37
|
+
|
|
38
|
+
-- Forward: Responses for the session's gateway requests (primary use case)
|
|
39
|
+
-- WHERE → generationRequestId__c IN ('<req_id1>','<req_id2>',...)
|
|
40
|
+
-- ORDER BY → ORDER BY timestamp__c
|
|
41
|
+
|
|
42
|
+
-- Ad-hoc lookup by specific response ids (not used by the waterfall)
|
|
43
|
+
-- WHERE → generationResponseId__c IN ('<resp_id1>','<resp_id2>',...)
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
-- GenAI gateway generations — reusable for any WHERE filter.
|
|
2
|
+
-- DMO: GenAIGeneration__dlm
|
|
3
|
+
--
|
|
4
|
+
-- Placeholders (substituted by scripts/dc.py.load_sql):
|
|
5
|
+
-- WHERE_CLAUSE — the filter expression, no "WHERE" keyword
|
|
6
|
+
-- ORDER_BY — full "ORDER BY <col>" or empty string
|
|
7
|
+
--
|
|
8
|
+
-- One row per LLM call at the gateway (Trust Layer).
|
|
9
|
+
--
|
|
10
|
+
-- NOTE: No `ssot__` prefix on this DMO — fields end in `__c` directly.
|
|
11
|
+
--
|
|
12
|
+
-- Forward join to a session: this DMO has NO session/trace/turn column.
|
|
13
|
+
-- The only supported path is Step.ssot__GenerationId__c → generationId__c,
|
|
14
|
+
-- driven forward from the session:
|
|
15
|
+
-- Session → Interaction (ssot__AiAgentSessionId__c)
|
|
16
|
+
-- → Step (ssot__AiAgentInteractionId__c)
|
|
17
|
+
-- → Generation (step.ssot__GenerationId__c IN {generationId__c})
|
|
18
|
+
-- Pull step rows for the session's interactions first, collect non-empty
|
|
19
|
+
-- `ssot__GenerationId__c` values (LLM_STEP rows populate it; others are
|
|
20
|
+
-- NOT_SET), then query here with `generationId__c IN (...)`.
|
|
21
|
+
|
|
22
|
+
SELECT
|
|
23
|
+
generationId__c,
|
|
24
|
+
generationResponseId__c,
|
|
25
|
+
responseText__c,
|
|
26
|
+
maskedResponseText__c,
|
|
27
|
+
responseParameters__c,
|
|
28
|
+
feature__c,
|
|
29
|
+
timestamp__c,
|
|
30
|
+
orgId__c,
|
|
31
|
+
cloud__c
|
|
32
|
+
FROM GenAIGeneration__dlm
|
|
33
|
+
WHERE {{WHERE_CLAUSE}}
|
|
34
|
+
{{ORDER_BY}};
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
-- ============================================================================
|
|
38
|
+
-- EXAMPLE WHERE clauses (pass via where_clause=)
|
|
39
|
+
-- ============================================================================
|
|
40
|
+
|
|
41
|
+
-- Generations for a set of step generation ids
|
|
42
|
+
-- WHERE → generationId__c IN ('<gen_id1>','<gen_id2>',...)
|
|
43
|
+
-- ORDER BY → ORDER BY timestamp__c
|
|
44
|
+
|
|
45
|
+
-- Generations in a time window for one org
|
|
46
|
+
-- WHERE → orgId__c = '<org_id_18>'
|
|
47
|
+
-- AND timestamp__c >= '<iso_window_start>'
|
|
48
|
+
-- AND timestamp__c < '<iso_window_end>'
|
|
49
|
+
-- ORDER BY → ORDER BY timestamp__c
|
|
50
|
+
|
|
51
|
+
-- Filter by feature (e.g. Copilot vs guardrails)
|
|
52
|
+
-- WHERE → feature__c = 'CopilotForDigitalChannels'
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
-- Session interactions (turns + session-end event) — reusable for any WHERE.
|
|
2
|
+
-- DMO: ssot__AIAgentInteraction__dlm
|
|
3
|
+
--
|
|
4
|
+
-- Placeholders (substituted by scripts/dc.py.load_sql):
|
|
5
|
+
-- WHERE_CLAUSE — the filter expression, no "WHERE" keyword
|
|
6
|
+
-- ORDER_BY — full "ORDER BY <col>" or empty string
|
|
7
|
+
--
|
|
8
|
+
-- One row per turn plus one SESSION_END row per session.
|
|
9
|
+
-- Type enum: TURN | SESSION_END.
|
|
10
|
+
--
|
|
11
|
+
-- Casing gotcha: DMO name uses `AIAgent` (uppercase AI). Field names use
|
|
12
|
+
-- `AiAgent` (lowercase i). See references/dc_dmo_fields.md.
|
|
13
|
+
--
|
|
14
|
+
-- trace_id gotcha: `ssot__TelemetryTraceId__c` is often empty on real orgs
|
|
15
|
+
-- (verified live). The runtime trace_id lives inside
|
|
16
|
+
-- `ssot__AttributeText__c` as HTML-escaped JSON, key `internalTraceId`.
|
|
17
|
+
-- Consumers must `html.unescape()` + regex-extract. Used to join with
|
|
18
|
+
-- GenAIGeneration (generationId via Step) and TelemetryTraceSpan.
|
|
19
|
+
|
|
20
|
+
SELECT
|
|
21
|
+
ssot__Id__c,
|
|
22
|
+
ssot__AiAgentSessionId__c,
|
|
23
|
+
ssot__AiAgentInteractionType__c,
|
|
24
|
+
ssot__TopicApiName__c,
|
|
25
|
+
ssot__StartTimestamp__c,
|
|
26
|
+
ssot__EndTimestamp__c,
|
|
27
|
+
ssot__PrevInteractionId__c,
|
|
28
|
+
ssot__SessionOwnerId__c,
|
|
29
|
+
ssot__IndividualId__c,
|
|
30
|
+
ssot__InternalOrganizationId__c,
|
|
31
|
+
ssot__TelemetryTraceId__c,
|
|
32
|
+
ssot__TelemetryTraceSpanId__c,
|
|
33
|
+
ssot__AttributeText__c
|
|
34
|
+
FROM ssot__AIAgentInteraction__dlm
|
|
35
|
+
WHERE {{WHERE_CLAUSE}}
|
|
36
|
+
{{ORDER_BY}};
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
-- ============================================================================
|
|
40
|
+
-- EXAMPLE WHERE clauses (pass via where_clause=)
|
|
41
|
+
-- ============================================================================
|
|
42
|
+
|
|
43
|
+
-- All interactions for one session
|
|
44
|
+
-- WHERE → ssot__AiAgentSessionId__c = '<session_id>'
|
|
45
|
+
-- ORDER BY → ORDER BY ssot__StartTimestamp__c
|
|
46
|
+
|
|
47
|
+
-- TURN rows only (exclude SESSION_END)
|
|
48
|
+
-- WHERE → ssot__AiAgentSessionId__c = '<session_id>'
|
|
49
|
+
-- AND ssot__AiAgentInteractionType__c = 'TURN'
|
|
50
|
+
|
|
51
|
+
-- Interactions handled by a specific topic across sessions
|
|
52
|
+
-- WHERE → ssot__TopicApiName__c = 'Order_Management'
|
|
53
|
+
-- AND ssot__StartTimestamp__c >= '2026-01-01T00:00:00.000Z'
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
-- User/agent messages — reusable for any WHERE filter.
|
|
2
|
+
-- DMO: ssot__AiAgentInteractionMessage__dlm
|
|
3
|
+
--
|
|
4
|
+
-- Placeholders (substituted by scripts/dc.py.load_sql):
|
|
5
|
+
-- WHERE_CLAUSE — the filter expression, no "WHERE" keyword
|
|
6
|
+
-- ORDER_BY — full "ORDER BY <col>" or empty string
|
|
7
|
+
--
|
|
8
|
+
-- One row per user/agent message. Type enum: Input | Output.
|
|
9
|
+
--
|
|
10
|
+
-- This DMO has a direct session FK (`ssot__AiAgentSessionId__c`) — verified
|
|
11
|
+
-- live against Data Cloud v66.0. Scope by session directly; no need to join through
|
|
12
|
+
-- interactions. It also has a participant FK and a parent-message FK for
|
|
13
|
+
-- threading, plus `MessageStartTimestamp__c` / `MessageEndTimestamp__c` for
|
|
14
|
+
-- voice-modality durations (richer than the single `MessageSentTimestamp__c`).
|
|
15
|
+
|
|
16
|
+
SELECT
|
|
17
|
+
ssot__Id__c,
|
|
18
|
+
ssot__AiAgentSessionId__c,
|
|
19
|
+
ssot__AiAgentInteractionId__c,
|
|
20
|
+
ssot__AiAgentSessionParticipantId__c,
|
|
21
|
+
ssot__ParentMessageId__c,
|
|
22
|
+
ssot__ContentText__c,
|
|
23
|
+
ssot__AiAgentInteractionMessageType__c,
|
|
24
|
+
ssot__AiAgentInteractionMsgContentType__c,
|
|
25
|
+
Modality__c,
|
|
26
|
+
ssot__MessageSentTimestamp__c,
|
|
27
|
+
MessageStartTimestamp__c,
|
|
28
|
+
MessageEndTimestamp__c,
|
|
29
|
+
ssot__InternalOrganizationId__c
|
|
30
|
+
FROM ssot__AiAgentInteractionMessage__dlm
|
|
31
|
+
WHERE {{WHERE_CLAUSE}}
|
|
32
|
+
{{ORDER_BY}};
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
-- ============================================================================
|
|
36
|
+
-- EXAMPLE WHERE clauses (pass via where_clause=)
|
|
37
|
+
-- ============================================================================
|
|
38
|
+
|
|
39
|
+
-- Messages for one session (direct FK — preferred)
|
|
40
|
+
-- WHERE → ssot__AiAgentSessionId__c = '<session_id>'
|
|
41
|
+
-- ORDER BY → ORDER BY ssot__MessageSentTimestamp__c
|
|
42
|
+
|
|
43
|
+
-- Messages for a specific interaction
|
|
44
|
+
-- WHERE → ssot__AiAgentInteractionId__c = '<interaction_id>'
|
|
45
|
+
-- ORDER BY → ORDER BY ssot__MessageSentTimestamp__c
|
|
46
|
+
|
|
47
|
+
-- Only user inputs for a session
|
|
48
|
+
-- WHERE → ssot__AiAgentSessionId__c = '<session_id>'
|
|
49
|
+
-- AND ssot__AiAgentInteractionMessageType__c = 'Input'
|
|
50
|
+
|
|
51
|
+
-- Voice-modality messages (use start/end timestamps for duration)
|
|
52
|
+
-- WHERE → ssot__AiAgentSessionId__c = '<session_id>'
|
|
53
|
+
-- AND Modality__c = 'Voice'
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
-- MessagingSession id → AI-agent session id lookup.
|
|
2
|
+
-- DMO: ssot__AIAgentSession__dlm
|
|
3
|
+
--
|
|
4
|
+
-- Given a Salesforce MessagingSession id (0Mw... prefix, 15 or 18 chars),
|
|
5
|
+
-- find every ssot__AIAgentSession__dlm row with matching
|
|
6
|
+
-- RelatedMessagingSessionId. Used by scripts/resolve_session.py to map a
|
|
7
|
+
-- messaging id to the canonical AI-agent session UUID that every other
|
|
8
|
+
-- script keys on.
|
|
9
|
+
--
|
|
10
|
+
-- Placeholders (substituted by scripts/dc.py.load_sql):
|
|
11
|
+
-- MSG_ID — the MessagingSession id (pre-validated by the caller:
|
|
12
|
+
-- is_messaging_id() enforces the `0Mw` key prefix plus an
|
|
13
|
+
-- exact 15 or 18 char length before this template is loaded.
|
|
14
|
+
-- A raw-UUID or free-text id can never reach this template.)
|
|
15
|
+
--
|
|
16
|
+
-- Returned rows:
|
|
17
|
+
-- * zero rows → caller raises SystemExit ("no messaging session found")
|
|
18
|
+
-- * one row → caller returns ssot__Id__c as the UUID
|
|
19
|
+
-- * many rows → caller prints every candidate with timestamps + end_type
|
|
20
|
+
-- + channel and exits non-zero so the user can pick one
|
|
21
|
+
-- and re-invoke with the specific UUID.
|
|
22
|
+
--
|
|
23
|
+
-- The `RelatedMessagingSessionId__c != 'NOT_SET'` clause is defensive —
|
|
24
|
+
-- a real msg_id cannot equal the literal 'NOT_SET', but the guard lets
|
|
25
|
+
-- the template be copy-pasted for other filters that might otherwise
|
|
26
|
+
-- accidentally match the sentinel.
|
|
27
|
+
|
|
28
|
+
SELECT
|
|
29
|
+
ssot__Id__c,
|
|
30
|
+
ssot__StartTimestamp__c,
|
|
31
|
+
ssot__EndTimestamp__c,
|
|
32
|
+
ssot__AiAgentSessionEndType__c,
|
|
33
|
+
ssot__AiAgentChannelType__c
|
|
34
|
+
FROM ssot__AIAgentSession__dlm
|
|
35
|
+
WHERE ssot__RelatedMessagingSessionId__c = '{{MSG_ID}}'
|
|
36
|
+
AND ssot__RelatedMessagingSessionId__c != 'NOT_SET'
|
|
37
|
+
ORDER BY ssot__StartTimestamp__c DESC;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
-- Moment ↔ Interaction junction — which turns belong to a moment.
|
|
2
|
+
-- DMO: ssot__AiAgentMomentInteraction__dlm
|
|
3
|
+
--
|
|
4
|
+
-- Placeholders (substituted by scripts/dc.py.load_sql):
|
|
5
|
+
-- WHERE_CLAUSE — the filter expression, no "WHERE" keyword
|
|
6
|
+
-- ORDER_BY — full "ORDER BY <col>" or empty string
|
|
7
|
+
--
|
|
8
|
+
-- Agent Optimization add-on DMO. Provisioned only when Agent Optimization
|
|
9
|
+
-- is enabled. Junction between AiAgentMoment and AIAgentInteraction.
|
|
10
|
+
-- Observed live: one Moment per Interaction (N:1 direction). The junction
|
|
11
|
+
-- schema supports true many-to-many; the assembler emits Moment.interaction_ids[]
|
|
12
|
+
-- back-refs to preserve the schema-correct shape even when live data is 1:N.
|
|
13
|
+
|
|
14
|
+
SELECT
|
|
15
|
+
ssot__Id__c,
|
|
16
|
+
ssot__AiAgentMomentId__c,
|
|
17
|
+
ssot__AiAgentInteractionId__c,
|
|
18
|
+
ssot__StartTimestamp__c,
|
|
19
|
+
ssot__InternalOrganizationId__c
|
|
20
|
+
FROM ssot__AiAgentMomentInteraction__dlm
|
|
21
|
+
WHERE {{WHERE_CLAUSE}}
|
|
22
|
+
{{ORDER_BY}};
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
-- ============================================================================
|
|
26
|
+
-- EXAMPLE WHERE clauses (pass via where_clause=)
|
|
27
|
+
-- ============================================================================
|
|
28
|
+
|
|
29
|
+
-- Junction rows for a set of moments
|
|
30
|
+
-- WHERE → ssot__AiAgentMomentId__c IN ('<mom_id1>','<mom_id2>',...)
|
|
31
|
+
-- ORDER BY → ORDER BY ssot__StartTimestamp__c
|
|
32
|
+
|
|
33
|
+
-- Junction rows for a set of interactions (reverse lookup)
|
|
34
|
+
-- WHERE → ssot__AiAgentInteractionId__c IN ('<int_id1>','<int_id2>')
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
-- Session-level agent moment rollup — reusable for any WHERE filter.
|
|
2
|
+
-- DMO: ssot__AiAgentMoment__dlm
|
|
3
|
+
--
|
|
4
|
+
-- Placeholders (substituted by scripts/dc.py.load_sql):
|
|
5
|
+
-- WHERE_CLAUSE — the filter expression, no "WHERE" keyword
|
|
6
|
+
-- ORDER_BY — full "ORDER BY <col>" or empty string
|
|
7
|
+
--
|
|
8
|
+
-- When present, carries agent identity + a request/response summary for
|
|
9
|
+
-- the session. This is the only STDM DMO outside Participant that exposes
|
|
10
|
+
-- AiAgentApiName__c. Moments are absent on orgs without Agent Optimization
|
|
11
|
+
-- enabled; the assembler falls back to Participant (AGENT role) for agent
|
|
12
|
+
-- identity in that case.
|
|
13
|
+
|
|
14
|
+
SELECT
|
|
15
|
+
ssot__Id__c,
|
|
16
|
+
ssot__AiAgentSessionId__c,
|
|
17
|
+
ssot__AiAgentApiName__c,
|
|
18
|
+
ssot__AiAgentVersionApiName__c,
|
|
19
|
+
ssot__RequestSummaryText__c,
|
|
20
|
+
ssot__ResponseSummaryText__c,
|
|
21
|
+
ssot__StartTimestamp__c,
|
|
22
|
+
ssot__EndTimestamp__c,
|
|
23
|
+
ssot__InternalOrganizationId__c
|
|
24
|
+
FROM ssot__AiAgentMoment__dlm
|
|
25
|
+
WHERE {{WHERE_CLAUSE}}
|
|
26
|
+
{{ORDER_BY}};
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
-- ============================================================================
|
|
30
|
+
-- EXAMPLE WHERE clauses (pass via where_clause=)
|
|
31
|
+
-- ============================================================================
|
|
32
|
+
|
|
33
|
+
-- Moment(s) for one session — usually 0 or 1 row
|
|
34
|
+
-- WHERE → ssot__AiAgentSessionId__c = '<session_id>'
|
|
35
|
+
|
|
36
|
+
-- All sessions handled by a specific agent API name in a date range
|
|
37
|
+
-- WHERE → ssot__AiAgentApiName__c = 'MyAgent'
|
|
38
|
+
-- AND ssot__StartTimestamp__c >= '2026-01-01T00:00:00.000Z'
|
|
39
|
+
-- ORDER BY → ORDER BY ssot__StartTimestamp__c
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
-- Session participants from Data Cloud — reusable for any WHERE filter.
|
|
2
|
+
-- DMO: ssot__AiAgentSessionParticipant__dlm
|
|
3
|
+
--
|
|
4
|
+
-- Placeholders (substituted by scripts/dc.py.load_sql):
|
|
5
|
+
-- WHERE_CLAUSE — the filter expression, no "WHERE" keyword
|
|
6
|
+
-- ORDER_BY — full "ORDER BY <col>" or empty string
|
|
7
|
+
--
|
|
8
|
+
-- One row per participant per session. Roles: USER, AGENT.
|
|
9
|
+
-- AiAgentApiName__c is populated on AGENT rows only.
|
|
10
|
+
--
|
|
11
|
+
-- Casing gotcha: DMO name uses `AiAgent` (lowercase i), unlike the Session
|
|
12
|
+
-- DMO which uses `AIAgent` (uppercase AI). See references/dc_dmo_fields.md.
|
|
13
|
+
|
|
14
|
+
SELECT
|
|
15
|
+
ssot__Id__c,
|
|
16
|
+
ssot__AiAgentSessionId__c,
|
|
17
|
+
ssot__ParticipantId__c,
|
|
18
|
+
ssot__AiAgentApiName__c,
|
|
19
|
+
ssot__AiAgentType__c,
|
|
20
|
+
ssot__AiAgentTemplateApiName__c,
|
|
21
|
+
ssot__AiAgentVersionApiName__c,
|
|
22
|
+
ssot__AiAgentSessionParticipantRole__c,
|
|
23
|
+
ssot__ParticipantObject__c,
|
|
24
|
+
ssot__StartTimestamp__c,
|
|
25
|
+
ssot__EndTimestamp__c,
|
|
26
|
+
ssot__IndividualId__c,
|
|
27
|
+
ssot__InternalOrganizationId__c,
|
|
28
|
+
ssot__ParticipantAttributeText__c
|
|
29
|
+
FROM ssot__AiAgentSessionParticipant__dlm
|
|
30
|
+
WHERE {{WHERE_CLAUSE}}
|
|
31
|
+
{{ORDER_BY}};
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
-- ============================================================================
|
|
35
|
+
-- EXAMPLE WHERE clauses (pass via where_clause=)
|
|
36
|
+
-- ============================================================================
|
|
37
|
+
|
|
38
|
+
-- Participants for one session
|
|
39
|
+
-- WHERE → ssot__AiAgentSessionId__c = '<session_id>'
|
|
40
|
+
-- ORDER BY → ORDER BY ssot__StartTimestamp__c
|
|
41
|
+
|
|
42
|
+
-- Only AGENT rows (carry agent identity)
|
|
43
|
+
-- WHERE → ssot__AiAgentSessionId__c = '<session_id>'
|
|
44
|
+
-- AND ssot__AiAgentSessionParticipantRole__c = 'AGENT'
|
|
45
|
+
|
|
46
|
+
-- All sessions handled by a specific agent
|
|
47
|
+
-- WHERE → ssot__AiAgentApiName__c = 'MyAgent'
|
|
48
|
+
-- AND ssot__StartTimestamp__c >= '2026-01-01T00:00:00.000Z'
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
-- Sessions from Data Cloud — reusable for any WHERE filter.
|
|
2
|
+
-- DMO: ssot__AIAgentSession__dlm
|
|
3
|
+
--
|
|
4
|
+
-- Placeholders (substituted by scripts/dc.py._load):
|
|
5
|
+
-- WHERE_CLAUSE — the filter expression, no "WHERE" keyword
|
|
6
|
+
-- ORDER_BY — full "ORDER BY <col>" or empty string
|
|
7
|
+
--
|
|
8
|
+
-- See EXAMPLE QUERIES below for common WHERE patterns.
|
|
9
|
+
--
|
|
10
|
+
-- This query extracts session-level data including:
|
|
11
|
+
-- - Session ID and timestamps
|
|
12
|
+
-- - Channel type (how user connected)
|
|
13
|
+
-- - How the session ended (Completed, Abandoned, Escalated, etc.)
|
|
14
|
+
-- - Related messaging session (if applicable)
|
|
15
|
+
--
|
|
16
|
+
-- NOTE: Agent name is NOT on Session table. Join with Moment to get agent info.
|
|
17
|
+
|
|
18
|
+
SELECT
|
|
19
|
+
ssot__Id__c,
|
|
20
|
+
ssot__AiAgentChannelType__c,
|
|
21
|
+
ssot__StartTimestamp__c,
|
|
22
|
+
ssot__EndTimestamp__c,
|
|
23
|
+
ssot__AiAgentSessionEndType__c,
|
|
24
|
+
ssot__RelatedMessagingSessionId__c,
|
|
25
|
+
ssot__RelatedVoiceCallId__c,
|
|
26
|
+
ssot__InternalOrganizationId__c,
|
|
27
|
+
ssot__SessionOwnerId__c,
|
|
28
|
+
ssot__SessionOwnerObject__c,
|
|
29
|
+
ssot__IndividualId__c,
|
|
30
|
+
ssot__PreviousSessionId__c,
|
|
31
|
+
ssot__VariableText__c
|
|
32
|
+
FROM ssot__AIAgentSession__dlm
|
|
33
|
+
WHERE {{WHERE_CLAUSE}}
|
|
34
|
+
{{ORDER_BY}};
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
-- ============================================================================
|
|
38
|
+
-- EXAMPLE QUERIES (pass to sessions_sql via where_clause= / order_by=)
|
|
39
|
+
-- ============================================================================
|
|
40
|
+
|
|
41
|
+
-- One session by id (this skill's primary use case)
|
|
42
|
+
-- WHERE → ssot__Id__c = '<session_uuid>'
|
|
43
|
+
-- ORDER BY → ORDER BY ssot__StartTimestamp__c
|
|
44
|
+
|
|
45
|
+
-- Last 7 days of sessions
|
|
46
|
+
-- WHERE → ssot__StartTimestamp__c >= '<iso_cutoff_7d_ago>'
|
|
47
|
+
-- ORDER BY → ORDER BY ssot__StartTimestamp__c
|
|
48
|
+
|
|
49
|
+
-- Date range
|
|
50
|
+
-- WHERE → ssot__StartTimestamp__c >= '2026-01-01T00:00:00.000Z'
|
|
51
|
+
-- AND ssot__StartTimestamp__c < '2026-02-01T00:00:00.000Z'
|
|
52
|
+
-- ORDER BY → ORDER BY ssot__StartTimestamp__c
|
|
53
|
+
|
|
54
|
+
-- Failed / escalated sessions only
|
|
55
|
+
-- WHERE → ssot__AiAgentSessionEndType__c IN ('Escalated', 'Abandoned', 'Failed')
|
|
56
|
+
-- AND ssot__StartTimestamp__c >= '2026-01-01T00:00:00.000Z'
|
|
57
|
+
-- ORDER BY → ORDER BY ssot__StartTimestamp__c
|
|
58
|
+
|
|
59
|
+
-- Sessions by channel (e.g. embedded messaging only)
|
|
60
|
+
-- WHERE → ssot__AiAgentChannelType__c = 'SCRT2 - EmbeddedMessaging'
|
|
61
|
+
-- AND ssot__StartTimestamp__c >= '2026-01-01T00:00:00.000Z'
|
|
62
|
+
-- ORDER BY → ORDER BY ssot__StartTimestamp__c
|
|
63
|
+
|
|
64
|
+
-- Session count by end type (aggregate — SELECT list changes too; separate template)
|
|
65
|
+
-- SELECT
|
|
66
|
+
-- ssot__AiAgentSessionEndType__c,
|
|
67
|
+
-- COUNT(*) as session_count
|
|
68
|
+
-- FROM ssot__AIAgentSession__dlm
|
|
69
|
+
-- WHERE ssot__StartTimestamp__c >= '2026-01-01T00:00:00.000Z'
|
|
70
|
+
-- GROUP BY ssot__AiAgentSessionEndType__c;
|
|
71
|
+
|
|
72
|
+
-- Sessions by agent (requires Moment join — separate query shape, not this template)
|
|
73
|
+
-- SELECT DISTINCT s.*
|
|
74
|
+
-- FROM ssot__AIAgentSession__dlm s
|
|
75
|
+
-- JOIN ssot__AiAgentMoment__dlm m
|
|
76
|
+
-- ON m.ssot__AiAgentSessionId__c = s.ssot__Id__c
|
|
77
|
+
-- WHERE m.ssot__AiAgentApiName__c = 'MyAgent'
|
|
78
|
+
-- AND s.ssot__StartTimestamp__c >= '2026-01-01T00:00:00.000Z';
|