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,61 @@
|
|
|
1
|
+
-- Add visibility + owning_agent_id columns to the routines table
|
|
2
|
+
-- (schema follow-up bundle, closing C U11 P2 residual).
|
|
3
|
+
--
|
|
4
|
+
-- Phase C U11 introduced the create_routine + routine_invoke MCP
|
|
5
|
+
-- tools with a visibility check that conflated `agent_id` (the
|
|
6
|
+
-- routine's primary execution agent) with "the agent that owns
|
|
7
|
+
-- this routine for invocation purposes". This migration splits the
|
|
8
|
+
-- two:
|
|
9
|
+
--
|
|
10
|
+
-- - `owning_agent_id`: the agent that authored / has stewardship.
|
|
11
|
+
-- - `visibility`: enum-by-string (kept lower-snake to match the
|
|
12
|
+
-- in-code 'agent_private' / 'tenant_shared' literals already
|
|
13
|
+
-- baked into admin-ops/checkRoutineVisibility).
|
|
14
|
+
--
|
|
15
|
+
-- Backfill rule:
|
|
16
|
+
-- * agent_id IS NOT NULL → owning_agent_id = agent_id,
|
|
17
|
+
-- visibility = 'agent_private'
|
|
18
|
+
-- * agent_id IS NULL → owning_agent_id = NULL,
|
|
19
|
+
-- visibility = 'tenant_shared'
|
|
20
|
+
--
|
|
21
|
+
-- This preserves the v0 conflated semantics — every existing routine
|
|
22
|
+
-- with an agent stays "private to that agent", every team-scoped
|
|
23
|
+
-- routine without an agent stays tenant-wide. The MCP visibility
|
|
24
|
+
-- helper switches to read these columns in the same PR so behavior
|
|
25
|
+
-- doesn't drift.
|
|
26
|
+
--
|
|
27
|
+
-- creates-column: public.routines.visibility
|
|
28
|
+
-- creates-column: public.routines.owning_agent_id
|
|
29
|
+
|
|
30
|
+
ALTER TABLE public.routines
|
|
31
|
+
ADD COLUMN IF NOT EXISTS visibility text NOT NULL DEFAULT 'agent_private';
|
|
32
|
+
|
|
33
|
+
ALTER TABLE public.routines
|
|
34
|
+
ADD COLUMN IF NOT EXISTS owning_agent_id uuid REFERENCES public.agents(id);
|
|
35
|
+
|
|
36
|
+
-- Backfill existing rows. The default 'agent_private' on the
|
|
37
|
+
-- visibility column already covers the agent-owned case; we only
|
|
38
|
+
-- need to flip rows without an agent to 'tenant_shared'.
|
|
39
|
+
UPDATE public.routines
|
|
40
|
+
SET owning_agent_id = agent_id
|
|
41
|
+
WHERE agent_id IS NOT NULL
|
|
42
|
+
AND owning_agent_id IS NULL;
|
|
43
|
+
|
|
44
|
+
UPDATE public.routines
|
|
45
|
+
SET visibility = 'tenant_shared'
|
|
46
|
+
WHERE agent_id IS NULL
|
|
47
|
+
AND visibility = 'agent_private';
|
|
48
|
+
|
|
49
|
+
-- Index for the routine_invoke visibility-check path: lookups go
|
|
50
|
+
-- (tenant_id, owning_agent_id) when filtering routines an agent
|
|
51
|
+
-- is allowed to invoke.
|
|
52
|
+
CREATE INDEX IF NOT EXISTS idx_routines_owning_agent_id
|
|
53
|
+
ON public.routines (tenant_id, owning_agent_id)
|
|
54
|
+
WHERE owning_agent_id IS NOT NULL;
|
|
55
|
+
|
|
56
|
+
-- CHECK constraint pins the visibility enum at the DB layer so
|
|
57
|
+
-- resolvers + the MCP tool can rely on it without joining or
|
|
58
|
+
-- re-validating client-side.
|
|
59
|
+
ALTER TABLE public.routines
|
|
60
|
+
ADD CONSTRAINT routines_visibility_enum
|
|
61
|
+
CHECK (visibility IN ('agent_private', 'tenant_shared'));
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
-- Routine executions: persist the ASL version row used for each run.
|
|
2
|
+
--
|
|
3
|
+
-- New manual Test Routine executions can then resolve the exact
|
|
4
|
+
-- routine_asl_versions row even when Step Functions execution metadata
|
|
5
|
+
-- does not provide a version ARN. Existing rows remain valid with null.
|
|
6
|
+
--
|
|
7
|
+
-- Plan:
|
|
8
|
+
-- docs/plans/2026-05-02-011-feat-routine-execution-aware-editing-plan.md
|
|
9
|
+
--
|
|
10
|
+
-- Apply manually:
|
|
11
|
+
-- psql "$DATABASE_URL" -f packages/database-pg/drizzle/0061_routine_execution_asl_version_id.sql
|
|
12
|
+
--
|
|
13
|
+
-- creates-column: public.routine_executions.routine_asl_version_id
|
|
14
|
+
-- creates: public.idx_routine_executions_asl_version
|
|
15
|
+
|
|
16
|
+
\set ON_ERROR_STOP on
|
|
17
|
+
|
|
18
|
+
BEGIN;
|
|
19
|
+
|
|
20
|
+
SET LOCAL lock_timeout = '5s';
|
|
21
|
+
SET LOCAL statement_timeout = '120s';
|
|
22
|
+
|
|
23
|
+
ALTER TABLE public.routine_executions
|
|
24
|
+
ADD COLUMN IF NOT EXISTS routine_asl_version_id uuid REFERENCES public.routine_asl_versions(id);
|
|
25
|
+
|
|
26
|
+
CREATE INDEX IF NOT EXISTS idx_routine_executions_asl_version
|
|
27
|
+
ON public.routine_executions (routine_asl_version_id);
|
|
28
|
+
|
|
29
|
+
COMMIT;
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
-- Plan §005 U3 — retire AgentRuntimeType selector value `pi` → `flue`.
|
|
2
|
+
--
|
|
3
|
+
-- Hand-rolled (NOT registered in meta/_journal.json — applied via psql in
|
|
4
|
+
-- deploy.yml as a pre-Lambda-update step so the dispatcher never sees a
|
|
5
|
+
-- `pi` value it can't route after the API code update lands).
|
|
6
|
+
--
|
|
7
|
+
-- The `agents.runtime` and `agent_templates.runtime` columns are both
|
|
8
|
+
-- `text NOT NULL DEFAULT 'strands'` (no Postgres enum), so this is a
|
|
9
|
+
-- pure data migration. No DDL.
|
|
10
|
+
--
|
|
11
|
+
-- Marker for db:migrate-manual drift-reporter (see CLAUDE.md "Some
|
|
12
|
+
-- drizzle/*.sql files are hand-rolled..."): the reporter looks up the
|
|
13
|
+
-- declared columns and confirms they exist post-deploy. We're modifying
|
|
14
|
+
-- existing columns, not creating new ones, so we declare them with
|
|
15
|
+
-- creates-column to satisfy the gate.
|
|
16
|
+
-- creates-column: public.agents.runtime
|
|
17
|
+
-- creates-column: public.agent_templates.runtime
|
|
18
|
+
|
|
19
|
+
\echo '== plan §005 U3: agents.runtime + agent_templates.runtime backfill =='
|
|
20
|
+
|
|
21
|
+
-- Print affected rows BEFORE the update so a developer can recover their
|
|
22
|
+
-- pi-pinned configs if the rename was unexpected. No mutation in this step.
|
|
23
|
+
\echo '-- agents currently set to runtime = pi --'
|
|
24
|
+
SELECT
|
|
25
|
+
id,
|
|
26
|
+
tenant_id,
|
|
27
|
+
name,
|
|
28
|
+
runtime,
|
|
29
|
+
updated_at
|
|
30
|
+
FROM agents
|
|
31
|
+
WHERE runtime = 'pi';
|
|
32
|
+
|
|
33
|
+
\echo '-- agent_templates currently set to runtime = pi --'
|
|
34
|
+
SELECT
|
|
35
|
+
id,
|
|
36
|
+
name,
|
|
37
|
+
runtime,
|
|
38
|
+
updated_at
|
|
39
|
+
FROM agent_templates
|
|
40
|
+
WHERE runtime = 'pi';
|
|
41
|
+
|
|
42
|
+
-- Loosen the CHECK constraints on both runtime columns BEFORE the
|
|
43
|
+
-- UPDATE — the existing constraints only allow ('strands', 'pi'), so
|
|
44
|
+
-- setting runtime = 'flue' otherwise hits:
|
|
45
|
+
--
|
|
46
|
+
-- ERROR: new row for relation "agents" violates check constraint
|
|
47
|
+
-- "agents_runtime_check"
|
|
48
|
+
--
|
|
49
|
+
-- We allow the union {strands, flue, pi} during the migration so the
|
|
50
|
+
-- partial-fail rollback (--single-transaction) can leave the system in
|
|
51
|
+
-- a consistent state even if the UPDATE aborts mid-way. After the
|
|
52
|
+
-- post-migration verification (DO block below) confirms zero rows
|
|
53
|
+
-- remain on 'pi', the constraints could be tightened to
|
|
54
|
+
-- {strands, flue}; we keep 'pi' tolerated for one release cycle so
|
|
55
|
+
-- rollback to a pre-U3 dispatcher stays available.
|
|
56
|
+
\echo '-- loosening agents.runtime CHECK constraint to allow flue --'
|
|
57
|
+
ALTER TABLE agents DROP CONSTRAINT IF EXISTS agents_runtime_check;
|
|
58
|
+
ALTER TABLE agents
|
|
59
|
+
ADD CONSTRAINT agents_runtime_check
|
|
60
|
+
CHECK (runtime IN ('strands', 'flue', 'pi'));
|
|
61
|
+
|
|
62
|
+
\echo '-- loosening agent_templates.runtime CHECK constraint to allow flue --'
|
|
63
|
+
ALTER TABLE agent_templates DROP CONSTRAINT IF EXISTS agent_templates_runtime_check;
|
|
64
|
+
ALTER TABLE agent_templates
|
|
65
|
+
ADD CONSTRAINT agent_templates_runtime_check
|
|
66
|
+
CHECK (runtime IN ('strands', 'flue', 'pi'));
|
|
67
|
+
|
|
68
|
+
-- Apply the rename. Both updates run inside an implicit transaction
|
|
69
|
+
-- (psql --single-transaction) so a partial failure rolls the whole
|
|
70
|
+
-- migration back without leaving the system in mixed state.
|
|
71
|
+
\echo '-- updating agents.runtime: pi → flue --'
|
|
72
|
+
UPDATE agents
|
|
73
|
+
SET runtime = 'flue', updated_at = NOW()
|
|
74
|
+
WHERE runtime = 'pi';
|
|
75
|
+
|
|
76
|
+
\echo '-- updating agent_templates.runtime: pi → flue --'
|
|
77
|
+
UPDATE agent_templates
|
|
78
|
+
SET runtime = 'flue', updated_at = NOW()
|
|
79
|
+
WHERE runtime = 'pi';
|
|
80
|
+
|
|
81
|
+
-- Confirm zero rows remain on the old value. The DO block raises an
|
|
82
|
+
-- exception when any row survived, which (combined with psql's
|
|
83
|
+
-- ON_ERROR_STOP=1 + --single-transaction) aborts the migration and
|
|
84
|
+
-- rolls back the UPDATEs above. Without this gate, a stale row would
|
|
85
|
+
-- silently persist and the new dispatcher would map it to Strands via
|
|
86
|
+
-- the default branch in normalizeAgentRuntimeType.
|
|
87
|
+
\echo '-- post-migration verification: any rows still on pi? --'
|
|
88
|
+
DO $$
|
|
89
|
+
DECLARE
|
|
90
|
+
agents_remaining bigint;
|
|
91
|
+
templates_remaining bigint;
|
|
92
|
+
BEGIN
|
|
93
|
+
SELECT COUNT(*) INTO agents_remaining
|
|
94
|
+
FROM agents
|
|
95
|
+
WHERE runtime = 'pi';
|
|
96
|
+
|
|
97
|
+
SELECT COUNT(*) INTO templates_remaining
|
|
98
|
+
FROM agent_templates
|
|
99
|
+
WHERE runtime = 'pi';
|
|
100
|
+
|
|
101
|
+
RAISE NOTICE 'agents still on pi: %', agents_remaining;
|
|
102
|
+
RAISE NOTICE 'agent_templates still on pi: %', templates_remaining;
|
|
103
|
+
|
|
104
|
+
IF agents_remaining > 0 OR templates_remaining > 0 THEN
|
|
105
|
+
RAISE EXCEPTION
|
|
106
|
+
'plan §005 U3 migration verification failed: % agents and % agent_templates still have runtime = ''pi''. Investigate before the dispatcher Lambda is updated — the new normalizer would silently coerce these rows to ''strands''.',
|
|
107
|
+
agents_remaining, templates_remaining;
|
|
108
|
+
END IF;
|
|
109
|
+
END
|
|
110
|
+
$$;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
-- Plan §005 U4 — add `threads.session_data jsonb` for Pi's `SessionStore`.
|
|
2
|
+
--
|
|
3
|
+
-- Hand-rolled (NOT registered in meta/_journal.json — applied via psql in
|
|
4
|
+
-- deploy.yml as a pre-Terraform-apply step so the non-Strands runtime Lambda
|
|
5
|
+
-- never reads/writes a column the schema doesn't have).
|
|
6
|
+
--
|
|
7
|
+
-- The column is nullable: pre-Pi threads coexist with NULL. Pi's
|
|
8
|
+
-- AuroraSessionStore.delete() also sets the column to NULL rather than
|
|
9
|
+
-- dropping the thread row, so the post-state is the same as the pre-state
|
|
10
|
+
-- whenever the column is empty.
|
|
11
|
+
--
|
|
12
|
+
-- Marker for db:migrate-manual drift-reporter (see CLAUDE.md "Some
|
|
13
|
+
-- drizzle/*.sql files are hand-rolled..."):
|
|
14
|
+
-- creates-column: public.threads.session_data
|
|
15
|
+
|
|
16
|
+
\echo '== plan §005 U4: threads.session_data jsonb column =='
|
|
17
|
+
|
|
18
|
+
ALTER TABLE threads
|
|
19
|
+
ADD COLUMN IF NOT EXISTS session_data jsonb;
|
|
20
|
+
|
|
21
|
+
-- No index — Pi keys exclusively on `threads.id` (the PK) plus
|
|
22
|
+
-- `tenant_id` (existing `idx_threads_tenant_id`). Adding a GIN/BTREE index
|
|
23
|
+
-- on a jsonb column we never query inside is wasted write amplification.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
-- Tenant-shared credential vault for routines and integrations.
|
|
2
|
+
--
|
|
3
|
+
-- Secret values live in AWS Secrets Manager. This table stores only
|
|
4
|
+
-- non-secret metadata, lifecycle state, and derived runtime references.
|
|
5
|
+
--
|
|
6
|
+
-- Plan:
|
|
7
|
+
-- docs/plans/2026-05-04-002-feat-tenant-credential-vault-routine-migration-plan.md
|
|
8
|
+
--
|
|
9
|
+
-- Apply manually:
|
|
10
|
+
-- psql "$DATABASE_URL" -f packages/database-pg/drizzle/0064_tenant_credentials.sql
|
|
11
|
+
--
|
|
12
|
+
-- creates: public.tenant_credentials
|
|
13
|
+
-- creates: public.uq_tenant_credentials_slug
|
|
14
|
+
-- creates: public.idx_tenant_credentials_tenant
|
|
15
|
+
-- creates: public.idx_tenant_credentials_status
|
|
16
|
+
|
|
17
|
+
\set ON_ERROR_STOP on
|
|
18
|
+
|
|
19
|
+
BEGIN;
|
|
20
|
+
|
|
21
|
+
SET LOCAL lock_timeout = '5s';
|
|
22
|
+
SET LOCAL statement_timeout = '120s';
|
|
23
|
+
|
|
24
|
+
CREATE TABLE IF NOT EXISTS public.tenant_credentials (
|
|
25
|
+
id uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
26
|
+
tenant_id uuid NOT NULL REFERENCES public.tenants(id),
|
|
27
|
+
display_name text NOT NULL,
|
|
28
|
+
slug text NOT NULL,
|
|
29
|
+
kind text NOT NULL,
|
|
30
|
+
status text NOT NULL DEFAULT 'active',
|
|
31
|
+
secret_ref text NOT NULL,
|
|
32
|
+
eventbridge_connection_arn text,
|
|
33
|
+
schema_json jsonb NOT NULL DEFAULT '{}'::jsonb,
|
|
34
|
+
metadata_json jsonb NOT NULL DEFAULT '{}'::jsonb,
|
|
35
|
+
last_used_at timestamp with time zone,
|
|
36
|
+
last_validated_at timestamp with time zone,
|
|
37
|
+
created_by_user_id uuid REFERENCES public.users(id),
|
|
38
|
+
deleted_at timestamp with time zone,
|
|
39
|
+
created_at timestamp with time zone NOT NULL DEFAULT now(),
|
|
40
|
+
updated_at timestamp with time zone NOT NULL DEFAULT now(),
|
|
41
|
+
CONSTRAINT tenant_credentials_kind_enum CHECK (
|
|
42
|
+
kind IN (
|
|
43
|
+
'api_key',
|
|
44
|
+
'bearer_token',
|
|
45
|
+
'basic_auth',
|
|
46
|
+
'soap_partner',
|
|
47
|
+
'webhook_signing_secret',
|
|
48
|
+
'json'
|
|
49
|
+
)
|
|
50
|
+
),
|
|
51
|
+
CONSTRAINT tenant_credentials_status_enum CHECK (
|
|
52
|
+
status IN ('active', 'disabled', 'deleted')
|
|
53
|
+
)
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
CREATE UNIQUE INDEX IF NOT EXISTS uq_tenant_credentials_slug
|
|
57
|
+
ON public.tenant_credentials (tenant_id, slug);
|
|
58
|
+
|
|
59
|
+
CREATE INDEX IF NOT EXISTS idx_tenant_credentials_tenant
|
|
60
|
+
ON public.tenant_credentials (tenant_id);
|
|
61
|
+
|
|
62
|
+
CREATE INDEX IF NOT EXISTS idx_tenant_credentials_status
|
|
63
|
+
ON public.tenant_credentials (tenant_id, status);
|
|
64
|
+
|
|
65
|
+
COMMIT;
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
-- ThinkWork Computer phase-one data foundation.
|
|
2
|
+
--
|
|
3
|
+
-- Plan:
|
|
4
|
+
-- docs/plans/2026-05-06-005-feat-thinkwork-computer-phase-one-foundation-plan.md
|
|
5
|
+
--
|
|
6
|
+
-- Apply manually:
|
|
7
|
+
-- psql "$DATABASE_URL" -f packages/database-pg/drizzle/0067_thinkwork_computers_phase_one.sql
|
|
8
|
+
--
|
|
9
|
+
-- creates-column: public.agent_templates.template_kind
|
|
10
|
+
-- creates-constraint: public.agent_templates.agent_templates_kind_allowed
|
|
11
|
+
-- creates: public.idx_agent_templates_kind
|
|
12
|
+
-- creates: public.computers
|
|
13
|
+
-- creates: public.computer_tasks
|
|
14
|
+
-- creates: public.computer_events
|
|
15
|
+
-- creates: public.computer_snapshots
|
|
16
|
+
-- creates: public.uq_computers_tenant_slug
|
|
17
|
+
-- creates: public.uq_computers_active_owner
|
|
18
|
+
-- creates: public.idx_computers_tenant_status
|
|
19
|
+
-- creates: public.idx_computers_owner
|
|
20
|
+
-- creates: public.idx_computers_template
|
|
21
|
+
-- creates: public.idx_computers_migrated_agent
|
|
22
|
+
-- creates: public.uq_computer_tasks_idempotency
|
|
23
|
+
-- creates: public.idx_computer_tasks_computer_status
|
|
24
|
+
-- creates: public.idx_computer_tasks_tenant_status
|
|
25
|
+
-- creates: public.idx_computer_events_computer_created
|
|
26
|
+
-- creates: public.idx_computer_events_task
|
|
27
|
+
-- creates: public.idx_computer_snapshots_computer_created
|
|
28
|
+
|
|
29
|
+
\set ON_ERROR_STOP on
|
|
30
|
+
|
|
31
|
+
BEGIN;
|
|
32
|
+
|
|
33
|
+
SET LOCAL lock_timeout = '5s';
|
|
34
|
+
SET LOCAL statement_timeout = '120s';
|
|
35
|
+
|
|
36
|
+
ALTER TABLE public.agent_templates
|
|
37
|
+
ADD COLUMN IF NOT EXISTS template_kind text NOT NULL DEFAULT 'agent';
|
|
38
|
+
|
|
39
|
+
ALTER TABLE public.agent_templates
|
|
40
|
+
DROP CONSTRAINT IF EXISTS agent_templates_kind_allowed;
|
|
41
|
+
|
|
42
|
+
ALTER TABLE public.agent_templates
|
|
43
|
+
ADD CONSTRAINT agent_templates_kind_allowed CHECK (
|
|
44
|
+
template_kind IN ('agent', 'computer')
|
|
45
|
+
);
|
|
46
|
+
|
|
47
|
+
CREATE INDEX IF NOT EXISTS idx_agent_templates_kind
|
|
48
|
+
ON public.agent_templates (template_kind);
|
|
49
|
+
|
|
50
|
+
CREATE TABLE IF NOT EXISTS public.computers (
|
|
51
|
+
id uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
52
|
+
tenant_id uuid NOT NULL REFERENCES public.tenants(id) ON DELETE CASCADE,
|
|
53
|
+
owner_user_id uuid NOT NULL REFERENCES public.users(id) ON DELETE CASCADE,
|
|
54
|
+
template_id uuid NOT NULL REFERENCES public.agent_templates(id),
|
|
55
|
+
name text NOT NULL,
|
|
56
|
+
slug text NOT NULL,
|
|
57
|
+
status text NOT NULL DEFAULT 'active',
|
|
58
|
+
desired_runtime_status text NOT NULL DEFAULT 'running',
|
|
59
|
+
runtime_status text NOT NULL DEFAULT 'pending',
|
|
60
|
+
runtime_config jsonb,
|
|
61
|
+
live_workspace_root text,
|
|
62
|
+
efs_access_point_id text,
|
|
63
|
+
ecs_service_name text,
|
|
64
|
+
last_heartbeat_at timestamp with time zone,
|
|
65
|
+
last_active_at timestamp with time zone,
|
|
66
|
+
budget_monthly_cents integer,
|
|
67
|
+
spent_monthly_cents integer DEFAULT 0,
|
|
68
|
+
budget_paused_at timestamp with time zone,
|
|
69
|
+
budget_paused_reason text,
|
|
70
|
+
migrated_from_agent_id uuid REFERENCES public.agents(id),
|
|
71
|
+
migration_metadata jsonb,
|
|
72
|
+
created_by uuid REFERENCES public.users(id),
|
|
73
|
+
created_at timestamp with time zone NOT NULL DEFAULT now(),
|
|
74
|
+
updated_at timestamp with time zone NOT NULL DEFAULT now(),
|
|
75
|
+
CONSTRAINT computers_status_allowed CHECK (
|
|
76
|
+
status IN ('active', 'provisioning', 'failed', 'archived')
|
|
77
|
+
),
|
|
78
|
+
CONSTRAINT computers_desired_runtime_status_allowed CHECK (
|
|
79
|
+
desired_runtime_status IN ('running', 'stopped')
|
|
80
|
+
),
|
|
81
|
+
CONSTRAINT computers_runtime_status_allowed CHECK (
|
|
82
|
+
runtime_status IN ('pending', 'starting', 'running', 'stopped', 'failed', 'unknown')
|
|
83
|
+
)
|
|
84
|
+
);
|
|
85
|
+
|
|
86
|
+
CREATE UNIQUE INDEX IF NOT EXISTS uq_computers_tenant_slug
|
|
87
|
+
ON public.computers (tenant_id, slug);
|
|
88
|
+
|
|
89
|
+
CREATE UNIQUE INDEX IF NOT EXISTS uq_computers_active_owner
|
|
90
|
+
ON public.computers (tenant_id, owner_user_id)
|
|
91
|
+
WHERE status <> 'archived';
|
|
92
|
+
|
|
93
|
+
CREATE INDEX IF NOT EXISTS idx_computers_tenant_status
|
|
94
|
+
ON public.computers (tenant_id, status);
|
|
95
|
+
|
|
96
|
+
CREATE INDEX IF NOT EXISTS idx_computers_owner
|
|
97
|
+
ON public.computers (owner_user_id);
|
|
98
|
+
|
|
99
|
+
CREATE INDEX IF NOT EXISTS idx_computers_template
|
|
100
|
+
ON public.computers (template_id);
|
|
101
|
+
|
|
102
|
+
CREATE INDEX IF NOT EXISTS idx_computers_migrated_agent
|
|
103
|
+
ON public.computers (migrated_from_agent_id);
|
|
104
|
+
|
|
105
|
+
CREATE TABLE IF NOT EXISTS public.computer_tasks (
|
|
106
|
+
id uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
107
|
+
tenant_id uuid NOT NULL REFERENCES public.tenants(id) ON DELETE CASCADE,
|
|
108
|
+
computer_id uuid NOT NULL REFERENCES public.computers(id) ON DELETE CASCADE,
|
|
109
|
+
task_type text NOT NULL,
|
|
110
|
+
status text NOT NULL DEFAULT 'pending',
|
|
111
|
+
input jsonb,
|
|
112
|
+
output jsonb,
|
|
113
|
+
error jsonb,
|
|
114
|
+
idempotency_key text,
|
|
115
|
+
claimed_at timestamp with time zone,
|
|
116
|
+
completed_at timestamp with time zone,
|
|
117
|
+
created_by_user_id uuid REFERENCES public.users(id),
|
|
118
|
+
created_at timestamp with time zone NOT NULL DEFAULT now(),
|
|
119
|
+
updated_at timestamp with time zone NOT NULL DEFAULT now(),
|
|
120
|
+
CONSTRAINT computer_tasks_status_allowed CHECK (
|
|
121
|
+
status IN ('pending', 'running', 'completed', 'failed', 'cancelled')
|
|
122
|
+
)
|
|
123
|
+
);
|
|
124
|
+
|
|
125
|
+
CREATE UNIQUE INDEX IF NOT EXISTS uq_computer_tasks_idempotency
|
|
126
|
+
ON public.computer_tasks (tenant_id, computer_id, idempotency_key)
|
|
127
|
+
WHERE idempotency_key IS NOT NULL;
|
|
128
|
+
|
|
129
|
+
CREATE INDEX IF NOT EXISTS idx_computer_tasks_computer_status
|
|
130
|
+
ON public.computer_tasks (computer_id, status);
|
|
131
|
+
|
|
132
|
+
CREATE INDEX IF NOT EXISTS idx_computer_tasks_tenant_status
|
|
133
|
+
ON public.computer_tasks (tenant_id, status);
|
|
134
|
+
|
|
135
|
+
CREATE TABLE IF NOT EXISTS public.computer_events (
|
|
136
|
+
id uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
137
|
+
tenant_id uuid NOT NULL REFERENCES public.tenants(id) ON DELETE CASCADE,
|
|
138
|
+
computer_id uuid NOT NULL REFERENCES public.computers(id) ON DELETE CASCADE,
|
|
139
|
+
task_id uuid REFERENCES public.computer_tasks(id) ON DELETE SET NULL,
|
|
140
|
+
event_type text NOT NULL,
|
|
141
|
+
level text NOT NULL DEFAULT 'info',
|
|
142
|
+
payload jsonb,
|
|
143
|
+
created_at timestamp with time zone NOT NULL DEFAULT now(),
|
|
144
|
+
CONSTRAINT computer_events_level_allowed CHECK (
|
|
145
|
+
level IN ('debug', 'info', 'warn', 'error')
|
|
146
|
+
)
|
|
147
|
+
);
|
|
148
|
+
|
|
149
|
+
CREATE INDEX IF NOT EXISTS idx_computer_events_computer_created
|
|
150
|
+
ON public.computer_events (computer_id, created_at);
|
|
151
|
+
|
|
152
|
+
CREATE INDEX IF NOT EXISTS idx_computer_events_task
|
|
153
|
+
ON public.computer_events (task_id);
|
|
154
|
+
|
|
155
|
+
CREATE TABLE IF NOT EXISTS public.computer_snapshots (
|
|
156
|
+
id uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
157
|
+
tenant_id uuid NOT NULL REFERENCES public.tenants(id) ON DELETE CASCADE,
|
|
158
|
+
computer_id uuid NOT NULL REFERENCES public.computers(id) ON DELETE CASCADE,
|
|
159
|
+
task_id uuid REFERENCES public.computer_tasks(id) ON DELETE SET NULL,
|
|
160
|
+
status text NOT NULL DEFAULT 'pending',
|
|
161
|
+
s3_prefix text NOT NULL,
|
|
162
|
+
manifest jsonb,
|
|
163
|
+
error jsonb,
|
|
164
|
+
completed_at timestamp with time zone,
|
|
165
|
+
created_at timestamp with time zone NOT NULL DEFAULT now(),
|
|
166
|
+
CONSTRAINT computer_snapshots_status_allowed CHECK (
|
|
167
|
+
status IN ('pending', 'completed', 'failed')
|
|
168
|
+
)
|
|
169
|
+
);
|
|
170
|
+
|
|
171
|
+
CREATE INDEX IF NOT EXISTS idx_computer_snapshots_computer_created
|
|
172
|
+
ON public.computer_snapshots (computer_id, created_at);
|
|
173
|
+
|
|
174
|
+
COMMIT;
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
-- 0068_drop_system_workflows_and_activation.sql
|
|
2
|
+
--
|
|
3
|
+
-- Phase 2 U6 of the System Workflows revert. Final unit. Drops the 11
|
|
4
|
+
-- Postgres tables that backed the SW + Activation features:
|
|
5
|
+
-- - 4 activation tables (sessions, session_turns, apply_outbox, automation_candidates)
|
|
6
|
+
-- - 7 SW tables (definitions, configs, extension_bindings, runs, step_events,
|
|
7
|
+
-- evidence, change_events)
|
|
8
|
+
-- Plus all the indexes/constraints declared by the deleted create-migrations
|
|
9
|
+
-- (0038, 0039, 0041, 0059, 0060). DROP TABLE CASCADE handles the runtime
|
|
10
|
+
-- removal of indexes alongside their parent tables.
|
|
11
|
+
--
|
|
12
|
+
-- Plan reference:
|
|
13
|
+
-- docs/plans/2026-05-06-010-refactor-system-workflows-u6-postgres-schema-plan.md
|
|
14
|
+
-- docs/plans/2026-05-06-001-refactor-system-workflows-activation-removal-plan.md
|
|
15
|
+
--
|
|
16
|
+
-- Apply manually:
|
|
17
|
+
-- psql "$DATABASE_URL" -f packages/database-pg/drizzle/0068_drop_system_workflows_and_activation.sql
|
|
18
|
+
-- Then verify:
|
|
19
|
+
-- psql "$DATABASE_URL" -c "SELECT table_name FROM information_schema.tables WHERE table_schema = 'public' AND table_name IN ('activation_sessions','activation_session_turns','activation_apply_outbox','activation_automation_candidates','system_workflow_definitions','system_workflow_configs','system_workflow_extension_bindings','system_workflow_runs','system_workflow_step_events','system_workflow_evidence','system_workflow_change_events');"
|
|
20
|
+
-- (expect 0 rows)
|
|
21
|
+
--
|
|
22
|
+
-- Markers (consumed by scripts/db-migrate-manual.sh as the post-deploy drift gate):
|
|
23
|
+
-- This file declares no creates. The drops markers below probe ABSENCE
|
|
24
|
+
-- of each named object. Tables and indexes/constraints are dropped
|
|
25
|
+
-- together via CASCADE; markers are enumerated for full audit trail of
|
|
26
|
+
-- what disappears.
|
|
27
|
+
--
|
|
28
|
+
-- drops: public.activation_sessions
|
|
29
|
+
-- drops: public.activation_session_turns
|
|
30
|
+
-- drops: public.activation_apply_outbox
|
|
31
|
+
-- drops: public.activation_automation_candidates
|
|
32
|
+
-- drops: public.system_workflow_definitions
|
|
33
|
+
-- drops: public.system_workflow_configs
|
|
34
|
+
-- drops: public.system_workflow_extension_bindings
|
|
35
|
+
-- drops: public.system_workflow_runs
|
|
36
|
+
-- drops: public.system_workflow_step_events
|
|
37
|
+
-- drops: public.system_workflow_evidence
|
|
38
|
+
-- drops: public.system_workflow_change_events
|
|
39
|
+
-- drops: public.idx_activation_sessions_user_status
|
|
40
|
+
-- drops: public.idx_activation_sessions_tenant
|
|
41
|
+
-- drops: public.uq_activation_sessions_user_in_progress
|
|
42
|
+
-- drops: public.idx_activation_session_turns_session_order
|
|
43
|
+
-- drops: public.idx_activation_apply_outbox_status_created
|
|
44
|
+
-- drops: public.idx_activation_apply_outbox_session
|
|
45
|
+
-- drops: public.idx_activation_automation_candidates_session
|
|
46
|
+
-- drops: public.idx_activation_automation_candidates_user_status
|
|
47
|
+
-- drops: public.uq_activation_automation_candidates_active_duplicate
|
|
48
|
+
-- drops: public.idx_system_workflow_definitions_category
|
|
49
|
+
-- drops: public.idx_system_workflow_definitions_status
|
|
50
|
+
-- drops: public.idx_system_workflow_configs_tenant_workflow_version
|
|
51
|
+
-- drops: public.idx_system_workflow_configs_tenant_workflow_status
|
|
52
|
+
-- drops: public.idx_system_workflow_extension_bindings_tenant_workflow
|
|
53
|
+
-- drops: public.idx_system_workflow_extension_bindings_config
|
|
54
|
+
-- drops: public.idx_system_workflow_runs_sfn_arn
|
|
55
|
+
-- drops: public.idx_system_workflow_runs_tenant_workflow_started
|
|
56
|
+
-- drops: public.idx_system_workflow_runs_tenant_status
|
|
57
|
+
-- drops: public.idx_system_workflow_runs_domain_ref
|
|
58
|
+
-- drops: public.idx_system_workflow_step_events_run
|
|
59
|
+
-- drops: public.idx_system_workflow_step_events_dedup
|
|
60
|
+
-- drops: public.idx_system_workflow_step_events_tenant_step
|
|
61
|
+
-- drops: public.idx_system_workflow_evidence_run
|
|
62
|
+
-- drops: public.idx_system_workflow_evidence_tenant_type
|
|
63
|
+
-- drops: public.idx_system_workflow_evidence_dedup
|
|
64
|
+
-- drops: public.idx_system_workflow_change_events_tenant_workflow
|
|
65
|
+
-- drops: public.idx_system_workflow_change_events_run
|
|
66
|
+
-- drops: public.idx_system_workflow_runs_domain_ref_dedup
|
|
67
|
+
|
|
68
|
+
\set ON_ERROR_STOP on
|
|
69
|
+
|
|
70
|
+
BEGIN;
|
|
71
|
+
|
|
72
|
+
-- Fail fast on lock contention. The 11 tables have no live writers
|
|
73
|
+
-- (U2 deleted the GraphQL surface, U3 deleted the Lambda library, U5
|
|
74
|
+
-- destroyed the Step Functions module), so a 5s wait is more than
|
|
75
|
+
-- sufficient; if a stale connection holds a lock past that, abort
|
|
76
|
+
-- rather than wedge the cluster behind a long-held ACCESS EXCLUSIVE
|
|
77
|
+
-- lock. Mirrors the pattern from 0031_thread_cleanup_drops.sql.
|
|
78
|
+
SET LOCAL lock_timeout = '5s';
|
|
79
|
+
SET LOCAL statement_timeout = '60s';
|
|
80
|
+
|
|
81
|
+
-- Refuse to apply against an unexpected DB. The drop is irreversible
|
|
82
|
+
-- without RDS snapshot restore, so an in-script guard against stale
|
|
83
|
+
-- DATABASE_URL pointing at a localhost Postgres or a non-dev RDS is
|
|
84
|
+
-- cheap insurance.
|
|
85
|
+
DO $$
|
|
86
|
+
BEGIN
|
|
87
|
+
IF current_database() != 'thinkwork' THEN
|
|
88
|
+
RAISE EXCEPTION 'wrong database: %, expected thinkwork', current_database();
|
|
89
|
+
END IF;
|
|
90
|
+
END $$;
|
|
91
|
+
|
|
92
|
+
-- ---------------------------------------------------------------------------
|
|
93
|
+
-- Drop System Workflows tables (children before parents).
|
|
94
|
+
-- CASCADE removes incidental constraints + drops indexes alongside their
|
|
95
|
+
-- parent tables; the ordering here is belt-and-suspenders.
|
|
96
|
+
-- ---------------------------------------------------------------------------
|
|
97
|
+
|
|
98
|
+
DROP TABLE IF EXISTS public.system_workflow_change_events CASCADE;
|
|
99
|
+
DROP TABLE IF EXISTS public.system_workflow_evidence CASCADE;
|
|
100
|
+
DROP TABLE IF EXISTS public.system_workflow_step_events CASCADE;
|
|
101
|
+
DROP TABLE IF EXISTS public.system_workflow_runs CASCADE;
|
|
102
|
+
DROP TABLE IF EXISTS public.system_workflow_extension_bindings CASCADE;
|
|
103
|
+
DROP TABLE IF EXISTS public.system_workflow_configs CASCADE;
|
|
104
|
+
DROP TABLE IF EXISTS public.system_workflow_definitions CASCADE;
|
|
105
|
+
|
|
106
|
+
-- ---------------------------------------------------------------------------
|
|
107
|
+
-- Drop Activation tables (children before parents).
|
|
108
|
+
-- ---------------------------------------------------------------------------
|
|
109
|
+
|
|
110
|
+
DROP TABLE IF EXISTS public.activation_apply_outbox CASCADE;
|
|
111
|
+
DROP TABLE IF EXISTS public.activation_automation_candidates CASCADE;
|
|
112
|
+
DROP TABLE IF EXISTS public.activation_session_turns CASCADE;
|
|
113
|
+
DROP TABLE IF EXISTS public.activation_sessions CASCADE;
|
|
114
|
+
|
|
115
|
+
COMMIT;
|