thinkwork-cli 0.12.12 → 0.12.16
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-JUBCQQDF.js} +1 -1
- package/dist/{chunk-JEHV35EU.js → chunk-STY44FQO.js} +353 -30
- package/dist/cli.js +23823 -10151
- 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/0197_rcm_context_columns.sql +28 -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 +466 -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 +2 -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,37 @@
|
|
|
1
|
+
-- Hand-rolled — apply manually to dev via:
|
|
2
|
+
-- psql "$DATABASE_URL" -f packages/database-pg/drizzle/0088_compliance_event_types_finance_pilot.sql
|
|
3
|
+
--
|
|
4
|
+
-- See docs/solutions/workflow-issues/manually-applied-drizzle-migrations-drift-from-dev-2026-04-21.md
|
|
5
|
+
--
|
|
6
|
+
-- U6 of docs/plans/2026-05-14-002-feat-finance-analysis-pilot-plan.md.
|
|
7
|
+
-- Extends the event_type prefix CHECK constraints on compliance.audit_outbox
|
|
8
|
+
-- and compliance.audit_events to recognize three new finance-pilot event-type
|
|
9
|
+
-- families: attachment.*, skill.*, output.* — so attachment.received,
|
|
10
|
+
-- skill.activated, and output.artifact_produced can be inserted.
|
|
11
|
+
--
|
|
12
|
+
-- The new constraints are renamed *_v2 so the drift reporter at
|
|
13
|
+
-- scripts/db-migrate-manual.sh can verify application (probing by name).
|
|
14
|
+
-- The old *_prefix constraints are DROPped in the same transaction.
|
|
15
|
+
--
|
|
16
|
+
-- creates-constraint: compliance.audit_outbox.audit_outbox_event_type_prefix_v2
|
|
17
|
+
-- creates-constraint: compliance.audit_events.audit_events_event_type_prefix_v2
|
|
18
|
+
|
|
19
|
+
BEGIN;
|
|
20
|
+
|
|
21
|
+
ALTER TABLE compliance.audit_outbox
|
|
22
|
+
DROP CONSTRAINT IF EXISTS audit_outbox_event_type_prefix;
|
|
23
|
+
|
|
24
|
+
ALTER TABLE compliance.audit_outbox
|
|
25
|
+
ADD CONSTRAINT audit_outbox_event_type_prefix_v2 CHECK (
|
|
26
|
+
event_type ~ '^(auth|user|agent|mcp|workspace|data|policy|approval|attachment|skill|output)\.'
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
ALTER TABLE compliance.audit_events
|
|
30
|
+
DROP CONSTRAINT IF EXISTS audit_events_event_type_prefix;
|
|
31
|
+
|
|
32
|
+
ALTER TABLE compliance.audit_events
|
|
33
|
+
ADD CONSTRAINT audit_events_event_type_prefix_v2 CHECK (
|
|
34
|
+
event_type ~ '^(auth|user|agent|mcp|workspace|data|policy|approval|attachment|skill|output)\.'
|
|
35
|
+
);
|
|
36
|
+
|
|
37
|
+
COMMIT;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
-- creates: public.view_eval_seed_maniflow_cleanup_0089
|
|
2
|
+
--
|
|
3
|
+
-- Removes maniflow-era yaml-seed evaluation test cases from deployed tenants.
|
|
4
|
+
--
|
|
5
|
+
-- Historical eval_results rows keep their run payloads but detach from the
|
|
6
|
+
-- deleted test case rows first because eval_results.test_case_id is nullable
|
|
7
|
+
-- and the FK is non-cascading.
|
|
8
|
+
--
|
|
9
|
+
-- Apply manually before deploy:
|
|
10
|
+
-- psql "$DATABASE_URL" -f packages/database-pg/drizzle/0089_remove_maniflow_eval_seeds.sql
|
|
11
|
+
|
|
12
|
+
\set ON_ERROR_STOP on
|
|
13
|
+
|
|
14
|
+
BEGIN;
|
|
15
|
+
|
|
16
|
+
WITH old_seed_cases AS (
|
|
17
|
+
SELECT id
|
|
18
|
+
FROM eval_test_cases
|
|
19
|
+
WHERE source = 'yaml-seed'
|
|
20
|
+
AND category IN (
|
|
21
|
+
'email-calendar',
|
|
22
|
+
'knowledge-base',
|
|
23
|
+
'mcp-gateway',
|
|
24
|
+
'red-team',
|
|
25
|
+
'sub-agents',
|
|
26
|
+
'brain-onepager-citations',
|
|
27
|
+
'brain-triage-routing',
|
|
28
|
+
'brain-trust-gradient-promotion',
|
|
29
|
+
'brain-write-back-capture',
|
|
30
|
+
'thread-management',
|
|
31
|
+
'tool-safety',
|
|
32
|
+
'workspace-memory',
|
|
33
|
+
'workspace-routing'
|
|
34
|
+
)
|
|
35
|
+
)
|
|
36
|
+
UPDATE eval_results
|
|
37
|
+
SET test_case_id = NULL
|
|
38
|
+
WHERE test_case_id IN (SELECT id FROM old_seed_cases);
|
|
39
|
+
|
|
40
|
+
DELETE FROM eval_test_cases
|
|
41
|
+
WHERE source = 'yaml-seed'
|
|
42
|
+
AND category IN (
|
|
43
|
+
'email-calendar',
|
|
44
|
+
'knowledge-base',
|
|
45
|
+
'mcp-gateway',
|
|
46
|
+
'red-team',
|
|
47
|
+
'sub-agents',
|
|
48
|
+
'brain-onepager-citations',
|
|
49
|
+
'brain-triage-routing',
|
|
50
|
+
'brain-trust-gradient-promotion',
|
|
51
|
+
'brain-write-back-capture',
|
|
52
|
+
'thread-management',
|
|
53
|
+
'tool-safety',
|
|
54
|
+
'workspace-memory',
|
|
55
|
+
'workspace-routing'
|
|
56
|
+
);
|
|
57
|
+
|
|
58
|
+
CREATE OR REPLACE VIEW public.view_eval_seed_maniflow_cleanup_0089 AS
|
|
59
|
+
SELECT 1 AS applied
|
|
60
|
+
WHERE NOT EXISTS (
|
|
61
|
+
SELECT 1
|
|
62
|
+
FROM eval_test_cases
|
|
63
|
+
WHERE source = 'yaml-seed'
|
|
64
|
+
AND category IN (
|
|
65
|
+
'email-calendar',
|
|
66
|
+
'knowledge-base',
|
|
67
|
+
'mcp-gateway',
|
|
68
|
+
'red-team',
|
|
69
|
+
'sub-agents',
|
|
70
|
+
'brain-onepager-citations',
|
|
71
|
+
'brain-triage-routing',
|
|
72
|
+
'brain-trust-gradient-promotion',
|
|
73
|
+
'brain-write-back-capture',
|
|
74
|
+
'thread-management',
|
|
75
|
+
'tool-safety',
|
|
76
|
+
'workspace-memory',
|
|
77
|
+
'workspace-routing'
|
|
78
|
+
)
|
|
79
|
+
);
|
|
80
|
+
|
|
81
|
+
COMMIT;
|
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
-- 0089_wiki_schema_extraction.sql
|
|
2
|
+
--
|
|
3
|
+
-- Phase A of the wiki + brain schema extraction (PR 1 of 3-PR arc).
|
|
4
|
+
-- Moves 9 wiki tables from public.* into the new `wiki.*` Postgres schema,
|
|
5
|
+
-- drops the redundant `wiki_` prefix from internal table names, renames
|
|
6
|
+
-- indexes/constraints to match, and creates compat views in public.* so old
|
|
7
|
+
-- bundled Lambda code keeps reading during the deploy bridge window.
|
|
8
|
+
--
|
|
9
|
+
-- Tables moved:
|
|
10
|
+
-- public.wiki_pages → wiki.pages
|
|
11
|
+
-- public.wiki_page_sections → wiki.page_sections
|
|
12
|
+
-- public.wiki_page_links → wiki.page_links
|
|
13
|
+
-- public.wiki_page_aliases → wiki.page_aliases
|
|
14
|
+
-- public.wiki_unresolved_mentions → wiki.unresolved_mentions
|
|
15
|
+
-- public.wiki_section_sources → wiki.section_sources
|
|
16
|
+
-- public.wiki_compile_jobs → wiki.compile_jobs
|
|
17
|
+
-- public.wiki_compile_cursors → wiki.compile_cursors
|
|
18
|
+
-- public.wiki_places → wiki.places
|
|
19
|
+
--
|
|
20
|
+
-- FK constraints follow their parent tables automatically (Postgres
|
|
21
|
+
-- preserves them across SET SCHEMA). Cross-schema FKs to public.tenants
|
|
22
|
+
-- and public.users continue to work — see Key Technical Decisions in the
|
|
23
|
+
-- plan for the rationale (compliance precedent stripped FKs for RTBF
|
|
24
|
+
-- isolation; wiki preserves them to honor 'keep functionality'). FK
|
|
25
|
+
-- constraint names retain their original 'wiki_<table>_*' prefix — a
|
|
26
|
+
-- cosmetic cleanup can come later. No FK-rename markers below.
|
|
27
|
+
--
|
|
28
|
+
-- Compat views: each table also gets a view in public.* aliasing the new
|
|
29
|
+
-- location. Old bundled Lambdas (graphql-http, wiki-compile,
|
|
30
|
+
-- wiki-bootstrap-import, memory-retain) continue reading via
|
|
31
|
+
-- `public.wiki_pages` during the deploy bridge window; new Lambdas read
|
|
32
|
+
-- `wiki.pages` directly. PR 3 (cleanup) drops the views once deploys
|
|
33
|
+
-- stabilize. Postgres simple views are auto-updatable, so any write paths
|
|
34
|
+
-- via the old names also work transparently.
|
|
35
|
+
--
|
|
36
|
+
-- Plan reference: docs/plans/2026-05-16-001-refactor-wiki-brain-schema-extraction-plan.md
|
|
37
|
+
-- Origin brainstorm: docs/brainstorms/2026-05-16-wiki-brain-schema-extraction-requirements.md
|
|
38
|
+
-- Pattern doc: docs/solutions/database-issues/feature-schema-extraction-pattern.md
|
|
39
|
+
--
|
|
40
|
+
-- Apply manually:
|
|
41
|
+
-- psql "$DATABASE_URL" -f packages/database-pg/drizzle/0089_wiki_schema_extraction.sql
|
|
42
|
+
-- Then verify:
|
|
43
|
+
-- pnpm db:migrate-manual
|
|
44
|
+
-- psql -c "\dt wiki.*" -- 9 tables expected
|
|
45
|
+
-- psql -c "\dv public.wiki_*" -- 9 compat views expected
|
|
46
|
+
-- psql -c "\dt public.wiki_*" -- 0 tables expected
|
|
47
|
+
--
|
|
48
|
+
-- Inverse runbook (rollback): drop the views, then SET SCHEMA back, then
|
|
49
|
+
-- RENAME back. Indexes and constraints follow their parent table's schema
|
|
50
|
+
-- automatically. After SET SCHEMA moves the table to public, its indexes
|
|
51
|
+
-- live in public — so ALTER INDEX statements must qualify with `public.`,
|
|
52
|
+
-- not `wiki.`.
|
|
53
|
+
-- DROP VIEW IF EXISTS public.wiki_pages, public.wiki_page_sections, ...;
|
|
54
|
+
-- ALTER TABLE wiki.pages SET SCHEMA public; -- index moves to public too
|
|
55
|
+
-- ALTER TABLE public.pages RENAME TO wiki_pages;
|
|
56
|
+
-- ALTER INDEX public.idx_pages_owner RENAME TO idx_wiki_pages_owner; -- × 28 indexes
|
|
57
|
+
-- ... (× 9 tables, parent-last so FKs into pages are still valid through the move)
|
|
58
|
+
-- DROP SCHEMA wiki; -- last step; fails if any objects remain in wiki schema
|
|
59
|
+
--
|
|
60
|
+
-- Markers (consumed by scripts/db-migrate-manual.sh):
|
|
61
|
+
--
|
|
62
|
+
-- creates: wiki.pages
|
|
63
|
+
-- creates: wiki.page_sections
|
|
64
|
+
-- creates: wiki.page_links
|
|
65
|
+
-- creates: wiki.page_aliases
|
|
66
|
+
-- creates: wiki.unresolved_mentions
|
|
67
|
+
-- creates: wiki.section_sources
|
|
68
|
+
-- creates: wiki.compile_jobs
|
|
69
|
+
-- creates: wiki.compile_cursors
|
|
70
|
+
-- creates: wiki.places
|
|
71
|
+
-- creates: wiki.uq_pages_tenant_owner_type_slug
|
|
72
|
+
-- creates: wiki.idx_pages_tenant_owner_type_status
|
|
73
|
+
-- creates: wiki.idx_pages_owner
|
|
74
|
+
-- creates: wiki.idx_pages_last_compiled
|
|
75
|
+
-- creates: wiki.idx_pages_entity_subtype
|
|
76
|
+
-- creates: wiki.idx_pages_search_tsv
|
|
77
|
+
-- creates: wiki.idx_pages_parent
|
|
78
|
+
-- creates: wiki.idx_pages_place_id
|
|
79
|
+
-- creates: wiki.idx_pages_title_trgm
|
|
80
|
+
-- creates: wiki.uq_page_sections_page_slug
|
|
81
|
+
-- creates: wiki.idx_page_sections_page_position
|
|
82
|
+
-- creates: wiki.uq_page_links_from_to_kind
|
|
83
|
+
-- creates: wiki.idx_page_links_to
|
|
84
|
+
-- creates: wiki.idx_page_links_kind
|
|
85
|
+
-- creates: wiki.uq_page_aliases_page_alias
|
|
86
|
+
-- creates: wiki.idx_page_aliases_alias
|
|
87
|
+
-- creates: wiki.idx_page_aliases_alias_trgm
|
|
88
|
+
-- creates: wiki.uq_unresolved_mentions_scope_alias_status
|
|
89
|
+
-- creates: wiki.idx_unresolved_mentions_tenant_owner_status
|
|
90
|
+
-- creates: wiki.idx_unresolved_mentions_status_last_seen
|
|
91
|
+
-- creates: wiki.uq_section_sources_section_kind_ref
|
|
92
|
+
-- creates: wiki.idx_section_sources_kind_ref
|
|
93
|
+
-- creates: wiki.idx_compile_jobs_scope_status_created
|
|
94
|
+
-- creates: wiki.idx_compile_jobs_status_created
|
|
95
|
+
-- creates: wiki.idx_places_tenant_owner
|
|
96
|
+
-- creates: wiki.idx_places_parent
|
|
97
|
+
-- creates: wiki.uq_places_scope_google_place_id
|
|
98
|
+
-- creates-constraint: wiki.compile_cursors.compile_cursors_pkey
|
|
99
|
+
-- creates-constraint: wiki.unresolved_mentions.unresolved_mentions_entity_subtype_allowed
|
|
100
|
+
-- creates: wiki.compile_jobs_dedupe_key_unique
|
|
101
|
+
-- creates: public.wiki_pages
|
|
102
|
+
-- creates: public.wiki_page_sections
|
|
103
|
+
-- creates: public.wiki_page_links
|
|
104
|
+
-- creates: public.wiki_page_aliases
|
|
105
|
+
-- creates: public.wiki_unresolved_mentions
|
|
106
|
+
-- creates: public.wiki_section_sources
|
|
107
|
+
-- creates: public.wiki_compile_jobs
|
|
108
|
+
-- creates: public.wiki_compile_cursors
|
|
109
|
+
-- creates: public.wiki_places
|
|
110
|
+
|
|
111
|
+
\set ON_ERROR_STOP on
|
|
112
|
+
|
|
113
|
+
BEGIN;
|
|
114
|
+
|
|
115
|
+
-- Set timeouts BEFORE acquiring the advisory lock so the lock acquisition
|
|
116
|
+
-- itself is bounded. Without this ordering, a concurrent transaction holding
|
|
117
|
+
-- the same advisory lock would cause this migration to block indefinitely.
|
|
118
|
+
SET LOCAL lock_timeout = '30s';
|
|
119
|
+
SET LOCAL statement_timeout = '300s';
|
|
120
|
+
|
|
121
|
+
-- Serialize concurrent application attempts (two operators racing, automation
|
|
122
|
+
-- + operator overlap). Without the advisory lock, two transactions can both
|
|
123
|
+
-- pass the pre-flight invariants before either commits.
|
|
124
|
+
SELECT pg_advisory_xact_lock(hashtext('wiki_schema_extraction'));
|
|
125
|
+
|
|
126
|
+
-- Refuse to apply against an unexpected DB. Hand-rolled migrations are
|
|
127
|
+
-- applied by an operator and a stale DATABASE_URL pointing at a non-dev
|
|
128
|
+
-- target would create the schema in the wrong place.
|
|
129
|
+
DO $$
|
|
130
|
+
BEGIN
|
|
131
|
+
IF current_database() != 'thinkwork' THEN
|
|
132
|
+
RAISE EXCEPTION 'wrong database: %, expected thinkwork', current_database();
|
|
133
|
+
END IF;
|
|
134
|
+
END $$;
|
|
135
|
+
|
|
136
|
+
-- Pre-flight invariants: refuse to re-apply over a partially-completed
|
|
137
|
+
-- previous run. For each table, assert old name exists AND new name does
|
|
138
|
+
-- not. Symmetric checks across all 9 tables convert any partial-state
|
|
139
|
+
-- scenario into a clear pre-flight error rather than an opaque
|
|
140
|
+
-- mid-migration DDL crash.
|
|
141
|
+
DO $$
|
|
142
|
+
BEGIN
|
|
143
|
+
IF to_regclass('public.wiki_pages') IS NULL THEN
|
|
144
|
+
RAISE EXCEPTION 'pre-flight: public.wiki_pages does not exist';
|
|
145
|
+
END IF;
|
|
146
|
+
IF to_regclass('wiki.pages') IS NOT NULL THEN
|
|
147
|
+
RAISE EXCEPTION 'pre-flight: wiki.pages already exists — refusing to re-apply';
|
|
148
|
+
END IF;
|
|
149
|
+
IF to_regclass('public.wiki_page_sections') IS NULL THEN
|
|
150
|
+
RAISE EXCEPTION 'pre-flight: public.wiki_page_sections does not exist';
|
|
151
|
+
END IF;
|
|
152
|
+
IF to_regclass('wiki.page_sections') IS NOT NULL THEN
|
|
153
|
+
RAISE EXCEPTION 'pre-flight: wiki.page_sections already exists — refusing to re-apply';
|
|
154
|
+
END IF;
|
|
155
|
+
IF to_regclass('public.wiki_page_links') IS NULL THEN
|
|
156
|
+
RAISE EXCEPTION 'pre-flight: public.wiki_page_links does not exist';
|
|
157
|
+
END IF;
|
|
158
|
+
IF to_regclass('wiki.page_links') IS NOT NULL THEN
|
|
159
|
+
RAISE EXCEPTION 'pre-flight: wiki.page_links already exists — refusing to re-apply';
|
|
160
|
+
END IF;
|
|
161
|
+
IF to_regclass('public.wiki_page_aliases') IS NULL THEN
|
|
162
|
+
RAISE EXCEPTION 'pre-flight: public.wiki_page_aliases does not exist';
|
|
163
|
+
END IF;
|
|
164
|
+
IF to_regclass('wiki.page_aliases') IS NOT NULL THEN
|
|
165
|
+
RAISE EXCEPTION 'pre-flight: wiki.page_aliases already exists — refusing to re-apply';
|
|
166
|
+
END IF;
|
|
167
|
+
IF to_regclass('public.wiki_unresolved_mentions') IS NULL THEN
|
|
168
|
+
RAISE EXCEPTION 'pre-flight: public.wiki_unresolved_mentions does not exist';
|
|
169
|
+
END IF;
|
|
170
|
+
IF to_regclass('wiki.unresolved_mentions') IS NOT NULL THEN
|
|
171
|
+
RAISE EXCEPTION 'pre-flight: wiki.unresolved_mentions already exists — refusing to re-apply';
|
|
172
|
+
END IF;
|
|
173
|
+
IF to_regclass('public.wiki_section_sources') IS NULL THEN
|
|
174
|
+
RAISE EXCEPTION 'pre-flight: public.wiki_section_sources does not exist';
|
|
175
|
+
END IF;
|
|
176
|
+
IF to_regclass('wiki.section_sources') IS NOT NULL THEN
|
|
177
|
+
RAISE EXCEPTION 'pre-flight: wiki.section_sources already exists — refusing to re-apply';
|
|
178
|
+
END IF;
|
|
179
|
+
IF to_regclass('public.wiki_compile_jobs') IS NULL THEN
|
|
180
|
+
RAISE EXCEPTION 'pre-flight: public.wiki_compile_jobs does not exist';
|
|
181
|
+
END IF;
|
|
182
|
+
IF to_regclass('wiki.compile_jobs') IS NOT NULL THEN
|
|
183
|
+
RAISE EXCEPTION 'pre-flight: wiki.compile_jobs already exists — refusing to re-apply';
|
|
184
|
+
END IF;
|
|
185
|
+
IF to_regclass('public.wiki_compile_cursors') IS NULL THEN
|
|
186
|
+
RAISE EXCEPTION 'pre-flight: public.wiki_compile_cursors does not exist';
|
|
187
|
+
END IF;
|
|
188
|
+
IF to_regclass('wiki.compile_cursors') IS NOT NULL THEN
|
|
189
|
+
RAISE EXCEPTION 'pre-flight: wiki.compile_cursors already exists — refusing to re-apply';
|
|
190
|
+
END IF;
|
|
191
|
+
IF to_regclass('public.wiki_places') IS NULL THEN
|
|
192
|
+
RAISE EXCEPTION 'pre-flight: public.wiki_places does not exist';
|
|
193
|
+
END IF;
|
|
194
|
+
IF to_regclass('wiki.places') IS NOT NULL THEN
|
|
195
|
+
RAISE EXCEPTION 'pre-flight: wiki.places already exists — refusing to re-apply';
|
|
196
|
+
END IF;
|
|
197
|
+
END $$;
|
|
198
|
+
|
|
199
|
+
-- Schema creation.
|
|
200
|
+
CREATE SCHEMA IF NOT EXISTS wiki;
|
|
201
|
+
COMMENT ON SCHEMA wiki IS 'Compounding-memory wiki tables. Compiled pages, sections, links, aliases, places, and the compile-job ledger. Extracted from public.* on 2026-05-16.';
|
|
202
|
+
|
|
203
|
+
-- ── Move and rename tables ─────────────────────────────────────────────
|
|
204
|
+
-- FK-leaf-first ordering. Postgres preserves FKs across SET SCHEMA
|
|
205
|
+
-- automatically; ordering matters only for operator mental model.
|
|
206
|
+
|
|
207
|
+
ALTER TABLE public.wiki_compile_cursors SET SCHEMA wiki;
|
|
208
|
+
ALTER TABLE wiki.wiki_compile_cursors RENAME TO compile_cursors;
|
|
209
|
+
|
|
210
|
+
ALTER TABLE public.wiki_compile_jobs SET SCHEMA wiki;
|
|
211
|
+
ALTER TABLE wiki.wiki_compile_jobs RENAME TO compile_jobs;
|
|
212
|
+
|
|
213
|
+
ALTER TABLE public.wiki_section_sources SET SCHEMA wiki;
|
|
214
|
+
ALTER TABLE wiki.wiki_section_sources RENAME TO section_sources;
|
|
215
|
+
|
|
216
|
+
ALTER TABLE public.wiki_page_links SET SCHEMA wiki;
|
|
217
|
+
ALTER TABLE wiki.wiki_page_links RENAME TO page_links;
|
|
218
|
+
|
|
219
|
+
ALTER TABLE public.wiki_page_aliases SET SCHEMA wiki;
|
|
220
|
+
ALTER TABLE wiki.wiki_page_aliases RENAME TO page_aliases;
|
|
221
|
+
|
|
222
|
+
ALTER TABLE public.wiki_page_sections SET SCHEMA wiki;
|
|
223
|
+
ALTER TABLE wiki.wiki_page_sections RENAME TO page_sections;
|
|
224
|
+
|
|
225
|
+
ALTER TABLE public.wiki_unresolved_mentions SET SCHEMA wiki;
|
|
226
|
+
ALTER TABLE wiki.wiki_unresolved_mentions RENAME TO unresolved_mentions;
|
|
227
|
+
|
|
228
|
+
ALTER TABLE public.wiki_places SET SCHEMA wiki;
|
|
229
|
+
ALTER TABLE wiki.wiki_places RENAME TO places;
|
|
230
|
+
|
|
231
|
+
-- wiki_pages depends on wiki_places (FK place_id) and is depended on by
|
|
232
|
+
-- everything else; move it after its sibling-FK target (places) and before
|
|
233
|
+
-- its dependents are no longer needed.
|
|
234
|
+
ALTER TABLE public.wiki_pages SET SCHEMA wiki;
|
|
235
|
+
ALTER TABLE wiki.wiki_pages RENAME TO pages;
|
|
236
|
+
|
|
237
|
+
-- ── Rename indexes to drop wiki_ prefix ────────────────────────────────
|
|
238
|
+
-- Indexes move with their parent table via SET SCHEMA; only the names need
|
|
239
|
+
-- updating to match the new Drizzle source.
|
|
240
|
+
|
|
241
|
+
ALTER INDEX wiki.uq_wiki_pages_tenant_owner_type_slug RENAME TO uq_pages_tenant_owner_type_slug;
|
|
242
|
+
ALTER INDEX wiki.idx_wiki_pages_tenant_owner_type_status RENAME TO idx_pages_tenant_owner_type_status;
|
|
243
|
+
ALTER INDEX wiki.idx_wiki_pages_owner RENAME TO idx_pages_owner;
|
|
244
|
+
ALTER INDEX wiki.idx_wiki_pages_last_compiled RENAME TO idx_pages_last_compiled;
|
|
245
|
+
ALTER INDEX wiki.idx_wiki_pages_entity_subtype RENAME TO idx_pages_entity_subtype;
|
|
246
|
+
ALTER INDEX wiki.idx_wiki_pages_search_tsv RENAME TO idx_pages_search_tsv;
|
|
247
|
+
ALTER INDEX wiki.idx_wiki_pages_parent RENAME TO idx_pages_parent;
|
|
248
|
+
ALTER INDEX wiki.idx_wiki_pages_place_id RENAME TO idx_pages_place_id;
|
|
249
|
+
ALTER INDEX wiki.idx_wiki_pages_title_trgm RENAME TO idx_pages_title_trgm;
|
|
250
|
+
|
|
251
|
+
ALTER INDEX wiki.uq_wiki_page_sections_page_slug RENAME TO uq_page_sections_page_slug;
|
|
252
|
+
ALTER INDEX wiki.idx_wiki_page_sections_page_position RENAME TO idx_page_sections_page_position;
|
|
253
|
+
|
|
254
|
+
ALTER INDEX wiki.uq_wiki_page_links_from_to_kind RENAME TO uq_page_links_from_to_kind;
|
|
255
|
+
ALTER INDEX wiki.idx_wiki_page_links_to RENAME TO idx_page_links_to;
|
|
256
|
+
ALTER INDEX wiki.idx_wiki_page_links_kind RENAME TO idx_page_links_kind;
|
|
257
|
+
|
|
258
|
+
ALTER INDEX wiki.uq_wiki_page_aliases_page_alias RENAME TO uq_page_aliases_page_alias;
|
|
259
|
+
ALTER INDEX wiki.idx_wiki_page_aliases_alias RENAME TO idx_page_aliases_alias;
|
|
260
|
+
ALTER INDEX wiki.idx_wiki_page_aliases_alias_trgm RENAME TO idx_page_aliases_alias_trgm;
|
|
261
|
+
|
|
262
|
+
ALTER INDEX wiki.uq_wiki_unresolved_mentions_scope_alias_status RENAME TO uq_unresolved_mentions_scope_alias_status;
|
|
263
|
+
ALTER INDEX wiki.idx_wiki_unresolved_mentions_tenant_owner_status RENAME TO idx_unresolved_mentions_tenant_owner_status;
|
|
264
|
+
ALTER INDEX wiki.idx_wiki_unresolved_mentions_status_last_seen RENAME TO idx_unresolved_mentions_status_last_seen;
|
|
265
|
+
|
|
266
|
+
ALTER INDEX wiki.uq_wiki_section_sources_section_kind_ref RENAME TO uq_section_sources_section_kind_ref;
|
|
267
|
+
ALTER INDEX wiki.idx_wiki_section_sources_kind_ref RENAME TO idx_section_sources_kind_ref;
|
|
268
|
+
|
|
269
|
+
ALTER INDEX wiki.idx_wiki_compile_jobs_scope_status_created RENAME TO idx_compile_jobs_scope_status_created;
|
|
270
|
+
ALTER INDEX wiki.idx_wiki_compile_jobs_status_created RENAME TO idx_compile_jobs_status_created;
|
|
271
|
+
|
|
272
|
+
ALTER INDEX wiki.idx_wiki_places_tenant_owner RENAME TO idx_places_tenant_owner;
|
|
273
|
+
ALTER INDEX wiki.idx_wiki_places_parent RENAME TO idx_places_parent;
|
|
274
|
+
ALTER INDEX wiki.uq_wiki_places_scope_google_place_id RENAME TO uq_places_scope_google_place_id;
|
|
275
|
+
|
|
276
|
+
-- ── Rename named constraints to drop wiki_ prefix ──────────────────────
|
|
277
|
+
|
|
278
|
+
ALTER TABLE wiki.compile_cursors RENAME CONSTRAINT wiki_compile_cursors_pkey TO compile_cursors_pkey;
|
|
279
|
+
ALTER TABLE wiki.unresolved_mentions RENAME CONSTRAINT wiki_unresolved_mentions_entity_subtype_allowed TO unresolved_mentions_entity_subtype_allowed;
|
|
280
|
+
|
|
281
|
+
-- The auto-generated UNIQUE constraint on compile_jobs.dedupe_key. Drizzle
|
|
282
|
+
-- names this `<table>_<column>_unique` — the SET SCHEMA preserved its index
|
|
283
|
+
-- (named after the constraint), but the index name still has the wiki_
|
|
284
|
+
-- prefix. Rename to match the new naming.
|
|
285
|
+
ALTER INDEX wiki.wiki_compile_jobs_dedupe_key_unique RENAME TO compile_jobs_dedupe_key_unique;
|
|
286
|
+
|
|
287
|
+
-- ── Compat views in public.* ────────────────────────────────────────────
|
|
288
|
+
-- Old bundled Lambda code references public.wiki_*. The views resolve to
|
|
289
|
+
-- the new schema-qualified tables, keeping the deploy bridge window safe.
|
|
290
|
+
-- Postgres simple views are auto-updatable (writes pass through to the
|
|
291
|
+
-- underlying table), so any write paths via the old name continue to work
|
|
292
|
+
-- as well. PR 3 drops these.
|
|
293
|
+
|
|
294
|
+
-- wiki.pages has a `search_tsv` GENERATED ALWAYS column. A SELECT * compat
|
|
295
|
+
-- view exposes that column, which causes any old INSERT that explicitly
|
|
296
|
+
-- names it in the column list to fail with `column search_tsv is a
|
|
297
|
+
-- generated column`. Enumerating columns and omitting search_tsv makes the
|
|
298
|
+
-- view auto-update-safe: Postgres regenerates search_tsv from the
|
|
299
|
+
-- GENERATED ALWAYS expression on write through the view. Other 8 tables
|
|
300
|
+
-- have no generated columns and SELECT * is fine.
|
|
301
|
+
CREATE VIEW public.wiki_pages AS
|
|
302
|
+
SELECT id, tenant_id, owner_id, type, entity_subtype, slug, title,
|
|
303
|
+
summary, body_md, status, parent_page_id, place_id,
|
|
304
|
+
hubness_score, tags, last_compiled_at, created_at, updated_at
|
|
305
|
+
FROM wiki.pages;
|
|
306
|
+
CREATE VIEW public.wiki_page_sections AS SELECT * FROM wiki.page_sections;
|
|
307
|
+
CREATE VIEW public.wiki_page_links AS SELECT * FROM wiki.page_links;
|
|
308
|
+
CREATE VIEW public.wiki_page_aliases AS SELECT * FROM wiki.page_aliases;
|
|
309
|
+
CREATE VIEW public.wiki_unresolved_mentions AS SELECT * FROM wiki.unresolved_mentions;
|
|
310
|
+
CREATE VIEW public.wiki_section_sources AS SELECT * FROM wiki.section_sources;
|
|
311
|
+
CREATE VIEW public.wiki_compile_jobs AS SELECT * FROM wiki.compile_jobs;
|
|
312
|
+
CREATE VIEW public.wiki_compile_cursors AS SELECT * FROM wiki.compile_cursors;
|
|
313
|
+
CREATE VIEW public.wiki_places AS SELECT * FROM wiki.places;
|
|
314
|
+
|
|
315
|
+
COMMIT;
|