thinkwork-cli 0.12.11 → 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 +22157 -9229
- 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,386 @@
|
|
|
1
|
+
-- Purpose: add the Company Brain substrate contract tables used to report
|
|
2
|
+
-- storage tier, backend posture, migration state, operational counters, and
|
|
3
|
+
-- replayable artifact manifests.
|
|
4
|
+
-- Plan: docs/plans/2026-06-13-003-feat-company-brain-physical-substrate-plan.md U1
|
|
5
|
+
-- Apply manually (no CI migration runner):
|
|
6
|
+
-- psql "$DATABASE_URL" -v ON_ERROR_STOP=1 -f packages/database-pg/drizzle/0166_company_brain_substrate_contract.sql
|
|
7
|
+
-- Pre-flight:
|
|
8
|
+
-- SELECT to_regclass('brain.substrate_states');
|
|
9
|
+
-- SELECT to_regclass('public.managed_applications');
|
|
10
|
+
-- SELECT to_regclass('public.managed_application_deployment_jobs');
|
|
11
|
+
-- creates: brain.substrate_states
|
|
12
|
+
-- creates: brain.substrate_migrations
|
|
13
|
+
-- creates: brain.substrate_events
|
|
14
|
+
-- creates: brain.artifact_manifests
|
|
15
|
+
-- creates: brain.brain_substrate_states_tenant_uidx
|
|
16
|
+
-- creates: brain.brain_substrate_states_tenant_status_idx
|
|
17
|
+
-- creates: brain.brain_substrate_states_managed_app_idx
|
|
18
|
+
-- creates: brain.brain_substrate_states_latest_job_idx
|
|
19
|
+
-- creates: brain.brain_substrate_states_storage_tier_idx
|
|
20
|
+
-- creates: brain.brain_substrate_migrations_tenant_status_idx
|
|
21
|
+
-- creates: brain.brain_substrate_migrations_tenant_phase_idx
|
|
22
|
+
-- creates: brain.brain_substrate_migrations_substrate_created_idx
|
|
23
|
+
-- creates: brain.brain_substrate_migrations_job_idx
|
|
24
|
+
-- creates: brain.brain_substrate_events_tenant_created_idx
|
|
25
|
+
-- creates: brain.brain_substrate_events_substrate_created_idx
|
|
26
|
+
-- creates: brain.brain_substrate_events_migration_idx
|
|
27
|
+
-- creates: brain.brain_substrate_events_deployment_job_idx
|
|
28
|
+
-- creates: brain.brain_artifact_manifests_manifest_uri_uidx
|
|
29
|
+
-- creates: brain.brain_artifact_manifests_tenant_kind_idx
|
|
30
|
+
-- creates: brain.brain_artifact_manifests_substrate_kind_idx
|
|
31
|
+
-- creates: brain.brain_artifact_manifests_migration_idx
|
|
32
|
+
-- creates: brain.brain_artifact_manifests_source_idx
|
|
33
|
+
-- creates-constraint: brain.substrate_states.substrate_states_pkey
|
|
34
|
+
-- creates-constraint: brain.substrate_states.substrate_states_tenant_id_tenants_id_fk
|
|
35
|
+
-- creates-constraint: brain.substrate_states.substrate_states_managed_application_id_fk
|
|
36
|
+
-- creates-constraint: brain.substrate_states.substrate_states_latest_deployment_job_id_fk
|
|
37
|
+
-- creates-constraint: brain.substrate_states.brain_substrate_states_tier_allowed
|
|
38
|
+
-- creates-constraint: brain.substrate_states.brain_substrate_states_backend_allowed
|
|
39
|
+
-- creates-constraint: brain.substrate_states.brain_substrate_states_status_allowed
|
|
40
|
+
-- creates-constraint: brain.substrate_states.brain_substrate_states_health_allowed
|
|
41
|
+
-- creates-constraint: brain.substrate_states.brain_substrate_states_vector_positive
|
|
42
|
+
-- creates-constraint: brain.substrate_states.brain_substrate_states_queue_nonneg
|
|
43
|
+
-- creates-constraint: brain.substrate_states.brain_substrate_states_failed_nonneg
|
|
44
|
+
-- creates-constraint: brain.substrate_states.brain_substrate_states_entity_nonneg
|
|
45
|
+
-- creates-constraint: brain.substrate_states.brain_substrate_states_edge_nonneg
|
|
46
|
+
-- creates-constraint: brain.substrate_states.brain_substrate_states_artifact_nonneg
|
|
47
|
+
-- creates-constraint: brain.substrate_states.brain_substrate_states_projection_nonneg
|
|
48
|
+
-- creates-constraint: brain.substrate_migrations.substrate_migrations_pkey
|
|
49
|
+
-- creates-constraint: brain.substrate_migrations.substrate_migrations_tenant_id_tenants_id_fk
|
|
50
|
+
-- creates-constraint: brain.substrate_migrations.substrate_migrations_substrate_id_fk
|
|
51
|
+
-- creates-constraint: brain.substrate_migrations.substrate_migrations_requested_by_user_id_fk
|
|
52
|
+
-- creates-constraint: brain.substrate_migrations.substrate_migrations_deployment_job_id_fk
|
|
53
|
+
-- creates-constraint: brain.substrate_migrations.brain_substrate_migrations_from_tier_allowed
|
|
54
|
+
-- creates-constraint: brain.substrate_migrations.brain_substrate_migrations_to_tier_allowed
|
|
55
|
+
-- creates-constraint: brain.substrate_migrations.brain_substrate_migrations_phase_allowed
|
|
56
|
+
-- creates-constraint: brain.substrate_migrations.brain_substrate_migrations_status_allowed
|
|
57
|
+
-- creates-constraint: brain.substrate_migrations.brain_substrate_migrations_vector_positive
|
|
58
|
+
-- creates-constraint: brain.substrate_events.substrate_events_pkey
|
|
59
|
+
-- creates-constraint: brain.substrate_events.substrate_events_tenant_id_tenants_id_fk
|
|
60
|
+
-- creates-constraint: brain.substrate_events.substrate_events_substrate_id_fk
|
|
61
|
+
-- creates-constraint: brain.substrate_events.substrate_events_migration_id_fk
|
|
62
|
+
-- creates-constraint: brain.substrate_events.substrate_events_deployment_job_id_fk
|
|
63
|
+
-- creates-constraint: brain.artifact_manifests.artifact_manifests_pkey
|
|
64
|
+
-- creates-constraint: brain.artifact_manifests.artifact_manifests_tenant_id_tenants_id_fk
|
|
65
|
+
-- creates-constraint: brain.artifact_manifests.artifact_manifests_substrate_id_fk
|
|
66
|
+
-- creates-constraint: brain.artifact_manifests.artifact_manifests_migration_id_fk
|
|
67
|
+
-- creates-constraint: brain.artifact_manifests.brain_artifact_manifests_kind_allowed
|
|
68
|
+
-- creates-constraint: brain.artifact_manifests.brain_artifact_manifests_tier_allowed
|
|
69
|
+
-- creates-constraint: brain.artifact_manifests.brain_artifact_manifests_status_allowed
|
|
70
|
+
-- creates-constraint: brain.artifact_manifests.brain_artifact_manifests_object_nonneg
|
|
71
|
+
-- creates-constraint: brain.artifact_manifests.brain_artifact_manifests_source_nonneg
|
|
72
|
+
-- creates-constraint: brain.artifact_manifests.brain_artifact_manifests_vector_positive
|
|
73
|
+
|
|
74
|
+
\set ON_ERROR_STOP on
|
|
75
|
+
|
|
76
|
+
SET lock_timeout = '5s';
|
|
77
|
+
SET statement_timeout = '15min';
|
|
78
|
+
|
|
79
|
+
SELECT pg_advisory_lock(hashtext('migration:0166_company_brain_substrate_contract'));
|
|
80
|
+
|
|
81
|
+
CREATE SCHEMA IF NOT EXISTS brain;
|
|
82
|
+
|
|
83
|
+
-- ---------------------------------------------------------------------------
|
|
84
|
+
-- brain.substrate_states — per-tenant Company Brain substrate posture
|
|
85
|
+
-- ---------------------------------------------------------------------------
|
|
86
|
+
|
|
87
|
+
CREATE TABLE IF NOT EXISTS brain.substrate_states (
|
|
88
|
+
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
89
|
+
tenant_id uuid NOT NULL,
|
|
90
|
+
managed_application_id uuid,
|
|
91
|
+
latest_deployment_job_id uuid,
|
|
92
|
+
storage_tier text NOT NULL DEFAULT 'default',
|
|
93
|
+
active_backend text NOT NULL DEFAULT 'none',
|
|
94
|
+
status text NOT NULL DEFAULT 'not_installed',
|
|
95
|
+
health_status text NOT NULL DEFAULT 'unknown',
|
|
96
|
+
backend_mode text,
|
|
97
|
+
graph_provider text,
|
|
98
|
+
vector_provider text,
|
|
99
|
+
embedding_model text,
|
|
100
|
+
vector_dimension integer,
|
|
101
|
+
cognee_version text,
|
|
102
|
+
cognee_endpoint text,
|
|
103
|
+
s3_artifact_root text,
|
|
104
|
+
s3_manifest_root text,
|
|
105
|
+
s3_vault_projection_root text,
|
|
106
|
+
neptune_graph_id text,
|
|
107
|
+
neptune_endpoint text,
|
|
108
|
+
efs_file_system_id text,
|
|
109
|
+
production_posture text,
|
|
110
|
+
latest_ingest_at timestamptz,
|
|
111
|
+
latest_projection_at timestamptz,
|
|
112
|
+
ingestion_queue_depth integer NOT NULL DEFAULT 0,
|
|
113
|
+
failed_ingest_count integer NOT NULL DEFAULT 0,
|
|
114
|
+
graph_entity_count integer,
|
|
115
|
+
graph_edge_count integer,
|
|
116
|
+
source_artifact_count integer,
|
|
117
|
+
vault_projection_count integer,
|
|
118
|
+
ontology_version text,
|
|
119
|
+
launch_capabilities jsonb NOT NULL DEFAULT '{}'::jsonb,
|
|
120
|
+
optional_capabilities jsonb NOT NULL DEFAULT '{}'::jsonb,
|
|
121
|
+
operator_evidence jsonb NOT NULL DEFAULT '{}'::jsonb,
|
|
122
|
+
last_failure_message text,
|
|
123
|
+
last_failure_at timestamptz,
|
|
124
|
+
created_at timestamptz NOT NULL DEFAULT now(),
|
|
125
|
+
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
126
|
+
CONSTRAINT substrate_states_tenant_id_tenants_id_fk
|
|
127
|
+
FOREIGN KEY (tenant_id)
|
|
128
|
+
REFERENCES public.tenants(id)
|
|
129
|
+
ON DELETE CASCADE,
|
|
130
|
+
CONSTRAINT substrate_states_managed_application_id_fk
|
|
131
|
+
FOREIGN KEY (managed_application_id)
|
|
132
|
+
REFERENCES public.managed_applications(id)
|
|
133
|
+
ON DELETE SET NULL,
|
|
134
|
+
CONSTRAINT substrate_states_latest_deployment_job_id_fk
|
|
135
|
+
FOREIGN KEY (latest_deployment_job_id)
|
|
136
|
+
REFERENCES public.managed_application_deployment_jobs(id)
|
|
137
|
+
ON DELETE SET NULL,
|
|
138
|
+
CONSTRAINT brain_substrate_states_tier_allowed
|
|
139
|
+
CHECK (storage_tier IN ('default', 'production')),
|
|
140
|
+
CONSTRAINT brain_substrate_states_backend_allowed
|
|
141
|
+
CHECK (active_backend IN ('none', 'default', 'production', 'legacy_cognee')),
|
|
142
|
+
CONSTRAINT brain_substrate_states_status_allowed
|
|
143
|
+
CHECK (status IN (
|
|
144
|
+
'not_installed',
|
|
145
|
+
'provisioning',
|
|
146
|
+
'ready',
|
|
147
|
+
'degraded',
|
|
148
|
+
'failed',
|
|
149
|
+
'migrating',
|
|
150
|
+
'disabled'
|
|
151
|
+
)),
|
|
152
|
+
CONSTRAINT brain_substrate_states_health_allowed
|
|
153
|
+
CHECK (health_status IN ('unknown', 'healthy', 'degraded', 'failed', 'disabled')),
|
|
154
|
+
CONSTRAINT brain_substrate_states_vector_positive
|
|
155
|
+
CHECK (vector_dimension IS NULL OR vector_dimension > 0),
|
|
156
|
+
CONSTRAINT brain_substrate_states_queue_nonneg
|
|
157
|
+
CHECK (ingestion_queue_depth >= 0),
|
|
158
|
+
CONSTRAINT brain_substrate_states_failed_nonneg
|
|
159
|
+
CHECK (failed_ingest_count >= 0),
|
|
160
|
+
CONSTRAINT brain_substrate_states_entity_nonneg
|
|
161
|
+
CHECK (graph_entity_count IS NULL OR graph_entity_count >= 0),
|
|
162
|
+
CONSTRAINT brain_substrate_states_edge_nonneg
|
|
163
|
+
CHECK (graph_edge_count IS NULL OR graph_edge_count >= 0),
|
|
164
|
+
CONSTRAINT brain_substrate_states_artifact_nonneg
|
|
165
|
+
CHECK (source_artifact_count IS NULL OR source_artifact_count >= 0),
|
|
166
|
+
CONSTRAINT brain_substrate_states_projection_nonneg
|
|
167
|
+
CHECK (vault_projection_count IS NULL OR vault_projection_count >= 0)
|
|
168
|
+
);
|
|
169
|
+
|
|
170
|
+
CREATE UNIQUE INDEX IF NOT EXISTS brain_substrate_states_tenant_uidx
|
|
171
|
+
ON brain.substrate_states (tenant_id);
|
|
172
|
+
|
|
173
|
+
CREATE INDEX IF NOT EXISTS brain_substrate_states_tenant_status_idx
|
|
174
|
+
ON brain.substrate_states (tenant_id, status);
|
|
175
|
+
|
|
176
|
+
CREATE INDEX IF NOT EXISTS brain_substrate_states_managed_app_idx
|
|
177
|
+
ON brain.substrate_states (managed_application_id);
|
|
178
|
+
|
|
179
|
+
CREATE INDEX IF NOT EXISTS brain_substrate_states_latest_job_idx
|
|
180
|
+
ON brain.substrate_states (latest_deployment_job_id);
|
|
181
|
+
|
|
182
|
+
CREATE INDEX IF NOT EXISTS brain_substrate_states_storage_tier_idx
|
|
183
|
+
ON brain.substrate_states (storage_tier);
|
|
184
|
+
|
|
185
|
+
-- ---------------------------------------------------------------------------
|
|
186
|
+
-- brain.substrate_migrations — storage-tier migration/cutover state
|
|
187
|
+
-- ---------------------------------------------------------------------------
|
|
188
|
+
|
|
189
|
+
CREATE TABLE IF NOT EXISTS brain.substrate_migrations (
|
|
190
|
+
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
191
|
+
tenant_id uuid NOT NULL,
|
|
192
|
+
substrate_id uuid,
|
|
193
|
+
from_storage_tier text NOT NULL DEFAULT 'default',
|
|
194
|
+
to_storage_tier text NOT NULL DEFAULT 'production',
|
|
195
|
+
phase text NOT NULL DEFAULT 'none',
|
|
196
|
+
status text NOT NULL DEFAULT 'none',
|
|
197
|
+
requested_by_user_id uuid,
|
|
198
|
+
deployment_job_id uuid,
|
|
199
|
+
embedding_model text,
|
|
200
|
+
vector_dimension integer,
|
|
201
|
+
validation_summary jsonb NOT NULL DEFAULT '{}'::jsonb,
|
|
202
|
+
operator_evidence jsonb NOT NULL DEFAULT '{}'::jsonb,
|
|
203
|
+
error_message text,
|
|
204
|
+
requested_at timestamptz NOT NULL DEFAULT now(),
|
|
205
|
+
started_at timestamptz,
|
|
206
|
+
completed_at timestamptz,
|
|
207
|
+
rollback_window_closes_at timestamptz,
|
|
208
|
+
created_at timestamptz NOT NULL DEFAULT now(),
|
|
209
|
+
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
210
|
+
CONSTRAINT substrate_migrations_tenant_id_tenants_id_fk
|
|
211
|
+
FOREIGN KEY (tenant_id)
|
|
212
|
+
REFERENCES public.tenants(id)
|
|
213
|
+
ON DELETE CASCADE,
|
|
214
|
+
CONSTRAINT substrate_migrations_substrate_id_fk
|
|
215
|
+
FOREIGN KEY (substrate_id)
|
|
216
|
+
REFERENCES brain.substrate_states(id)
|
|
217
|
+
ON DELETE SET NULL,
|
|
218
|
+
CONSTRAINT substrate_migrations_requested_by_user_id_fk
|
|
219
|
+
FOREIGN KEY (requested_by_user_id)
|
|
220
|
+
REFERENCES public.users(id)
|
|
221
|
+
ON DELETE SET NULL,
|
|
222
|
+
CONSTRAINT substrate_migrations_deployment_job_id_fk
|
|
223
|
+
FOREIGN KEY (deployment_job_id)
|
|
224
|
+
REFERENCES public.managed_application_deployment_jobs(id)
|
|
225
|
+
ON DELETE SET NULL,
|
|
226
|
+
CONSTRAINT brain_substrate_migrations_from_tier_allowed
|
|
227
|
+
CHECK (from_storage_tier IN ('default', 'production')),
|
|
228
|
+
CONSTRAINT brain_substrate_migrations_to_tier_allowed
|
|
229
|
+
CHECK (to_storage_tier IN ('default', 'production')),
|
|
230
|
+
CONSTRAINT brain_substrate_migrations_phase_allowed
|
|
231
|
+
CHECK (phase IN (
|
|
232
|
+
'none',
|
|
233
|
+
'requested',
|
|
234
|
+
'snapshotting',
|
|
235
|
+
'provisioning',
|
|
236
|
+
'replaying',
|
|
237
|
+
'validating',
|
|
238
|
+
'cutover',
|
|
239
|
+
'completed',
|
|
240
|
+
'failed',
|
|
241
|
+
'rolled_back'
|
|
242
|
+
)),
|
|
243
|
+
CONSTRAINT brain_substrate_migrations_status_allowed
|
|
244
|
+
CHECK (status IN (
|
|
245
|
+
'none',
|
|
246
|
+
'requested',
|
|
247
|
+
'running',
|
|
248
|
+
'completed',
|
|
249
|
+
'failed',
|
|
250
|
+
'rolled_back',
|
|
251
|
+
'canceled'
|
|
252
|
+
)),
|
|
253
|
+
CONSTRAINT brain_substrate_migrations_vector_positive
|
|
254
|
+
CHECK (vector_dimension IS NULL OR vector_dimension > 0)
|
|
255
|
+
);
|
|
256
|
+
|
|
257
|
+
CREATE INDEX IF NOT EXISTS brain_substrate_migrations_tenant_status_idx
|
|
258
|
+
ON brain.substrate_migrations (tenant_id, status);
|
|
259
|
+
|
|
260
|
+
CREATE INDEX IF NOT EXISTS brain_substrate_migrations_tenant_phase_idx
|
|
261
|
+
ON brain.substrate_migrations (tenant_id, phase);
|
|
262
|
+
|
|
263
|
+
CREATE INDEX IF NOT EXISTS brain_substrate_migrations_substrate_created_idx
|
|
264
|
+
ON brain.substrate_migrations (substrate_id, created_at);
|
|
265
|
+
|
|
266
|
+
CREATE INDEX IF NOT EXISTS brain_substrate_migrations_job_idx
|
|
267
|
+
ON brain.substrate_migrations (deployment_job_id);
|
|
268
|
+
|
|
269
|
+
-- ---------------------------------------------------------------------------
|
|
270
|
+
-- brain.substrate_events — operational substrate event log
|
|
271
|
+
-- ---------------------------------------------------------------------------
|
|
272
|
+
|
|
273
|
+
CREATE TABLE IF NOT EXISTS brain.substrate_events (
|
|
274
|
+
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
275
|
+
tenant_id uuid NOT NULL,
|
|
276
|
+
substrate_id uuid,
|
|
277
|
+
migration_id uuid,
|
|
278
|
+
deployment_job_id uuid,
|
|
279
|
+
event_type text NOT NULL,
|
|
280
|
+
message text NOT NULL,
|
|
281
|
+
payload jsonb NOT NULL DEFAULT '{}'::jsonb,
|
|
282
|
+
evidence_uri text,
|
|
283
|
+
created_at timestamptz NOT NULL DEFAULT now(),
|
|
284
|
+
CONSTRAINT substrate_events_tenant_id_tenants_id_fk
|
|
285
|
+
FOREIGN KEY (tenant_id)
|
|
286
|
+
REFERENCES public.tenants(id)
|
|
287
|
+
ON DELETE CASCADE,
|
|
288
|
+
CONSTRAINT substrate_events_substrate_id_fk
|
|
289
|
+
FOREIGN KEY (substrate_id)
|
|
290
|
+
REFERENCES brain.substrate_states(id)
|
|
291
|
+
ON DELETE CASCADE,
|
|
292
|
+
CONSTRAINT substrate_events_migration_id_fk
|
|
293
|
+
FOREIGN KEY (migration_id)
|
|
294
|
+
REFERENCES brain.substrate_migrations(id)
|
|
295
|
+
ON DELETE SET NULL,
|
|
296
|
+
CONSTRAINT substrate_events_deployment_job_id_fk
|
|
297
|
+
FOREIGN KEY (deployment_job_id)
|
|
298
|
+
REFERENCES public.managed_application_deployment_jobs(id)
|
|
299
|
+
ON DELETE SET NULL
|
|
300
|
+
);
|
|
301
|
+
|
|
302
|
+
CREATE INDEX IF NOT EXISTS brain_substrate_events_tenant_created_idx
|
|
303
|
+
ON brain.substrate_events (tenant_id, created_at);
|
|
304
|
+
|
|
305
|
+
CREATE INDEX IF NOT EXISTS brain_substrate_events_substrate_created_idx
|
|
306
|
+
ON brain.substrate_events (substrate_id, created_at);
|
|
307
|
+
|
|
308
|
+
CREATE INDEX IF NOT EXISTS brain_substrate_events_migration_idx
|
|
309
|
+
ON brain.substrate_events (migration_id);
|
|
310
|
+
|
|
311
|
+
CREATE INDEX IF NOT EXISTS brain_substrate_events_deployment_job_idx
|
|
312
|
+
ON brain.substrate_events (deployment_job_id);
|
|
313
|
+
|
|
314
|
+
-- ---------------------------------------------------------------------------
|
|
315
|
+
-- brain.artifact_manifests — replayable Brain source/vault manifests
|
|
316
|
+
-- ---------------------------------------------------------------------------
|
|
317
|
+
|
|
318
|
+
CREATE TABLE IF NOT EXISTS brain.artifact_manifests (
|
|
319
|
+
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
320
|
+
tenant_id uuid NOT NULL,
|
|
321
|
+
substrate_id uuid,
|
|
322
|
+
migration_id uuid,
|
|
323
|
+
manifest_kind text NOT NULL,
|
|
324
|
+
storage_tier text NOT NULL DEFAULT 'default',
|
|
325
|
+
source_family text,
|
|
326
|
+
source_id_hash text,
|
|
327
|
+
manifest_uri text NOT NULL,
|
|
328
|
+
artifact_root_uri text,
|
|
329
|
+
vault_projection_root_uri text,
|
|
330
|
+
checksum_sha256 text,
|
|
331
|
+
object_count integer NOT NULL DEFAULT 0,
|
|
332
|
+
source_count integer NOT NULL DEFAULT 0,
|
|
333
|
+
embedding_model text,
|
|
334
|
+
vector_dimension integer,
|
|
335
|
+
ontology_version text,
|
|
336
|
+
status text NOT NULL DEFAULT 'active',
|
|
337
|
+
created_at timestamptz NOT NULL DEFAULT now(),
|
|
338
|
+
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
339
|
+
CONSTRAINT artifact_manifests_tenant_id_tenants_id_fk
|
|
340
|
+
FOREIGN KEY (tenant_id)
|
|
341
|
+
REFERENCES public.tenants(id)
|
|
342
|
+
ON DELETE CASCADE,
|
|
343
|
+
CONSTRAINT artifact_manifests_substrate_id_fk
|
|
344
|
+
FOREIGN KEY (substrate_id)
|
|
345
|
+
REFERENCES brain.substrate_states(id)
|
|
346
|
+
ON DELETE CASCADE,
|
|
347
|
+
CONSTRAINT artifact_manifests_migration_id_fk
|
|
348
|
+
FOREIGN KEY (migration_id)
|
|
349
|
+
REFERENCES brain.substrate_migrations(id)
|
|
350
|
+
ON DELETE SET NULL,
|
|
351
|
+
CONSTRAINT brain_artifact_manifests_kind_allowed
|
|
352
|
+
CHECK (manifest_kind IN (
|
|
353
|
+
'source_artifact',
|
|
354
|
+
'ingestion_manifest',
|
|
355
|
+
'migration_snapshot',
|
|
356
|
+
'vault_projection',
|
|
357
|
+
'export'
|
|
358
|
+
)),
|
|
359
|
+
CONSTRAINT brain_artifact_manifests_tier_allowed
|
|
360
|
+
CHECK (storage_tier IN ('default', 'production')),
|
|
361
|
+
CONSTRAINT brain_artifact_manifests_status_allowed
|
|
362
|
+
CHECK (status IN ('active', 'superseded', 'deleted', 'failed')),
|
|
363
|
+
CONSTRAINT brain_artifact_manifests_object_nonneg
|
|
364
|
+
CHECK (object_count >= 0),
|
|
365
|
+
CONSTRAINT brain_artifact_manifests_source_nonneg
|
|
366
|
+
CHECK (source_count >= 0),
|
|
367
|
+
CONSTRAINT brain_artifact_manifests_vector_positive
|
|
368
|
+
CHECK (vector_dimension IS NULL OR vector_dimension > 0)
|
|
369
|
+
);
|
|
370
|
+
|
|
371
|
+
CREATE UNIQUE INDEX IF NOT EXISTS brain_artifact_manifests_manifest_uri_uidx
|
|
372
|
+
ON brain.artifact_manifests (manifest_uri);
|
|
373
|
+
|
|
374
|
+
CREATE INDEX IF NOT EXISTS brain_artifact_manifests_tenant_kind_idx
|
|
375
|
+
ON brain.artifact_manifests (tenant_id, manifest_kind);
|
|
376
|
+
|
|
377
|
+
CREATE INDEX IF NOT EXISTS brain_artifact_manifests_substrate_kind_idx
|
|
378
|
+
ON brain.artifact_manifests (substrate_id, manifest_kind);
|
|
379
|
+
|
|
380
|
+
CREATE INDEX IF NOT EXISTS brain_artifact_manifests_migration_idx
|
|
381
|
+
ON brain.artifact_manifests (migration_id);
|
|
382
|
+
|
|
383
|
+
CREATE INDEX IF NOT EXISTS brain_artifact_manifests_source_idx
|
|
384
|
+
ON brain.artifact_manifests (tenant_id, source_family, source_id_hash);
|
|
385
|
+
|
|
386
|
+
SELECT pg_advisory_unlock(hashtext('migration:0166_company_brain_substrate_contract'));
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
-- Purpose: extend brain.artifact_manifests with runtime provenance needed for
|
|
2
|
+
-- replayable Company Brain source artifacts and Knowledge Graph ingest links.
|
|
3
|
+
-- Plan: docs/plans/2026-06-14-001-feat-company-brain-artifact-manifests-plan.md U2
|
|
4
|
+
-- Apply manually (no CI migration runner):
|
|
5
|
+
-- psql "$DATABASE_URL" -v ON_ERROR_STOP=1 -f packages/database-pg/drizzle/0167_company_brain_artifact_manifest_runtime.sql
|
|
6
|
+
-- Pre-flight:
|
|
7
|
+
-- SELECT to_regclass('brain.artifact_manifests');
|
|
8
|
+
-- SELECT to_regclass('public.knowledge_graph_ingest_runs');
|
|
9
|
+
-- creates-column: brain.artifact_manifests.ingest_run_id
|
|
10
|
+
-- creates-column: brain.artifact_manifests.source_kind
|
|
11
|
+
-- creates-column: brain.artifact_manifests.source_type
|
|
12
|
+
-- creates-column: brain.artifact_manifests.source_ids
|
|
13
|
+
-- creates-column: brain.artifact_manifests.object_version_id
|
|
14
|
+
-- creates-column: brain.artifact_manifests.content_type
|
|
15
|
+
-- creates-column: brain.artifact_manifests.content_encoding
|
|
16
|
+
-- creates-column: brain.artifact_manifests.byte_length
|
|
17
|
+
-- creates-column: brain.artifact_manifests.ontology_mechanism
|
|
18
|
+
-- creates-column: brain.artifact_manifests.metadata
|
|
19
|
+
-- creates: brain.brain_artifact_manifests_ingest_run_idx
|
|
20
|
+
-- creates: brain.brain_artifact_manifests_source_kind_idx
|
|
21
|
+
-- creates-constraint: brain.artifact_manifests.artifact_manifests_ingest_run_id_fk
|
|
22
|
+
-- creates-constraint: brain.artifact_manifests.brain_artifact_manifests_source_kind_allowed
|
|
23
|
+
-- creates-constraint: brain.artifact_manifests.brain_artifact_manifests_byte_nonneg
|
|
24
|
+
|
|
25
|
+
\set ON_ERROR_STOP on
|
|
26
|
+
|
|
27
|
+
SET lock_timeout = '5s';
|
|
28
|
+
SET statement_timeout = '15min';
|
|
29
|
+
|
|
30
|
+
SELECT pg_advisory_lock(hashtext('migration:0167_company_brain_artifact_manifest_runtime'));
|
|
31
|
+
|
|
32
|
+
ALTER TABLE brain.artifact_manifests
|
|
33
|
+
ADD COLUMN IF NOT EXISTS ingest_run_id uuid,
|
|
34
|
+
ADD COLUMN IF NOT EXISTS source_kind text,
|
|
35
|
+
ADD COLUMN IF NOT EXISTS source_type text,
|
|
36
|
+
ADD COLUMN IF NOT EXISTS source_ids text[] NOT NULL DEFAULT ARRAY[]::text[],
|
|
37
|
+
ADD COLUMN IF NOT EXISTS object_version_id text,
|
|
38
|
+
ADD COLUMN IF NOT EXISTS content_type text,
|
|
39
|
+
ADD COLUMN IF NOT EXISTS content_encoding text,
|
|
40
|
+
ADD COLUMN IF NOT EXISTS byte_length integer,
|
|
41
|
+
ADD COLUMN IF NOT EXISTS ontology_mechanism text,
|
|
42
|
+
ADD COLUMN IF NOT EXISTS metadata jsonb NOT NULL DEFAULT '{}'::jsonb;
|
|
43
|
+
|
|
44
|
+
DO $$
|
|
45
|
+
BEGIN
|
|
46
|
+
ALTER TABLE brain.artifact_manifests
|
|
47
|
+
ADD CONSTRAINT artifact_manifests_ingest_run_id_fk
|
|
48
|
+
FOREIGN KEY (ingest_run_id)
|
|
49
|
+
REFERENCES public.knowledge_graph_ingest_runs(id)
|
|
50
|
+
ON DELETE SET NULL;
|
|
51
|
+
EXCEPTION
|
|
52
|
+
WHEN duplicate_object THEN NULL;
|
|
53
|
+
END
|
|
54
|
+
$$;
|
|
55
|
+
|
|
56
|
+
DO $$
|
|
57
|
+
BEGIN
|
|
58
|
+
ALTER TABLE brain.artifact_manifests
|
|
59
|
+
ADD CONSTRAINT brain_artifact_manifests_source_kind_allowed
|
|
60
|
+
CHECK (
|
|
61
|
+
source_kind IS NULL
|
|
62
|
+
OR source_kind IN ('thread', 'wiki', 'brain', 'observations')
|
|
63
|
+
);
|
|
64
|
+
EXCEPTION
|
|
65
|
+
WHEN duplicate_object THEN NULL;
|
|
66
|
+
END
|
|
67
|
+
$$;
|
|
68
|
+
|
|
69
|
+
DO $$
|
|
70
|
+
BEGIN
|
|
71
|
+
ALTER TABLE brain.artifact_manifests
|
|
72
|
+
ADD CONSTRAINT brain_artifact_manifests_byte_nonneg
|
|
73
|
+
CHECK (byte_length IS NULL OR byte_length >= 0);
|
|
74
|
+
EXCEPTION
|
|
75
|
+
WHEN duplicate_object THEN NULL;
|
|
76
|
+
END
|
|
77
|
+
$$;
|
|
78
|
+
|
|
79
|
+
CREATE INDEX IF NOT EXISTS brain_artifact_manifests_ingest_run_idx
|
|
80
|
+
ON brain.artifact_manifests (ingest_run_id);
|
|
81
|
+
|
|
82
|
+
CREATE INDEX IF NOT EXISTS brain_artifact_manifests_source_kind_idx
|
|
83
|
+
ON brain.artifact_manifests (tenant_id, source_kind, source_id_hash);
|
|
84
|
+
|
|
85
|
+
SELECT pg_advisory_unlock(hashtext('migration:0167_company_brain_artifact_manifest_runtime'));
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
-- Purpose: add the per-tenant skill-update gate threshold (Skill Tests &
|
|
2
|
+
-- Evals U6). A skill UPDATE whose candidate version scores below
|
|
3
|
+
-- this threshold is HELD (the workspace swap is deferred) until an
|
|
4
|
+
-- operator applies it once the candidate passes, or overrides. A
|
|
5
|
+
-- row's PRESENCE = the gate is enabled for the tenant; no row = no
|
|
6
|
+
-- gate (nothing blocks). Initial install is never gated; unrated
|
|
7
|
+
-- skills (no bundled cases) are never gated.
|
|
8
|
+
-- Plan: docs/plans/2026-06-13-003-feat-skill-tests-and-evals-plan.md (U6)
|
|
9
|
+
-- Apply manually: psql "$DATABASE_URL" -v ON_ERROR_STOP=1 -f packages/database-pg/drizzle/0168_eval_skill_gate.sql
|
|
10
|
+
--
|
|
11
|
+
-- Hand-rolled (NOT registered in meta/_journal.json — the journal snapshot
|
|
12
|
+
-- stopped at 0020; repo convention is psql-applied files gated by the
|
|
13
|
+
-- db:migrate-manual drift reporter). Renumbered 0166 → 0168 after rebasing
|
|
14
|
+
-- onto main, which landed 0166/0167 (company-brain); the table was already
|
|
15
|
+
-- applied to dev under the old name (rename is file-only, no DB change).
|
|
16
|
+
--
|
|
17
|
+
-- Semantics:
|
|
18
|
+
-- * Per-tenant single threshold (v1) — tenant_id is the PRIMARY KEY, so
|
|
19
|
+
-- a tenant has at most one gate row. Per-skill thresholds are deferred
|
|
20
|
+
-- (this locks the migration shape).
|
|
21
|
+
-- * threshold is a fraction in [0, 1] (same scale as eval_runs.pass_rate)
|
|
22
|
+
-- guarded by a CHECK so a stray write can't smuggle an out-of-range gate.
|
|
23
|
+
-- * No row = no gate; setting null in the API DELETEs the row.
|
|
24
|
+
--
|
|
25
|
+
-- creates: public.eval_skill_gate
|
|
26
|
+
-- creates-constraint: public.eval_skill_gate.eval_skill_gate_tenant_id_tenants_id_fk
|
|
27
|
+
-- creates-constraint: public.eval_skill_gate.eval_skill_gate_threshold_check
|
|
28
|
+
|
|
29
|
+
\set ON_ERROR_STOP on
|
|
30
|
+
|
|
31
|
+
BEGIN;
|
|
32
|
+
|
|
33
|
+
SET LOCAL lock_timeout = '5s';
|
|
34
|
+
|
|
35
|
+
CREATE TABLE IF NOT EXISTS public.eval_skill_gate (
|
|
36
|
+
tenant_id uuid PRIMARY KEY
|
|
37
|
+
CONSTRAINT eval_skill_gate_tenant_id_tenants_id_fk REFERENCES public.tenants(id),
|
|
38
|
+
threshold numeric(5, 4) NOT NULL
|
|
39
|
+
CONSTRAINT eval_skill_gate_threshold_check CHECK (threshold >= 0 AND threshold <= 1),
|
|
40
|
+
created_at timestamptz NOT NULL DEFAULT now(),
|
|
41
|
+
updated_at timestamptz NOT NULL DEFAULT now()
|
|
42
|
+
);
|
|
43
|
+
|
|
44
|
+
COMMIT;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
-- Release update deployment job domain.
|
|
2
|
+
--
|
|
3
|
+
-- creates: public.release_update_jobs
|
|
4
|
+
-- creates: public.release_update_events
|
|
5
|
+
-- creates: public.release_update_jobs_tenant_idempotency_uidx
|
|
6
|
+
-- creates: public.release_update_jobs_tenant_status_idx
|
|
7
|
+
-- creates: public.release_update_jobs_tenant_target_idx
|
|
8
|
+
-- creates: public.release_update_events_job_created_idx
|
|
9
|
+
-- creates: public.release_update_events_idempotency_uidx
|
|
10
|
+
|
|
11
|
+
CREATE TABLE IF NOT EXISTS "release_update_jobs" (
|
|
12
|
+
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
13
|
+
"tenant_id" uuid NOT NULL REFERENCES "tenants"("id") ON DELETE cascade,
|
|
14
|
+
"status" text NOT NULL DEFAULT 'preflight_pending',
|
|
15
|
+
"idempotency_key" text NOT NULL,
|
|
16
|
+
"requested_by_user_id" uuid,
|
|
17
|
+
"target_release_version" text NOT NULL,
|
|
18
|
+
"current_release_version" text,
|
|
19
|
+
"manifest_url" text NOT NULL,
|
|
20
|
+
"manifest_sha256" text NOT NULL,
|
|
21
|
+
"manifest_signed" boolean NOT NULL DEFAULT false,
|
|
22
|
+
"manifest_trust_policy" text,
|
|
23
|
+
"terraform_module_version" text,
|
|
24
|
+
"preflight_summary" jsonb NOT NULL DEFAULT '{}'::jsonb,
|
|
25
|
+
"preserved_config_summary" jsonb NOT NULL DEFAULT '{}'::jsonb,
|
|
26
|
+
"remediation_summary" jsonb NOT NULL DEFAULT '{}'::jsonb,
|
|
27
|
+
"state_machine_arn" text,
|
|
28
|
+
"execution_arn" text,
|
|
29
|
+
"codebuild_build_arn" text,
|
|
30
|
+
"evidence_bucket" text,
|
|
31
|
+
"evidence_prefix" text,
|
|
32
|
+
"status_pointer_bucket" text,
|
|
33
|
+
"status_pointer_key" text,
|
|
34
|
+
"final_status" jsonb NOT NULL DEFAULT '{}'::jsonb,
|
|
35
|
+
"failure_category" text,
|
|
36
|
+
"failure_message" text,
|
|
37
|
+
"recovery_action" text,
|
|
38
|
+
"created_at" timestamp with time zone NOT NULL DEFAULT now(),
|
|
39
|
+
"updated_at" timestamp with time zone NOT NULL DEFAULT now()
|
|
40
|
+
);
|
|
41
|
+
|
|
42
|
+
CREATE UNIQUE INDEX IF NOT EXISTS "release_update_jobs_tenant_idempotency_uidx"
|
|
43
|
+
ON "release_update_jobs" ("tenant_id", "idempotency_key");
|
|
44
|
+
|
|
45
|
+
CREATE INDEX IF NOT EXISTS "release_update_jobs_tenant_status_idx"
|
|
46
|
+
ON "release_update_jobs" ("tenant_id", "status");
|
|
47
|
+
|
|
48
|
+
CREATE INDEX IF NOT EXISTS "release_update_jobs_tenant_target_idx"
|
|
49
|
+
ON "release_update_jobs" ("tenant_id", "target_release_version");
|
|
50
|
+
|
|
51
|
+
CREATE TABLE IF NOT EXISTS "release_update_events" (
|
|
52
|
+
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
53
|
+
"tenant_id" uuid NOT NULL REFERENCES "tenants"("id") ON DELETE cascade,
|
|
54
|
+
"job_id" uuid NOT NULL REFERENCES "release_update_jobs"("id") ON DELETE cascade,
|
|
55
|
+
"event_type" text NOT NULL,
|
|
56
|
+
"message" text NOT NULL,
|
|
57
|
+
"payload" jsonb NOT NULL DEFAULT '{}'::jsonb,
|
|
58
|
+
"idempotency_key" text,
|
|
59
|
+
"created_at" timestamp with time zone NOT NULL DEFAULT now()
|
|
60
|
+
);
|
|
61
|
+
|
|
62
|
+
CREATE INDEX IF NOT EXISTS "release_update_events_job_created_idx"
|
|
63
|
+
ON "release_update_events" ("job_id", "created_at");
|
|
64
|
+
|
|
65
|
+
CREATE UNIQUE INDEX IF NOT EXISTS "release_update_events_idempotency_uidx"
|
|
66
|
+
ON "release_update_events" ("job_id", "idempotency_key")
|
|
67
|
+
WHERE "idempotency_key" IS NOT NULL;
|