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,163 @@
|
|
|
1
|
+
# ============================================================================
|
|
2
|
+
# SSM runtime-config (plan 2026-06-11-006)
|
|
3
|
+
#
|
|
4
|
+
# All non-identity, non-secret configuration for the api handlers lives in
|
|
5
|
+
# ONE terraform-owned SSM parameter per stage. Handlers read it once per
|
|
6
|
+
# container through the AWS Parameters and Secrets Lambda Extension
|
|
7
|
+
# (@thinkwork/runtime-config; env always wins over the document), so the
|
|
8
|
+
# hard 4KB Lambda env quota (#2375) stops being a deploy-failure class.
|
|
9
|
+
#
|
|
10
|
+
# IAM: the existing ssm-param-read grant in aws_iam_policy.api_data_plane
|
|
11
|
+
# (iam-grouped.tf) already grants ssm:GetParameter on
|
|
12
|
+
# arn:...:parameter/thinkwork/<stage>/*, which covers this parameter,
|
|
13
|
+
# and its secrets-manager grant covers the
|
|
14
|
+
# Secrets Manager reads — no new grants are needed here. R9's inline→managed
|
|
15
|
+
# consolidation happens in U6.
|
|
16
|
+
# ============================================================================
|
|
17
|
+
|
|
18
|
+
locals {
|
|
19
|
+
# AWS Parameters and Secrets Lambda Extension — an AWS-managed public
|
|
20
|
+
# layer whose publisher account id varies per region. Version 18 verified
|
|
21
|
+
# in each listed region on 2026-06-11 (aws lambda get-layer-version-by-arn).
|
|
22
|
+
# Regions not listed run without the layer: @thinkwork/runtime-config
|
|
23
|
+
# falls back to a one-shot SDK GetParameter/GetSecretValue (R5), so this
|
|
24
|
+
# map is an optimization, not a requirement. Bump the version here when
|
|
25
|
+
# AWS retires old layer versions.
|
|
26
|
+
parameters_secrets_extension_arns = {
|
|
27
|
+
us-east-1 = "arn:aws:lambda:us-east-1:177933569100:layer:AWS-Parameters-and-Secrets-Lambda-Extension:18"
|
|
28
|
+
us-east-2 = "arn:aws:lambda:us-east-2:590474943231:layer:AWS-Parameters-and-Secrets-Lambda-Extension:18"
|
|
29
|
+
us-west-1 = "arn:aws:lambda:us-west-1:997803712105:layer:AWS-Parameters-and-Secrets-Lambda-Extension:18"
|
|
30
|
+
us-west-2 = "arn:aws:lambda:us-west-2:345057560386:layer:AWS-Parameters-and-Secrets-Lambda-Extension:18"
|
|
31
|
+
eu-west-1 = "arn:aws:lambda:eu-west-1:015030872274:layer:AWS-Parameters-and-Secrets-Lambda-Extension:18"
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
parameters_secrets_extension_arn = var.parameters_secrets_extension_layer_arn != "" ? var.parameters_secrets_extension_layer_arn : lookup(local.parameters_secrets_extension_arns, var.region, "")
|
|
35
|
+
|
|
36
|
+
api_handler_layers = local.parameters_secrets_extension_arn != "" ? [local.parameters_secrets_extension_arn] : []
|
|
37
|
+
|
|
38
|
+
# The document body: config-class common env + graphql-http's config-class
|
|
39
|
+
# extras. Secrets and identity never enter this map (R4) — it is a plain
|
|
40
|
+
# String parameter visible to anyone with ssm:GetParameter. Empty values
|
|
41
|
+
# (disabled features) are stripped: the loader treats "" as unset on both
|
|
42
|
+
# the env and document layers, so carrying them would only spend bytes.
|
|
43
|
+
runtime_config_document = {
|
|
44
|
+
for key, value in merge(
|
|
45
|
+
local.config_env,
|
|
46
|
+
local.graphql_http_config_env,
|
|
47
|
+
) : key => value if value != ""
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
# ----------------------------------------------------------------------------
|
|
52
|
+
# Platform secrets (plan 2026-06-11-006 U5/R4)
|
|
53
|
+
#
|
|
54
|
+
# API_AUTH_SECRET and APPSYNC_API_KEY leave plaintext Lambda env: the
|
|
55
|
+
# runtime-config loader prefetches these at cold start (getApiAuthSecret /
|
|
56
|
+
# getAppsyncApiKey accessors, env-wins during the transition window). Names
|
|
57
|
+
# use the `thinkwork/${stage}/...` prefix so the shared role's existing
|
|
58
|
+
# `secretsmanager:GetSecretValue` grant on `thinkwork/*` covers them.
|
|
59
|
+
# The env copies in common_env are dropped one release AFTER this ships
|
|
60
|
+
# (R8 two-release transition) so mid-apply old-code containers never lose
|
|
61
|
+
# their env copy before the prefetch path exists.
|
|
62
|
+
# ----------------------------------------------------------------------------
|
|
63
|
+
|
|
64
|
+
resource "aws_secretsmanager_secret" "api_auth" {
|
|
65
|
+
name = "thinkwork/${var.stage}/api-auth"
|
|
66
|
+
description = "Shared service-auth Bearer secret between platform services. Prefetched at Lambda cold start by @thinkwork/runtime-config."
|
|
67
|
+
tags = {
|
|
68
|
+
Name = "thinkwork-${var.stage}-api-auth"
|
|
69
|
+
Stage = var.stage
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
resource "aws_secretsmanager_secret_version" "api_auth" {
|
|
74
|
+
secret_id = aws_secretsmanager_secret.api_auth.id
|
|
75
|
+
secret_string = var.api_auth_secret
|
|
76
|
+
|
|
77
|
+
# Track the var (no ignore_changes): var.api_auth_secret is authoritative
|
|
78
|
+
# — tfvars on dev, the controller runner on customer environments (which
|
|
79
|
+
# itself reuses this secret's previous value). Pinning the first value
|
|
80
|
+
# here let a runner-side rotation drift env away from Secrets Manager on
|
|
81
|
+
# TEI (v174 apply), which becomes a fleet-wide 401 once the env copy
|
|
82
|
+
# drops (R8). Rotation goes through tfvars / runner secrets, not the
|
|
83
|
+
# console.
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
resource "aws_secretsmanager_secret" "appsync_api_key" {
|
|
87
|
+
name = "thinkwork/${var.stage}/appsync-api-key"
|
|
88
|
+
description = "AppSync API key for subscription notify fan-out. Prefetched at Lambda cold start by @thinkwork/runtime-config."
|
|
89
|
+
tags = {
|
|
90
|
+
Name = "thinkwork-${var.stage}-appsync-api-key"
|
|
91
|
+
Stage = var.stage
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
resource "aws_secretsmanager_secret_version" "appsync_api_key" {
|
|
96
|
+
secret_id = aws_secretsmanager_secret.appsync_api_key.id
|
|
97
|
+
secret_string = var.appsync_api_key
|
|
98
|
+
|
|
99
|
+
# AppSync keys are terraform-rotated (the appsync module recreates them),
|
|
100
|
+
# so track the var here — unlike api_auth there is no operator rotation
|
|
101
|
+
# path outside terraform.
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
# The standalone compliance Lambdas (anchor, export-runner) bundle the
|
|
105
|
+
# runtime-config loader but run under dedicated roles that lack the shared
|
|
106
|
+
# role's ssm grant. Without these, every cold start auto-prime fails
|
|
107
|
+
# AccessDenied and the loader retries on its 15s negative-cache cadence —
|
|
108
|
+
# env-wins keeps them functional (their keys ride their own env blocks),
|
|
109
|
+
# but the doomed GetParameter churn is noise worth closing.
|
|
110
|
+
resource "aws_iam_role_policy" "compliance_anchor_runtime_config_read" {
|
|
111
|
+
count = local.deploy_lambda_handlers && var.compliance_anchor_lambda_role_name != "" ? 1 : 0
|
|
112
|
+
name = "runtime-config-read"
|
|
113
|
+
role = var.compliance_anchor_lambda_role_name
|
|
114
|
+
|
|
115
|
+
policy = jsonencode({
|
|
116
|
+
Version = "2012-10-17"
|
|
117
|
+
Statement = [{
|
|
118
|
+
Effect = "Allow"
|
|
119
|
+
Action = ["ssm:GetParameter"]
|
|
120
|
+
Resource = "arn:aws:ssm:${var.region}:${var.account_id}:parameter/thinkwork/${var.stage}/runtime-config"
|
|
121
|
+
}]
|
|
122
|
+
})
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
resource "aws_iam_role_policy" "compliance_exports_runner_runtime_config_read" {
|
|
126
|
+
count = local.deploy_lambda_handlers && var.compliance_exports_runner_role_name != "" ? 1 : 0
|
|
127
|
+
name = "runtime-config-read"
|
|
128
|
+
role = var.compliance_exports_runner_role_name
|
|
129
|
+
|
|
130
|
+
policy = jsonencode({
|
|
131
|
+
Version = "2012-10-17"
|
|
132
|
+
Statement = [{
|
|
133
|
+
Effect = "Allow"
|
|
134
|
+
Action = ["ssm:GetParameter"]
|
|
135
|
+
Resource = "arn:aws:ssm:${var.region}:${var.account_id}:parameter/thinkwork/${var.stage}/runtime-config"
|
|
136
|
+
}]
|
|
137
|
+
})
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
resource "aws_ssm_parameter" "runtime_config" {
|
|
141
|
+
count = local.deploy_lambda_handlers ? 1 : 0
|
|
142
|
+
|
|
143
|
+
name = "/thinkwork/${var.stage}/runtime-config"
|
|
144
|
+
type = "String"
|
|
145
|
+
# Advanced tier raises the value ceiling from 4KB (which would rebuild the
|
|
146
|
+
# exact quota we are escaping) to 8KB, at ~$0.05/mo per stage.
|
|
147
|
+
tier = "Advanced"
|
|
148
|
+
value = jsonencode(local.runtime_config_document)
|
|
149
|
+
|
|
150
|
+
lifecycle {
|
|
151
|
+
precondition {
|
|
152
|
+
# Growth surfaces at plan time in CI, not as a runtime incident in a
|
|
153
|
+
# customer account. If this ever trips, split the document by concern
|
|
154
|
+
# — the loader's document-merge seam is the extension point.
|
|
155
|
+
condition = length(jsonencode(local.runtime_config_document)) < 7168
|
|
156
|
+
error_message = "runtime-config document exceeds the 7KB plan-time ceiling (8KB advanced-tier hard limit). Split the document or prune keys — do not raise this limit casually."
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
tags = {
|
|
161
|
+
Name = "thinkwork-${var.stage}-runtime-config"
|
|
162
|
+
}
|
|
163
|
+
}
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
################################################################################
|
|
21
21
|
|
|
22
22
|
resource "aws_secretsmanager_secret" "slack_app_credentials" {
|
|
23
|
+
count = var.enable_slack_workspace_app ? 1 : 0
|
|
23
24
|
name = "thinkwork/${var.stage}/slack/app"
|
|
24
25
|
description = "Slack workspace app credentials (signing_secret, client_id, client_secret). Populate via Secrets Manager; never via tfvars."
|
|
25
26
|
tags = {
|
|
@@ -30,7 +31,8 @@ resource "aws_secretsmanager_secret" "slack_app_credentials" {
|
|
|
30
31
|
}
|
|
31
32
|
|
|
32
33
|
resource "aws_secretsmanager_secret_version" "slack_app_credentials_initial" {
|
|
33
|
-
|
|
34
|
+
count = var.enable_slack_workspace_app ? 1 : 0
|
|
35
|
+
secret_id = aws_secretsmanager_secret.slack_app_credentials[0].id
|
|
34
36
|
secret_string = jsonencode({
|
|
35
37
|
signing_secret = ""
|
|
36
38
|
client_id = ""
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
################################################################################
|
|
29
29
|
|
|
30
30
|
resource "aws_secretsmanager_secret" "stripe_api_credentials" {
|
|
31
|
+
count = var.enable_stripe_billing ? 1 : 0
|
|
31
32
|
name = "thinkwork/${var.stage}/stripe/api-credentials"
|
|
32
33
|
description = "Stripe API credentials (secret_key, publishable_key, webhook_signing_secret). Populate via `aws secretsmanager put-secret-value`; never via tfvars."
|
|
33
34
|
tags = {
|
|
@@ -38,7 +39,8 @@ resource "aws_secretsmanager_secret" "stripe_api_credentials" {
|
|
|
38
39
|
}
|
|
39
40
|
|
|
40
41
|
resource "aws_secretsmanager_secret_version" "stripe_api_credentials_initial" {
|
|
41
|
-
|
|
42
|
+
count = var.enable_stripe_billing ? 1 : 0
|
|
43
|
+
secret_id = aws_secretsmanager_secret.stripe_api_credentials[0].id
|
|
42
44
|
secret_string = jsonencode({
|
|
43
45
|
secret_key = ""
|
|
44
46
|
publishable_key = ""
|
|
@@ -61,6 +61,36 @@ variable "bucket_arn" {
|
|
|
61
61
|
type = string
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
+
variable "billing_export_bucket_name" {
|
|
65
|
+
description = "Optional S3 bucket containing AWS Data Exports/CUR 2.0 manifests for bill reconciliation. Empty leaves the scheduled reconciler in no-op mode; targeted invokes can still pass a manifest bucket."
|
|
66
|
+
type = string
|
|
67
|
+
default = ""
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
variable "billing_export_manifest_key" {
|
|
71
|
+
description = "Optional S3 key for the latest AWS billing export manifest to import on the scheduled bill reconciler run."
|
|
72
|
+
type = string
|
|
73
|
+
default = ""
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
variable "billing_reconciliation_tolerance_usd" {
|
|
77
|
+
description = "Absolute USD tolerance used when comparing ThinkWork projected aggregate spend to AWS billing export spend."
|
|
78
|
+
type = number
|
|
79
|
+
default = 0.01
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
variable "plugin_catalog_github_token_secret_arn" {
|
|
83
|
+
description = "Optional Secrets Manager ARN/name containing a GitHub token for plugin catalog release-asset fetches. Empty uses unauthenticated GitHub requests."
|
|
84
|
+
type = string
|
|
85
|
+
default = ""
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
variable "brain_artifacts_kms_key_arn" {
|
|
89
|
+
description = "Optional KMS key ARN used to encrypt canonical Company Brain artifacts. AES256 encryption is used when unset."
|
|
90
|
+
type = string
|
|
91
|
+
default = ""
|
|
92
|
+
}
|
|
93
|
+
|
|
64
94
|
variable "enable_workspace_orchestration" {
|
|
65
95
|
description = "Enable S3 EventBridge/SQS routing for workspace file orchestration."
|
|
66
96
|
type = bool
|
|
@@ -153,6 +183,12 @@ variable "api_auth_secret" {
|
|
|
153
183
|
default = ""
|
|
154
184
|
}
|
|
155
185
|
|
|
186
|
+
variable "bootstrap_credential_lease_kms_key_id" {
|
|
187
|
+
description = "Optional KMS key ID or ARN used by Secrets Manager for temporary bootstrap credential leases. Empty uses the AWS-managed Secrets Manager key."
|
|
188
|
+
type = string
|
|
189
|
+
default = ""
|
|
190
|
+
}
|
|
191
|
+
|
|
156
192
|
variable "extension_proxy_backends_json" {
|
|
157
193
|
description = "JSON map of enabled Admin extension ids to allowlisted backend base URLs. Example: {\"customer-module\":{\"baseUrl\":\"https://extension.example.com\"}}"
|
|
158
194
|
type = string
|
|
@@ -203,135 +239,185 @@ variable "agentcore_memory_id" {
|
|
|
203
239
|
}
|
|
204
240
|
|
|
205
241
|
variable "memory_engine" {
|
|
206
|
-
description = "Active long-term memory engine for this deployment. Exactly one engine is canonical for recall/inspect/export.
|
|
242
|
+
description = "Active long-term memory engine for this deployment. Exactly one engine is canonical for recall/inspect/export. Hosted ThinkWork may choose 'cognee' when the Company Brain substrate is enabled."
|
|
207
243
|
type = string
|
|
208
244
|
default = "hindsight"
|
|
209
245
|
validation {
|
|
210
|
-
condition = contains(["hindsight", "agentcore"], var.memory_engine)
|
|
211
|
-
error_message = "memory_engine must be 'hindsight' or '
|
|
246
|
+
condition = contains(["hindsight", "agentcore", "cognee"], var.memory_engine)
|
|
247
|
+
error_message = "memory_engine must be 'hindsight', 'agentcore', or 'cognee'."
|
|
212
248
|
}
|
|
213
249
|
}
|
|
214
250
|
|
|
215
|
-
variable "
|
|
216
|
-
description = "
|
|
251
|
+
variable "cognee_enabled" {
|
|
252
|
+
description = "Whether the Cognee knowledge graph add-on is enabled for this deployment."
|
|
253
|
+
type = bool
|
|
254
|
+
default = false
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
variable "cognee_endpoint" {
|
|
258
|
+
description = "Internal Cognee API endpoint (empty when disabled)."
|
|
217
259
|
type = string
|
|
218
260
|
default = ""
|
|
219
261
|
}
|
|
220
262
|
|
|
221
|
-
variable "
|
|
222
|
-
description = "
|
|
263
|
+
variable "cognee_log_group_name" {
|
|
264
|
+
description = "CloudWatch log group for Cognee (empty when disabled)."
|
|
223
265
|
type = string
|
|
224
266
|
default = ""
|
|
225
267
|
}
|
|
226
268
|
|
|
227
|
-
variable "
|
|
228
|
-
description = "
|
|
269
|
+
variable "cognee_backend_mode" {
|
|
270
|
+
description = "Selected Cognee backend mode (empty when disabled)."
|
|
229
271
|
type = string
|
|
230
272
|
default = ""
|
|
231
273
|
}
|
|
232
274
|
|
|
233
|
-
variable "
|
|
234
|
-
description = "
|
|
275
|
+
variable "cognee_cluster_arn" {
|
|
276
|
+
description = "ECS cluster ARN for Cognee (empty when disabled)."
|
|
235
277
|
type = string
|
|
236
278
|
default = ""
|
|
237
279
|
}
|
|
238
280
|
|
|
239
|
-
variable "
|
|
240
|
-
description = "ECS
|
|
281
|
+
variable "cognee_service_name" {
|
|
282
|
+
description = "ECS service name for Cognee (empty when disabled)."
|
|
241
283
|
type = string
|
|
242
284
|
default = ""
|
|
243
285
|
}
|
|
244
286
|
|
|
245
|
-
variable "
|
|
246
|
-
description = "
|
|
287
|
+
variable "cognee_worker_subnet_ids" {
|
|
288
|
+
description = "Subnet IDs for the Knowledge Graph ingest worker Lambda VPC attachment. Leave empty to deploy the worker without VPC access."
|
|
289
|
+
type = list(string)
|
|
290
|
+
default = []
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
variable "cognee_worker_security_group_ids" {
|
|
294
|
+
description = "Security group IDs for the Knowledge Graph ingest worker Lambda VPC attachment. Leave empty to deploy the worker without VPC access."
|
|
295
|
+
type = list(string)
|
|
296
|
+
default = []
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
variable "okf_efs_subnet_ids" {
|
|
300
|
+
description = "Subnet IDs for the OKF EFS hydrator Lambda VPC attachment. Leave empty to deploy the hydrator without an EFS mount."
|
|
301
|
+
type = list(string)
|
|
302
|
+
default = []
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
variable "okf_efs_security_group_ids" {
|
|
306
|
+
description = "Security group IDs for the OKF EFS hydrator Lambda VPC attachment. Leave empty to deploy the hydrator without an EFS mount."
|
|
307
|
+
type = list(string)
|
|
308
|
+
default = []
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
variable "okf_efs_mount_target_ids" {
|
|
312
|
+
description = "EFS mount target IDs that must exist before creating the OKF EFS hydrator Lambda."
|
|
313
|
+
type = list(string)
|
|
314
|
+
default = []
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
variable "okf_efs_file_system_arn" {
|
|
318
|
+
description = "EFS file system ARN for the OKF wiki current view. Empty disables EFS IAM grants."
|
|
247
319
|
type = string
|
|
248
320
|
default = ""
|
|
249
321
|
}
|
|
250
322
|
|
|
251
|
-
variable "
|
|
252
|
-
description = "
|
|
323
|
+
variable "okf_efs_refresh_access_point_arn" {
|
|
324
|
+
description = "EFS access point ARN mounted by the okf-efs-refresh Lambda. Empty disables the mount."
|
|
253
325
|
type = string
|
|
254
326
|
default = ""
|
|
255
327
|
}
|
|
256
328
|
|
|
257
|
-
variable "
|
|
258
|
-
description = "
|
|
259
|
-
type =
|
|
260
|
-
default =
|
|
329
|
+
variable "okf_efs_mount_path" {
|
|
330
|
+
description = "Local Lambda mount path for the OKF wiki EFS view. Must be under /mnt."
|
|
331
|
+
type = string
|
|
332
|
+
default = "/mnt/thinkwork-okf"
|
|
261
333
|
}
|
|
262
334
|
|
|
263
|
-
variable "
|
|
264
|
-
description = "
|
|
335
|
+
variable "observation_classifier_model_id" {
|
|
336
|
+
description = "Bedrock model id for the observations promotion-gate classifier. Empty uses the API default (pinned Haiku)."
|
|
265
337
|
type = string
|
|
266
|
-
default = "
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
338
|
+
default = ""
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
variable "twenty_provisioned" {
|
|
342
|
+
description = "Whether the Twenty CRM retained managed-app substrate is provisioned."
|
|
343
|
+
type = bool
|
|
344
|
+
default = false
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
variable "twenty_runtime_enabled" {
|
|
348
|
+
description = "Whether the Twenty CRM server/worker runtime is enabled."
|
|
349
|
+
type = bool
|
|
350
|
+
default = false
|
|
271
351
|
}
|
|
272
352
|
|
|
273
|
-
variable "
|
|
274
|
-
description = "
|
|
353
|
+
variable "twenty_url" {
|
|
354
|
+
description = "Public Twenty CRM URL (empty when not provisioned)."
|
|
275
355
|
type = string
|
|
276
356
|
default = ""
|
|
277
357
|
}
|
|
278
358
|
|
|
279
|
-
variable "
|
|
280
|
-
description = "
|
|
359
|
+
variable "twenty_alb_arn" {
|
|
360
|
+
description = "Public Twenty ALB ARN (empty when not provisioned)."
|
|
281
361
|
type = string
|
|
282
362
|
default = ""
|
|
283
363
|
}
|
|
284
364
|
|
|
285
|
-
variable "
|
|
286
|
-
description = "
|
|
365
|
+
variable "twenty_target_group_arn" {
|
|
366
|
+
description = "Twenty server target group ARN (empty when not provisioned)."
|
|
287
367
|
type = string
|
|
288
368
|
default = ""
|
|
289
369
|
}
|
|
290
370
|
|
|
291
|
-
variable "
|
|
292
|
-
description = "
|
|
371
|
+
variable "twenty_cluster_arn" {
|
|
372
|
+
description = "ECS cluster ARN for Twenty (empty when not provisioned)."
|
|
293
373
|
type = string
|
|
294
374
|
default = ""
|
|
295
375
|
}
|
|
296
376
|
|
|
297
|
-
variable "
|
|
298
|
-
description = "
|
|
377
|
+
variable "twenty_server_service_name" {
|
|
378
|
+
description = "ECS service name for the Twenty server (empty when not provisioned)."
|
|
299
379
|
type = string
|
|
300
380
|
default = ""
|
|
301
381
|
}
|
|
302
382
|
|
|
303
|
-
variable "
|
|
304
|
-
description = "
|
|
305
|
-
type =
|
|
306
|
-
default =
|
|
383
|
+
variable "twenty_worker_service_name" {
|
|
384
|
+
description = "ECS service name for the Twenty worker (empty when not provisioned)."
|
|
385
|
+
type = string
|
|
386
|
+
default = ""
|
|
307
387
|
}
|
|
308
388
|
|
|
309
|
-
variable "
|
|
310
|
-
description = "
|
|
311
|
-
type =
|
|
312
|
-
default =
|
|
389
|
+
variable "twenty_server_log_group_name" {
|
|
390
|
+
description = "CloudWatch log group for the Twenty server (empty when not provisioned)."
|
|
391
|
+
type = string
|
|
392
|
+
default = ""
|
|
313
393
|
}
|
|
314
394
|
|
|
315
|
-
variable "
|
|
316
|
-
description = "
|
|
395
|
+
variable "twenty_worker_log_group_name" {
|
|
396
|
+
description = "CloudWatch log group for the Twenty worker (empty when not provisioned)."
|
|
317
397
|
type = string
|
|
318
398
|
default = ""
|
|
319
399
|
}
|
|
320
400
|
|
|
321
|
-
variable "
|
|
322
|
-
description = "
|
|
401
|
+
variable "agentcore_pi_function_name" {
|
|
402
|
+
description = "Pi AgentCore Lambda function name (for direct SDK invoke); empty until the Pi runtime is provisioned for the stage."
|
|
323
403
|
type = string
|
|
324
404
|
default = ""
|
|
325
405
|
}
|
|
326
406
|
|
|
327
|
-
variable "
|
|
328
|
-
description = "
|
|
407
|
+
variable "agentcore_pi_function_arn" {
|
|
408
|
+
description = "Pi AgentCore Lambda function ARN (used to grant lambda:InvokeFunction)"
|
|
329
409
|
type = string
|
|
330
410
|
default = ""
|
|
331
411
|
}
|
|
332
412
|
|
|
413
|
+
variable "enable_agentcore_pi_invoke_policy" {
|
|
414
|
+
description = "Create the API Lambda IAM policy that permits invoking the Pi AgentCore Lambda."
|
|
415
|
+
type = bool
|
|
416
|
+
default = false
|
|
417
|
+
}
|
|
418
|
+
|
|
333
419
|
variable "admin_url" {
|
|
334
|
-
description = "
|
|
420
|
+
description = "Deprecated compatibility input for the unified web app URL (e.g. https://app.thinkwork.ai)."
|
|
335
421
|
type = string
|
|
336
422
|
default = ""
|
|
337
423
|
}
|
|
@@ -354,12 +440,24 @@ variable "stripe_price_ids_json" {
|
|
|
354
440
|
default = "{}"
|
|
355
441
|
}
|
|
356
442
|
|
|
443
|
+
variable "enable_stripe_billing" {
|
|
444
|
+
description = "Provision Stripe billing Lambdas, API routes, and credentials placeholder secret."
|
|
445
|
+
type = bool
|
|
446
|
+
default = true
|
|
447
|
+
}
|
|
448
|
+
|
|
357
449
|
variable "stripe_welcome_from_email" {
|
|
358
450
|
description = "Override From: address on the Stripe post-checkout welcome email. Must be an SES-verified identity. Empty string falls back to the in-code default (hello@agents.thinkwork.ai, which uses the already-verified SES inbound domain). Set to hello@thinkwork.ai once the bare-apex sender identity is verified."
|
|
359
451
|
type = string
|
|
360
452
|
default = ""
|
|
361
453
|
}
|
|
362
454
|
|
|
455
|
+
variable "enable_slack_workspace_app" {
|
|
456
|
+
description = "Provision Slack workspace app Lambdas, API routes, and credentials placeholder secret."
|
|
457
|
+
type = bool
|
|
458
|
+
default = true
|
|
459
|
+
}
|
|
460
|
+
|
|
363
461
|
variable "appsync_realtime_url" {
|
|
364
462
|
description = "AppSync realtime/WebSocket endpoint URL"
|
|
365
463
|
type = string
|
|
@@ -372,6 +470,18 @@ variable "ecr_repository_url" {
|
|
|
372
470
|
default = ""
|
|
373
471
|
}
|
|
374
472
|
|
|
473
|
+
variable "ecr_repository_provisioned" {
|
|
474
|
+
description = "Static flag: an ECR repository exists for image-based handlers AND their image tags are seeded (CI pushes skill-trust-runner-latest for repo-managed stages). count cannot depend on the repository URL attribute (unknown until apply in fresh accounts)."
|
|
475
|
+
type = bool
|
|
476
|
+
default = false
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
variable "manage_bedrock_invocation_logging" {
|
|
480
|
+
description = "Own the account/region-scoped Bedrock model-invocation logging resources (log group, IAM role, account logging configuration). Only one stage per account+region may set this — the log group name is deliberately stage-neutral."
|
|
481
|
+
type = bool
|
|
482
|
+
default = true
|
|
483
|
+
}
|
|
484
|
+
|
|
375
485
|
variable "cors_allowed_origins" {
|
|
376
486
|
description = "Allowed CORS origins for the API Gateway. Use [\"*\"] for development."
|
|
377
487
|
type = list(string)
|
|
@@ -396,6 +506,24 @@ variable "company_brain_source_agent_model_id" {
|
|
|
396
506
|
default = "us.anthropic.claude-haiku-4-5-20251001-v1:0"
|
|
397
507
|
}
|
|
398
508
|
|
|
509
|
+
variable "company_brain_backdoor_install_key_secret_arn" {
|
|
510
|
+
description = "Optional Secrets Manager ARN containing the temporary Company Brain backdoor install key. Empty disables the backdoor. The raw key is never stored in tfvars or the runtime-config document."
|
|
511
|
+
type = string
|
|
512
|
+
default = ""
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
variable "company_brain_backdoor_install_key_stages" {
|
|
516
|
+
description = "Comma-separated stage allowlist for the temporary Company Brain backdoor install key. Both this value and company_brain_backdoor_install_key_secret_arn must be set for deployed backdoor redemption."
|
|
517
|
+
type = string
|
|
518
|
+
default = ""
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
variable "kg_obs_max_candidates_per_run" {
|
|
522
|
+
description = "Per-run candidate cap for the observations → Knowledge Graph ingest worker (KG_OBS_MAX_CANDIDATES_PER_RUN). Bounds the layered-gate classifier cost AND keeps each Cognee cognify small enough to index within budget on the single dogfood task; truncated runs self-invoke to drain the remaining backlog. Stored as a string because the Lambda reads it verbatim from env."
|
|
523
|
+
type = string
|
|
524
|
+
default = "10"
|
|
525
|
+
}
|
|
526
|
+
|
|
399
527
|
variable "wiki_aggregation_pass_enabled" {
|
|
400
528
|
description = "Feature flag for the wiki aggregation pass (parent section rollups + section promotion). Pipeline stops after leaf compile when this is off and never populates hub rollups. Stored as a string because the Lambda reads it verbatim from env; must be 'true' / '1' / 'yes' to enable."
|
|
401
529
|
type = string
|
|
@@ -408,6 +536,17 @@ variable "wiki_deterministic_linking_enabled" {
|
|
|
408
536
|
default = "true"
|
|
409
537
|
}
|
|
410
538
|
|
|
539
|
+
variable "wiki_source" {
|
|
540
|
+
description = "Wiki pipeline source dispatch (plan 2026-06-09-004 U10). 'planner' (default) runs the original LLM compile path; 'graph' runs the deterministic graph→wiki materializer over the knowledge-graph mirror and makes successful observation-ingest runs the compile trigger. Variable-ized (not hardcoded) per the wiki-compile env precedent so unrelated deploys don't reset the flag; the Lambda reads it verbatim from env and treats any value other than 'graph' as 'planner'."
|
|
541
|
+
type = string
|
|
542
|
+
default = "planner"
|
|
543
|
+
|
|
544
|
+
validation {
|
|
545
|
+
condition = contains(["planner", "graph"], var.wiki_source)
|
|
546
|
+
error_message = "wiki_source must be 'planner' or 'graph'."
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
|
|
411
550
|
variable "google_places_api_key" {
|
|
412
551
|
description = "Google Places API (New) key used by wiki-compile for POI → city/state/country hierarchy enrichment. Stored as a SecureString SSM parameter at /thinkwork/<stage>/google-places/api-key. Empty default creates the parameter with a placeholder value; operator populates via `aws ssm put-parameter --overwrite`. The parameter's value has lifecycle.ignore_changes set so CLI rotation sticks across terraform applies. Compile gracefully degrades when the key is absent (metadata-only place rows) — never fails compile."
|
|
413
552
|
type = string
|
|
@@ -482,6 +621,42 @@ variable "routines_log_group_arn" {
|
|
|
482
621
|
default = ""
|
|
483
622
|
}
|
|
484
623
|
|
|
624
|
+
variable "deployment_state_machine_arn" {
|
|
625
|
+
description = "ARN of the GitHub-free deployment orchestration state machine. Passed to deployment-sessions and graphql-http so Settings can start release updates."
|
|
626
|
+
type = string
|
|
627
|
+
default = ""
|
|
628
|
+
}
|
|
629
|
+
|
|
630
|
+
variable "deployment_control_plane_enabled" {
|
|
631
|
+
description = "Whether deployment control-plane routes and handlers should be provisioned. Kept separate from deployment_state_machine_arn because the ARN may be apply-time unknown."
|
|
632
|
+
type = bool
|
|
633
|
+
default = false
|
|
634
|
+
}
|
|
635
|
+
|
|
636
|
+
variable "deployment_evidence_bucket" {
|
|
637
|
+
description = "S3 bucket name that stores deployment runner evidence. Passed to deployment-sessions and graphql-http so Settings can report release update evidence."
|
|
638
|
+
type = string
|
|
639
|
+
default = ""
|
|
640
|
+
}
|
|
641
|
+
|
|
642
|
+
variable "deployment_release_version" {
|
|
643
|
+
description = "Selected ThinkWork release version used for managed application deployment jobs."
|
|
644
|
+
type = string
|
|
645
|
+
default = "unresolved"
|
|
646
|
+
}
|
|
647
|
+
|
|
648
|
+
variable "deployment_release_manifest_url" {
|
|
649
|
+
description = "Selected ThinkWork release manifest URL used for managed application deployment jobs."
|
|
650
|
+
type = string
|
|
651
|
+
default = ""
|
|
652
|
+
}
|
|
653
|
+
|
|
654
|
+
variable "deployment_release_manifest_sha256" {
|
|
655
|
+
description = "Selected ThinkWork release manifest SHA-256 used for managed application deployment jobs."
|
|
656
|
+
type = string
|
|
657
|
+
default = ""
|
|
658
|
+
}
|
|
659
|
+
|
|
485
660
|
# ---------------------------------------------------------------------------
|
|
486
661
|
# Phase 3 U4 — compliance-outbox-drainer Aurora credentials
|
|
487
662
|
# ---------------------------------------------------------------------------
|
|
@@ -587,3 +762,15 @@ variable "compliance_exports_runner_role_name" {
|
|
|
587
762
|
type = string
|
|
588
763
|
default = ""
|
|
589
764
|
}
|
|
765
|
+
|
|
766
|
+
variable "knowledge_graph_tool_enabled" {
|
|
767
|
+
description = "Stage gate for the Pi knowledge_graph_search tool (plan 2026-06-09-004 U8). Per-agent tool policy gates on top."
|
|
768
|
+
type = bool
|
|
769
|
+
default = true
|
|
770
|
+
}
|
|
771
|
+
|
|
772
|
+
variable "parameters_secrets_extension_layer_arn" {
|
|
773
|
+
description = "Override for the AWS Parameters and Secrets Lambda Extension layer ARN. Empty uses the per-region map in runtime-config.tf; regions absent from the map run without the layer (the runtime-config loader falls back to SDK reads)."
|
|
774
|
+
type = string
|
|
775
|
+
default = ""
|
|
776
|
+
}
|
|
@@ -98,28 +98,5 @@ resource "aws_lambda_event_source_mapping" "workspace_event_dispatcher" {
|
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
100
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
name = "thinkwork-${var.stage}-lambda-workspace-events-sqs"
|
|
105
|
-
role = aws_iam_role.lambda.id
|
|
106
|
-
|
|
107
|
-
policy = jsonencode({
|
|
108
|
-
Version = "2012-10-17"
|
|
109
|
-
Statement = [
|
|
110
|
-
{
|
|
111
|
-
Effect = "Allow"
|
|
112
|
-
Action = [
|
|
113
|
-
"sqs:ReceiveMessage",
|
|
114
|
-
"sqs:DeleteMessage",
|
|
115
|
-
"sqs:GetQueueAttributes",
|
|
116
|
-
"sqs:ChangeMessageVisibility",
|
|
117
|
-
]
|
|
118
|
-
Resource = concat(
|
|
119
|
-
[for q in aws_sqs_queue.workspace_event : q.arn],
|
|
120
|
-
[for q in aws_sqs_queue.workspace_event_dlq : q.arn],
|
|
121
|
-
)
|
|
122
|
-
},
|
|
123
|
-
]
|
|
124
|
-
})
|
|
125
|
-
}
|
|
101
|
+
# The shared-role workspace-event SQS receive grants moved to
|
|
102
|
+
# aws_iam_policy.api_data_plane in iam-grouped.tf (R9).
|