diff --git a/dev_tools/catalog_gallery/linux/flutter/generated_plugins.cmake b/dev_tools/catalog_gallery/linux/flutter/generated_plugins.cmake index 8e2a1900c..a2eef970f 100644 --- a/dev_tools/catalog_gallery/linux/flutter/generated_plugins.cmake +++ b/dev_tools/catalog_gallery/linux/flutter/generated_plugins.cmake @@ -8,6 +8,7 @@ list(APPEND FLUTTER_PLUGIN_LIST ) list(APPEND FLUTTER_FFI_PLUGIN_LIST + jni ) set(PLUGIN_BUNDLED_LIBRARIES) diff --git a/dev_tools/catalog_gallery/macos/Flutter/GeneratedPluginRegistrant.swift b/dev_tools/catalog_gallery/macos/Flutter/GeneratedPluginRegistrant.swift index ad1073ab5..7b265476e 100644 --- a/dev_tools/catalog_gallery/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/dev_tools/catalog_gallery/macos/Flutter/GeneratedPluginRegistrant.swift @@ -12,5 +12,5 @@ import video_player_avfoundation func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { AudioplayersDarwinPlugin.register(with: registry.registrar(forPlugin: "AudioplayersDarwinPlugin")) UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin")) - FVPVideoPlayerPlugin.register(with: registry.registrar(forPlugin: "FVPVideoPlayerPlugin")) + VideoPlayerPlugin.register(with: registry.registrar(forPlugin: "VideoPlayerPlugin")) } diff --git a/dev_tools/composer/linux/flutter/generated_plugins.cmake b/dev_tools/composer/linux/flutter/generated_plugins.cmake index c085ca836..a1bc1781f 100644 --- a/dev_tools/composer/linux/flutter/generated_plugins.cmake +++ b/dev_tools/composer/linux/flutter/generated_plugins.cmake @@ -10,6 +10,7 @@ list(APPEND FLUTTER_PLUGIN_LIST ) list(APPEND FLUTTER_FFI_PLUGIN_LIST + jni ) set(PLUGIN_BUNDLED_LIBRARIES) diff --git a/dev_tools/composer/macos/Flutter/GeneratedPluginRegistrant.swift b/dev_tools/composer/macos/Flutter/GeneratedPluginRegistrant.swift index 802a33c8d..4825c9db2 100644 --- a/dev_tools/composer/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/dev_tools/composer/macos/Flutter/GeneratedPluginRegistrant.swift @@ -15,6 +15,6 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { AudioplayersDarwinPlugin.register(with: registry.registrar(forPlugin: "AudioplayersDarwinPlugin")) ScreenRetrieverMacosPlugin.register(with: registry.registrar(forPlugin: "ScreenRetrieverMacosPlugin")) UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin")) - FVPVideoPlayerPlugin.register(with: registry.registrar(forPlugin: "FVPVideoPlayerPlugin")) + VideoPlayerPlugin.register(with: registry.registrar(forPlugin: "VideoPlayerPlugin")) WindowManagerPlugin.register(with: registry.registrar(forPlugin: "WindowManagerPlugin")) } diff --git a/dev_tools/composer/windows/flutter/generated_plugins.cmake b/dev_tools/composer/windows/flutter/generated_plugins.cmake index f74fccabd..79fabcfb8 100644 --- a/dev_tools/composer/windows/flutter/generated_plugins.cmake +++ b/dev_tools/composer/windows/flutter/generated_plugins.cmake @@ -11,6 +11,7 @@ list(APPEND FLUTTER_PLUGIN_LIST ) list(APPEND FLUTTER_FFI_PLUGIN_LIST + jni ) set(PLUGIN_BUNDLED_LIBRARIES) diff --git a/examples/simple_chat/linux/flutter/generated_plugins.cmake b/examples/simple_chat/linux/flutter/generated_plugins.cmake index 8e2a1900c..a2eef970f 100644 --- a/examples/simple_chat/linux/flutter/generated_plugins.cmake +++ b/examples/simple_chat/linux/flutter/generated_plugins.cmake @@ -8,6 +8,7 @@ list(APPEND FLUTTER_PLUGIN_LIST ) list(APPEND FLUTTER_FFI_PLUGIN_LIST + jni ) set(PLUGIN_BUNDLED_LIBRARIES) diff --git a/examples/simple_chat/macos/Flutter/GeneratedPluginRegistrant.swift b/examples/simple_chat/macos/Flutter/GeneratedPluginRegistrant.swift index ad1073ab5..7b265476e 100644 --- a/examples/simple_chat/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/examples/simple_chat/macos/Flutter/GeneratedPluginRegistrant.swift @@ -12,5 +12,5 @@ import video_player_avfoundation func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { AudioplayersDarwinPlugin.register(with: registry.registrar(forPlugin: "AudioplayersDarwinPlugin")) UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin")) - FVPVideoPlayerPlugin.register(with: registry.registrar(forPlugin: "FVPVideoPlayerPlugin")) + VideoPlayerPlugin.register(with: registry.registrar(forPlugin: "VideoPlayerPlugin")) } diff --git a/examples/simple_chat/windows/flutter/generated_plugins.cmake b/examples/simple_chat/windows/flutter/generated_plugins.cmake index 97b61367a..158064786 100644 --- a/examples/simple_chat/windows/flutter/generated_plugins.cmake +++ b/examples/simple_chat/windows/flutter/generated_plugins.cmake @@ -9,6 +9,7 @@ list(APPEND FLUTTER_PLUGIN_LIST ) list(APPEND FLUTTER_FFI_PLUGIN_LIST + jni ) set(PLUGIN_BUNDLED_LIBRARIES) diff --git a/examples/verdure/client/linux/flutter/generated_plugins.cmake b/examples/verdure/client/linux/flutter/generated_plugins.cmake index 04f81f4b4..ac700e247 100644 --- a/examples/verdure/client/linux/flutter/generated_plugins.cmake +++ b/examples/verdure/client/linux/flutter/generated_plugins.cmake @@ -9,6 +9,7 @@ list(APPEND FLUTTER_PLUGIN_LIST ) list(APPEND FLUTTER_FFI_PLUGIN_LIST + jni ) set(PLUGIN_BUNDLED_LIBRARIES) diff --git a/examples/verdure/client/macos/Flutter/GeneratedPluginRegistrant.swift b/examples/verdure/client/macos/Flutter/GeneratedPluginRegistrant.swift index 074b04b4c..46b142243 100644 --- a/examples/verdure/client/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/examples/verdure/client/macos/Flutter/GeneratedPluginRegistrant.swift @@ -16,5 +16,5 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin")) FileSelectorPlugin.register(with: registry.registrar(forPlugin: "FileSelectorPlugin")) UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin")) - FVPVideoPlayerPlugin.register(with: registry.registrar(forPlugin: "FVPVideoPlayerPlugin")) + VideoPlayerPlugin.register(with: registry.registrar(forPlugin: "VideoPlayerPlugin")) } diff --git a/packages/genui/lib/src/facade/prompt_builder.dart b/packages/genui/lib/src/facade/prompt_builder.dart index 77ecada7c..9abb5211d 100644 --- a/packages/genui/lib/src/facade/prompt_builder.dart +++ b/packages/genui/lib/src/facade/prompt_builder.dart @@ -131,7 +131,7 @@ enum ProtocolMessages { explanation: 'Creates a new surface.', properties: ''' Requires `surfaceId` (you must always use a unique ID for each created surface), -`catalogId` (use the catalog ID provided in system instructions), +`catalogId` (use the active catalog ID if provided in system instructions), and `sendDataModel: true`. ''', // TODO: figure out why we instruct AI to always set sendDataModel: true, @@ -284,7 +284,7 @@ You can control the UI by outputting valid A2UI JSON messages wrapped in markdow if (create) ''' To create a new UI: -1. Output a ${ProtocolMessages.createSurface.tickedName} message with a unique `surfaceId` and `catalogId` (use the catalog ID provided in system instructions). +1. Output a ${ProtocolMessages.createSurface.tickedName} message with a unique `surfaceId` and `catalogId` (use the active catalog ID if provided in system instructions). 2. Output an ${ProtocolMessages.updateComponents.tickedName} message with the `surfaceId` and the component definitions. ''', if (!update) @@ -363,9 +363,14 @@ final class _BasicPromptBuilder extends PromptBuilder { catalog, ).toJson(indent: ' '); + final String? activeCatalogId = catalog.catalogId; + final fragments = [ ...systemPromptFragments, 'Use the provided tools to respond to user using rich UI elements.', + if (activeCatalogId != null) + 'The active catalog ID is: "$activeCatalogId". ' + 'You must use this catalog ID when creating surfaces.', ...technicalPossibilities.systemPromptFragment(), ...catalog.systemPromptFragments, ...allowedOperations.systemPromptFragments, diff --git a/packages/genui/lib/src/model/a2ui_schemas.dart b/packages/genui/lib/src/model/a2ui_schemas.dart index 29ba6feca..dbfc4835b 100644 --- a/packages/genui/lib/src/model/a2ui_schemas.dart +++ b/packages/genui/lib/src/model/a2ui_schemas.dart @@ -436,7 +436,12 @@ abstract final class A2uiSchemas { 'the component tree.', properties: { surfaceIdKey: S.string(description: 'The unique ID for the surface.'), - 'catalogId': S.string(description: 'The URI of the component catalog.'), + 'catalogId': S.string( + description: + 'A string that uniquely identifies this catalog. This is typically ' + 'a URI, but the URI is never accessed, only used as a unique ' + 'identifier.', + ), 'theme': S.object( description: 'Theme parameters for the surface.', additionalProperties: true, diff --git a/packages/genui/test/facade/prompt_builder_test.dart b/packages/genui/test/facade/prompt_builder_test.dart index dc573fdc5..cbb04f1ef 100644 --- a/packages/genui/test/facade/prompt_builder_test.dart +++ b/packages/genui/test/facade/prompt_builder_test.dart @@ -123,4 +123,22 @@ void main() { }); } }); + + group('Catalog ID', () { + test('is surfaced in system prompt when provided', () { + final catalog = Catalog([ + BasicCatalogItems.text, + ], catalogId: 'my_custom_catalog'); + final builder = PromptBuilder.chat(catalog: catalog); + final String prompt = builder.systemPromptJoined(); + expect(prompt, contains('The active catalog ID is: "my_custom_catalog"')); + }); + + test('is not surfaced in system prompt when not provided', () { + final catalog = Catalog([BasicCatalogItems.text]); + final builder = PromptBuilder.chat(catalog: catalog); + final String prompt = builder.systemPromptJoined(); + expect(prompt, isNot(contains('The active catalog ID is:'))); + }); + }); } diff --git a/packages/genui/test/facade/prompt_builder_test.golden/all_operations_with_dataModel_false.txt b/packages/genui/test/facade/prompt_builder_test.golden/all_operations_with_dataModel_false.txt index 55f3a5978..3d27339c3 100644 --- a/packages/genui/test/facade/prompt_builder_test.golden/all_operations_with_dataModel_false.txt +++ b/packages/genui/test/facade/prompt_builder_test.golden/all_operations_with_dataModel_false.txt @@ -16,6 +16,10 @@ Use the provided tools to respond to user using rich UI elements. ------------------------------------- +The active catalog ID is: "test_catalog". You must use this catalog ID when creating surfaces. + +------------------------------------- + IMPORTANT: You do not have the ability to execute code. If you need to perform calculations, do them yourself. ------------------------------------- @@ -100,14 +104,14 @@ Supported messages are: `createSurface`, `updateComponents`, `deleteSurface`. Properties: - `createSurface`: Requires `surfaceId` (you must always use a unique ID for each created surface), -`catalogId` (use the catalog ID provided in system instructions), +`catalogId` (use the active catalog ID if provided in system instructions), and `sendDataModel: true`. - `updateComponents`: Requires `surfaceId` and a list of `components`. One component MUST have `id: "root"`. - `deleteSurface`: Requires `surfaceId`. To create a new UI: -1. Output a `createSurface` message with a unique `surfaceId` and `catalogId` (use the catalog ID provided in system instructions). +1. Output a `createSurface` message with a unique `surfaceId` and `catalogId` (use the active catalog ID if provided in system instructions). 2. Output an `updateComponents` message with the `surfaceId` and the component definitions. To update an existing UI: @@ -147,7 +151,7 @@ When constructing UI, you must output a VALID A2UI JSON object representing one }, "catalogId": { "type": "string", - "description": "The URI of the component catalog." + "description": "A string that uniquely identifies this catalog. It is recommended to prefix this with an internet domain that you own, to avoid conflicts e.g. 'mycompany.com:somecatalog'." }, "theme": { "type": "object", diff --git a/packages/genui/test/facade/prompt_builder_test.golden/all_operations_with_dataModel_true.txt b/packages/genui/test/facade/prompt_builder_test.golden/all_operations_with_dataModel_true.txt index 37e522f94..7661b3a97 100644 --- a/packages/genui/test/facade/prompt_builder_test.golden/all_operations_with_dataModel_true.txt +++ b/packages/genui/test/facade/prompt_builder_test.golden/all_operations_with_dataModel_true.txt @@ -16,6 +16,10 @@ Use the provided tools to respond to user using rich UI elements. ------------------------------------- +The active catalog ID is: "test_catalog". You must use this catalog ID when creating surfaces. + +------------------------------------- + IMPORTANT: You do not have the ability to execute code. If you need to perform calculations, do them yourself. ------------------------------------- @@ -101,7 +105,7 @@ Supported messages are: `createSurface`, `updateComponents`, `deleteSurface`, `u Properties: - `createSurface`: Requires `surfaceId` (you must always use a unique ID for each created surface), -`catalogId` (use the catalog ID provided in system instructions), +`catalogId` (use the active catalog ID if provided in system instructions), and `sendDataModel: true`. - `updateComponents`: Requires `surfaceId` and a list of `components`. One component MUST have `id: "root"`. @@ -109,7 +113,7 @@ One component MUST have `id: "root"`. - `updateDataModel`: Requires `surfaceId`, `path` and `value`. To create a new UI: -1. Output a `createSurface` message with a unique `surfaceId` and `catalogId` (use the catalog ID provided in system instructions). +1. Output a `createSurface` message with a unique `surfaceId` and `catalogId` (use the active catalog ID if provided in system instructions). 2. Output an `updateComponents` message with the `surfaceId` and the component definitions. To update an existing UI: @@ -149,7 +153,7 @@ When constructing UI, you must output a VALID A2UI JSON object representing one }, "catalogId": { "type": "string", - "description": "The URI of the component catalog." + "description": "A string that uniquely identifies this catalog. It is recommended to prefix this with an internet domain that you own, to avoid conflicts e.g. 'mycompany.com:somecatalog'." }, "theme": { "type": "object", diff --git a/packages/genui/test/facade/prompt_builder_test.golden/create_and_update_with_dataModel_false.txt b/packages/genui/test/facade/prompt_builder_test.golden/create_and_update_with_dataModel_false.txt index 6dd36efd5..dd3adc395 100644 --- a/packages/genui/test/facade/prompt_builder_test.golden/create_and_update_with_dataModel_false.txt +++ b/packages/genui/test/facade/prompt_builder_test.golden/create_and_update_with_dataModel_false.txt @@ -16,6 +16,10 @@ Use the provided tools to respond to user using rich UI elements. ------------------------------------- +The active catalog ID is: "test_catalog". You must use this catalog ID when creating surfaces. + +------------------------------------- + IMPORTANT: You do not have the ability to execute code. If you need to perform calculations, do them yourself. ------------------------------------- @@ -99,13 +103,13 @@ Supported messages are: `createSurface`, `updateComponents`. Properties: - `createSurface`: Requires `surfaceId` (you must always use a unique ID for each created surface), -`catalogId` (use the catalog ID provided in system instructions), +`catalogId` (use the active catalog ID if provided in system instructions), and `sendDataModel: true`. - `updateComponents`: Requires `surfaceId` and a list of `components`. One component MUST have `id: "root"`. To create a new UI: -1. Output a `createSurface` message with a unique `surfaceId` and `catalogId` (use the catalog ID provided in system instructions). +1. Output a `createSurface` message with a unique `surfaceId` and `catalogId` (use the active catalog ID if provided in system instructions). 2. Output an `updateComponents` message with the `surfaceId` and the component definitions. To update an existing UI: @@ -145,7 +149,7 @@ When constructing UI, you must output a VALID A2UI JSON object representing one }, "catalogId": { "type": "string", - "description": "The URI of the component catalog." + "description": "A string that uniquely identifies this catalog. It is recommended to prefix this with an internet domain that you own, to avoid conflicts e.g. 'mycompany.com:somecatalog'." }, "theme": { "type": "object", diff --git a/packages/genui/test/facade/prompt_builder_test.golden/create_and_update_with_dataModel_true.txt b/packages/genui/test/facade/prompt_builder_test.golden/create_and_update_with_dataModel_true.txt index cdc0a60ad..c23b0e23b 100644 --- a/packages/genui/test/facade/prompt_builder_test.golden/create_and_update_with_dataModel_true.txt +++ b/packages/genui/test/facade/prompt_builder_test.golden/create_and_update_with_dataModel_true.txt @@ -16,6 +16,10 @@ Use the provided tools to respond to user using rich UI elements. ------------------------------------- +The active catalog ID is: "test_catalog". You must use this catalog ID when creating surfaces. + +------------------------------------- + IMPORTANT: You do not have the ability to execute code. If you need to perform calculations, do them yourself. ------------------------------------- @@ -100,14 +104,14 @@ Supported messages are: `createSurface`, `updateComponents`, `updateDataModel`. Properties: - `createSurface`: Requires `surfaceId` (you must always use a unique ID for each created surface), -`catalogId` (use the catalog ID provided in system instructions), +`catalogId` (use the active catalog ID if provided in system instructions), and `sendDataModel: true`. - `updateComponents`: Requires `surfaceId` and a list of `components`. One component MUST have `id: "root"`. - `updateDataModel`: Requires `surfaceId`, `path` and `value`. To create a new UI: -1. Output a `createSurface` message with a unique `surfaceId` and `catalogId` (use the catalog ID provided in system instructions). +1. Output a `createSurface` message with a unique `surfaceId` and `catalogId` (use the active catalog ID if provided in system instructions). 2. Output an `updateComponents` message with the `surfaceId` and the component definitions. To update an existing UI: @@ -147,7 +151,7 @@ When constructing UI, you must output a VALID A2UI JSON object representing one }, "catalogId": { "type": "string", - "description": "The URI of the component catalog." + "description": "A string that uniquely identifies this catalog. It is recommended to prefix this with an internet domain that you own, to avoid conflicts e.g. 'mycompany.com:somecatalog'." }, "theme": { "type": "object", diff --git a/packages/genui/test/facade/prompt_builder_test.golden/create_only_with_dataModel_false.txt b/packages/genui/test/facade/prompt_builder_test.golden/create_only_with_dataModel_false.txt index fda9dd04c..d35089698 100644 --- a/packages/genui/test/facade/prompt_builder_test.golden/create_only_with_dataModel_false.txt +++ b/packages/genui/test/facade/prompt_builder_test.golden/create_only_with_dataModel_false.txt @@ -16,6 +16,10 @@ Use the provided tools to respond to user using rich UI elements. ------------------------------------- +The active catalog ID is: "test_catalog". You must use this catalog ID when creating surfaces. + +------------------------------------- + IMPORTANT: You do not have the ability to execute code. If you need to perform calculations, do them yourself. ------------------------------------- @@ -99,13 +103,13 @@ Supported messages are: `createSurface`, `updateComponents`. Properties: - `createSurface`: Requires `surfaceId` (you must always use a unique ID for each created surface), -`catalogId` (use the catalog ID provided in system instructions), +`catalogId` (use the active catalog ID if provided in system instructions), and `sendDataModel: true`. - `updateComponents`: Requires `surfaceId` and a list of `components`. One component MUST have `id: "root"`. To create a new UI: -1. Output a `createSurface` message with a unique `surfaceId` and `catalogId` (use the catalog ID provided in system instructions). +1. Output a `createSurface` message with a unique `surfaceId` and `catalogId` (use the active catalog ID if provided in system instructions). 2. Output an `updateComponents` message with the `surfaceId` and the component definitions. IMPORTANT: DO NOT update or modify surfaces created in previous turns. If the UI needs to change, you MUST create a NEW surface with a new unique `surfaceId`. You may only use `updateComponents` to populate the components of a freshly created surface. @@ -144,7 +148,7 @@ When constructing UI, you must output a VALID A2UI JSON object representing one }, "catalogId": { "type": "string", - "description": "The URI of the component catalog." + "description": "A string that uniquely identifies this catalog. It is recommended to prefix this with an internet domain that you own, to avoid conflicts e.g. 'mycompany.com:somecatalog'." }, "theme": { "type": "object", diff --git a/packages/genui/test/facade/prompt_builder_test.golden/create_only_with_dataModel_true.txt b/packages/genui/test/facade/prompt_builder_test.golden/create_only_with_dataModel_true.txt index 75f6319ff..0ae7dfeed 100644 --- a/packages/genui/test/facade/prompt_builder_test.golden/create_only_with_dataModel_true.txt +++ b/packages/genui/test/facade/prompt_builder_test.golden/create_only_with_dataModel_true.txt @@ -16,6 +16,10 @@ Use the provided tools to respond to user using rich UI elements. ------------------------------------- +The active catalog ID is: "test_catalog". You must use this catalog ID when creating surfaces. + +------------------------------------- + IMPORTANT: You do not have the ability to execute code. If you need to perform calculations, do them yourself. ------------------------------------- @@ -100,14 +104,14 @@ Supported messages are: `createSurface`, `updateComponents`, `updateDataModel`. Properties: - `createSurface`: Requires `surfaceId` (you must always use a unique ID for each created surface), -`catalogId` (use the catalog ID provided in system instructions), +`catalogId` (use the active catalog ID if provided in system instructions), and `sendDataModel: true`. - `updateComponents`: Requires `surfaceId` and a list of `components`. One component MUST have `id: "root"`. - `updateDataModel`: Requires `surfaceId`, `path` and `value`. To create a new UI: -1. Output a `createSurface` message with a unique `surfaceId` and `catalogId` (use the catalog ID provided in system instructions). +1. Output a `createSurface` message with a unique `surfaceId` and `catalogId` (use the active catalog ID if provided in system instructions). 2. Output an `updateComponents` message with the `surfaceId` and the component definitions. IMPORTANT: DO NOT update or modify surfaces created in previous turns. If the UI needs to change, you MUST create a NEW surface with a new unique `surfaceId`. You may only use `updateComponents` to populate the components of a freshly created surface. @@ -146,7 +150,7 @@ When constructing UI, you must output a VALID A2UI JSON object representing one }, "catalogId": { "type": "string", - "description": "The URI of the component catalog." + "description": "A string that uniquely identifies this catalog. It is recommended to prefix this with an internet domain that you own, to avoid conflicts e.g. 'mycompany.com:somecatalog'." }, "theme": { "type": "object", diff --git a/packages/genui/test/facade/prompt_builder_test.golden/update_only_with_dataModel_false.txt b/packages/genui/test/facade/prompt_builder_test.golden/update_only_with_dataModel_false.txt index ca6bf4884..6f63a173a 100644 --- a/packages/genui/test/facade/prompt_builder_test.golden/update_only_with_dataModel_false.txt +++ b/packages/genui/test/facade/prompt_builder_test.golden/update_only_with_dataModel_false.txt @@ -16,6 +16,10 @@ Use the provided tools to respond to user using rich UI elements. ------------------------------------- +The active catalog ID is: "test_catalog". You must use this catalog ID when creating surfaces. + +------------------------------------- + IMPORTANT: You do not have the ability to execute code. If you need to perform calculations, do them yourself. ------------------------------------- @@ -137,7 +141,7 @@ When constructing UI, you must output a VALID A2UI JSON object representing one }, "catalogId": { "type": "string", - "description": "The URI of the component catalog." + "description": "A string that uniquely identifies this catalog. It is recommended to prefix this with an internet domain that you own, to avoid conflicts e.g. 'mycompany.com:somecatalog'." }, "theme": { "type": "object", diff --git a/packages/genui/test/facade/prompt_builder_test.golden/update_only_with_dataModel_true.txt b/packages/genui/test/facade/prompt_builder_test.golden/update_only_with_dataModel_true.txt index e04604e4f..d85d3f55f 100644 --- a/packages/genui/test/facade/prompt_builder_test.golden/update_only_with_dataModel_true.txt +++ b/packages/genui/test/facade/prompt_builder_test.golden/update_only_with_dataModel_true.txt @@ -16,6 +16,10 @@ Use the provided tools to respond to user using rich UI elements. ------------------------------------- +The active catalog ID is: "test_catalog". You must use this catalog ID when creating surfaces. + +------------------------------------- + IMPORTANT: You do not have the ability to execute code. If you need to perform calculations, do them yourself. ------------------------------------- @@ -139,7 +143,7 @@ When constructing UI, you must output a VALID A2UI JSON object representing one }, "catalogId": { "type": "string", - "description": "The URI of the component catalog." + "description": "A string that uniquely identifies this catalog. It is recommended to prefix this with an internet domain that you own, to avoid conflicts e.g. 'mycompany.com:somecatalog'." }, "theme": { "type": "object",