Skip to content
Draft

poc #623

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 55 additions & 0 deletions packages/genui/lib/src/model/prompt_builder1.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
class ToolSet {}

sealed class GenUiConfiguration {
static GenUiConfiguration custom(String prompt, ToolSet toolSet) =>
_CustomGenUiConfiguration(prompt, toolSet);

static GenUiConfiguration basic(
String prompt, {
bool allowSurfaceCreation = true,
bool allowSurfaceUpdate = false,
bool allowSurfaceDeletion = false,
}) => _BasicGenUiConfiguration(
prompt,
allowSurfaceCreation: allowSurfaceCreation,
allowSurfaceUpdate: allowSurfaceUpdate,
allowSurfaceDeletion: allowSurfaceDeletion,
);

String prompt();

ToolSet toolSet();
}

class _CustomGenUiConfiguration implements GenUiConfiguration {
final String _prompt;
final ToolSet _toolSet;

_CustomGenUiConfiguration(this._prompt, this._toolSet);

@override
String prompt() => _prompt;

@override
ToolSet toolSet() => _toolSet;
}

class _BasicGenUiConfiguration implements GenUiConfiguration {
final String _prompt;
final bool allowSurfaceCreation;
final bool allowSurfaceUpdate;
final bool allowSurfaceDeletion;

_BasicGenUiConfiguration(
this._prompt, {
required this.allowSurfaceCreation,
required this.allowSurfaceUpdate,
required this.allowSurfaceDeletion,
});

@override
String prompt() => throw UnimplementedError();

@override
ToolSet toolSet() => throw UnimplementedError();
Comment on lines +51 to +54
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The prompt() and toolSet() methods in _BasicGenUiConfiguration currently throw UnimplementedError. If _BasicGenUiConfiguration is meant to be a concrete implementation, these methods should provide actual logic or sensible default values rather than throwing runtime errors. This could lead to unexpected crashes if this configuration is used.

  @override
  String prompt() => _prompt;

  @override
  ToolSet toolSet() => ToolSet();

}
Loading
Loading