thinkwork-cli 0.12.12 → 0.12.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -38
- package/dist/{api-client-ASJWIG3Z.js → api-client-4VT3FWOH.js} +1 -1
- package/dist/{chunk-JEHV35EU.js → chunk-H7AB42ES.js} +340 -30
- package/dist/cli.js +22123 -9219
- package/dist/commands/enterprise/templates/deploy-repo/.github/workflows/deploy.yml +17 -6
- package/dist/commands/enterprise/templates/deploy-repo/docs/runbook.md +81 -9
- package/dist/commands/enterprise/templates/deploy-repo/scripts/apply-release.mjs +183 -21
- package/dist/commands/enterprise/templates/deploy-repo/scripts/smoke.mjs +1 -2
- package/dist/commands/enterprise/templates/deploy-repo/terraform/main.tf +286 -0
- package/dist/drizzle/0000_petite_marvel_apes.sql +1188 -0
- package/dist/drizzle/0001_milky_surge.sql +103 -0
- package/dist/drizzle/0002_aberrant_mattie_franklin.sql +41 -0
- package/dist/drizzle/0003_exotic_ogun.sql +3 -0
- package/dist/drizzle/0004_glamorous_magneto.sql +2 -0
- package/dist/drizzle/0005_ancient_nocturne.sql +2 -0
- package/dist/drizzle/0006_new_colonel_america.sql +2 -0
- package/dist/drizzle/0007_unique_external_task_id.sql +31 -0
- package/dist/drizzle/0008_external_task_id_column.sql +43 -0
- package/dist/drizzle/0009_evaluations.sql +64 -0
- package/dist/drizzle/0010_eval_agent_template.sql +2 -0
- package/dist/drizzle/0011_eval_run_template.sql +2 -0
- package/dist/drizzle/0012_eval_seed_unique.sql +16 -0
- package/dist/drizzle/0013_motionless_white_queen.sql +140 -0
- package/dist/drizzle/0014_wiki_aggregation.sql +11 -0
- package/dist/drizzle/0015_pg_trgm_alias_title_indexes.sql +9 -0
- package/dist/drizzle/0016_wiki_schema_drops.sql +24 -0
- package/dist/drizzle/0017_wiki_places.sql +46 -0
- package/dist/drizzle/0018_agent_workspace_overlay.sql +26 -0
- package/dist/drizzle/0018_cool_firebird.sql +24 -0
- package/dist/drizzle/0018_skill_runs.sql +84 -0
- package/dist/drizzle/0019_condemned_dragon_man.sql +95 -0
- package/dist/drizzle/0019_webhook_skill_runs.sql +58 -0
- package/dist/drizzle/0020_crazy_the_anarchist.sql +9 -0
- package/dist/drizzle/0020_mutation_idempotency.sql +64 -0
- package/dist/drizzle/0021_crm_work_links.sql +76 -0
- package/dist/drizzle/0021_skill_runs_completion_hmac.sql +33 -0
- package/dist/drizzle/0022_add_billing_tables.sql +70 -0
- package/dist/drizzle/0022_seed_thinkwork_admin_permissions.sql +160 -0
- package/dist/drizzle/0022_stripe_billing_indexes.sql +48 -0
- package/dist/drizzle/0023_tenants_deactivation.sql +27 -0
- package/dist/drizzle/0024_tenant_mcp_admin_keys.sql +63 -0
- package/dist/drizzle/0025_v1_agent_architecture.sql +182 -0
- package/dist/drizzle/0026_thread_turns_add_kind.sql +28 -0
- package/dist/drizzle/0027_capability_catalog_and_manifests.sql +219 -0
- package/dist/drizzle/0028_aws_s3_extension.sql +26 -0
- package/dist/drizzle/0029_collapse_execution_types.sql +42 -0
- package/dist/drizzle/0030_retire_composition_primitives.sql +48 -0
- package/dist/drizzle/0031_thread_cleanup_drops.sql +131 -0
- package/dist/drizzle/0032_add_browser_automation_template_config.sql +24 -0
- package/dist/drizzle/0033_agent_operation_leases.sql +32 -0
- package/dist/drizzle/0034_agent_workspace_events.sql +116 -0
- package/dist/drizzle/0035_workspace_review_decisions.sql +19 -0
- package/dist/drizzle/0036_user_scoped_memory_wiki.sql +152 -0
- package/dist/drizzle/0037_user_profile_operating_model.sql +34 -0
- package/dist/drizzle/0042_agent_runtime_selector.sql +41 -0
- package/dist/drizzle/0043_wiki_search_tsv_tokenization.sql +48 -0
- package/dist/drizzle/0044_add_web_search_template_config.sql +7 -0
- package/dist/drizzle/0045_add_send_email_template_config.sql +7 -0
- package/dist/drizzle/0046_tenant_mcp_context_tools.sql +26 -0
- package/dist/drizzle/0047_add_context_engine_template_config.sql +7 -0
- package/dist/drizzle/0048_tenant_context_provider_settings.sql +22 -0
- package/dist/drizzle/0050_brain_v0_entity_subtype.sql +29 -0
- package/dist/drizzle/0051_brain_v0_tenant_entity_pages.sql +170 -0
- package/dist/drizzle/0052_brain_v0_external_refs.sql +41 -0
- package/dist/drizzle/0053_brain_v0_unresolved_mentions_subtype.sql +48 -0
- package/dist/drizzle/0054_wiki_compile_jobs_input.sql +28 -0
- package/dist/drizzle/0055_routines_stepfunctions_substrate.sql +202 -0
- package/dist/drizzle/0056_routine_step_events_dedup_idx.sql +25 -0
- package/dist/drizzle/0057_archive_legacy_python_routines.sql +36 -0
- package/dist/drizzle/0058_routines_visibility_and_owning_agent.sql +61 -0
- package/dist/drizzle/0061_routine_execution_asl_version_id.sql +29 -0
- package/dist/drizzle/0062_migrate_pi_to_flue.sql +110 -0
- package/dist/drizzle/0063_threads_session_data.sql +23 -0
- package/dist/drizzle/0064_tenant_credentials.sql +65 -0
- package/dist/drizzle/0067_thinkwork_computers_phase_one.sql +174 -0
- package/dist/drizzle/0068_drop_system_workflows_and_activation.sql +115 -0
- package/dist/drizzle/0069_compliance_schema.sql +364 -0
- package/dist/drizzle/0070_compliance_aurora_roles.sql +171 -0
- package/dist/drizzle/0072_threads_computer_ownership.sql +24 -0
- package/dist/drizzle/0073_compliance_tenant_anchor_state.sql +105 -0
- package/dist/drizzle/0074_compliance_event_hash_index.sql +49 -0
- package/dist/drizzle/0075_scheduled_jobs_computer_ownership.sql +27 -0
- package/dist/drizzle/0076_scheduled_jobs_marco_backfill.sql +69 -0
- package/dist/drizzle/0077_computers_primary_agent_id.sql +38 -0
- package/dist/drizzle/0078_tenant_customize_catalog.sql +46 -0
- package/dist/drizzle/0079_seed_tenant_customize_catalog.sql +53 -0
- package/dist/drizzle/0081_routines_catalog_slug.sql +42 -0
- package/dist/drizzle/0082_messages_parts_jsonb.sql +52 -0
- package/dist/drizzle/0083_computer_runbooks.sql +103 -0
- package/dist/drizzle/0084_artifacts_favorited_at.sql +32 -0
- package/dist/drizzle/0085_seed_thinkwork_computer_default_template.sql +46 -0
- package/dist/drizzle/0086_update_default_template_models.sql +19 -0
- package/dist/drizzle/0087_retire_oss_connectors.sql +77 -0
- package/dist/drizzle/0088_compliance_event_types_finance_pilot.sql +37 -0
- package/dist/drizzle/0089_remove_maniflow_eval_seeds.sql +81 -0
- package/dist/drizzle/0089_wiki_schema_extraction.sql +315 -0
- package/dist/drizzle/0090_brain_schema_extraction.sql +274 -0
- package/dist/drizzle/0091_drop_wiki_brain_compat_views.sql +118 -0
- package/dist/drizzle/0092_finish_oss_connector_retirement.sql +97 -0
- package/dist/drizzle/0093_eval_runs_scheduled_job_id.sql +23 -0
- package/dist/drizzle/0094_slack_workspace_app.sql +140 -0
- package/dist/drizzle/0095_eval_runs_computer_id.sql +22 -0
- package/dist/drizzle/0096_true_redteam_eval_seed_cleanup.sql +67 -0
- package/dist/drizzle/0097_shared_computers.sql +191 -0
- package/dist/drizzle/0098_business_ontology.sql +587 -0
- package/dist/drizzle/0099_thread_idle_learning.sql +145 -0
- package/dist/drizzle/0100_ontology_gated_brain_dynamic_subtypes.sql +7 -0
- package/dist/drizzle/0101_ontology_gated_unresolved_mentions_dynamic_subtypes.sql +7 -0
- package/dist/drizzle/0102_wiki_brain_owner_repair.sql +87 -0
- package/dist/drizzle/0103_brain_section_source_trigger_repair.sql +75 -0
- package/dist/drizzle/0104_expand_seed_ontology_for_user_memory.sql +166 -0
- package/dist/drizzle/0105_spaces_domain.sql +349 -0
- package/dist/drizzle/0106_expand_seed_ontology_for_triples.sql +173 -0
- package/dist/drizzle/0106_space_threads_participants.sql +197 -0
- package/dist/drizzle/0107_linked_task_mirror.sql +245 -0
- package/dist/drizzle/0108_message_mentions.sql +95 -0
- package/dist/drizzle/0109_space_owned_threads.sql +217 -0
- package/dist/drizzle/0110_thread_participant_read_state.sql +21 -0
- package/dist/drizzle/0111_agents_tenant_name_unique.sql +38 -0
- package/dist/drizzle/0112_recast_spaces_as_contextual_workrooms.sql +138 -0
- package/dist/drizzle/0113_agents_own_runtime_fields.sql +48 -0
- package/dist/drizzle/0114_migrate_templates_to_agents_and_spaces.sql +361 -0
- package/dist/drizzle/0115_remove_computer_eval_template_dependencies.sql +69 -0
- package/dist/drizzle/0116_backfill_thread_participants_access.sql +126 -0
- package/dist/drizzle/0117_space_access_mode.sql +40 -0
- package/dist/drizzle/0118_normalize_tenant_member_principal_type.sql +41 -0
- package/dist/drizzle/0119_space_knowledge_bases.sql +126 -0
- package/dist/drizzle/0120_space_automations.sql +58 -0
- package/dist/drizzle/0121_drop_computer_runbooks.sql +26 -0
- package/dist/drizzle/0122_space_email_triggers.sql +24 -0
- package/dist/drizzle/0123_single_platform_agent_and_overrides.sql +58 -0
- package/dist/drizzle/0124_thread_turns_finalized_at.sql +17 -0
- package/dist/drizzle/0125_drop_space_agent_assignments.sql +42 -0
- package/dist/drizzle/0126_migrate_flue_to_pi.sql +42 -0
- package/dist/drizzle/0127_runtime_type_observability.sql +28 -0
- package/dist/drizzle/0128_drop_eval_test_cases_agent_id.sql +37 -0
- package/dist/drizzle/0129_drop_code_factory_tables.sql +43 -0
- package/dist/drizzle/0129_eval_results_system_prompt.sql +30 -0
- package/dist/drizzle/0130_drop_teams_and_team_id_columns.sql +54 -0
- package/dist/drizzle/0131_drop_skill_catalog_and_tenant_skills.sql +33 -0
- package/dist/drizzle/0132_drop_computer_tables.sql +31 -0
- package/dist/drizzle/0133_drop_seed_view_tombstones.sql +79 -0
- package/dist/drizzle/0133_thread_turns_system_prompt.sql +22 -0
- package/dist/drizzle/0134_drop_dead_agent_runtime_tables.sql +53 -0
- package/dist/drizzle/0135_native_checklist_linked_tasks.sql +48 -0
- package/dist/drizzle/0136_goal_ledger.sql +55 -0
- package/dist/drizzle/0136_space_email_trigger_status.sql +66 -0
- package/dist/drizzle/0137_thread_participant_pins.sql +25 -0
- package/dist/drizzle/0138_users_cognito_sub.sql +30 -0
- package/dist/drizzle/0139_mobile_turn_client_id.sql +23 -0
- package/dist/drizzle/0140_workspace_folder_names.sql +36 -0
- package/dist/drizzle/0141_eval_runs_desktop_pi_provenance.sql +31 -0
- package/dist/drizzle/0142_pi_only_agent_runtime.sql +61 -0
- package/dist/drizzle/0143_add_web_extract_builtin_config.sql +28 -0
- package/dist/drizzle/0144_skill_catalog_index.sql +40 -0
- package/dist/drizzle/0145_knowledge_graph_thread_ingest.sql +512 -0
- package/dist/drizzle/0146_knowledge_graph_source_scope.sql +413 -0
- package/dist/drizzle/0147_knowledge_graph_scope_trigger_qualification.sql +211 -0
- package/dist/drizzle/0148_user_cost_attribution.sql +171 -0
- package/dist/drizzle/0149_managed_mcp_servers.sql +64 -0
- package/dist/drizzle/0149_user_model_approvals.sql +89 -0
- package/dist/drizzle/0150_bootstrap_first_admin_claim.sql +11 -0
- package/dist/drizzle/0151_managed_deployments.sql +91 -0
- package/dist/drizzle/0152_agent_profiles.sql +81 -0
- package/dist/drizzle/0153_message_mentions_agent_profile.sql +9 -0
- package/dist/drizzle/0154_customer_deployment_sessions.sql +61 -0
- package/dist/drizzle/0155_tenant_model_catalog.sql +152 -0
- package/dist/drizzle/0156_bootstrap_credential_leases.sql +52 -0
- package/dist/drizzle/0157_knowledge_graph_observations_source.sql +79 -0
- package/dist/drizzle/0158_pending_user_questions.sql +80 -0
- package/dist/drizzle/0158_wiki_tenant_scope.sql +38 -0
- package/dist/drizzle/0159_agent_profiles_space_local.sql +49 -0
- package/dist/drizzle/0159_application_plugins.sql +193 -0
- package/dist/drizzle/0159_eval_scoring_version.sql +46 -0
- package/dist/drizzle/0160_compliance_event_types_plugins.sql +37 -0
- package/dist/drizzle/0160_eval_datasets.sql +75 -0
- package/dist/drizzle/0160_eval_results_thread_turn.sql +35 -0
- package/dist/drizzle/0161_eval_run_pinning.sql +54 -0
- package/dist/drizzle/0161_tenant_mcp_servers_plugin_source.sql +62 -0
- package/dist/drizzle/0162_eval_result_override.sql +49 -0
- package/dist/drizzle/0163_eval_replay_tool_allowlist.sql +50 -0
- package/dist/drizzle/0164_eval_replay_tool_override_mode.sql +52 -0
- package/dist/drizzle/0165_plugin_premium_entitlements.sql +153 -0
- package/dist/drizzle/0166_company_brain_substrate_contract.sql +386 -0
- package/dist/drizzle/0167_company_brain_artifact_manifest_runtime.sql +85 -0
- package/dist/drizzle/0168_eval_skill_gate.sql +44 -0
- package/dist/drizzle/0169_release_update_jobs.sql +67 -0
- package/dist/drizzle/0170_email_channel_plugin.sql +291 -0
- package/dist/drizzle/0171_linked_task_external_providers.sql +30 -0
- package/dist/drizzle/0172_email_channel_sendgrid_provider.sql +8 -0
- package/dist/drizzle/0173_auth_provider_resources.sql +83 -0
- package/dist/drizzle/0174_workos_auth_bridges.sql +37 -0
- package/dist/drizzle/0175_workos_auth_sessions.sql +38 -0
- package/dist/drizzle/0176_n8n_agent_step_runs.sql +107 -0
- package/dist/drizzle/0177_workflow_control_plane.sql +281 -0
- package/dist/drizzle/0178_workflow_backfill_existing_routines.sql +525 -0
- package/dist/drizzle/0179_tenant_goal_budget_settings.sql +21 -0
- package/dist/drizzle/0180_skill_drafts.sql +89 -0
- package/dist/drizzle/0181_skill_draft_publish_status.sql +21 -0
- package/dist/drizzle/0182_agent_loops.sql +260 -0
- package/dist/drizzle/0183_okf_artifact_manifests.sql +52 -0
- package/dist/drizzle/0184_skill_catalog_trust_cache.sql +35 -0
- package/dist/drizzle/0185_agent_loop_space.sql +16 -0
- package/dist/drizzle/0186_tenant_mcp_runtime_metadata.sql +10 -0
- package/dist/drizzle/0187_native_work_items.sql +220 -0
- package/dist/drizzle/0188_company_etl_plugin_rename.sql +99 -0
- package/dist/drizzle/0189_trace_cost_substrate.sql +247 -0
- package/dist/drizzle/0190_billing_export_reconciliation.sql +101 -0
- package/dist/drizzle/0191_open_engine_work_item_queue.sql +66 -0
- package/dist/drizzle/0192_work_item_labels.sql +44 -0
- package/dist/drizzle/0193_work_item_documents.sql +31 -0
- package/dist/drizzle/0194_memory_retain_attempts.sql +103 -0
- package/dist/drizzle/0194_work_item_comments.sql +35 -0
- package/dist/drizzle/0195_plugin_app_overlays.sql +45 -0
- package/dist/drizzle/0196_pi_extensions.sql +118 -0
- package/dist/drizzle/0197_eval_profiles.sql +150 -0
- package/dist/drizzle/0198_eval_runs_unstable.sql +27 -0
- package/dist/drizzle/0199_eval_runs_cost_partial.sql +27 -0
- package/dist/drizzle/meta/_journal.json +160 -0
- package/dist/plugins/README.md +162 -0
- package/dist/plugins/catalog/package.json +40 -0
- package/dist/plugins/catalog/scripts/build-catalog.ts +120 -0
- package/dist/plugins/catalog/scripts/generate-plugin-registry.ts +144 -0
- package/dist/plugins/catalog/src/__tests__/build-catalog.test.ts +86 -0
- package/dist/plugins/catalog/src/__tests__/catalog.test.ts +308 -0
- package/dist/plugins/catalog/src/__tests__/contracts.test.ts +861 -0
- package/dist/plugins/catalog/src/__tests__/plugin-package.test.ts +124 -0
- package/dist/plugins/catalog/src/__tests__/plugin-registry.test.ts +120 -0
- package/dist/plugins/catalog/src/catalog.ts +434 -0
- package/dist/plugins/catalog/src/contracts.ts +1498 -0
- package/dist/plugins/catalog/src/index.ts +4 -0
- package/dist/plugins/catalog/src/plugin-package.ts +171 -0
- package/dist/plugins/catalog/src/registry/generated-first-party.ts +76 -0
- package/dist/plugins/catalog/src/registry/index.ts +1 -0
- package/dist/plugins/catalog/tsconfig.json +8 -0
- package/dist/plugins/company-brain/README.md +37 -0
- package/dist/plugins/company-brain/package.json +33 -0
- package/dist/plugins/company-brain/runtime/cognee/Dockerfile +11 -0
- package/dist/plugins/company-brain/smoke/cognee-managed-app-smoke.mjs +458 -0
- package/dist/plugins/company-brain/smoke/cognee-memory-cutover-smoke.mjs +539 -0
- package/dist/plugins/company-brain/smoke/company-brain-context-engine-smoke.mjs +312 -0
- package/dist/plugins/company-brain/smoke/company-brain-operations-smoke.mjs +449 -0
- package/dist/plugins/company-brain/smoke/company-brain-plugin-smoke.mjs +655 -0
- package/dist/plugins/company-brain/smoke/hindsight-memory-isolation-smoke.mjs +474 -0
- package/dist/plugins/company-brain/src/api/cognee-client.ts +896 -0
- package/dist/plugins/company-brain/src/api/cognee-cluster-identity.ts +49 -0
- package/dist/plugins/company-brain/src/api/cognee-memory-scope.ts +84 -0
- package/dist/plugins/company-brain/src/api/context-engine-provider.ts +888 -0
- package/dist/plugins/company-brain/src/api/migration.ts +665 -0
- package/dist/plugins/company-brain/src/deployment/cognee-managed-app.ts +396 -0
- package/dist/plugins/company-brain/src/index.ts +62 -0
- package/dist/plugins/company-brain/src/manifest.ts +112 -0
- package/dist/plugins/company-brain/terraform/cognee/README.md +263 -0
- package/dist/plugins/company-brain/terraform/cognee/main.tf +766 -0
- package/dist/plugins/company-brain/terraform/cognee/outputs.tf +144 -0
- package/dist/plugins/company-brain/terraform/cognee/variables.tf +402 -0
- package/dist/plugins/company-brain/test/api/cognee-client.test.ts +562 -0
- package/dist/plugins/company-brain/test/api/cognee-memory-scope.test.ts +74 -0
- package/dist/plugins/company-brain/test/api/context-engine-provider.test.ts +447 -0
- package/dist/plugins/company-brain/test/api/migration.test.ts +465 -0
- package/dist/plugins/company-brain/test/manifest.test.ts +95 -0
- package/dist/plugins/company-brain/tsconfig.json +8 -0
- package/dist/plugins/company-data/README.md +49 -0
- package/dist/plugins/company-data/package.json +21 -0
- package/dist/plugins/company-data/src/index.ts +30 -0
- package/dist/plugins/company-data/src/manifest.ts +26 -0
- package/dist/plugins/company-data/test/manifest.test.ts +116 -0
- package/dist/plugins/company-data/tsconfig.json +8 -0
- package/dist/plugins/company-etl/README.md +46 -0
- package/dist/plugins/company-etl/package.json +21 -0
- package/dist/plugins/company-etl/src/index.ts +29 -0
- package/dist/plugins/company-etl/src/manifest.ts +26 -0
- package/dist/plugins/company-etl/test/manifest.test.ts +108 -0
- package/dist/plugins/company-etl/tsconfig.json +8 -0
- package/dist/plugins/email-channel/README.md +41 -0
- package/dist/plugins/email-channel/package.json +22 -0
- package/dist/plugins/email-channel/src/index.ts +36 -0
- package/dist/plugins/email-channel/src/manifest.ts +44 -0
- package/dist/plugins/email-channel/src/provider-contract.ts +36 -0
- package/dist/plugins/email-channel/test/manifest.test.ts +119 -0
- package/dist/plugins/email-channel/tsconfig.json +8 -0
- package/dist/plugins/lastmile/README.md +50 -0
- package/dist/plugins/lastmile/package.json +23 -0
- package/dist/plugins/lastmile/smoke/lastmile-plugin-smoke.mjs +661 -0
- package/dist/plugins/lastmile/src/api/tasks-adapter.ts +572 -0
- package/dist/plugins/lastmile/src/discovery.fixture.ts +64 -0
- package/dist/plugins/lastmile/src/index.ts +46 -0
- package/dist/plugins/lastmile/src/manifest.ts +139 -0
- package/dist/plugins/lastmile/test/api/tasks-adapter.test.ts +266 -0
- package/dist/plugins/lastmile/test/discovery.test.ts +88 -0
- package/dist/plugins/lastmile/tsconfig.json +8 -0
- package/dist/plugins/n8n/README.md +201 -0
- package/dist/plugins/n8n/n8n-app/README.md +33 -0
- package/dist/plugins/n8n/n8n-app/package.json +23 -0
- package/dist/plugins/n8n/n8n-app/src/application-config.ts +45 -0
- package/dist/plugins/n8n/n8n-app/src/front-components/thinkwork-workflows.front-component.tsx +970 -0
- package/dist/plugins/n8n/n8n-app/src/lib/n8n-app-data.ts +190 -0
- package/dist/plugins/n8n/n8n-app/src/vite-env.d.ts +7 -0
- package/dist/plugins/n8n/n8n-app/tsconfig.json +15 -0
- package/dist/plugins/n8n/package.json +35 -0
- package/dist/plugins/n8n/runtime/Dockerfile +18 -0
- package/dist/plugins/n8n/runtime/n8n-task-runners.json +14 -0
- package/dist/plugins/n8n/runtime/n8n-task-runners.json.template +14 -0
- package/dist/plugins/n8n/runtime/package-lock.json +13 -0
- package/dist/plugins/n8n/runtime/package.json +7 -0
- package/dist/plugins/n8n/scripts/sync-thinkwork-app.mjs +268 -0
- package/dist/plugins/n8n/smoke/README.md +95 -0
- package/dist/plugins/n8n/smoke/n8n-agent-step-bridge-smoke.mjs +866 -0
- package/dist/plugins/n8n/smoke/n8n-integrated-app-smoke.mjs +262 -0
- package/dist/plugins/n8n/smoke/n8n-managed-app-smoke.mjs +409 -0
- package/dist/plugins/n8n/smoke/n8n-mcp-smoke.mjs +624 -0
- package/dist/plugins/n8n/src/deployment/image-build.ts +172 -0
- package/dist/plugins/n8n/src/deployment/managed-app.ts +429 -0
- package/dist/plugins/n8n/src/index.ts +79 -0
- package/dist/plugins/n8n/src/manifest.ts +403 -0
- package/dist/plugins/n8n/src/package-config.ts +186 -0
- package/dist/plugins/n8n/src/skills/n8n-workflow-operator/SKILL.md +76 -0
- package/dist/plugins/n8n/src/skills/n8n-workflow-operator/references/mcp-tooling.md +40 -0
- package/dist/plugins/n8n/src/skills/n8n-workflow-operator/references/validation-and-handoff.md +40 -0
- package/dist/plugins/n8n/src/skills/n8n-workflow-operator/references/workflow-authoring.md +45 -0
- package/dist/plugins/n8n/terraform/n8n/README.md +113 -0
- package/dist/plugins/n8n/terraform/n8n/main.tf +918 -0
- package/dist/plugins/n8n/terraform/n8n/outputs.tf +124 -0
- package/dist/plugins/n8n/terraform/n8n/scripts/sync-database.py +250 -0
- package/dist/plugins/n8n/terraform/n8n/scripts/test_sync_database.py +55 -0
- package/dist/plugins/n8n/terraform/n8n/variables.tf +354 -0
- package/dist/plugins/n8n/test/image-build.test.ts +118 -0
- package/dist/plugins/n8n/test/integrated-app-contract.test.ts +353 -0
- package/dist/plugins/n8n/test/manifest.test.ts +278 -0
- package/dist/plugins/n8n/test/package-config.test.ts +57 -0
- package/dist/plugins/n8n/tsconfig.json +8 -0
- package/dist/plugins/sendgrid/README.md +30 -0
- package/dist/plugins/sendgrid/package.json +22 -0
- package/dist/plugins/sendgrid/src/index.ts +36 -0
- package/dist/plugins/sendgrid/src/manifest.ts +37 -0
- package/dist/plugins/sendgrid/src/provider-contract.ts +14 -0
- package/dist/plugins/sendgrid/test/manifest.test.ts +80 -0
- package/dist/plugins/sendgrid/tsconfig.json +8 -0
- package/dist/plugins/twenty/README.md +78 -0
- package/dist/plugins/twenty/package.json +27 -0
- package/dist/plugins/twenty/scripts/__tests__/sync-thinkwork-app.test.mjs +67 -0
- package/dist/plugins/twenty/scripts/sync-thinkwork-app.mjs +185 -0
- package/dist/plugins/twenty/scripts/wire-thinkwork-workflow.mjs +658 -0
- package/dist/plugins/twenty/smoke/twenty-managed-app-smoke.mjs +359 -0
- package/dist/plugins/twenty/smoke/twenty-mcp-oauth-smoke.mjs +574 -0
- package/dist/plugins/twenty/src/api/cutover.ts +209 -0
- package/dist/plugins/twenty/src/deployment/managed-app.ts +253 -0
- package/dist/plugins/twenty/src/index.ts +55 -0
- package/dist/plugins/twenty/src/manifest.ts +259 -0
- package/dist/plugins/twenty/terraform/twenty/README.md +97 -0
- package/dist/plugins/twenty/terraform/twenty/main.tf +829 -0
- package/dist/plugins/twenty/terraform/twenty/outputs.tf +79 -0
- package/dist/plugins/twenty/terraform/twenty/variables.tf +268 -0
- package/dist/plugins/twenty/test/api/cutover.test.ts +183 -0
- package/dist/plugins/twenty/test/manifest.test.ts +463 -0
- package/dist/plugins/twenty/tsconfig.json +9 -0
- package/dist/plugins/twenty/twenty-app/.nvmrc +1 -0
- package/dist/plugins/twenty/twenty-app/README.md +148 -0
- package/dist/plugins/twenty/twenty-app/package.json +30 -0
- package/dist/plugins/twenty/twenty-app/src/application-config.ts +44 -0
- package/dist/plugins/twenty/twenty-app/src/constants/universal-identifiers.ts +18 -0
- package/dist/plugins/twenty/twenty-app/src/default-role.ts +24 -0
- package/dist/plugins/twenty/twenty-app/src/front-components/thinkwork-settings.front-component.tsx +299 -0
- package/dist/plugins/twenty/twenty-app/src/logic-functions/thinkwork-webhook.logic-function.ts +354 -0
- package/dist/plugins/twenty/twenty-app/tsconfig.json +14 -0
- package/dist/plugins/twenty/twenty-app/yarn.lock +4144 -0
- package/dist/plugins/workos-auth/package.json +22 -0
- package/dist/plugins/workos-auth/src/index.ts +30 -0
- package/dist/plugins/workos-auth/src/manifest.ts +40 -0
- package/dist/plugins/workos-auth/src/provider-contract.ts +39 -0
- package/dist/plugins/workos-auth/test/manifest.test.ts +94 -0
- package/dist/plugins/workos-auth/tsconfig.json +8 -0
- package/dist/scripts/bootstrap-workspace.sh +162 -0
- package/dist/scripts/post-deploy.sh +290 -0
- package/dist/terraform/examples/greenfield/main.tf +903 -75
- package/dist/terraform/examples/greenfield/terraform.tfvars.example +67 -8
- package/dist/terraform/modules/app/agentcore-code-interpreter/Dockerfile.sandbox-base +2 -2
- package/dist/terraform/modules/app/agentcore-code-interpreter/README.md +8 -9
- package/dist/terraform/modules/app/agentcore-code-interpreter/sandbox/sitecustomize.py +227 -0
- package/dist/terraform/modules/app/agentcore-code-interpreter/sandbox/test_sitecustomize.py +277 -0
- package/dist/terraform/modules/app/agentcore-memory/README.md +6 -6
- package/dist/terraform/modules/app/agentcore-memory/main.tf +1 -1
- package/dist/terraform/modules/app/agentcore-memory/scripts/create_or_find_memory.sh +40 -9
- package/dist/terraform/modules/app/agentcore-pi/README.md +61 -0
- package/dist/terraform/modules/app/agentcore-pi/main.tf +453 -0
- package/dist/terraform/modules/app/agentcore-pi/outputs.tf +38 -0
- package/dist/terraform/modules/app/agentcore-pi/variables.tf +145 -0
- package/dist/terraform/modules/app/agentcore-platform/main.tf +83 -0
- package/dist/terraform/modules/app/agentcore-runtime/main.tf +9 -11
- package/dist/terraform/modules/app/appsync-subscriptions/main.tf +5 -1
- package/dist/terraform/modules/app/customer-domain/main.tf +483 -0
- package/dist/terraform/modules/app/deployment-control-plane/README.md +47 -0
- package/dist/terraform/modules/app/deployment-control-plane/buildspec.yml +24 -0
- package/dist/terraform/modules/app/deployment-control-plane/main.tf +614 -0
- package/dist/terraform/modules/app/deployment-control-plane/outputs.tf +54 -0
- package/dist/terraform/modules/app/deployment-control-plane/runner.py +4720 -0
- package/dist/terraform/modules/app/deployment-control-plane/test_runner_bundle.py +3026 -0
- package/dist/terraform/modules/app/deployment-control-plane/variables.tf +96 -0
- package/dist/terraform/modules/app/hindsight-memory/README.md +25 -23
- package/dist/terraform/modules/app/hindsight-memory/main.tf +26 -2
- package/dist/terraform/modules/app/lambda-api/eval-fanout.tf +17 -50
- package/dist/terraform/modules/app/lambda-api/handlers.tf +1290 -679
- package/dist/terraform/modules/app/lambda-api/iam-grouped.tf +933 -0
- package/dist/terraform/modules/app/lambda-api/main.tf +14 -527
- package/dist/terraform/modules/app/lambda-api/mcp-oauth.tf +3 -19
- package/dist/terraform/modules/app/lambda-api/outputs.tf +50 -6
- package/dist/terraform/modules/app/lambda-api/runtime-config.tf +163 -0
- package/dist/terraform/modules/app/lambda-api/slack-app-secrets.tf +3 -1
- package/dist/terraform/modules/app/lambda-api/stripe-secrets.tf +3 -1
- package/dist/terraform/modules/app/lambda-api/variables.tf +240 -53
- package/dist/terraform/modules/app/lambda-api/workspace-events.tf +2 -25
- package/dist/terraform/modules/app/ses-email/main.tf +143 -30
- package/dist/terraform/modules/app/static-site/main.tf +4 -3
- package/dist/terraform/modules/app/www-dns/main.tf +45 -5
- package/dist/terraform/modules/app/www-dns/outputs.tf +10 -0
- package/dist/terraform/modules/app/www-dns/variables.tf +24 -0
- package/dist/terraform/modules/data/aurora-postgres/main.tf +15 -1
- package/dist/terraform/modules/data/compliance-exports-bucket/main.tf +1 -1
- package/dist/terraform/modules/data/compliance-exports-bucket/variables.tf +6 -0
- package/dist/terraform/modules/foundation/cognito/main.tf +167 -11
- package/dist/terraform/modules/foundation/cognito/outputs.tf +5 -0
- package/dist/terraform/modules/foundation/cognito/variables.tf +110 -0
- package/dist/terraform/modules/foundation/vpc/main.tf +45 -3
- package/dist/terraform/modules/foundation/vpc/outputs.tf +20 -0
- package/dist/terraform/modules/foundation/vpc/variables.tf +18 -0
- package/dist/terraform/modules/thinkwork/README.md +71 -0
- package/dist/terraform/modules/thinkwork/main.tf +1325 -174
- package/dist/terraform/modules/thinkwork/outputs.tf +457 -24
- package/dist/terraform/modules/thinkwork/variables.tf +1169 -93
- package/dist/terraform/schema.graphql +82 -9
- package/dist/workspace-defaults/files/AGENTS.md +344 -0
- package/dist/workspace-defaults/files/CONTEXT.md +8 -0
- package/dist/workspace-defaults/files/GUARDRAILS.md +51 -0
- package/dist/workspace-defaults/files/MEMORY_GUIDE.md +65 -0
- package/dist/workspace-defaults/files/ROUTER.md +24 -0
- package/dist/workspace-defaults/files/SPACE.md +62 -0
- package/dist/workspace-defaults/files/TOOLS.md +65 -0
- package/dist/workspace-defaults/files/USER.md +40 -0
- package/dist/workspace-defaults/files/mcp.json +3 -0
- package/dist/workspace-defaults/files/memory/contacts.md +13 -0
- package/dist/workspace-defaults/files/memory/lessons.md +13 -0
- package/dist/workspace-defaults/files/memory/preferences.md +12 -0
- package/dist/workspace-defaults/files/skills/.gitkeep +1 -0
- package/dist/workspace-defaults/files/skills/artifact-builder/SKILL.md +79 -0
- package/dist/workspace-defaults/files/skills/artifact-builder/references/crm-dashboard.md +166 -0
- package/dist/workspace-defaults/files/skills/automation-loop-designer/SKILL.md +120 -0
- package/dist/workspace-defaults/files/skills/skill-creator/LICENSE.txt +202 -0
- package/dist/workspace-defaults/files/skills/skill-creator/SKILL.md +485 -0
- package/dist/workspace-defaults/files/skills/skill-creator/UPSTREAM.json +124 -0
- package/dist/workspace-defaults/files/skills/skill-creator/agents/analyzer.md +274 -0
- package/dist/workspace-defaults/files/skills/skill-creator/agents/comparator.md +202 -0
- package/dist/workspace-defaults/files/skills/skill-creator/agents/grader.md +223 -0
- package/dist/workspace-defaults/files/skills/skill-creator/assets/eval_review.html +146 -0
- package/dist/workspace-defaults/files/skills/skill-creator/eval-viewer/generate_review.py +471 -0
- package/dist/workspace-defaults/files/skills/skill-creator/eval-viewer/viewer.html +1325 -0
- package/dist/workspace-defaults/files/skills/skill-creator/references/schemas.md +430 -0
- package/dist/workspace-defaults/files/skills/skill-creator/scripts/__init__.py +0 -0
- package/dist/workspace-defaults/files/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
- package/dist/workspace-defaults/files/skills/skill-creator/scripts/generate_report.py +326 -0
- package/dist/workspace-defaults/files/skills/skill-creator/scripts/improve_description.py +247 -0
- package/dist/workspace-defaults/files/skills/skill-creator/scripts/package_skill.py +136 -0
- package/dist/workspace-defaults/files/skills/skill-creator/scripts/quick_validate.py +103 -0
- package/dist/workspace-defaults/files/skills/skill-creator/scripts/run_eval.py +310 -0
- package/dist/workspace-defaults/files/skills/skill-creator/scripts/run_loop.py +328 -0
- package/dist/workspace-defaults/files/skills/skill-creator/scripts/utils.py +47 -0
- package/package.json +1 -1
- package/dist/terraform/modules/app/agentcore-flue/README.md +0 -58
- package/dist/terraform/modules/app/agentcore-flue/main.tf +0 -323
- package/dist/terraform/modules/app/agentcore-flue/outputs.tf +0 -23
- package/dist/terraform/modules/app/agentcore-flue/variables.tf +0 -97
- package/dist/terraform/modules/app/computer-runtime/README.md +0 -15
- package/dist/terraform/modules/app/computer-runtime/main.tf +0 -406
- package/dist/terraform/modules/app/computer-runtime/outputs.tf +0 -75
- package/dist/terraform/modules/app/computer-runtime/variables.tf +0 -66
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
-- Durable memory retain attempt ledger for Hindsight retain retries.
|
|
2
|
+
-- Plan: docs/plans/2026-06-28-001-fix-memory-retain-recall-reliability-plan.md (U1).
|
|
3
|
+
--
|
|
4
|
+
-- creates: public.memory_retain_attempts
|
|
5
|
+
-- creates: public.memory_retain_attempts_source_event_uidx
|
|
6
|
+
-- creates: public.memory_retain_attempts_due_idx
|
|
7
|
+
-- creates: public.memory_retain_attempts_tenant_status_idx
|
|
8
|
+
-- creates: public.memory_retain_attempts_thread_idx
|
|
9
|
+
-- creates: public.memory_retain_attempts_user_idx
|
|
10
|
+
-- creates: public.memory_retain_attempts_space_idx
|
|
11
|
+
-- creates: public.memory_retain_attempts_turn_idx
|
|
12
|
+
-- creates-constraint: public.memory_retain_attempts.memory_retain_attempts_tenant_id_tenants_id_fk
|
|
13
|
+
-- creates-constraint: public.memory_retain_attempts.memory_retain_attempts_user_id_users_id_fk
|
|
14
|
+
-- creates-constraint: public.memory_retain_attempts.memory_retain_attempts_space_id_spaces_id_fk
|
|
15
|
+
-- creates-constraint: public.memory_retain_attempts.memory_retain_attempts_thread_id_threads_id_fk
|
|
16
|
+
-- creates-constraint: public.memory_retain_attempts.memory_retain_attempts_thread_turn_id_thread_turns_id_fk
|
|
17
|
+
-- creates-constraint: public.memory_retain_attempts.memory_retain_attempts_status_allowed
|
|
18
|
+
-- creates-constraint: public.memory_retain_attempts.memory_retain_attempts_attempt_count_nonnegative
|
|
19
|
+
-- creates-constraint: public.memory_retain_attempts.memory_retain_attempts_max_attempts_positive
|
|
20
|
+
|
|
21
|
+
DO $$
|
|
22
|
+
BEGIN
|
|
23
|
+
IF to_regclass('public.tenants') IS NULL THEN
|
|
24
|
+
RAISE EXCEPTION 'tenants not found; apply core tenant migrations first';
|
|
25
|
+
END IF;
|
|
26
|
+
IF to_regclass('public.users') IS NULL THEN
|
|
27
|
+
RAISE EXCEPTION 'users not found; apply core user migrations first';
|
|
28
|
+
END IF;
|
|
29
|
+
IF to_regclass('public.spaces') IS NULL THEN
|
|
30
|
+
RAISE EXCEPTION 'spaces not found; apply Space migrations first';
|
|
31
|
+
END IF;
|
|
32
|
+
IF to_regclass('public.threads') IS NULL THEN
|
|
33
|
+
RAISE EXCEPTION 'threads not found; apply thread migrations first';
|
|
34
|
+
END IF;
|
|
35
|
+
IF to_regclass('public.thread_turns') IS NULL THEN
|
|
36
|
+
RAISE EXCEPTION 'thread_turns not found; apply scheduled job execution migrations first';
|
|
37
|
+
END IF;
|
|
38
|
+
END $$;
|
|
39
|
+
|
|
40
|
+
CREATE TABLE IF NOT EXISTS public.memory_retain_attempts (
|
|
41
|
+
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
42
|
+
tenant_id uuid NOT NULL
|
|
43
|
+
CONSTRAINT memory_retain_attempts_tenant_id_tenants_id_fk
|
|
44
|
+
REFERENCES public.tenants(id) ON DELETE CASCADE,
|
|
45
|
+
user_id uuid
|
|
46
|
+
CONSTRAINT memory_retain_attempts_user_id_users_id_fk
|
|
47
|
+
REFERENCES public.users(id) ON DELETE SET NULL,
|
|
48
|
+
space_id uuid
|
|
49
|
+
CONSTRAINT memory_retain_attempts_space_id_spaces_id_fk
|
|
50
|
+
REFERENCES public.spaces(id) ON DELETE SET NULL,
|
|
51
|
+
thread_id uuid NOT NULL
|
|
52
|
+
CONSTRAINT memory_retain_attempts_thread_id_threads_id_fk
|
|
53
|
+
REFERENCES public.threads(id) ON DELETE CASCADE,
|
|
54
|
+
thread_turn_id uuid
|
|
55
|
+
CONSTRAINT memory_retain_attempts_thread_turn_id_thread_turns_id_fk
|
|
56
|
+
REFERENCES public.thread_turns(id) ON DELETE SET NULL,
|
|
57
|
+
source_event_key text NOT NULL,
|
|
58
|
+
source_event_type text NOT NULL DEFAULT 'thread_turn',
|
|
59
|
+
provider text NOT NULL DEFAULT 'hindsight',
|
|
60
|
+
status text NOT NULL DEFAULT 'queued',
|
|
61
|
+
attempt_count integer NOT NULL DEFAULT 0,
|
|
62
|
+
max_attempts integer NOT NULL DEFAULT 5,
|
|
63
|
+
next_retry_at timestamp with time zone,
|
|
64
|
+
locked_at timestamp with time zone,
|
|
65
|
+
locked_by text,
|
|
66
|
+
started_at timestamp with time zone,
|
|
67
|
+
finished_at timestamp with time zone,
|
|
68
|
+
backend_latency_ms integer,
|
|
69
|
+
provider_document_id text,
|
|
70
|
+
provider_result jsonb,
|
|
71
|
+
error_class text,
|
|
72
|
+
error_message text,
|
|
73
|
+
metadata jsonb,
|
|
74
|
+
created_at timestamp with time zone NOT NULL DEFAULT now(),
|
|
75
|
+
updated_at timestamp with time zone NOT NULL DEFAULT now(),
|
|
76
|
+
CONSTRAINT memory_retain_attempts_status_allowed
|
|
77
|
+
CHECK (status IN ('queued','running','retained','failed_timeout','failed_backend','dead_lettered')),
|
|
78
|
+
CONSTRAINT memory_retain_attempts_attempt_count_nonnegative
|
|
79
|
+
CHECK (attempt_count >= 0),
|
|
80
|
+
CONSTRAINT memory_retain_attempts_max_attempts_positive
|
|
81
|
+
CHECK (max_attempts > 0)
|
|
82
|
+
);
|
|
83
|
+
|
|
84
|
+
CREATE UNIQUE INDEX IF NOT EXISTS memory_retain_attempts_source_event_uidx
|
|
85
|
+
ON public.memory_retain_attempts (tenant_id, thread_id, source_event_key);
|
|
86
|
+
|
|
87
|
+
CREATE INDEX IF NOT EXISTS memory_retain_attempts_due_idx
|
|
88
|
+
ON public.memory_retain_attempts (status, next_retry_at, created_at);
|
|
89
|
+
|
|
90
|
+
CREATE INDEX IF NOT EXISTS memory_retain_attempts_tenant_status_idx
|
|
91
|
+
ON public.memory_retain_attempts (tenant_id, status, created_at);
|
|
92
|
+
|
|
93
|
+
CREATE INDEX IF NOT EXISTS memory_retain_attempts_thread_idx
|
|
94
|
+
ON public.memory_retain_attempts (tenant_id, thread_id, created_at);
|
|
95
|
+
|
|
96
|
+
CREATE INDEX IF NOT EXISTS memory_retain_attempts_user_idx
|
|
97
|
+
ON public.memory_retain_attempts (tenant_id, user_id, created_at);
|
|
98
|
+
|
|
99
|
+
CREATE INDEX IF NOT EXISTS memory_retain_attempts_space_idx
|
|
100
|
+
ON public.memory_retain_attempts (tenant_id, space_id, created_at);
|
|
101
|
+
|
|
102
|
+
CREATE INDEX IF NOT EXISTS memory_retain_attempts_turn_idx
|
|
103
|
+
ON public.memory_retain_attempts (thread_turn_id);
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
-- Work Item Comments: first-class timeline comments for human and agent discussion.
|
|
2
|
+
-- creates: public.work_item_comments
|
|
3
|
+
-- creates: public.idx_work_item_comments_item_created
|
|
4
|
+
-- creates: public.idx_work_item_comments_thread
|
|
5
|
+
-- creates-constraint: public.work_item_comments.work_item_comments_author_required
|
|
6
|
+
|
|
7
|
+
CREATE TABLE IF NOT EXISTS work_item_comments (
|
|
8
|
+
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
9
|
+
tenant_id uuid NOT NULL REFERENCES tenants(id) ON DELETE CASCADE,
|
|
10
|
+
space_id uuid NOT NULL REFERENCES spaces(id) ON DELETE CASCADE,
|
|
11
|
+
work_item_id uuid NOT NULL REFERENCES work_items(id) ON DELETE CASCADE,
|
|
12
|
+
thread_id uuid REFERENCES threads(id) ON DELETE SET NULL,
|
|
13
|
+
author_user_id uuid REFERENCES users(id) ON DELETE SET NULL,
|
|
14
|
+
author_agent_id uuid REFERENCES agents(id) ON DELETE SET NULL,
|
|
15
|
+
body text NOT NULL,
|
|
16
|
+
metadata jsonb,
|
|
17
|
+
created_at timestamptz NOT NULL DEFAULT now(),
|
|
18
|
+
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
19
|
+
archived_at timestamptz,
|
|
20
|
+
CONSTRAINT work_item_comments_author_required
|
|
21
|
+
CHECK (author_user_id IS NOT NULL OR author_agent_id IS NOT NULL)
|
|
22
|
+
);
|
|
23
|
+
|
|
24
|
+
CREATE INDEX IF NOT EXISTS idx_work_item_comments_item_created
|
|
25
|
+
ON work_item_comments (tenant_id, work_item_id, created_at);
|
|
26
|
+
|
|
27
|
+
CREATE INDEX IF NOT EXISTS idx_work_item_comments_thread
|
|
28
|
+
ON work_item_comments (tenant_id, thread_id);
|
|
29
|
+
|
|
30
|
+
ALTER TABLE work_item_events
|
|
31
|
+
DROP CONSTRAINT IF EXISTS work_item_events_type_allowed;
|
|
32
|
+
|
|
33
|
+
ALTER TABLE work_item_events
|
|
34
|
+
ADD CONSTRAINT work_item_events_type_allowed
|
|
35
|
+
CHECK (event_type IN ('created','updated','status_changed','completed','blocked','unblocked','assigned','due_date_changed','applicability_changed','linked_thread','agent_action','comment_added'));
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
-- Plugin App Overlays: durable ThinkWork-owned state for trusted plugin apps.
|
|
2
|
+
-- creates: public.plugin_app_overlays
|
|
3
|
+
-- creates: public.uq_plugin_app_overlays_identity
|
|
4
|
+
-- creates: public.idx_plugin_app_overlays_record
|
|
5
|
+
-- creates: public.idx_plugin_app_overlays_updated
|
|
6
|
+
|
|
7
|
+
CREATE TABLE IF NOT EXISTS plugin_app_overlays (
|
|
8
|
+
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
9
|
+
tenant_id uuid NOT NULL REFERENCES tenants(id) ON DELETE CASCADE,
|
|
10
|
+
plugin_install_id uuid NOT NULL REFERENCES plugin_installs(id) ON DELETE CASCADE,
|
|
11
|
+
app_surface_key text NOT NULL,
|
|
12
|
+
app_key text NOT NULL,
|
|
13
|
+
provider text NOT NULL,
|
|
14
|
+
provider_record_type text NOT NULL,
|
|
15
|
+
provider_record_id text NOT NULL,
|
|
16
|
+
section_key text NOT NULL,
|
|
17
|
+
payload jsonb NOT NULL DEFAULT '{}'::jsonb,
|
|
18
|
+
created_by_user_id uuid REFERENCES users(id) ON DELETE SET NULL,
|
|
19
|
+
updated_by_user_id uuid REFERENCES users(id) ON DELETE SET NULL,
|
|
20
|
+
created_at timestamptz NOT NULL DEFAULT now(),
|
|
21
|
+
updated_at timestamptz NOT NULL DEFAULT now()
|
|
22
|
+
);
|
|
23
|
+
|
|
24
|
+
CREATE UNIQUE INDEX IF NOT EXISTS uq_plugin_app_overlays_identity
|
|
25
|
+
ON plugin_app_overlays (
|
|
26
|
+
tenant_id,
|
|
27
|
+
plugin_install_id,
|
|
28
|
+
app_surface_key,
|
|
29
|
+
provider,
|
|
30
|
+
provider_record_type,
|
|
31
|
+
provider_record_id,
|
|
32
|
+
section_key
|
|
33
|
+
);
|
|
34
|
+
|
|
35
|
+
CREATE INDEX IF NOT EXISTS idx_plugin_app_overlays_record
|
|
36
|
+
ON plugin_app_overlays (
|
|
37
|
+
tenant_id,
|
|
38
|
+
app_key,
|
|
39
|
+
provider,
|
|
40
|
+
provider_record_type,
|
|
41
|
+
provider_record_id
|
|
42
|
+
);
|
|
43
|
+
|
|
44
|
+
CREATE INDEX IF NOT EXISTS idx_plugin_app_overlays_updated
|
|
45
|
+
ON plugin_app_overlays (tenant_id, app_key, updated_at);
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
-- Dynamic Pi extension registry and assignments.
|
|
2
|
+
-- creates: public.pi_extension_sources
|
|
3
|
+
-- creates: public.pi_extension_versions
|
|
4
|
+
-- creates: public.pi_extension_assignments
|
|
5
|
+
-- creates: public.uq_pi_extension_sources_tenant_repository
|
|
6
|
+
-- creates: public.uq_pi_extension_versions_source_commit
|
|
7
|
+
-- creates: public.uq_pi_extension_assignments_default_version
|
|
8
|
+
-- creates: public.uq_pi_extension_assignments_profile_version
|
|
9
|
+
-- creates: public.idx_pi_extension_sources_tenant
|
|
10
|
+
-- creates: public.idx_pi_extension_versions_tenant_status
|
|
11
|
+
-- creates: public.idx_pi_extension_versions_source
|
|
12
|
+
-- creates: public.idx_pi_extension_assignments_tenant_target
|
|
13
|
+
-- creates: public.idx_pi_extension_assignments_version
|
|
14
|
+
-- creates-constraint: public.pi_extension_sources.pi_extension_sources_source_type_check
|
|
15
|
+
-- creates-constraint: public.pi_extension_versions.pi_extension_versions_status_check
|
|
16
|
+
-- creates-constraint: public.pi_extension_assignments.pi_extension_assignments_target_type_check
|
|
17
|
+
-- creates-constraint: public.pi_extension_assignments.pi_extension_assignments_profile_target_check
|
|
18
|
+
|
|
19
|
+
CREATE TABLE IF NOT EXISTS public.pi_extension_sources (
|
|
20
|
+
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
21
|
+
tenant_id uuid NOT NULL REFERENCES public.tenants(id) ON DELETE CASCADE,
|
|
22
|
+
source_type text NOT NULL DEFAULT 'github',
|
|
23
|
+
repository_url text NOT NULL,
|
|
24
|
+
repository_owner text,
|
|
25
|
+
repository_name text,
|
|
26
|
+
display_name text,
|
|
27
|
+
created_by_user_id uuid REFERENCES public.users(id) ON DELETE SET NULL,
|
|
28
|
+
created_at timestamptz NOT NULL DEFAULT now(),
|
|
29
|
+
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
30
|
+
CONSTRAINT pi_extension_sources_source_type_check
|
|
31
|
+
CHECK (source_type IN ('github'))
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
CREATE UNIQUE INDEX IF NOT EXISTS uq_pi_extension_sources_tenant_repository
|
|
35
|
+
ON public.pi_extension_sources (tenant_id, source_type, repository_url);
|
|
36
|
+
|
|
37
|
+
CREATE INDEX IF NOT EXISTS idx_pi_extension_sources_tenant
|
|
38
|
+
ON public.pi_extension_sources (tenant_id);
|
|
39
|
+
|
|
40
|
+
CREATE TABLE IF NOT EXISTS public.pi_extension_versions (
|
|
41
|
+
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
42
|
+
tenant_id uuid NOT NULL REFERENCES public.tenants(id) ON DELETE CASCADE,
|
|
43
|
+
source_id uuid NOT NULL REFERENCES public.pi_extension_sources(id) ON DELETE CASCADE,
|
|
44
|
+
display_name text,
|
|
45
|
+
description text,
|
|
46
|
+
source_ref text NOT NULL,
|
|
47
|
+
commit_sha text,
|
|
48
|
+
manifest_hash text,
|
|
49
|
+
artifact_hash text,
|
|
50
|
+
artifact_uri text,
|
|
51
|
+
runtime_target text,
|
|
52
|
+
status text NOT NULL DEFAULT 'imported',
|
|
53
|
+
status_reason text,
|
|
54
|
+
manifest jsonb NOT NULL DEFAULT '{}'::jsonb,
|
|
55
|
+
tool_names text[] NOT NULL DEFAULT ARRAY[]::text[],
|
|
56
|
+
lifecycle_hooks text[] NOT NULL DEFAULT ARRAY[]::text[],
|
|
57
|
+
permission_classes text[] NOT NULL DEFAULT ARRAY[]::text[],
|
|
58
|
+
verification_report jsonb NOT NULL DEFAULT '{}'::jsonb,
|
|
59
|
+
reviewed_by_user_id uuid REFERENCES public.users(id) ON DELETE SET NULL,
|
|
60
|
+
reviewed_at timestamptz,
|
|
61
|
+
approved_by_user_id uuid REFERENCES public.users(id) ON DELETE SET NULL,
|
|
62
|
+
approved_at timestamptz,
|
|
63
|
+
rejected_by_user_id uuid REFERENCES public.users(id) ON DELETE SET NULL,
|
|
64
|
+
rejected_at timestamptz,
|
|
65
|
+
created_at timestamptz NOT NULL DEFAULT now(),
|
|
66
|
+
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
67
|
+
CONSTRAINT pi_extension_versions_status_check
|
|
68
|
+
CHECK (status IN (
|
|
69
|
+
'imported',
|
|
70
|
+
'needs_review',
|
|
71
|
+
'approved',
|
|
72
|
+
'rejected',
|
|
73
|
+
'failed_verification'
|
|
74
|
+
))
|
|
75
|
+
);
|
|
76
|
+
|
|
77
|
+
CREATE UNIQUE INDEX IF NOT EXISTS uq_pi_extension_versions_source_commit
|
|
78
|
+
ON public.pi_extension_versions (tenant_id, source_id, commit_sha);
|
|
79
|
+
|
|
80
|
+
CREATE INDEX IF NOT EXISTS idx_pi_extension_versions_tenant_status
|
|
81
|
+
ON public.pi_extension_versions (tenant_id, status);
|
|
82
|
+
|
|
83
|
+
CREATE INDEX IF NOT EXISTS idx_pi_extension_versions_source
|
|
84
|
+
ON public.pi_extension_versions (source_id);
|
|
85
|
+
|
|
86
|
+
CREATE TABLE IF NOT EXISTS public.pi_extension_assignments (
|
|
87
|
+
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
88
|
+
tenant_id uuid NOT NULL REFERENCES public.tenants(id) ON DELETE CASCADE,
|
|
89
|
+
version_id uuid NOT NULL REFERENCES public.pi_extension_versions(id) ON DELETE CASCADE,
|
|
90
|
+
target_type text NOT NULL,
|
|
91
|
+
agent_profile_id uuid REFERENCES public.agent_profiles(id) ON DELETE CASCADE,
|
|
92
|
+
enabled boolean NOT NULL DEFAULT true,
|
|
93
|
+
granted_permissions jsonb NOT NULL DEFAULT '{}'::jsonb,
|
|
94
|
+
assigned_by_user_id uuid REFERENCES public.users(id) ON DELETE SET NULL,
|
|
95
|
+
created_at timestamptz NOT NULL DEFAULT now(),
|
|
96
|
+
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
97
|
+
CONSTRAINT pi_extension_assignments_target_type_check
|
|
98
|
+
CHECK (target_type IN ('default_agent', 'agent_profile')),
|
|
99
|
+
CONSTRAINT pi_extension_assignments_profile_target_check
|
|
100
|
+
CHECK (
|
|
101
|
+
(target_type = 'agent_profile' AND agent_profile_id IS NOT NULL)
|
|
102
|
+
OR (target_type = 'default_agent' AND agent_profile_id IS NULL)
|
|
103
|
+
)
|
|
104
|
+
);
|
|
105
|
+
|
|
106
|
+
CREATE UNIQUE INDEX IF NOT EXISTS uq_pi_extension_assignments_default_version
|
|
107
|
+
ON public.pi_extension_assignments (tenant_id, version_id)
|
|
108
|
+
WHERE target_type = 'default_agent';
|
|
109
|
+
|
|
110
|
+
CREATE UNIQUE INDEX IF NOT EXISTS uq_pi_extension_assignments_profile_version
|
|
111
|
+
ON public.pi_extension_assignments (tenant_id, agent_profile_id, version_id)
|
|
112
|
+
WHERE target_type = 'agent_profile';
|
|
113
|
+
|
|
114
|
+
CREATE INDEX IF NOT EXISTS idx_pi_extension_assignments_tenant_target
|
|
115
|
+
ON public.pi_extension_assignments (tenant_id, target_type, agent_profile_id);
|
|
116
|
+
|
|
117
|
+
CREATE INDEX IF NOT EXISTS idx_pi_extension_assignments_version
|
|
118
|
+
ON public.pi_extension_assignments (version_id);
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
-- Purpose: Eval Profiles substrate (THINK-107, Eval Profiles U1). Adds the
|
|
2
|
+
-- eval_profiles table (agent-under-test as named config: model +
|
|
3
|
+
-- judge pin + trial count, one default per tenant), the
|
|
4
|
+
-- eval_case_overrides table (case-level verdict overrides for
|
|
5
|
+
-- multi-trial cases — the aggregation layer applies them last),
|
|
6
|
+
-- run-side pinning columns (profile_id, profile_snapshot,
|
|
7
|
+
-- pinned_trial_plan, expected_result_rows), per-trial result
|
|
8
|
+
-- identity + agent-turn telemetry columns, and case-quality
|
|
9
|
+
-- curation columns. Backfills one default profile per existing
|
|
10
|
+
-- tenant; the resolution seam get-or-creates for tenants
|
|
11
|
+
-- provisioned later.
|
|
12
|
+
-- Plan: docs/plans/2026-07-01-002-feat-eval-profiles-plan.md (U1)
|
|
13
|
+
-- Apply manually: psql "$DATABASE_URL" -v ON_ERROR_STOP=1 -f packages/database-pg/drizzle/0197_eval_profiles.sql
|
|
14
|
+
--
|
|
15
|
+
-- Hand-rolled (NOT registered in meta/_journal.json — repo convention is
|
|
16
|
+
-- psql-applied files gated by the db:migrate-manual drift reporter).
|
|
17
|
+
--
|
|
18
|
+
-- Semantics:
|
|
19
|
+
-- * eval_profiles: exactly one default per tenant, enforced by a partial
|
|
20
|
+
-- unique index. Soft-archive via archived_at; archiving the default is
|
|
21
|
+
-- rejected at the API layer.
|
|
22
|
+
-- * eval_case_overrides: one row per (run, case); pass|fail only. The
|
|
23
|
+
-- per-trial rows on eval_results are never overridden individually.
|
|
24
|
+
-- * eval_results.trial_index defaults 0 so every legacy row is trial 0.
|
|
25
|
+
-- Row identity (run, case, trial) stays app-enforced (worker dedup +
|
|
26
|
+
-- advisory lock), matching the table's existing convention — no unique
|
|
27
|
+
-- index, since legacy data predates app-level dedup hardening.
|
|
28
|
+
-- * eval_runs.expected_result_rows is nullable; completion checks read
|
|
29
|
+
-- COALESCE(expected_result_rows, total_tests) so pre-profile and
|
|
30
|
+
-- in-flight runs keep finalizing.
|
|
31
|
+
-- * eval_test_cases.quality_state: 'active' | 'retired' | 'needs-revision';
|
|
32
|
+
-- seed re-sync propagates transitions one-way (never retired -> active).
|
|
33
|
+
--
|
|
34
|
+
-- creates: public.eval_profiles
|
|
35
|
+
-- creates-constraint: public.eval_profiles.eval_profiles_tenant_id_tenants_id_fk
|
|
36
|
+
-- creates-constraint: public.eval_profiles.eval_profiles_trials_check
|
|
37
|
+
-- creates: public.eval_case_overrides
|
|
38
|
+
-- creates-constraint: public.eval_case_overrides.eval_case_overrides_run_id_eval_runs_id_fk
|
|
39
|
+
-- creates-constraint: public.eval_case_overrides.eval_case_overrides_test_case_id_eval_test_cases_id_fk
|
|
40
|
+
-- creates-constraint: public.eval_case_overrides.eval_case_overrides_status_check
|
|
41
|
+
-- creates-column: public.eval_runs.profile_id
|
|
42
|
+
-- creates-column: public.eval_runs.profile_snapshot
|
|
43
|
+
-- creates-column: public.eval_runs.pinned_trial_plan
|
|
44
|
+
-- creates-column: public.eval_runs.expected_result_rows
|
|
45
|
+
-- creates-column: public.eval_results.trial_index
|
|
46
|
+
-- creates-column: public.eval_results.agent_input_tokens
|
|
47
|
+
-- creates-column: public.eval_results.agent_output_tokens
|
|
48
|
+
-- creates-column: public.eval_results.agent_cost_usd
|
|
49
|
+
-- creates-column: public.eval_test_cases.quality_state
|
|
50
|
+
-- creates-column: public.eval_test_cases.rewritten_from_id
|
|
51
|
+
-- creates-constraint: public.eval_test_cases.eval_test_cases_quality_state_check
|
|
52
|
+
|
|
53
|
+
\set ON_ERROR_STOP on
|
|
54
|
+
|
|
55
|
+
BEGIN;
|
|
56
|
+
|
|
57
|
+
SET LOCAL lock_timeout = '5s';
|
|
58
|
+
|
|
59
|
+
CREATE TABLE IF NOT EXISTS public.eval_profiles (
|
|
60
|
+
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
61
|
+
tenant_id uuid NOT NULL
|
|
62
|
+
CONSTRAINT eval_profiles_tenant_id_tenants_id_fk REFERENCES public.tenants(id),
|
|
63
|
+
name text NOT NULL,
|
|
64
|
+
model text NOT NULL,
|
|
65
|
+
judge_model text,
|
|
66
|
+
trials integer NOT NULL DEFAULT 1
|
|
67
|
+
CONSTRAINT eval_profiles_trials_check CHECK (trials >= 1),
|
|
68
|
+
is_default boolean NOT NULL DEFAULT false,
|
|
69
|
+
archived_at timestamptz,
|
|
70
|
+
created_at timestamptz NOT NULL DEFAULT now(),
|
|
71
|
+
updated_at timestamptz NOT NULL DEFAULT now()
|
|
72
|
+
);
|
|
73
|
+
|
|
74
|
+
CREATE UNIQUE INDEX IF NOT EXISTS uq_eval_profiles_tenant_name
|
|
75
|
+
ON public.eval_profiles (tenant_id, name);
|
|
76
|
+
|
|
77
|
+
CREATE UNIQUE INDEX IF NOT EXISTS uq_eval_profiles_tenant_default
|
|
78
|
+
ON public.eval_profiles (tenant_id)
|
|
79
|
+
WHERE is_default = true;
|
|
80
|
+
|
|
81
|
+
CREATE INDEX IF NOT EXISTS idx_eval_profiles_tenant
|
|
82
|
+
ON public.eval_profiles (tenant_id);
|
|
83
|
+
|
|
84
|
+
CREATE TABLE IF NOT EXISTS public.eval_case_overrides (
|
|
85
|
+
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
86
|
+
run_id uuid NOT NULL
|
|
87
|
+
CONSTRAINT eval_case_overrides_run_id_eval_runs_id_fk
|
|
88
|
+
REFERENCES public.eval_runs(id) ON DELETE CASCADE,
|
|
89
|
+
test_case_id uuid NOT NULL
|
|
90
|
+
CONSTRAINT eval_case_overrides_test_case_id_eval_test_cases_id_fk
|
|
91
|
+
REFERENCES public.eval_test_cases(id),
|
|
92
|
+
override_status text NOT NULL
|
|
93
|
+
CONSTRAINT eval_case_overrides_status_check
|
|
94
|
+
CHECK (override_status IN ('pass', 'fail')),
|
|
95
|
+
overridden_by text,
|
|
96
|
+
overridden_at timestamptz NOT NULL DEFAULT now(),
|
|
97
|
+
override_reason text NOT NULL,
|
|
98
|
+
created_at timestamptz NOT NULL DEFAULT now()
|
|
99
|
+
);
|
|
100
|
+
|
|
101
|
+
CREATE UNIQUE INDEX IF NOT EXISTS uq_eval_case_overrides_run_case
|
|
102
|
+
ON public.eval_case_overrides (run_id, test_case_id);
|
|
103
|
+
|
|
104
|
+
ALTER TABLE public.eval_runs
|
|
105
|
+
ADD COLUMN IF NOT EXISTS profile_id uuid,
|
|
106
|
+
ADD COLUMN IF NOT EXISTS profile_snapshot jsonb,
|
|
107
|
+
ADD COLUMN IF NOT EXISTS pinned_trial_plan jsonb,
|
|
108
|
+
ADD COLUMN IF NOT EXISTS expected_result_rows integer;
|
|
109
|
+
|
|
110
|
+
DO $$
|
|
111
|
+
BEGIN
|
|
112
|
+
ALTER TABLE public.eval_runs
|
|
113
|
+
ADD CONSTRAINT eval_runs_profile_id_eval_profiles_id_fk
|
|
114
|
+
FOREIGN KEY (profile_id) REFERENCES public.eval_profiles(id);
|
|
115
|
+
EXCEPTION WHEN duplicate_object THEN NULL;
|
|
116
|
+
END $$;
|
|
117
|
+
|
|
118
|
+
ALTER TABLE public.eval_results
|
|
119
|
+
ADD COLUMN IF NOT EXISTS trial_index integer NOT NULL DEFAULT 0,
|
|
120
|
+
ADD COLUMN IF NOT EXISTS agent_input_tokens integer,
|
|
121
|
+
ADD COLUMN IF NOT EXISTS agent_output_tokens integer,
|
|
122
|
+
ADD COLUMN IF NOT EXISTS agent_cost_usd numeric(12, 6);
|
|
123
|
+
|
|
124
|
+
ALTER TABLE public.eval_test_cases
|
|
125
|
+
ADD COLUMN IF NOT EXISTS quality_state text NOT NULL DEFAULT 'active',
|
|
126
|
+
ADD COLUMN IF NOT EXISTS rewritten_from_id text;
|
|
127
|
+
|
|
128
|
+
DO $$
|
|
129
|
+
BEGIN
|
|
130
|
+
ALTER TABLE public.eval_test_cases
|
|
131
|
+
ADD CONSTRAINT eval_test_cases_quality_state_check
|
|
132
|
+
CHECK (quality_state IN ('active', 'retired', 'needs-revision'));
|
|
133
|
+
EXCEPTION WHEN duplicate_object THEN NULL;
|
|
134
|
+
END $$;
|
|
135
|
+
|
|
136
|
+
-- Backfill: one default profile per existing tenant. Values mirror the
|
|
137
|
+
-- code defaults (DEFAULT_EVAL_MODEL_ID in packages/api/src/lib/evals/
|
|
138
|
+
-- eval-defaults.ts; judge_model null = deployed default; trials 1). The
|
|
139
|
+
-- API's get-or-create resolution seam covers tenants provisioned after
|
|
140
|
+
-- this migration and heals any drift between this literal and the code
|
|
141
|
+
-- constant.
|
|
142
|
+
INSERT INTO public.eval_profiles (tenant_id, name, model, judge_model, trials, is_default)
|
|
143
|
+
SELECT t.id, 'Default', 'moonshotai.kimi-k2.5', NULL, 1, true
|
|
144
|
+
FROM public.tenants t
|
|
145
|
+
WHERE NOT EXISTS (
|
|
146
|
+
SELECT 1 FROM public.eval_profiles p
|
|
147
|
+
WHERE p.tenant_id = t.id AND p.is_default = true
|
|
148
|
+
);
|
|
149
|
+
|
|
150
|
+
COMMIT;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
-- Purpose: eval_runs.unstable — count of unstable CASE verdicts on a run
|
|
2
|
+
-- (Eval Profiles U4, KTD4). `unstable` is a case-level aggregate
|
|
3
|
+
-- verdict from the evals-core trial-aggregation layer (scored
|
|
4
|
+
-- trials splitting with no majority); it is excluded from the
|
|
5
|
+
-- pass-rate denominator and gate math exactly like `error` and
|
|
6
|
+
-- surfaced as its own counter. Nullable: null on legacy runs
|
|
7
|
+
-- (null scoring_version) and on runs finalized before this
|
|
8
|
+
-- column shipped; versioned summarizers write it alongside
|
|
9
|
+
-- passed/failed/errored.
|
|
10
|
+
-- Plan: docs/plans/2026-07-01-002-feat-eval-profiles-plan.md (U4)
|
|
11
|
+
-- Apply manually: psql "$DATABASE_URL" -v ON_ERROR_STOP=1 -f packages/database-pg/drizzle/0198_eval_runs_unstable.sql
|
|
12
|
+
--
|
|
13
|
+
-- Hand-rolled (NOT registered in meta/_journal.json — repo convention is
|
|
14
|
+
-- psql-applied files gated by the db:migrate-manual drift reporter).
|
|
15
|
+
--
|
|
16
|
+
-- creates-column: public.eval_runs.unstable
|
|
17
|
+
|
|
18
|
+
\set ON_ERROR_STOP on
|
|
19
|
+
|
|
20
|
+
BEGIN;
|
|
21
|
+
|
|
22
|
+
SET LOCAL lock_timeout = '5s';
|
|
23
|
+
|
|
24
|
+
ALTER TABLE public.eval_runs
|
|
25
|
+
ADD COLUMN IF NOT EXISTS unstable integer;
|
|
26
|
+
|
|
27
|
+
COMMIT;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
-- Purpose: eval_runs.cost_partial — cost-honesty flag on a run's summary
|
|
2
|
+
-- (Eval Profiles U5, R6). True when any result row is missing a
|
|
3
|
+
-- priced agent-turn cost (agent usage absent — older runtime
|
|
4
|
+
-- envelope or an errored invoke — or usage recorded but catalog
|
|
5
|
+
-- pricing unresolved, agent_cost_usd null). cost_usd then
|
|
6
|
+
-- understates the true spend and must render as partial — never
|
|
7
|
+
-- as a confident total and never as a false zero. Nullable: null
|
|
8
|
+
-- on runs finalized before this column shipped (their cost is
|
|
9
|
+
-- evaluator-only, i.e. partial — the API maps null to true).
|
|
10
|
+
-- Plan: docs/plans/2026-07-01-002-feat-eval-profiles-plan.md (U5)
|
|
11
|
+
-- Apply manually: psql "$DATABASE_URL" -v ON_ERROR_STOP=1 -f packages/database-pg/drizzle/0199_eval_runs_cost_partial.sql
|
|
12
|
+
--
|
|
13
|
+
-- Hand-rolled (NOT registered in meta/_journal.json — repo convention is
|
|
14
|
+
-- psql-applied files gated by the db:migrate-manual drift reporter).
|
|
15
|
+
--
|
|
16
|
+
-- creates-column: public.eval_runs.cost_partial
|
|
17
|
+
|
|
18
|
+
\set ON_ERROR_STOP on
|
|
19
|
+
|
|
20
|
+
BEGIN;
|
|
21
|
+
|
|
22
|
+
SET LOCAL lock_timeout = '5s';
|
|
23
|
+
|
|
24
|
+
ALTER TABLE public.eval_runs
|
|
25
|
+
ADD COLUMN IF NOT EXISTS cost_partial boolean;
|
|
26
|
+
|
|
27
|
+
COMMIT;
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "7",
|
|
3
|
+
"dialect": "postgresql",
|
|
4
|
+
"entries": [
|
|
5
|
+
{
|
|
6
|
+
"idx": 0,
|
|
7
|
+
"version": "7",
|
|
8
|
+
"when": 1775838985185,
|
|
9
|
+
"tag": "0000_petite_marvel_apes",
|
|
10
|
+
"breakpoints": true
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"idx": 1,
|
|
14
|
+
"version": "7",
|
|
15
|
+
"when": 1776000847373,
|
|
16
|
+
"tag": "0001_milky_surge",
|
|
17
|
+
"breakpoints": true
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"idx": 2,
|
|
21
|
+
"version": "7",
|
|
22
|
+
"when": 1776170219841,
|
|
23
|
+
"tag": "0002_aberrant_mattie_franklin",
|
|
24
|
+
"breakpoints": true
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"idx": 3,
|
|
28
|
+
"version": "7",
|
|
29
|
+
"when": 1776181409083,
|
|
30
|
+
"tag": "0003_exotic_ogun",
|
|
31
|
+
"breakpoints": true
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"idx": 4,
|
|
35
|
+
"version": "7",
|
|
36
|
+
"when": 1776249324500,
|
|
37
|
+
"tag": "0004_glamorous_magneto",
|
|
38
|
+
"breakpoints": true
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"idx": 5,
|
|
42
|
+
"version": "7",
|
|
43
|
+
"when": 1776271655486,
|
|
44
|
+
"tag": "0005_ancient_nocturne",
|
|
45
|
+
"breakpoints": true
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"idx": 6,
|
|
49
|
+
"version": "7",
|
|
50
|
+
"when": 1776276212924,
|
|
51
|
+
"tag": "0006_new_colonel_america",
|
|
52
|
+
"breakpoints": true
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"idx": 7,
|
|
56
|
+
"version": "7",
|
|
57
|
+
"when": 1776376500000,
|
|
58
|
+
"tag": "0007_unique_external_task_id",
|
|
59
|
+
"breakpoints": true
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"idx": 8,
|
|
63
|
+
"version": "7",
|
|
64
|
+
"when": 1776381000000,
|
|
65
|
+
"tag": "0008_external_task_id_column",
|
|
66
|
+
"breakpoints": true
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"idx": 9,
|
|
70
|
+
"version": "7",
|
|
71
|
+
"when": 1776427997385,
|
|
72
|
+
"tag": "0009_evaluations",
|
|
73
|
+
"breakpoints": true
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"idx": 10,
|
|
77
|
+
"version": "7",
|
|
78
|
+
"when": 1776437157851,
|
|
79
|
+
"tag": "0010_eval_agent_template",
|
|
80
|
+
"breakpoints": true
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"idx": 11,
|
|
84
|
+
"version": "7",
|
|
85
|
+
"when": 1776439772657,
|
|
86
|
+
"tag": "0011_eval_run_template",
|
|
87
|
+
"breakpoints": true
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"idx": 12,
|
|
91
|
+
"version": "7",
|
|
92
|
+
"when": 1776537470281,
|
|
93
|
+
"tag": "0013_motionless_white_queen",
|
|
94
|
+
"breakpoints": true
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"idx": 13,
|
|
98
|
+
"version": "7",
|
|
99
|
+
"when": 1776604237639,
|
|
100
|
+
"tag": "0014_wiki_aggregation",
|
|
101
|
+
"breakpoints": true
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"idx": 14,
|
|
105
|
+
"version": "7",
|
|
106
|
+
"when": 1776694413971,
|
|
107
|
+
"tag": "0015_pg_trgm_alias_title_indexes",
|
|
108
|
+
"breakpoints": true
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"idx": 15,
|
|
112
|
+
"version": "7",
|
|
113
|
+
"when": 1776771920106,
|
|
114
|
+
"tag": "0016_wiki_schema_drops",
|
|
115
|
+
"breakpoints": true
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"idx": 16,
|
|
119
|
+
"version": "7",
|
|
120
|
+
"when": 1776790755231,
|
|
121
|
+
"tag": "0017_wiki_places",
|
|
122
|
+
"breakpoints": true
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"idx": 17,
|
|
126
|
+
"version": "7",
|
|
127
|
+
"when": 1776799778139,
|
|
128
|
+
"tag": "0018_agent_workspace_overlay",
|
|
129
|
+
"breakpoints": true
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
"idx": 18,
|
|
133
|
+
"version": "7",
|
|
134
|
+
"when": 1776865933950,
|
|
135
|
+
"tag": "0018_cool_firebird",
|
|
136
|
+
"breakpoints": true
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
"idx": 19,
|
|
140
|
+
"version": "7",
|
|
141
|
+
"when": 1776878985543,
|
|
142
|
+
"tag": "0019_condemned_dragon_man",
|
|
143
|
+
"breakpoints": true
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"idx": 20,
|
|
147
|
+
"version": "7",
|
|
148
|
+
"when": 1776881659765,
|
|
149
|
+
"tag": "0020_crazy_the_anarchist",
|
|
150
|
+
"breakpoints": true
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"idx": 21,
|
|
154
|
+
"version": "7",
|
|
155
|
+
"when": 1781781055116,
|
|
156
|
+
"tag": "0021_crm_work_links",
|
|
157
|
+
"breakpoints": true
|
|
158
|
+
}
|
|
159
|
+
]
|
|
160
|
+
}
|