open-swe/packages/shared/src/configurable-metadata.ts
Brace Sproul 8afe1e6803
feat: Update chat UI to be Open SWE specific (#76) (#91)
* init repo-selector

* add branch selector UI, extend GH hook w branch info

* add   reconnectOnMount: true resumeStream, remove repo description from selector, fix styling

* styling repo + branch

* udpate getBranch calls to include targetRepo arg

* format

* add search to repo + branch selectors

* add settings icon link to /github for dev convenience

* add default branch selection

* format

* minor cleanup

* init task list UI demo

* individual task component

* tasks real data

* task visual improvement

* persisting tasks, navigate to thread onClick

* task UI

* TaskSidebar, Navigate to tasks

* org tasks by thread

* group by thread

* improve sidebar, task-list, rm github modal on refresh

* collapse sidebar works when viewing a thread

* remove micro-tasks expansion from threads component, change taskId to taskIndex for persistence + simplicity

* init config sidebar ui

* open and close config sidebar

* add ref for getAllTasks + add graph_id metadata

* format

* create threadItem component

* format

* add threadUtils

* centralize + refactor types

* format

* improve thread status, realtime updates

* fix scroll issue

* remove temperature from config-sidebar

* Change model via sidebar

* fix flashing on updates

* init plan UI

* centralize types

* self CR: refactoring, cleanup, remove comments, add todos

* CR: clean comments + logs, fix repo selector bug

* fix: Update example env file in web (#77)

* disable auto scroll on pageload

* reposelector: use default branch not main master

* remove archived tab temp, default branch listed first in branchSelector dropdown

* auto select first repo

* improve status indicator

* refactor status indicator

* simplify status implementation to use Langgraph

* util moved from provider to thread-utils

* linting, improve task completion logic

* feat: Support followup requests (#60)

* feat: Support followup requests

* cr

* cr

* fix

* account for pr already exists

* remove task provider

* fix: Better prompting and context provided for codebase structure awareness (#85)

* fix: Better prompting and context provided for codebase structure awareness

* cr

* linting + skeleton loader

* fix: branch selector, add github api pagination

* small branch update

* update task completion status realtime

* threadItem stream remove flashing/polling

* feat: Create a shared package (#89)

* feat: Create a shared package

* formatting

* fix: drop passing target repo to getBranchName

* drop docs

* use shared package for config fields in config sidebar

* fix: styling and structure for repo/branch selectors

* fix: use shared types/objects for config fields

* default key for configs

* fix: improved styling for threads

* fix renering num tasks

* disable repo branch selector when chat started

* cr

* cr

* bump deps

* fix: rendering plan in interrupt

* cr

* cr

---------

Co-authored-by: Dylan Boudro <121908331+starmorph@users.noreply.github.com>
2025-06-09 00:29:40 +00:00

69 lines
1.7 KiB
TypeScript

// The type interface for configuration fields
export type ConfigurableFieldUIType =
| "text"
| "textarea"
| "number"
| "boolean"
| "slider"
| "select"
| "json";
/**
* The type interface for options in a select field.
*/
export interface ConfigurableFieldOption {
label: string;
value: string;
}
/**
* The UI configuration for a field in the configurable object.
*/
export type ConfigurableFieldUIMetadata = {
/**
* The label of the field. This will be what is rendered in the UI.
*/
label: string;
/**
* The default value to render in the UI component.
*
* @default undefined
*/
default?: unknown;
/**
* The type of the field.
* @default "text"
*/
type?: ConfigurableFieldUIType;
/**
* The description of the field. This will be rendered below the UI component.
*/
description?: string;
/**
* The placeholder of the field. This will be rendered inside the UI component.
* This is only applicable for text, textarea, number, json, and select fields.
*/
placeholder?: string;
/**
* The options of the field. These will be the options rendered in the select UI component.
* This is only applicable for select fields.
*/
options?: ConfigurableFieldOption[];
/**
* The minimum value of the field.
* This is only applicable for number fields.
*/
min?: number;
/**
* The maximum value of the field.
* This is only applicable for number fields.
*/
max?: number;
/**
* The step value of the field. E.g if using a slider, where you want
* people to be able to increment by 0.1, you would set this field to 0.1
* This is only applicable for number fields.
*/
step?: number;
};