Files
xinmi/migrations/versioned/000205_agent_duties.up.sql
yawan f7fc992f57
Anydoc / anydoc parser engine (push) Canceled after 0s
App / Format, vet, test, and build (push) Canceled after 0s
CLI / test (macos-latest / go 1.26) (push) Canceled after 0s
CLI / test (ubuntu-latest / go 1.26) (push) Canceled after 0s
CLI / test (windows-latest / go 1.26) (push) Canceled after 0s
Build and Push Docker Image / build-ui (push) Canceled after 0s
Build and Push Docker Image / build-docreader (push) Canceled after 0s
Build and Push Docker Image / build-sandbox (push) Canceled after 0s
Build and Push Docker Image / build-app (amd64, linux/amd64, ubuntu-latest) (push) Canceled after 0s
Build and Push Docker Image / build-app (arm64, linux/arm64, ubuntu-24.04-arm) (push) Canceled after 0s
DocReader / Python tests and Go client tests (push) Canceled after 0s
Build & Publish (dsh-weknora) / Typecheck, test, pack (push) Canceled after 0s
Build & Publish (dsh-weknora) / End-to-end inside dsh (pinned) (push) Canceled after 0s
Build & Publish (dsh-weknora) / End-to-end inside dsh (latest, advisory) (push) Canceled after 0s
Frontend / Test, type-check, and build (push) Canceled after 0s
Go Lint Cache / warm lint cache (.) (push) Canceled after 0s
Go Lint Cache / warm lint cache (cli) (push) Canceled after 0s
Go Lint Cache / warm lint cache (client) (push) Canceled after 0s
Build & Publish (mcp-server) / Test (Python 3.10) (push) Canceled after 0s
Build & Publish (mcp-server) / Test (Python 3.11) (push) Canceled after 0s
Build & Publish (mcp-server) / Test (Python 3.12) (push) Canceled after 0s
Build & Publish (mcp-server) / Test (Python 3.13) (push) Canceled after 0s
Build and Push Docker Image / merge (push) Canceled after 0s
Build & Publish (dsh-weknora) / Publish to npm (push) Canceled after 0s
Build & Publish (mcp-server) / Build sdist + wheel (push) Canceled after 0s
Build & Publish (mcp-server) / Publish to PyPI (push) Canceled after 0s
WeKnora deployment source with the reviewed wiki identity, summary and recovery fixes
2026-09-22 16:19:06 +08:00

23 lines
1.3 KiB
SQL

-- Add the source duties only when the native field has never been saved.
DO $agent_duties$
BEGIN
IF to_regclass('yawan_legacy_asset_mappings') IS NOT NULL THEN
UPDATE custom_agents a
SET config = (a.config::jsonb ||
CASE WHEN NOT (a.config::jsonb ? 'role')
THEN jsonb_build_object('role', m.source_snapshot->>'role') ELSE '{}'::jsonb END ||
CASE WHEN NOT (a.config::jsonb ? 'content_tags')
THEN jsonb_build_object('content_tags', m.source_snapshot->'content_tags') ELSE '{}'::jsonb END)
FROM yawan_legacy_asset_mappings m
WHERE m.source_system = 'yawan-workbench' AND m.source_organization_id = 1
AND m.source_kind = 'agent' AND a.id = m.target_id AND a.tenant_id = m.target_tenant_id
AND a.deleted_at IS NULL
AND (NOT (a.config::jsonb ? 'role') OR NOT (a.config::jsonb ? 'content_tags'))
AND m.source_snapshot->>'role' IN ('', 'general', 'coordinator', 'production', 'qc', 'service', 'training_map')
AND jsonb_typeof(m.source_snapshot->'content_tags') = 'array'
AND NOT EXISTS (SELECT 1 FROM jsonb_array_elements(m.source_snapshot->'content_tags') tag
WHERE jsonb_typeof(tag) <> 'string' OR length(tag #>> '{}') > 64 OR btrim(tag #>> '{}') = '')
AND jsonb_array_length(m.source_snapshot->'content_tags') <= 32;
END IF;
END $agent_duties$;