thinkwork-cli 0.12.11 → 0.12.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -38
- package/dist/{api-client-ASJWIG3Z.js → api-client-4VT3FWOH.js} +1 -1
- package/dist/{chunk-JEHV35EU.js → chunk-H7AB42ES.js} +340 -30
- package/dist/cli.js +22157 -9229
- package/dist/commands/enterprise/templates/deploy-repo/.github/workflows/deploy.yml +17 -6
- package/dist/commands/enterprise/templates/deploy-repo/docs/runbook.md +81 -9
- package/dist/commands/enterprise/templates/deploy-repo/scripts/apply-release.mjs +183 -21
- package/dist/commands/enterprise/templates/deploy-repo/scripts/smoke.mjs +1 -2
- package/dist/commands/enterprise/templates/deploy-repo/terraform/main.tf +286 -0
- package/dist/drizzle/0000_petite_marvel_apes.sql +1188 -0
- package/dist/drizzle/0001_milky_surge.sql +103 -0
- package/dist/drizzle/0002_aberrant_mattie_franklin.sql +41 -0
- package/dist/drizzle/0003_exotic_ogun.sql +3 -0
- package/dist/drizzle/0004_glamorous_magneto.sql +2 -0
- package/dist/drizzle/0005_ancient_nocturne.sql +2 -0
- package/dist/drizzle/0006_new_colonel_america.sql +2 -0
- package/dist/drizzle/0007_unique_external_task_id.sql +31 -0
- package/dist/drizzle/0008_external_task_id_column.sql +43 -0
- package/dist/drizzle/0009_evaluations.sql +64 -0
- package/dist/drizzle/0010_eval_agent_template.sql +2 -0
- package/dist/drizzle/0011_eval_run_template.sql +2 -0
- package/dist/drizzle/0012_eval_seed_unique.sql +16 -0
- package/dist/drizzle/0013_motionless_white_queen.sql +140 -0
- package/dist/drizzle/0014_wiki_aggregation.sql +11 -0
- package/dist/drizzle/0015_pg_trgm_alias_title_indexes.sql +9 -0
- package/dist/drizzle/0016_wiki_schema_drops.sql +24 -0
- package/dist/drizzle/0017_wiki_places.sql +46 -0
- package/dist/drizzle/0018_agent_workspace_overlay.sql +26 -0
- package/dist/drizzle/0018_cool_firebird.sql +24 -0
- package/dist/drizzle/0018_skill_runs.sql +84 -0
- package/dist/drizzle/0019_condemned_dragon_man.sql +95 -0
- package/dist/drizzle/0019_webhook_skill_runs.sql +58 -0
- package/dist/drizzle/0020_crazy_the_anarchist.sql +9 -0
- package/dist/drizzle/0020_mutation_idempotency.sql +64 -0
- package/dist/drizzle/0021_crm_work_links.sql +76 -0
- package/dist/drizzle/0021_skill_runs_completion_hmac.sql +33 -0
- package/dist/drizzle/0022_add_billing_tables.sql +70 -0
- package/dist/drizzle/0022_seed_thinkwork_admin_permissions.sql +160 -0
- package/dist/drizzle/0022_stripe_billing_indexes.sql +48 -0
- package/dist/drizzle/0023_tenants_deactivation.sql +27 -0
- package/dist/drizzle/0024_tenant_mcp_admin_keys.sql +63 -0
- package/dist/drizzle/0025_v1_agent_architecture.sql +182 -0
- package/dist/drizzle/0026_thread_turns_add_kind.sql +28 -0
- package/dist/drizzle/0027_capability_catalog_and_manifests.sql +219 -0
- package/dist/drizzle/0028_aws_s3_extension.sql +26 -0
- package/dist/drizzle/0029_collapse_execution_types.sql +42 -0
- package/dist/drizzle/0030_retire_composition_primitives.sql +48 -0
- package/dist/drizzle/0031_thread_cleanup_drops.sql +131 -0
- package/dist/drizzle/0032_add_browser_automation_template_config.sql +24 -0
- package/dist/drizzle/0033_agent_operation_leases.sql +32 -0
- package/dist/drizzle/0034_agent_workspace_events.sql +116 -0
- package/dist/drizzle/0035_workspace_review_decisions.sql +19 -0
- package/dist/drizzle/0036_user_scoped_memory_wiki.sql +152 -0
- package/dist/drizzle/0037_user_profile_operating_model.sql +34 -0
- package/dist/drizzle/0042_agent_runtime_selector.sql +41 -0
- package/dist/drizzle/0043_wiki_search_tsv_tokenization.sql +48 -0
- package/dist/drizzle/0044_add_web_search_template_config.sql +7 -0
- package/dist/drizzle/0045_add_send_email_template_config.sql +7 -0
- package/dist/drizzle/0046_tenant_mcp_context_tools.sql +26 -0
- package/dist/drizzle/0047_add_context_engine_template_config.sql +7 -0
- package/dist/drizzle/0048_tenant_context_provider_settings.sql +22 -0
- package/dist/drizzle/0050_brain_v0_entity_subtype.sql +29 -0
- package/dist/drizzle/0051_brain_v0_tenant_entity_pages.sql +170 -0
- package/dist/drizzle/0052_brain_v0_external_refs.sql +41 -0
- package/dist/drizzle/0053_brain_v0_unresolved_mentions_subtype.sql +48 -0
- package/dist/drizzle/0054_wiki_compile_jobs_input.sql +28 -0
- package/dist/drizzle/0055_routines_stepfunctions_substrate.sql +202 -0
- package/dist/drizzle/0056_routine_step_events_dedup_idx.sql +25 -0
- package/dist/drizzle/0057_archive_legacy_python_routines.sql +36 -0
- package/dist/drizzle/0058_routines_visibility_and_owning_agent.sql +61 -0
- package/dist/drizzle/0061_routine_execution_asl_version_id.sql +29 -0
- package/dist/drizzle/0062_migrate_pi_to_flue.sql +110 -0
- package/dist/drizzle/0063_threads_session_data.sql +23 -0
- package/dist/drizzle/0064_tenant_credentials.sql +65 -0
- package/dist/drizzle/0067_thinkwork_computers_phase_one.sql +174 -0
- package/dist/drizzle/0068_drop_system_workflows_and_activation.sql +115 -0
- package/dist/drizzle/0069_compliance_schema.sql +364 -0
- package/dist/drizzle/0070_compliance_aurora_roles.sql +171 -0
- package/dist/drizzle/0072_threads_computer_ownership.sql +24 -0
- package/dist/drizzle/0073_compliance_tenant_anchor_state.sql +105 -0
- package/dist/drizzle/0074_compliance_event_hash_index.sql +49 -0
- package/dist/drizzle/0075_scheduled_jobs_computer_ownership.sql +27 -0
- package/dist/drizzle/0076_scheduled_jobs_marco_backfill.sql +69 -0
- package/dist/drizzle/0077_computers_primary_agent_id.sql +38 -0
- package/dist/drizzle/0078_tenant_customize_catalog.sql +46 -0
- package/dist/drizzle/0079_seed_tenant_customize_catalog.sql +53 -0
- package/dist/drizzle/0081_routines_catalog_slug.sql +42 -0
- package/dist/drizzle/0082_messages_parts_jsonb.sql +52 -0
- package/dist/drizzle/0083_computer_runbooks.sql +103 -0
- package/dist/drizzle/0084_artifacts_favorited_at.sql +32 -0
- package/dist/drizzle/0085_seed_thinkwork_computer_default_template.sql +46 -0
- package/dist/drizzle/0086_update_default_template_models.sql +19 -0
- package/dist/drizzle/0087_retire_oss_connectors.sql +77 -0
- package/dist/drizzle/0088_compliance_event_types_finance_pilot.sql +37 -0
- package/dist/drizzle/0089_remove_maniflow_eval_seeds.sql +81 -0
- package/dist/drizzle/0089_wiki_schema_extraction.sql +315 -0
- package/dist/drizzle/0090_brain_schema_extraction.sql +274 -0
- package/dist/drizzle/0091_drop_wiki_brain_compat_views.sql +118 -0
- package/dist/drizzle/0092_finish_oss_connector_retirement.sql +97 -0
- package/dist/drizzle/0093_eval_runs_scheduled_job_id.sql +23 -0
- package/dist/drizzle/0094_slack_workspace_app.sql +140 -0
- package/dist/drizzle/0095_eval_runs_computer_id.sql +22 -0
- package/dist/drizzle/0096_true_redteam_eval_seed_cleanup.sql +67 -0
- package/dist/drizzle/0097_shared_computers.sql +191 -0
- package/dist/drizzle/0098_business_ontology.sql +587 -0
- package/dist/drizzle/0099_thread_idle_learning.sql +145 -0
- package/dist/drizzle/0100_ontology_gated_brain_dynamic_subtypes.sql +7 -0
- package/dist/drizzle/0101_ontology_gated_unresolved_mentions_dynamic_subtypes.sql +7 -0
- package/dist/drizzle/0102_wiki_brain_owner_repair.sql +87 -0
- package/dist/drizzle/0103_brain_section_source_trigger_repair.sql +75 -0
- package/dist/drizzle/0104_expand_seed_ontology_for_user_memory.sql +166 -0
- package/dist/drizzle/0105_spaces_domain.sql +349 -0
- package/dist/drizzle/0106_expand_seed_ontology_for_triples.sql +173 -0
- package/dist/drizzle/0106_space_threads_participants.sql +197 -0
- package/dist/drizzle/0107_linked_task_mirror.sql +245 -0
- package/dist/drizzle/0108_message_mentions.sql +95 -0
- package/dist/drizzle/0109_space_owned_threads.sql +217 -0
- package/dist/drizzle/0110_thread_participant_read_state.sql +21 -0
- package/dist/drizzle/0111_agents_tenant_name_unique.sql +38 -0
- package/dist/drizzle/0112_recast_spaces_as_contextual_workrooms.sql +138 -0
- package/dist/drizzle/0113_agents_own_runtime_fields.sql +48 -0
- package/dist/drizzle/0114_migrate_templates_to_agents_and_spaces.sql +361 -0
- package/dist/drizzle/0115_remove_computer_eval_template_dependencies.sql +69 -0
- package/dist/drizzle/0116_backfill_thread_participants_access.sql +126 -0
- package/dist/drizzle/0117_space_access_mode.sql +40 -0
- package/dist/drizzle/0118_normalize_tenant_member_principal_type.sql +41 -0
- package/dist/drizzle/0119_space_knowledge_bases.sql +126 -0
- package/dist/drizzle/0120_space_automations.sql +58 -0
- package/dist/drizzle/0121_drop_computer_runbooks.sql +26 -0
- package/dist/drizzle/0122_space_email_triggers.sql +24 -0
- package/dist/drizzle/0123_single_platform_agent_and_overrides.sql +58 -0
- package/dist/drizzle/0124_thread_turns_finalized_at.sql +17 -0
- package/dist/drizzle/0125_drop_space_agent_assignments.sql +42 -0
- package/dist/drizzle/0126_migrate_flue_to_pi.sql +42 -0
- package/dist/drizzle/0127_runtime_type_observability.sql +28 -0
- package/dist/drizzle/0128_drop_eval_test_cases_agent_id.sql +37 -0
- package/dist/drizzle/0129_drop_code_factory_tables.sql +43 -0
- package/dist/drizzle/0129_eval_results_system_prompt.sql +30 -0
- package/dist/drizzle/0130_drop_teams_and_team_id_columns.sql +54 -0
- package/dist/drizzle/0131_drop_skill_catalog_and_tenant_skills.sql +33 -0
- package/dist/drizzle/0132_drop_computer_tables.sql +31 -0
- package/dist/drizzle/0133_drop_seed_view_tombstones.sql +79 -0
- package/dist/drizzle/0133_thread_turns_system_prompt.sql +22 -0
- package/dist/drizzle/0134_drop_dead_agent_runtime_tables.sql +53 -0
- package/dist/drizzle/0135_native_checklist_linked_tasks.sql +48 -0
- package/dist/drizzle/0136_goal_ledger.sql +55 -0
- package/dist/drizzle/0136_space_email_trigger_status.sql +66 -0
- package/dist/drizzle/0137_thread_participant_pins.sql +25 -0
- package/dist/drizzle/0138_users_cognito_sub.sql +30 -0
- package/dist/drizzle/0139_mobile_turn_client_id.sql +23 -0
- package/dist/drizzle/0140_workspace_folder_names.sql +36 -0
- package/dist/drizzle/0141_eval_runs_desktop_pi_provenance.sql +31 -0
- package/dist/drizzle/0142_pi_only_agent_runtime.sql +61 -0
- package/dist/drizzle/0143_add_web_extract_builtin_config.sql +28 -0
- package/dist/drizzle/0144_skill_catalog_index.sql +40 -0
- package/dist/drizzle/0145_knowledge_graph_thread_ingest.sql +512 -0
- package/dist/drizzle/0146_knowledge_graph_source_scope.sql +413 -0
- package/dist/drizzle/0147_knowledge_graph_scope_trigger_qualification.sql +211 -0
- package/dist/drizzle/0148_user_cost_attribution.sql +171 -0
- package/dist/drizzle/0149_managed_mcp_servers.sql +64 -0
- package/dist/drizzle/0149_user_model_approvals.sql +89 -0
- package/dist/drizzle/0150_bootstrap_first_admin_claim.sql +11 -0
- package/dist/drizzle/0151_managed_deployments.sql +91 -0
- package/dist/drizzle/0152_agent_profiles.sql +81 -0
- package/dist/drizzle/0153_message_mentions_agent_profile.sql +9 -0
- package/dist/drizzle/0154_customer_deployment_sessions.sql +61 -0
- package/dist/drizzle/0155_tenant_model_catalog.sql +152 -0
- package/dist/drizzle/0156_bootstrap_credential_leases.sql +52 -0
- package/dist/drizzle/0157_knowledge_graph_observations_source.sql +79 -0
- package/dist/drizzle/0158_pending_user_questions.sql +80 -0
- package/dist/drizzle/0158_wiki_tenant_scope.sql +38 -0
- package/dist/drizzle/0159_agent_profiles_space_local.sql +49 -0
- package/dist/drizzle/0159_application_plugins.sql +193 -0
- package/dist/drizzle/0159_eval_scoring_version.sql +46 -0
- package/dist/drizzle/0160_compliance_event_types_plugins.sql +37 -0
- package/dist/drizzle/0160_eval_datasets.sql +75 -0
- package/dist/drizzle/0160_eval_results_thread_turn.sql +35 -0
- package/dist/drizzle/0161_eval_run_pinning.sql +54 -0
- package/dist/drizzle/0161_tenant_mcp_servers_plugin_source.sql +62 -0
- package/dist/drizzle/0162_eval_result_override.sql +49 -0
- package/dist/drizzle/0163_eval_replay_tool_allowlist.sql +50 -0
- package/dist/drizzle/0164_eval_replay_tool_override_mode.sql +52 -0
- package/dist/drizzle/0165_plugin_premium_entitlements.sql +153 -0
- package/dist/drizzle/0166_company_brain_substrate_contract.sql +386 -0
- package/dist/drizzle/0167_company_brain_artifact_manifest_runtime.sql +85 -0
- package/dist/drizzle/0168_eval_skill_gate.sql +44 -0
- package/dist/drizzle/0169_release_update_jobs.sql +67 -0
- package/dist/drizzle/0170_email_channel_plugin.sql +291 -0
- package/dist/drizzle/0171_linked_task_external_providers.sql +30 -0
- package/dist/drizzle/0172_email_channel_sendgrid_provider.sql +8 -0
- package/dist/drizzle/0173_auth_provider_resources.sql +83 -0
- package/dist/drizzle/0174_workos_auth_bridges.sql +37 -0
- package/dist/drizzle/0175_workos_auth_sessions.sql +38 -0
- package/dist/drizzle/0176_n8n_agent_step_runs.sql +107 -0
- package/dist/drizzle/0177_workflow_control_plane.sql +281 -0
- package/dist/drizzle/0178_workflow_backfill_existing_routines.sql +525 -0
- package/dist/drizzle/0179_tenant_goal_budget_settings.sql +21 -0
- package/dist/drizzle/0180_skill_drafts.sql +89 -0
- package/dist/drizzle/0181_skill_draft_publish_status.sql +21 -0
- package/dist/drizzle/0182_agent_loops.sql +260 -0
- package/dist/drizzle/0183_okf_artifact_manifests.sql +52 -0
- package/dist/drizzle/0184_skill_catalog_trust_cache.sql +35 -0
- package/dist/drizzle/0185_agent_loop_space.sql +16 -0
- package/dist/drizzle/0186_tenant_mcp_runtime_metadata.sql +10 -0
- package/dist/drizzle/0187_native_work_items.sql +220 -0
- package/dist/drizzle/0188_company_etl_plugin_rename.sql +99 -0
- package/dist/drizzle/0189_trace_cost_substrate.sql +247 -0
- package/dist/drizzle/0190_billing_export_reconciliation.sql +101 -0
- package/dist/drizzle/0191_open_engine_work_item_queue.sql +66 -0
- package/dist/drizzle/0192_work_item_labels.sql +44 -0
- package/dist/drizzle/0193_work_item_documents.sql +31 -0
- package/dist/drizzle/0194_memory_retain_attempts.sql +103 -0
- package/dist/drizzle/0194_work_item_comments.sql +35 -0
- package/dist/drizzle/0195_plugin_app_overlays.sql +45 -0
- package/dist/drizzle/0196_pi_extensions.sql +118 -0
- package/dist/drizzle/0197_eval_profiles.sql +150 -0
- package/dist/drizzle/0198_eval_runs_unstable.sql +27 -0
- package/dist/drizzle/0199_eval_runs_cost_partial.sql +27 -0
- package/dist/drizzle/meta/_journal.json +160 -0
- package/dist/plugins/README.md +162 -0
- package/dist/plugins/catalog/package.json +40 -0
- package/dist/plugins/catalog/scripts/build-catalog.ts +120 -0
- package/dist/plugins/catalog/scripts/generate-plugin-registry.ts +144 -0
- package/dist/plugins/catalog/src/__tests__/build-catalog.test.ts +86 -0
- package/dist/plugins/catalog/src/__tests__/catalog.test.ts +308 -0
- package/dist/plugins/catalog/src/__tests__/contracts.test.ts +861 -0
- package/dist/plugins/catalog/src/__tests__/plugin-package.test.ts +124 -0
- package/dist/plugins/catalog/src/__tests__/plugin-registry.test.ts +120 -0
- package/dist/plugins/catalog/src/catalog.ts +434 -0
- package/dist/plugins/catalog/src/contracts.ts +1498 -0
- package/dist/plugins/catalog/src/index.ts +4 -0
- package/dist/plugins/catalog/src/plugin-package.ts +171 -0
- package/dist/plugins/catalog/src/registry/generated-first-party.ts +76 -0
- package/dist/plugins/catalog/src/registry/index.ts +1 -0
- package/dist/plugins/catalog/tsconfig.json +8 -0
- package/dist/plugins/company-brain/README.md +37 -0
- package/dist/plugins/company-brain/package.json +33 -0
- package/dist/plugins/company-brain/runtime/cognee/Dockerfile +11 -0
- package/dist/plugins/company-brain/smoke/cognee-managed-app-smoke.mjs +458 -0
- package/dist/plugins/company-brain/smoke/cognee-memory-cutover-smoke.mjs +539 -0
- package/dist/plugins/company-brain/smoke/company-brain-context-engine-smoke.mjs +312 -0
- package/dist/plugins/company-brain/smoke/company-brain-operations-smoke.mjs +449 -0
- package/dist/plugins/company-brain/smoke/company-brain-plugin-smoke.mjs +655 -0
- package/dist/plugins/company-brain/smoke/hindsight-memory-isolation-smoke.mjs +474 -0
- package/dist/plugins/company-brain/src/api/cognee-client.ts +896 -0
- package/dist/plugins/company-brain/src/api/cognee-cluster-identity.ts +49 -0
- package/dist/plugins/company-brain/src/api/cognee-memory-scope.ts +84 -0
- package/dist/plugins/company-brain/src/api/context-engine-provider.ts +888 -0
- package/dist/plugins/company-brain/src/api/migration.ts +665 -0
- package/dist/plugins/company-brain/src/deployment/cognee-managed-app.ts +396 -0
- package/dist/plugins/company-brain/src/index.ts +62 -0
- package/dist/plugins/company-brain/src/manifest.ts +112 -0
- package/dist/plugins/company-brain/terraform/cognee/README.md +263 -0
- package/dist/plugins/company-brain/terraform/cognee/main.tf +766 -0
- package/dist/plugins/company-brain/terraform/cognee/outputs.tf +144 -0
- package/dist/plugins/company-brain/terraform/cognee/variables.tf +402 -0
- package/dist/plugins/company-brain/test/api/cognee-client.test.ts +562 -0
- package/dist/plugins/company-brain/test/api/cognee-memory-scope.test.ts +74 -0
- package/dist/plugins/company-brain/test/api/context-engine-provider.test.ts +447 -0
- package/dist/plugins/company-brain/test/api/migration.test.ts +465 -0
- package/dist/plugins/company-brain/test/manifest.test.ts +95 -0
- package/dist/plugins/company-brain/tsconfig.json +8 -0
- package/dist/plugins/company-data/README.md +49 -0
- package/dist/plugins/company-data/package.json +21 -0
- package/dist/plugins/company-data/src/index.ts +30 -0
- package/dist/plugins/company-data/src/manifest.ts +26 -0
- package/dist/plugins/company-data/test/manifest.test.ts +116 -0
- package/dist/plugins/company-data/tsconfig.json +8 -0
- package/dist/plugins/company-etl/README.md +46 -0
- package/dist/plugins/company-etl/package.json +21 -0
- package/dist/plugins/company-etl/src/index.ts +29 -0
- package/dist/plugins/company-etl/src/manifest.ts +26 -0
- package/dist/plugins/company-etl/test/manifest.test.ts +108 -0
- package/dist/plugins/company-etl/tsconfig.json +8 -0
- package/dist/plugins/email-channel/README.md +41 -0
- package/dist/plugins/email-channel/package.json +22 -0
- package/dist/plugins/email-channel/src/index.ts +36 -0
- package/dist/plugins/email-channel/src/manifest.ts +44 -0
- package/dist/plugins/email-channel/src/provider-contract.ts +36 -0
- package/dist/plugins/email-channel/test/manifest.test.ts +119 -0
- package/dist/plugins/email-channel/tsconfig.json +8 -0
- package/dist/plugins/lastmile/README.md +50 -0
- package/dist/plugins/lastmile/package.json +23 -0
- package/dist/plugins/lastmile/smoke/lastmile-plugin-smoke.mjs +661 -0
- package/dist/plugins/lastmile/src/api/tasks-adapter.ts +572 -0
- package/dist/plugins/lastmile/src/discovery.fixture.ts +64 -0
- package/dist/plugins/lastmile/src/index.ts +46 -0
- package/dist/plugins/lastmile/src/manifest.ts +139 -0
- package/dist/plugins/lastmile/test/api/tasks-adapter.test.ts +266 -0
- package/dist/plugins/lastmile/test/discovery.test.ts +88 -0
- package/dist/plugins/lastmile/tsconfig.json +8 -0
- package/dist/plugins/n8n/README.md +201 -0
- package/dist/plugins/n8n/n8n-app/README.md +33 -0
- package/dist/plugins/n8n/n8n-app/package.json +23 -0
- package/dist/plugins/n8n/n8n-app/src/application-config.ts +45 -0
- package/dist/plugins/n8n/n8n-app/src/front-components/thinkwork-workflows.front-component.tsx +970 -0
- package/dist/plugins/n8n/n8n-app/src/lib/n8n-app-data.ts +190 -0
- package/dist/plugins/n8n/n8n-app/src/vite-env.d.ts +7 -0
- package/dist/plugins/n8n/n8n-app/tsconfig.json +15 -0
- package/dist/plugins/n8n/package.json +35 -0
- package/dist/plugins/n8n/runtime/Dockerfile +18 -0
- package/dist/plugins/n8n/runtime/n8n-task-runners.json +14 -0
- package/dist/plugins/n8n/runtime/n8n-task-runners.json.template +14 -0
- package/dist/plugins/n8n/runtime/package-lock.json +13 -0
- package/dist/plugins/n8n/runtime/package.json +7 -0
- package/dist/plugins/n8n/scripts/sync-thinkwork-app.mjs +268 -0
- package/dist/plugins/n8n/smoke/README.md +95 -0
- package/dist/plugins/n8n/smoke/n8n-agent-step-bridge-smoke.mjs +866 -0
- package/dist/plugins/n8n/smoke/n8n-integrated-app-smoke.mjs +262 -0
- package/dist/plugins/n8n/smoke/n8n-managed-app-smoke.mjs +409 -0
- package/dist/plugins/n8n/smoke/n8n-mcp-smoke.mjs +624 -0
- package/dist/plugins/n8n/src/deployment/image-build.ts +172 -0
- package/dist/plugins/n8n/src/deployment/managed-app.ts +429 -0
- package/dist/plugins/n8n/src/index.ts +79 -0
- package/dist/plugins/n8n/src/manifest.ts +403 -0
- package/dist/plugins/n8n/src/package-config.ts +186 -0
- package/dist/plugins/n8n/src/skills/n8n-workflow-operator/SKILL.md +76 -0
- package/dist/plugins/n8n/src/skills/n8n-workflow-operator/references/mcp-tooling.md +40 -0
- package/dist/plugins/n8n/src/skills/n8n-workflow-operator/references/validation-and-handoff.md +40 -0
- package/dist/plugins/n8n/src/skills/n8n-workflow-operator/references/workflow-authoring.md +45 -0
- package/dist/plugins/n8n/terraform/n8n/README.md +113 -0
- package/dist/plugins/n8n/terraform/n8n/main.tf +918 -0
- package/dist/plugins/n8n/terraform/n8n/outputs.tf +124 -0
- package/dist/plugins/n8n/terraform/n8n/scripts/sync-database.py +250 -0
- package/dist/plugins/n8n/terraform/n8n/scripts/test_sync_database.py +55 -0
- package/dist/plugins/n8n/terraform/n8n/variables.tf +354 -0
- package/dist/plugins/n8n/test/image-build.test.ts +118 -0
- package/dist/plugins/n8n/test/integrated-app-contract.test.ts +353 -0
- package/dist/plugins/n8n/test/manifest.test.ts +278 -0
- package/dist/plugins/n8n/test/package-config.test.ts +57 -0
- package/dist/plugins/n8n/tsconfig.json +8 -0
- package/dist/plugins/sendgrid/README.md +30 -0
- package/dist/plugins/sendgrid/package.json +22 -0
- package/dist/plugins/sendgrid/src/index.ts +36 -0
- package/dist/plugins/sendgrid/src/manifest.ts +37 -0
- package/dist/plugins/sendgrid/src/provider-contract.ts +14 -0
- package/dist/plugins/sendgrid/test/manifest.test.ts +80 -0
- package/dist/plugins/sendgrid/tsconfig.json +8 -0
- package/dist/plugins/twenty/README.md +78 -0
- package/dist/plugins/twenty/package.json +27 -0
- package/dist/plugins/twenty/scripts/__tests__/sync-thinkwork-app.test.mjs +67 -0
- package/dist/plugins/twenty/scripts/sync-thinkwork-app.mjs +185 -0
- package/dist/plugins/twenty/scripts/wire-thinkwork-workflow.mjs +658 -0
- package/dist/plugins/twenty/smoke/twenty-managed-app-smoke.mjs +359 -0
- package/dist/plugins/twenty/smoke/twenty-mcp-oauth-smoke.mjs +574 -0
- package/dist/plugins/twenty/src/api/cutover.ts +209 -0
- package/dist/plugins/twenty/src/deployment/managed-app.ts +253 -0
- package/dist/plugins/twenty/src/index.ts +55 -0
- package/dist/plugins/twenty/src/manifest.ts +259 -0
- package/dist/plugins/twenty/terraform/twenty/README.md +97 -0
- package/dist/plugins/twenty/terraform/twenty/main.tf +829 -0
- package/dist/plugins/twenty/terraform/twenty/outputs.tf +79 -0
- package/dist/plugins/twenty/terraform/twenty/variables.tf +268 -0
- package/dist/plugins/twenty/test/api/cutover.test.ts +183 -0
- package/dist/plugins/twenty/test/manifest.test.ts +463 -0
- package/dist/plugins/twenty/tsconfig.json +9 -0
- package/dist/plugins/twenty/twenty-app/.nvmrc +1 -0
- package/dist/plugins/twenty/twenty-app/README.md +148 -0
- package/dist/plugins/twenty/twenty-app/package.json +30 -0
- package/dist/plugins/twenty/twenty-app/src/application-config.ts +44 -0
- package/dist/plugins/twenty/twenty-app/src/constants/universal-identifiers.ts +18 -0
- package/dist/plugins/twenty/twenty-app/src/default-role.ts +24 -0
- package/dist/plugins/twenty/twenty-app/src/front-components/thinkwork-settings.front-component.tsx +299 -0
- package/dist/plugins/twenty/twenty-app/src/logic-functions/thinkwork-webhook.logic-function.ts +354 -0
- package/dist/plugins/twenty/twenty-app/tsconfig.json +14 -0
- package/dist/plugins/twenty/twenty-app/yarn.lock +4144 -0
- package/dist/plugins/workos-auth/package.json +22 -0
- package/dist/plugins/workos-auth/src/index.ts +30 -0
- package/dist/plugins/workos-auth/src/manifest.ts +40 -0
- package/dist/plugins/workos-auth/src/provider-contract.ts +39 -0
- package/dist/plugins/workos-auth/test/manifest.test.ts +94 -0
- package/dist/plugins/workos-auth/tsconfig.json +8 -0
- package/dist/scripts/bootstrap-workspace.sh +162 -0
- package/dist/scripts/post-deploy.sh +290 -0
- package/dist/terraform/examples/greenfield/main.tf +903 -75
- package/dist/terraform/examples/greenfield/terraform.tfvars.example +67 -8
- package/dist/terraform/modules/app/agentcore-code-interpreter/Dockerfile.sandbox-base +2 -2
- package/dist/terraform/modules/app/agentcore-code-interpreter/README.md +8 -9
- package/dist/terraform/modules/app/agentcore-code-interpreter/sandbox/sitecustomize.py +227 -0
- package/dist/terraform/modules/app/agentcore-code-interpreter/sandbox/test_sitecustomize.py +277 -0
- package/dist/terraform/modules/app/agentcore-memory/README.md +6 -6
- package/dist/terraform/modules/app/agentcore-memory/main.tf +1 -1
- package/dist/terraform/modules/app/agentcore-memory/scripts/create_or_find_memory.sh +40 -9
- package/dist/terraform/modules/app/agentcore-pi/README.md +61 -0
- package/dist/terraform/modules/app/agentcore-pi/main.tf +453 -0
- package/dist/terraform/modules/app/agentcore-pi/outputs.tf +38 -0
- package/dist/terraform/modules/app/agentcore-pi/variables.tf +145 -0
- package/dist/terraform/modules/app/agentcore-platform/main.tf +83 -0
- package/dist/terraform/modules/app/agentcore-runtime/main.tf +9 -11
- package/dist/terraform/modules/app/appsync-subscriptions/main.tf +5 -1
- package/dist/terraform/modules/app/customer-domain/main.tf +483 -0
- package/dist/terraform/modules/app/deployment-control-plane/README.md +47 -0
- package/dist/terraform/modules/app/deployment-control-plane/buildspec.yml +24 -0
- package/dist/terraform/modules/app/deployment-control-plane/main.tf +614 -0
- package/dist/terraform/modules/app/deployment-control-plane/outputs.tf +54 -0
- package/dist/terraform/modules/app/deployment-control-plane/runner.py +4720 -0
- package/dist/terraform/modules/app/deployment-control-plane/test_runner_bundle.py +3026 -0
- package/dist/terraform/modules/app/deployment-control-plane/variables.tf +96 -0
- package/dist/terraform/modules/app/hindsight-memory/README.md +25 -23
- package/dist/terraform/modules/app/hindsight-memory/main.tf +26 -2
- package/dist/terraform/modules/app/lambda-api/eval-fanout.tf +17 -50
- package/dist/terraform/modules/app/lambda-api/handlers.tf +1290 -679
- package/dist/terraform/modules/app/lambda-api/iam-grouped.tf +933 -0
- package/dist/terraform/modules/app/lambda-api/main.tf +14 -527
- package/dist/terraform/modules/app/lambda-api/mcp-oauth.tf +3 -19
- package/dist/terraform/modules/app/lambda-api/outputs.tf +50 -6
- package/dist/terraform/modules/app/lambda-api/runtime-config.tf +163 -0
- package/dist/terraform/modules/app/lambda-api/slack-app-secrets.tf +3 -1
- package/dist/terraform/modules/app/lambda-api/stripe-secrets.tf +3 -1
- package/dist/terraform/modules/app/lambda-api/variables.tf +240 -53
- package/dist/terraform/modules/app/lambda-api/workspace-events.tf +2 -25
- package/dist/terraform/modules/app/ses-email/main.tf +143 -30
- package/dist/terraform/modules/app/static-site/main.tf +4 -3
- package/dist/terraform/modules/app/www-dns/main.tf +45 -5
- package/dist/terraform/modules/app/www-dns/outputs.tf +10 -0
- package/dist/terraform/modules/app/www-dns/variables.tf +24 -0
- package/dist/terraform/modules/data/aurora-postgres/main.tf +15 -1
- package/dist/terraform/modules/data/compliance-exports-bucket/main.tf +1 -1
- package/dist/terraform/modules/data/compliance-exports-bucket/variables.tf +6 -0
- package/dist/terraform/modules/foundation/cognito/main.tf +167 -11
- package/dist/terraform/modules/foundation/cognito/outputs.tf +5 -0
- package/dist/terraform/modules/foundation/cognito/variables.tf +110 -0
- package/dist/terraform/modules/foundation/vpc/main.tf +45 -3
- package/dist/terraform/modules/foundation/vpc/outputs.tf +20 -0
- package/dist/terraform/modules/foundation/vpc/variables.tf +18 -0
- package/dist/terraform/modules/thinkwork/README.md +71 -0
- package/dist/terraform/modules/thinkwork/main.tf +1325 -174
- package/dist/terraform/modules/thinkwork/outputs.tf +457 -24
- package/dist/terraform/modules/thinkwork/variables.tf +1169 -93
- package/dist/terraform/schema.graphql +82 -9
- package/dist/workspace-defaults/files/AGENTS.md +344 -0
- package/dist/workspace-defaults/files/CONTEXT.md +8 -0
- package/dist/workspace-defaults/files/GUARDRAILS.md +51 -0
- package/dist/workspace-defaults/files/MEMORY_GUIDE.md +65 -0
- package/dist/workspace-defaults/files/ROUTER.md +24 -0
- package/dist/workspace-defaults/files/SPACE.md +62 -0
- package/dist/workspace-defaults/files/TOOLS.md +65 -0
- package/dist/workspace-defaults/files/USER.md +40 -0
- package/dist/workspace-defaults/files/mcp.json +3 -0
- package/dist/workspace-defaults/files/memory/contacts.md +13 -0
- package/dist/workspace-defaults/files/memory/lessons.md +13 -0
- package/dist/workspace-defaults/files/memory/preferences.md +12 -0
- package/dist/workspace-defaults/files/skills/.gitkeep +1 -0
- package/dist/workspace-defaults/files/skills/artifact-builder/SKILL.md +79 -0
- package/dist/workspace-defaults/files/skills/artifact-builder/references/crm-dashboard.md +166 -0
- package/dist/workspace-defaults/files/skills/automation-loop-designer/SKILL.md +120 -0
- package/dist/workspace-defaults/files/skills/skill-creator/LICENSE.txt +202 -0
- package/dist/workspace-defaults/files/skills/skill-creator/SKILL.md +485 -0
- package/dist/workspace-defaults/files/skills/skill-creator/UPSTREAM.json +124 -0
- package/dist/workspace-defaults/files/skills/skill-creator/agents/analyzer.md +274 -0
- package/dist/workspace-defaults/files/skills/skill-creator/agents/comparator.md +202 -0
- package/dist/workspace-defaults/files/skills/skill-creator/agents/grader.md +223 -0
- package/dist/workspace-defaults/files/skills/skill-creator/assets/eval_review.html +146 -0
- package/dist/workspace-defaults/files/skills/skill-creator/eval-viewer/generate_review.py +471 -0
- package/dist/workspace-defaults/files/skills/skill-creator/eval-viewer/viewer.html +1325 -0
- package/dist/workspace-defaults/files/skills/skill-creator/references/schemas.md +430 -0
- package/dist/workspace-defaults/files/skills/skill-creator/scripts/__init__.py +0 -0
- package/dist/workspace-defaults/files/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
- package/dist/workspace-defaults/files/skills/skill-creator/scripts/generate_report.py +326 -0
- package/dist/workspace-defaults/files/skills/skill-creator/scripts/improve_description.py +247 -0
- package/dist/workspace-defaults/files/skills/skill-creator/scripts/package_skill.py +136 -0
- package/dist/workspace-defaults/files/skills/skill-creator/scripts/quick_validate.py +103 -0
- package/dist/workspace-defaults/files/skills/skill-creator/scripts/run_eval.py +310 -0
- package/dist/workspace-defaults/files/skills/skill-creator/scripts/run_loop.py +328 -0
- package/dist/workspace-defaults/files/skills/skill-creator/scripts/utils.py +47 -0
- package/package.json +1 -1
- package/dist/terraform/modules/app/agentcore-flue/README.md +0 -58
- package/dist/terraform/modules/app/agentcore-flue/main.tf +0 -323
- package/dist/terraform/modules/app/agentcore-flue/outputs.tf +0 -23
- package/dist/terraform/modules/app/agentcore-flue/variables.tf +0 -97
- package/dist/terraform/modules/app/computer-runtime/README.md +0 -15
- package/dist/terraform/modules/app/computer-runtime/main.tf +0 -406
- package/dist/terraform/modules/app/computer-runtime/outputs.tf +0 -75
- package/dist/terraform/modules/app/computer-runtime/variables.tf +0 -66
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
-- 0133_drop_seed_view_tombstones.sql
|
|
2
|
+
--
|
|
3
|
+
-- Drops the 11 sentinel/invariant-check views left behind by historical
|
|
4
|
+
-- seed and repair migrations. Each view was created by its owning
|
|
5
|
+
-- migration as a saved "did this work land?" query — operator-facing
|
|
6
|
+
-- introspection sugar that was useful at the time those migrations
|
|
7
|
+
-- applied, but is now dead schema noise.
|
|
8
|
+
--
|
|
9
|
+
-- None of these views are read by application code (verified via grep
|
|
10
|
+
-- across packages/api, packages/lambda, apps/*, scripts/, and the
|
|
11
|
+
-- Python Strands runtime). The drift reporter does its work via the
|
|
12
|
+
-- `-- creates:` and `-- drops:` markers in migration headers, not by
|
|
13
|
+
-- reading view contents — so dropping these views does not weaken the
|
|
14
|
+
-- migration-verification regime.
|
|
15
|
+
--
|
|
16
|
+
-- Companion edit: the 11 original migrations have their now-stale
|
|
17
|
+
-- `-- creates: public.view_*` markers removed in this same PR so the
|
|
18
|
+
-- drift reporter stays clean. The view SQL bodies in those files are
|
|
19
|
+
-- left in place — replaying any of those migrations on a fresh DB
|
|
20
|
+
-- still recreates its view, after which 0133 cleans it up again.
|
|
21
|
+
--
|
|
22
|
+
-- Apply manually (AFTER merge + deploy, per
|
|
23
|
+
-- feedback_migration_deploy_ordering):
|
|
24
|
+
-- psql "$DATABASE_URL" -f packages/database-pg/drizzle/0133_drop_seed_view_tombstones.sql
|
|
25
|
+
--
|
|
26
|
+
-- Then verify:
|
|
27
|
+
-- pnpm db:migrate-manual packages/database-pg/drizzle/0133_drop_seed_view_tombstones.sql
|
|
28
|
+
-- psql -c "\dv public.view_*" -- 0 views expected
|
|
29
|
+
--
|
|
30
|
+
-- Rollback: re-run each source migration's CREATE VIEW statement. See
|
|
31
|
+
-- the inverse SQL in each of:
|
|
32
|
+
-- 0022, 0030, 0085, 0086, 0089 (remove_maniflow_eval_seeds),
|
|
33
|
+
-- 0096, 0102, 0103, 0104, 0106, 0116
|
|
34
|
+
--
|
|
35
|
+
-- Markers (consumed by scripts/db-migrate-manual.sh):
|
|
36
|
+
--
|
|
37
|
+
-- drops: public.view_brain_section_source_trigger_repaired
|
|
38
|
+
-- drops: public.view_composition_primitives_retired
|
|
39
|
+
-- drops: public.view_default_template_models_updated_0086
|
|
40
|
+
-- drops: public.view_eval_seed_maniflow_cleanup_0089
|
|
41
|
+
-- drops: public.view_eval_seed_true_redteam_cleanup_0096
|
|
42
|
+
-- drops: public.view_seed_ontology_triples_expanded
|
|
43
|
+
-- drops: public.view_seed_ontology_user_memory_expanded
|
|
44
|
+
-- drops: public.view_thinkwork_admin_permissions_seeded
|
|
45
|
+
-- drops: public.view_thinkwork_computer_default_template_seeded
|
|
46
|
+
-- drops: public.view_thread_participants_access_backfilled
|
|
47
|
+
-- drops: public.view_wiki_brain_owner_repaired
|
|
48
|
+
|
|
49
|
+
\set ON_ERROR_STOP on
|
|
50
|
+
|
|
51
|
+
BEGIN;
|
|
52
|
+
|
|
53
|
+
SET LOCAL lock_timeout = '30s';
|
|
54
|
+
SET LOCAL statement_timeout = '60s';
|
|
55
|
+
|
|
56
|
+
-- Serialize concurrent application attempts.
|
|
57
|
+
SELECT pg_advisory_xact_lock(hashtext('drop_seed_view_tombstones'));
|
|
58
|
+
|
|
59
|
+
-- Refuse to apply against an unexpected DB.
|
|
60
|
+
DO $$
|
|
61
|
+
BEGIN
|
|
62
|
+
IF current_database() != 'thinkwork' THEN
|
|
63
|
+
RAISE EXCEPTION 'wrong database: %, expected thinkwork', current_database();
|
|
64
|
+
END IF;
|
|
65
|
+
END $$;
|
|
66
|
+
|
|
67
|
+
DROP VIEW IF EXISTS public.view_brain_section_source_trigger_repaired;
|
|
68
|
+
DROP VIEW IF EXISTS public.view_composition_primitives_retired;
|
|
69
|
+
DROP VIEW IF EXISTS public.view_default_template_models_updated_0086;
|
|
70
|
+
DROP VIEW IF EXISTS public.view_eval_seed_maniflow_cleanup_0089;
|
|
71
|
+
DROP VIEW IF EXISTS public.view_eval_seed_true_redteam_cleanup_0096;
|
|
72
|
+
DROP VIEW IF EXISTS public.view_seed_ontology_triples_expanded;
|
|
73
|
+
DROP VIEW IF EXISTS public.view_seed_ontology_user_memory_expanded;
|
|
74
|
+
DROP VIEW IF EXISTS public.view_thinkwork_admin_permissions_seeded;
|
|
75
|
+
DROP VIEW IF EXISTS public.view_thinkwork_computer_default_template_seeded;
|
|
76
|
+
DROP VIEW IF EXISTS public.view_thread_participants_access_backfilled;
|
|
77
|
+
DROP VIEW IF EXISTS public.view_wiki_brain_owner_repaired;
|
|
78
|
+
|
|
79
|
+
COMMIT;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
-- 0133_thread_turns_system_prompt.sql
|
|
2
|
+
-- Store the composed system prompt captured for normal thread turns so the
|
|
3
|
+
-- admin Thread Detail view can audit the prompt used by the runtime.
|
|
4
|
+
--
|
|
5
|
+
-- Apply manually:
|
|
6
|
+
-- psql "$DATABASE_URL" -v ON_ERROR_STOP=1 -f packages/database-pg/drizzle/0133_thread_turns_system_prompt.sql
|
|
7
|
+
-- Verify:
|
|
8
|
+
-- bash scripts/db-migrate-manual.sh packages/database-pg/drizzle/0133_thread_turns_system_prompt.sql
|
|
9
|
+
--
|
|
10
|
+
-- creates-column: public.thread_turns.system_prompt
|
|
11
|
+
|
|
12
|
+
BEGIN;
|
|
13
|
+
|
|
14
|
+
SELECT pg_advisory_xact_lock(hashtext('add_thread_turns_system_prompt'));
|
|
15
|
+
|
|
16
|
+
ALTER TABLE public.thread_turns
|
|
17
|
+
ADD COLUMN IF NOT EXISTS system_prompt text;
|
|
18
|
+
|
|
19
|
+
COMMENT ON COLUMN public.thread_turns.system_prompt IS
|
|
20
|
+
'Composed system prompt captured from the agent runtime for this turn.';
|
|
21
|
+
|
|
22
|
+
COMMIT;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
-- 0134_drop_dead_agent_runtime_tables.sql
|
|
2
|
+
--
|
|
3
|
+
-- Drops three agent_* tables that were schema-only across the codebase
|
|
4
|
+
-- with zero rows in production:
|
|
5
|
+
--
|
|
6
|
+
-- - agent_runtime_state — declared but never written to
|
|
7
|
+
-- - agent_task_sessions — declared but never written to;
|
|
8
|
+
-- FKs to agent_runtime_state
|
|
9
|
+
-- - agent_workspace_waits — declared but only re-exported in
|
|
10
|
+
-- graphql/utils.ts; no SELECT/INSERT
|
|
11
|
+
-- from any handler or resolver
|
|
12
|
+
--
|
|
13
|
+
-- Pre-merge consumer survey (per feedback_grep_must_match_import_form):
|
|
14
|
+
-- grep across apps/, packages/api/src, packages/lambda,
|
|
15
|
+
-- packages/database-pg/src (excluding drizzle/ and the table's own
|
|
16
|
+
-- schema declaration), packages/agentcore-pi, and scripts/ returned only the schema definitions + the utils.ts
|
|
17
|
+
-- re-exports. The companion code commit removes those.
|
|
18
|
+
--
|
|
19
|
+
-- Order matters: agent_task_sessions has a FK to agent_runtime_state,
|
|
20
|
+
-- so it must drop first.
|
|
21
|
+
--
|
|
22
|
+
-- Apply manually AFTER merge+deploy per feedback_migration_deploy_ordering.
|
|
23
|
+
-- (Risk in practice is zero — no code reads these — but consistent
|
|
24
|
+
-- with the ordering rule.)
|
|
25
|
+
--
|
|
26
|
+
-- Markers (consumed by scripts/db-migrate-manual.sh):
|
|
27
|
+
--
|
|
28
|
+
-- drops: public.agent_task_sessions
|
|
29
|
+
-- drops: public.agent_runtime_state
|
|
30
|
+
-- drops: public.agent_workspace_waits
|
|
31
|
+
|
|
32
|
+
\set ON_ERROR_STOP on
|
|
33
|
+
|
|
34
|
+
BEGIN;
|
|
35
|
+
|
|
36
|
+
SET LOCAL lock_timeout = '30s';
|
|
37
|
+
SET LOCAL statement_timeout = '60s';
|
|
38
|
+
|
|
39
|
+
SELECT pg_advisory_xact_lock(hashtext('drop_dead_agent_runtime_tables'));
|
|
40
|
+
|
|
41
|
+
DO $$
|
|
42
|
+
BEGIN
|
|
43
|
+
IF current_database() != 'thinkwork' THEN
|
|
44
|
+
RAISE EXCEPTION 'wrong database: %, expected thinkwork', current_database();
|
|
45
|
+
END IF;
|
|
46
|
+
END $$;
|
|
47
|
+
|
|
48
|
+
-- Drop child first (FK to agent_runtime_state).
|
|
49
|
+
DROP TABLE IF EXISTS public.agent_task_sessions;
|
|
50
|
+
DROP TABLE IF EXISTS public.agent_runtime_state;
|
|
51
|
+
DROP TABLE IF EXISTS public.agent_workspace_waits;
|
|
52
|
+
|
|
53
|
+
COMMIT;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
-- Purpose: allow ThinkWork-native checklist rows in linked task compatibility storage.
|
|
2
|
+
-- Plan: docs/plans/2026-05-25-004-feat-customer-onboarding-native-checklist-plan.md (U2)
|
|
3
|
+
-- Apply manually: psql "$DATABASE_URL" -v ON_ERROR_STOP=1 -f packages/database-pg/drizzle/0135_native_checklist_linked_tasks.sql
|
|
4
|
+
-- creates-constraint: public.linked_tasks.linked_tasks_provider_allowed
|
|
5
|
+
-- creates-constraint: public.linked_tasks.linked_tasks_status_allowed
|
|
6
|
+
-- creates-constraint: public.linked_task_events.linked_task_events_provider_allowed
|
|
7
|
+
-- creates-constraint: public.linked_task_events.linked_task_events_type_allowed
|
|
8
|
+
-- creates-constraint: public.linked_task_events.linked_task_events_previous_status_allowed
|
|
9
|
+
-- creates-constraint: public.linked_task_events.linked_task_events_new_status_allowed
|
|
10
|
+
|
|
11
|
+
\set ON_ERROR_STOP on
|
|
12
|
+
|
|
13
|
+
BEGIN;
|
|
14
|
+
|
|
15
|
+
SET LOCAL lock_timeout = '5s';
|
|
16
|
+
SET LOCAL statement_timeout = '120s';
|
|
17
|
+
|
|
18
|
+
ALTER TABLE public.linked_tasks
|
|
19
|
+
DROP CONSTRAINT IF EXISTS linked_tasks_provider_allowed,
|
|
20
|
+
ADD CONSTRAINT linked_tasks_provider_allowed
|
|
21
|
+
CHECK (provider IN ('lastmile', 'thinkwork'));
|
|
22
|
+
|
|
23
|
+
ALTER TABLE public.linked_tasks
|
|
24
|
+
DROP CONSTRAINT IF EXISTS linked_tasks_status_allowed,
|
|
25
|
+
ADD CONSTRAINT linked_tasks_status_allowed
|
|
26
|
+
CHECK (status IN ('unknown', 'todo', 'in_progress', 'completed', 'blocked', 'cancelled', 'not_applicable'));
|
|
27
|
+
|
|
28
|
+
ALTER TABLE public.linked_task_events
|
|
29
|
+
DROP CONSTRAINT IF EXISTS linked_task_events_provider_allowed,
|
|
30
|
+
ADD CONSTRAINT linked_task_events_provider_allowed
|
|
31
|
+
CHECK (provider IN ('lastmile', 'thinkwork'));
|
|
32
|
+
|
|
33
|
+
ALTER TABLE public.linked_task_events
|
|
34
|
+
DROP CONSTRAINT IF EXISTS linked_task_events_type_allowed,
|
|
35
|
+
ADD CONSTRAINT linked_task_events_type_allowed
|
|
36
|
+
CHECK (event_type IN ('created', 'status_changed', 'completed', 'blocked', 'reassigned', 'due_date_changed', 'sync_failed', 'writeback_posted'));
|
|
37
|
+
|
|
38
|
+
ALTER TABLE public.linked_task_events
|
|
39
|
+
DROP CONSTRAINT IF EXISTS linked_task_events_previous_status_allowed,
|
|
40
|
+
ADD CONSTRAINT linked_task_events_previous_status_allowed
|
|
41
|
+
CHECK (previous_status IS NULL OR previous_status IN ('unknown', 'todo', 'in_progress', 'completed', 'blocked', 'cancelled', 'not_applicable'));
|
|
42
|
+
|
|
43
|
+
ALTER TABLE public.linked_task_events
|
|
44
|
+
DROP CONSTRAINT IF EXISTS linked_task_events_new_status_allowed,
|
|
45
|
+
ADD CONSTRAINT linked_task_events_new_status_allowed
|
|
46
|
+
CHECK (new_status IS NULL OR new_status IN ('unknown', 'todo', 'in_progress', 'completed', 'blocked', 'cancelled', 'not_applicable'));
|
|
47
|
+
|
|
48
|
+
COMMIT;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
-- Purpose: add explicit Goal ledger rows for promoted Thread workflows.
|
|
2
|
+
-- Plan: docs/plans/2026-05-27-003-feat-folder-native-goals-plan.md
|
|
3
|
+
-- Apply manually (no CI migration runner):
|
|
4
|
+
-- psql "$DATABASE_URL" -f packages/database-pg/drizzle/0136_goal_ledger.sql
|
|
5
|
+
-- Pre-flight:
|
|
6
|
+
-- SELECT to_regclass('public.goals');
|
|
7
|
+
-- SELECT to_regclass('public.uq_goals_thread_non_terminal');
|
|
8
|
+
-- creates: public.goals
|
|
9
|
+
-- creates: public.idx_goals_tenant_thread
|
|
10
|
+
-- creates: public.idx_goals_tenant_space_status
|
|
11
|
+
-- creates: public.idx_goals_folder_s3_prefix
|
|
12
|
+
-- creates: public.uq_goals_thread_non_terminal
|
|
13
|
+
-- creates-constraint: public.goals.goals_mode_allowed
|
|
14
|
+
-- creates-constraint: public.goals.goals_status_allowed
|
|
15
|
+
|
|
16
|
+
CREATE TABLE IF NOT EXISTS goals (
|
|
17
|
+
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
18
|
+
tenant_id uuid NOT NULL REFERENCES tenants(id) ON DELETE CASCADE,
|
|
19
|
+
space_id uuid NOT NULL REFERENCES spaces(id) ON DELETE CASCADE,
|
|
20
|
+
thread_id uuid NOT NULL REFERENCES threads(id) ON DELETE CASCADE,
|
|
21
|
+
template_key text,
|
|
22
|
+
outcome text NOT NULL,
|
|
23
|
+
owner_type text,
|
|
24
|
+
owner_id text,
|
|
25
|
+
mode text NOT NULL DEFAULT 'collaborate',
|
|
26
|
+
status text NOT NULL DEFAULT 'active',
|
|
27
|
+
progress_model text NOT NULL DEFAULT 'linked_tasks',
|
|
28
|
+
completion_rule jsonb,
|
|
29
|
+
review_policy jsonb,
|
|
30
|
+
folder_s3_prefix text NOT NULL,
|
|
31
|
+
reviewer_type text,
|
|
32
|
+
reviewer_id text,
|
|
33
|
+
started_at timestamptz NOT NULL DEFAULT now(),
|
|
34
|
+
reviewed_at timestamptz,
|
|
35
|
+
completed_at timestamptz,
|
|
36
|
+
cancelled_at timestamptz,
|
|
37
|
+
metadata jsonb,
|
|
38
|
+
created_at timestamptz NOT NULL DEFAULT now(),
|
|
39
|
+
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
40
|
+
CONSTRAINT goals_mode_allowed CHECK (mode IN ('delegate','collaborate')),
|
|
41
|
+
CONSTRAINT goals_status_allowed CHECK (status IN ('active','in_review','completed','cancelled'))
|
|
42
|
+
);
|
|
43
|
+
|
|
44
|
+
CREATE INDEX IF NOT EXISTS idx_goals_tenant_thread
|
|
45
|
+
ON goals (tenant_id, thread_id);
|
|
46
|
+
|
|
47
|
+
CREATE INDEX IF NOT EXISTS idx_goals_tenant_space_status
|
|
48
|
+
ON goals (tenant_id, space_id, status);
|
|
49
|
+
|
|
50
|
+
CREATE INDEX IF NOT EXISTS idx_goals_folder_s3_prefix
|
|
51
|
+
ON goals (folder_s3_prefix);
|
|
52
|
+
|
|
53
|
+
CREATE UNIQUE INDEX IF NOT EXISTS uq_goals_thread_non_terminal
|
|
54
|
+
ON goals (tenant_id, thread_id)
|
|
55
|
+
WHERE status IN ('active','in_review');
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
-- creates-column: public.spaces.email_trigger_status
|
|
2
|
+
-- creates-constraint: public.spaces.spaces_email_trigger_status_allowed
|
|
3
|
+
-- creates-function: public.sync_space_email_trigger_status
|
|
4
|
+
-- creates-trigger: public.spaces.spaces_email_trigger_status_sync
|
|
5
|
+
|
|
6
|
+
\set ON_ERROR_STOP on
|
|
7
|
+
|
|
8
|
+
BEGIN;
|
|
9
|
+
|
|
10
|
+
SET LOCAL lock_timeout = '5s';
|
|
11
|
+
SET LOCAL statement_timeout = '120s';
|
|
12
|
+
|
|
13
|
+
ALTER TABLE public.spaces
|
|
14
|
+
ADD COLUMN IF NOT EXISTS email_trigger_status text;
|
|
15
|
+
|
|
16
|
+
UPDATE public.spaces
|
|
17
|
+
SET email_trigger_status = CASE
|
|
18
|
+
WHEN email_triggers_enabled IS TRUE THEN 'enabled'
|
|
19
|
+
ELSE 'none'
|
|
20
|
+
END
|
|
21
|
+
WHERE email_trigger_status IS NULL;
|
|
22
|
+
|
|
23
|
+
ALTER TABLE public.spaces
|
|
24
|
+
ALTER COLUMN email_trigger_status SET DEFAULT 'none';
|
|
25
|
+
|
|
26
|
+
ALTER TABLE public.spaces
|
|
27
|
+
ALTER COLUMN email_trigger_status SET NOT NULL;
|
|
28
|
+
|
|
29
|
+
DO $$
|
|
30
|
+
BEGIN
|
|
31
|
+
IF NOT EXISTS (
|
|
32
|
+
SELECT 1
|
|
33
|
+
FROM pg_constraint
|
|
34
|
+
WHERE conname = 'spaces_email_trigger_status_allowed'
|
|
35
|
+
AND conrelid = 'public.spaces'::regclass
|
|
36
|
+
) THEN
|
|
37
|
+
ALTER TABLE public.spaces
|
|
38
|
+
ADD CONSTRAINT spaces_email_trigger_status_allowed
|
|
39
|
+
CHECK (email_trigger_status IN ('none','disabled','enabled'));
|
|
40
|
+
END IF;
|
|
41
|
+
END $$;
|
|
42
|
+
|
|
43
|
+
CREATE OR REPLACE FUNCTION public.sync_space_email_trigger_status()
|
|
44
|
+
RETURNS trigger
|
|
45
|
+
LANGUAGE plpgsql
|
|
46
|
+
AS $$
|
|
47
|
+
BEGIN
|
|
48
|
+
IF NEW.email_trigger_status IS NOT DISTINCT FROM OLD.email_trigger_status
|
|
49
|
+
AND NEW.email_triggers_enabled IS DISTINCT FROM OLD.email_triggers_enabled THEN
|
|
50
|
+
NEW.email_trigger_status := CASE
|
|
51
|
+
WHEN NEW.email_triggers_enabled IS TRUE THEN 'enabled'
|
|
52
|
+
ELSE 'disabled'
|
|
53
|
+
END;
|
|
54
|
+
END IF;
|
|
55
|
+
RETURN NEW;
|
|
56
|
+
END;
|
|
57
|
+
$$;
|
|
58
|
+
|
|
59
|
+
DROP TRIGGER IF EXISTS spaces_email_trigger_status_sync ON public.spaces;
|
|
60
|
+
|
|
61
|
+
CREATE TRIGGER spaces_email_trigger_status_sync
|
|
62
|
+
BEFORE UPDATE OF email_triggers_enabled ON public.spaces
|
|
63
|
+
FOR EACH ROW
|
|
64
|
+
EXECUTE FUNCTION public.sync_space_email_trigger_status();
|
|
65
|
+
|
|
66
|
+
COMMIT;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
-- Purpose: persist per-user saved Thread pins across Spaces clients.
|
|
2
|
+
-- Plan: docs/plans/2026-05-28-002-feat-server-thread-pins-plan.md (U1)
|
|
3
|
+
-- Apply manually: psql "$DATABASE_URL" -v ON_ERROR_STOP=1 -f packages/database-pg/drizzle/0137_thread_participant_pins.sql
|
|
4
|
+
-- creates-column: public.thread_participants.pinned_at
|
|
5
|
+
-- creates-column: public.thread_participants.pin_order
|
|
6
|
+
-- creates: public.idx_thread_participants_user_pins
|
|
7
|
+
|
|
8
|
+
\set ON_ERROR_STOP on
|
|
9
|
+
|
|
10
|
+
BEGIN;
|
|
11
|
+
|
|
12
|
+
SET LOCAL lock_timeout = '5s';
|
|
13
|
+
SET LOCAL statement_timeout = '120s';
|
|
14
|
+
|
|
15
|
+
ALTER TABLE public.thread_participants
|
|
16
|
+
ADD COLUMN IF NOT EXISTS pinned_at timestamptz,
|
|
17
|
+
ADD COLUMN IF NOT EXISTS pin_order integer;
|
|
18
|
+
|
|
19
|
+
CREATE INDEX IF NOT EXISTS idx_thread_participants_user_pins
|
|
20
|
+
ON public.thread_participants (tenant_id, user_id, pin_order)
|
|
21
|
+
WHERE participant_type = 'user'
|
|
22
|
+
AND user_id IS NOT NULL
|
|
23
|
+
AND pinned_at IS NOT NULL;
|
|
24
|
+
|
|
25
|
+
COMMIT;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
-- creates-column: public.users.cognito_sub
|
|
2
|
+
-- creates: public.idx_users_cognito_sub
|
|
3
|
+
--
|
|
4
|
+
-- Plan: docs/plans/2026-05-29-006-fix-google-federated-identity-resolution-plan.md (U1)
|
|
5
|
+
-- Apply manually: psql "$DATABASE_URL" -v ON_ERROR_STOP=1 -f packages/database-pg/drizzle/0138_users_cognito_sub.sql
|
|
6
|
+
--
|
|
7
|
+
-- Durable identity link for Google-federated Cognito users. Native users have
|
|
8
|
+
-- users.id == Cognito sub; Google-federated users get a fresh-UUID id and were
|
|
9
|
+
-- linked only by the optional ID-token `email` claim, so a refreshed token that
|
|
10
|
+
-- drops `email` broke identity resolution. Storing the always-present, stable
|
|
11
|
+
-- Cognito `sub` here lets resolveCallerFromAuth resolve by sub first
|
|
12
|
+
-- (resolvers/core/resolve-auth-user.ts) instead of depending on `email`.
|
|
13
|
+
-- Nullable: existing rows have no sub yet (they self-heal via opportunistic
|
|
14
|
+
-- backfill, and bootstrapUser stamps it for new users). Postgres treats NULLs
|
|
15
|
+
-- as distinct in a unique index, so many un-backfilled rows coexist.
|
|
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
|
+
ALTER TABLE public.users
|
|
25
|
+
ADD COLUMN IF NOT EXISTS cognito_sub text;
|
|
26
|
+
|
|
27
|
+
CREATE UNIQUE INDEX IF NOT EXISTS idx_users_cognito_sub
|
|
28
|
+
ON public.users (cognito_sub);
|
|
29
|
+
|
|
30
|
+
COMMIT;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
-- creates: public.uq_thread_turns_mobile_client_turn
|
|
2
|
+
--
|
|
3
|
+
-- Plan: docs/plans/2026-05-31-001-feat-mobile-pi-agentcore-background-handoff-plan.md (U1)
|
|
4
|
+
-- Apply manually: psql "$DATABASE_URL" -v ON_ERROR_STOP=1 -f packages/database-pg/drizzle/0139_mobile_turn_client_id.sql
|
|
5
|
+
--
|
|
6
|
+
-- Mobile Pi starts a durable thread_turn before local execution begins. The
|
|
7
|
+
-- clientTurnId is an idempotency token, not authorization, and is stored in
|
|
8
|
+
-- thread_turns.external_run_id. Scope the unique key narrowly to mobile Pi
|
|
9
|
+
-- turns so existing AgentCore/desktop uses of external_run_id are unchanged.
|
|
10
|
+
|
|
11
|
+
\set ON_ERROR_STOP on
|
|
12
|
+
|
|
13
|
+
BEGIN;
|
|
14
|
+
|
|
15
|
+
SET LOCAL lock_timeout = '5s';
|
|
16
|
+
SET LOCAL statement_timeout = '120s';
|
|
17
|
+
|
|
18
|
+
CREATE UNIQUE INDEX IF NOT EXISTS uq_thread_turns_mobile_client_turn
|
|
19
|
+
ON public.thread_turns (tenant_id, thread_id, external_run_id)
|
|
20
|
+
WHERE invocation_source = 'mobile_pi'
|
|
21
|
+
AND external_run_id IS NOT NULL;
|
|
22
|
+
|
|
23
|
+
COMMIT;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
-- creates-column: public.agents.workspace_folder_name
|
|
2
|
+
-- creates-column: public.spaces.workspace_folder_name
|
|
3
|
+
-- creates-column: public.users.workspace_folder_name
|
|
4
|
+
-- creates-column: public.threads.workspace_folder_name
|
|
5
|
+
-- creates-column: public.goals.workspace_folder_name
|
|
6
|
+
-- creates: public.uq_agents_tenant_workspace_folder_name
|
|
7
|
+
-- creates: public.uq_spaces_tenant_workspace_folder_name
|
|
8
|
+
-- creates: public.uq_users_tenant_workspace_folder_name
|
|
9
|
+
-- creates: public.uq_threads_tenant_workspace_folder_name
|
|
10
|
+
-- creates: public.uq_goals_tenant_workspace_folder_name
|
|
11
|
+
|
|
12
|
+
ALTER TABLE agents ADD COLUMN IF NOT EXISTS workspace_folder_name text;
|
|
13
|
+
ALTER TABLE spaces ADD COLUMN IF NOT EXISTS workspace_folder_name text;
|
|
14
|
+
ALTER TABLE users ADD COLUMN IF NOT EXISTS workspace_folder_name text;
|
|
15
|
+
ALTER TABLE threads ADD COLUMN IF NOT EXISTS workspace_folder_name text;
|
|
16
|
+
ALTER TABLE goals ADD COLUMN IF NOT EXISTS workspace_folder_name text;
|
|
17
|
+
|
|
18
|
+
CREATE UNIQUE INDEX IF NOT EXISTS uq_agents_tenant_workspace_folder_name
|
|
19
|
+
ON agents (tenant_id, workspace_folder_name)
|
|
20
|
+
WHERE workspace_folder_name IS NOT NULL;
|
|
21
|
+
|
|
22
|
+
CREATE UNIQUE INDEX IF NOT EXISTS uq_spaces_tenant_workspace_folder_name
|
|
23
|
+
ON spaces (tenant_id, workspace_folder_name)
|
|
24
|
+
WHERE workspace_folder_name IS NOT NULL;
|
|
25
|
+
|
|
26
|
+
CREATE UNIQUE INDEX IF NOT EXISTS uq_users_tenant_workspace_folder_name
|
|
27
|
+
ON users (tenant_id, workspace_folder_name)
|
|
28
|
+
WHERE workspace_folder_name IS NOT NULL;
|
|
29
|
+
|
|
30
|
+
CREATE UNIQUE INDEX IF NOT EXISTS uq_threads_tenant_workspace_folder_name
|
|
31
|
+
ON threads (tenant_id, workspace_folder_name)
|
|
32
|
+
WHERE workspace_folder_name IS NOT NULL;
|
|
33
|
+
|
|
34
|
+
CREATE UNIQUE INDEX IF NOT EXISTS uq_goals_tenant_workspace_folder_name
|
|
35
|
+
ON goals (tenant_id, workspace_folder_name)
|
|
36
|
+
WHERE workspace_folder_name IS NOT NULL;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
-- 0141_eval_runs_desktop_pi_provenance.sql
|
|
2
|
+
--
|
|
3
|
+
-- Adds provenance and explicit selection tracking for desktop-local Pi eval
|
|
4
|
+
-- runs. Existing cloud/AgentCore rows backfill to the default values so
|
|
5
|
+
-- historical dashboards continue to read as AgentCore-backed runs.
|
|
6
|
+
--
|
|
7
|
+
-- Plan: docs/plans/2026-06-01-004-feat-desktop-pi-redteam-evals-plan.md (U2)
|
|
8
|
+
--
|
|
9
|
+
-- creates-column: public.eval_runs.execution_target
|
|
10
|
+
-- creates-column: public.eval_runs.runtime_host
|
|
11
|
+
-- creates-column: public.eval_runs.selected_test_case_ids
|
|
12
|
+
-- creates: public.idx_eval_runs_tenant_execution_target_created
|
|
13
|
+
|
|
14
|
+
\set ON_ERROR_STOP on
|
|
15
|
+
|
|
16
|
+
BEGIN;
|
|
17
|
+
|
|
18
|
+
SET LOCAL lock_timeout = '30s';
|
|
19
|
+
SET LOCAL statement_timeout = '120s';
|
|
20
|
+
|
|
21
|
+
SELECT pg_advisory_xact_lock(hashtext('eval_runs_desktop_pi_provenance'));
|
|
22
|
+
|
|
23
|
+
ALTER TABLE public.eval_runs
|
|
24
|
+
ADD COLUMN IF NOT EXISTS execution_target text NOT NULL DEFAULT 'agentcore',
|
|
25
|
+
ADD COLUMN IF NOT EXISTS runtime_host text NOT NULL DEFAULT 'aws-agentcore',
|
|
26
|
+
ADD COLUMN IF NOT EXISTS selected_test_case_ids uuid[] NOT NULL DEFAULT '{}'::uuid[];
|
|
27
|
+
|
|
28
|
+
CREATE INDEX IF NOT EXISTS idx_eval_runs_tenant_execution_target_created
|
|
29
|
+
ON public.eval_runs (tenant_id, execution_target, created_at);
|
|
30
|
+
|
|
31
|
+
COMMIT;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
-- Retire legacy active Agent runtime values and make Pi the only stored runtime.
|
|
2
|
+
--
|
|
3
|
+
-- creates-constraint: public.agents.agents_runtime_check
|
|
4
|
+
-- creates-constraint: public.agent_templates.agent_templates_runtime_check
|
|
5
|
+
|
|
6
|
+
\set ON_ERROR_STOP on
|
|
7
|
+
|
|
8
|
+
BEGIN;
|
|
9
|
+
|
|
10
|
+
SET LOCAL lock_timeout = '30s';
|
|
11
|
+
SET LOCAL statement_timeout = '120s';
|
|
12
|
+
|
|
13
|
+
SELECT pg_advisory_xact_lock(hashtext('pi_only_agent_runtime'));
|
|
14
|
+
|
|
15
|
+
\echo '-- allowing legacy runtime values during backfill --'
|
|
16
|
+
|
|
17
|
+
ALTER TABLE public.agents DROP CONSTRAINT IF EXISTS agents_runtime_check;
|
|
18
|
+
ALTER TABLE public.agents
|
|
19
|
+
ADD CONSTRAINT agents_runtime_check
|
|
20
|
+
CHECK (runtime IN ('strands', 'pi', 'flue'));
|
|
21
|
+
|
|
22
|
+
ALTER TABLE public.agent_templates DROP CONSTRAINT IF EXISTS agent_templates_runtime_check;
|
|
23
|
+
ALTER TABLE public.agent_templates
|
|
24
|
+
ADD CONSTRAINT agent_templates_runtime_check
|
|
25
|
+
CHECK (runtime IN ('strands', 'pi', 'flue'));
|
|
26
|
+
|
|
27
|
+
\echo '-- backfilling agents.runtime to pi --'
|
|
28
|
+
|
|
29
|
+
UPDATE public.agents
|
|
30
|
+
SET runtime = 'pi',
|
|
31
|
+
updated_at = NOW()
|
|
32
|
+
WHERE runtime IN ('strands', 'flue');
|
|
33
|
+
|
|
34
|
+
\echo '-- backfilling agent_templates.runtime to pi --'
|
|
35
|
+
|
|
36
|
+
UPDATE public.agent_templates
|
|
37
|
+
SET runtime = 'pi',
|
|
38
|
+
updated_at = NOW()
|
|
39
|
+
WHERE runtime IN ('strands', 'flue');
|
|
40
|
+
|
|
41
|
+
\echo '-- setting pi runtime defaults --'
|
|
42
|
+
|
|
43
|
+
ALTER TABLE public.agents
|
|
44
|
+
ALTER COLUMN runtime SET DEFAULT 'pi';
|
|
45
|
+
|
|
46
|
+
ALTER TABLE public.agent_templates
|
|
47
|
+
ALTER COLUMN runtime SET DEFAULT 'pi';
|
|
48
|
+
|
|
49
|
+
\echo '-- tightening runtime CHECK constraints to pi-only --'
|
|
50
|
+
|
|
51
|
+
ALTER TABLE public.agents DROP CONSTRAINT IF EXISTS agents_runtime_check;
|
|
52
|
+
ALTER TABLE public.agents
|
|
53
|
+
ADD CONSTRAINT agents_runtime_check
|
|
54
|
+
CHECK (runtime = 'pi');
|
|
55
|
+
|
|
56
|
+
ALTER TABLE public.agent_templates DROP CONSTRAINT IF EXISTS agent_templates_runtime_check;
|
|
57
|
+
ALTER TABLE public.agent_templates
|
|
58
|
+
ADD CONSTRAINT agent_templates_runtime_check
|
|
59
|
+
CHECK (runtime = 'pi');
|
|
60
|
+
|
|
61
|
+
COMMIT;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
-- Purpose: add Firecrawl-backed Web Extraction opt-in fields for agents and templates.
|
|
2
|
+
-- Plan: docs/plans/2026-06-04-002-feat-firecrawl-web-extraction-plan.md (U1)
|
|
3
|
+
-- Apply manually: psql "$DATABASE_URL" -v ON_ERROR_STOP=1 -f packages/database-pg/drizzle/0143_add_web_extract_builtin_config.sql
|
|
4
|
+
-- creates-column: public.agents.web_extract
|
|
5
|
+
-- creates-column: public.agent_templates.web_extract
|
|
6
|
+
|
|
7
|
+
\set ON_ERROR_STOP on
|
|
8
|
+
|
|
9
|
+
BEGIN;
|
|
10
|
+
|
|
11
|
+
SET LOCAL lock_timeout = '5s';
|
|
12
|
+
SET LOCAL statement_timeout = '120s';
|
|
13
|
+
|
|
14
|
+
ALTER TABLE public.agents
|
|
15
|
+
ADD COLUMN IF NOT EXISTS web_extract jsonb DEFAULT '{"enabled": true}'::jsonb;
|
|
16
|
+
|
|
17
|
+
ALTER TABLE public.agent_templates
|
|
18
|
+
ADD COLUMN IF NOT EXISTS web_extract jsonb DEFAULT '{"enabled": true}'::jsonb;
|
|
19
|
+
|
|
20
|
+
UPDATE public.agents
|
|
21
|
+
SET web_extract = '{"enabled": true}'::jsonb
|
|
22
|
+
WHERE web_extract IS NULL;
|
|
23
|
+
|
|
24
|
+
UPDATE public.agent_templates
|
|
25
|
+
SET web_extract = '{"enabled": true}'::jsonb
|
|
26
|
+
WHERE web_extract IS NULL;
|
|
27
|
+
|
|
28
|
+
COMMIT;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
-- Purpose: re-add a per-tenant index of the S3 skill catalog so the Skills
|
|
2
|
+
-- settings list reads one query instead of scanning S3 + reading every file.
|
|
3
|
+
-- Derived read cache; S3 stays source of truth. Per-tenant (the dropped
|
|
4
|
+
-- global skill_catalog from 0131 was not tenant-scoped).
|
|
5
|
+
-- Plan: docs/plans/2026-06-04-002-feat-skills-catalog-db-index-plan.md U1
|
|
6
|
+
-- Apply manually (no CI migration runner):
|
|
7
|
+
-- psql "$DATABASE_URL" -f packages/database-pg/drizzle/0144_skill_catalog_index.sql
|
|
8
|
+
-- Pre-flight:
|
|
9
|
+
-- SELECT to_regclass('public.skill_catalog');
|
|
10
|
+
-- SELECT to_regclass('public.uq_skill_catalog_tenant_slug');
|
|
11
|
+
-- creates: public.skill_catalog
|
|
12
|
+
-- creates: public.uq_skill_catalog_tenant_slug
|
|
13
|
+
-- creates: public.idx_skill_catalog_tenant
|
|
14
|
+
-- creates-constraint: public.skill_catalog.skill_catalog_tenant_id_fkey
|
|
15
|
+
|
|
16
|
+
BEGIN;
|
|
17
|
+
|
|
18
|
+
SELECT pg_advisory_xact_lock(hashtext('migration:0144_skill_catalog_index'));
|
|
19
|
+
|
|
20
|
+
CREATE TABLE IF NOT EXISTS skill_catalog (
|
|
21
|
+
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
22
|
+
tenant_id uuid NOT NULL REFERENCES tenants(id) ON DELETE CASCADE,
|
|
23
|
+
slug text NOT NULL,
|
|
24
|
+
display_name text,
|
|
25
|
+
description text,
|
|
26
|
+
category text,
|
|
27
|
+
icon text,
|
|
28
|
+
tags text[],
|
|
29
|
+
content_sha text NOT NULL,
|
|
30
|
+
created_at timestamptz NOT NULL DEFAULT now(),
|
|
31
|
+
updated_at timestamptz NOT NULL DEFAULT now()
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
CREATE UNIQUE INDEX IF NOT EXISTS uq_skill_catalog_tenant_slug
|
|
35
|
+
ON skill_catalog (tenant_id, slug);
|
|
36
|
+
|
|
37
|
+
CREATE INDEX IF NOT EXISTS idx_skill_catalog_tenant
|
|
38
|
+
ON skill_catalog (tenant_id);
|
|
39
|
+
|
|
40
|
+
COMMIT;
|