feat: add TraitsTab component for managing agent traits
Some checks failed
CI / build-and-test (push) Failing after -32m5s
Some checks failed
CI / build-and-test (push) Failing after -32m5s
- Implemented TraitsTab.svelte to handle CRUD operations for agent traits. - Integrated grid for displaying traits with context menu actions for add, edit, and delete. - Added trait instruction editing functionality with a dedicated editor. - Updated AdminShell to include PersonasPage for navigation. - Enhanced AppSidebar with a new entry for Personas. - Extended ShellPage type to include 'personas'. - Defined new types for AgentPersona, AgentPart, and AgentTrait in types.ts.
This commit is contained in:
@@ -3,6 +3,8 @@ set -euo pipefail
|
||||
|
||||
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
out_dir="${repo_root}/internal/generatedmodels"
|
||||
resolve_spec_models_file="${repo_root}/internal/app/resolvespec_models_generated.go"
|
||||
resolve_spec_template="${repo_root}/scripts/templates/resolvespec_models.tmpl"
|
||||
|
||||
resolve_relspec() {
|
||||
if [[ -n "${RELSPEC:-}" ]]; then
|
||||
@@ -44,6 +46,12 @@ mkdir -p "${out_dir}"
|
||||
--to-path "${out_dir}" \
|
||||
--package generatedmodels
|
||||
|
||||
"${relspec_bin}" templ \
|
||||
--from dbml \
|
||||
--from-list "${schema_list}" \
|
||||
--template "${resolve_spec_template}" \
|
||||
--output "${resolve_spec_models_file}"
|
||||
|
||||
# relspec currently emits a few files with unused fmt imports; strip only when fmt is unused.
|
||||
for file in "${out_dir}"/*.go; do
|
||||
sed -i 's/fmt.Sprintf("%d", m.ID)/fmt.Sprintf("%v", m.ID)/g' "${file}"
|
||||
@@ -56,3 +64,4 @@ done
|
||||
bash "${repo_root}/scripts/patch-generated-models.sh"
|
||||
|
||||
gofmt -w "${out_dir}"/*.go
|
||||
gofmt -w "${resolve_spec_models_file}"
|
||||
|
||||
@@ -4,12 +4,18 @@ set -euo pipefail
|
||||
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
models_dir="${repo_root}/internal/generatedmodels"
|
||||
projects_model="${models_dir}/sql_public_projects.go"
|
||||
persona_arc_model="${models_dir}/sql_public_persona_arc.go"
|
||||
|
||||
if [[ ! -f "${projects_model}" ]]; then
|
||||
echo "generated projects model not found: ${projects_model}" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ ! -f "${persona_arc_model}" ]]; then
|
||||
echo "generated persona arc model not found: ${persona_arc_model}" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Ensure ModelPublicProjects can scan ResolveSpec computed column "thought_count".
|
||||
if ! grep -q "ThoughtCount" "${projects_model}"; then
|
||||
tmp_file="$(mktemp)"
|
||||
@@ -24,3 +30,12 @@ if ! grep -q "ThoughtCount" "${projects_model}"; then
|
||||
mv "${tmp_file}" "${projects_model}"
|
||||
fi
|
||||
|
||||
# relspec currently emits an incorrect int32 cast for persona_arc primary key updates.
|
||||
sed -i 's/m\.PersonaID = int32(newid)/m.PersonaID = newid/' "${persona_arc_model}"
|
||||
|
||||
# Some join-table models import resolvespec_common without using it.
|
||||
for file in "${models_dir}"/*.go; do
|
||||
if ! grep -q 'resolvespec_common\.' "${file}"; then
|
||||
sed -i '/^[[:space:]]*resolvespec_common "github.com\/bitechdev\/ResolveSpec\/pkg\/spectypes"$/d' "${file}"
|
||||
fi
|
||||
done
|
||||
|
||||
15
scripts/templates/resolvespec_models.tmpl
Normal file
15
scripts/templates/resolvespec_models.tmpl
Normal file
@@ -0,0 +1,15 @@
|
||||
// Code generated by relspec templ. DO NOT EDIT.
|
||||
package app
|
||||
|
||||
import "git.warky.dev/wdevs/amcs/internal/generatedmodels"
|
||||
|
||||
func resolveSpecModels() []resolveSpecModel {
|
||||
return []resolveSpecModel{
|
||||
{{- range sortBy .Database.Schemas "Name" }}
|
||||
{{- $schema := .Name }}
|
||||
{{- range sortBy .Tables "Name" }}
|
||||
{schema: "{{$schema}}", entity: "{{ .Name }}", model: generatedmodels.Model{{ $schema | toPascalCase }}{{ .Name | toPascalCase }}{}},
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user