thinkwork-cli 0.12.12 → 0.12.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -38
- package/dist/{api-client-ASJWIG3Z.js → api-client-JUBCQQDF.js} +1 -1
- package/dist/{chunk-JEHV35EU.js → chunk-STY44FQO.js} +353 -30
- package/dist/cli.js +23823 -10151
- package/dist/commands/enterprise/templates/deploy-repo/.github/workflows/deploy.yml +17 -6
- package/dist/commands/enterprise/templates/deploy-repo/docs/runbook.md +81 -9
- package/dist/commands/enterprise/templates/deploy-repo/scripts/apply-release.mjs +183 -21
- package/dist/commands/enterprise/templates/deploy-repo/scripts/smoke.mjs +1 -2
- package/dist/commands/enterprise/templates/deploy-repo/terraform/main.tf +286 -0
- package/dist/drizzle/0000_petite_marvel_apes.sql +1188 -0
- package/dist/drizzle/0001_milky_surge.sql +103 -0
- package/dist/drizzle/0002_aberrant_mattie_franklin.sql +41 -0
- package/dist/drizzle/0003_exotic_ogun.sql +3 -0
- package/dist/drizzle/0004_glamorous_magneto.sql +2 -0
- package/dist/drizzle/0005_ancient_nocturne.sql +2 -0
- package/dist/drizzle/0006_new_colonel_america.sql +2 -0
- package/dist/drizzle/0007_unique_external_task_id.sql +31 -0
- package/dist/drizzle/0008_external_task_id_column.sql +43 -0
- package/dist/drizzle/0009_evaluations.sql +64 -0
- package/dist/drizzle/0010_eval_agent_template.sql +2 -0
- package/dist/drizzle/0011_eval_run_template.sql +2 -0
- package/dist/drizzle/0012_eval_seed_unique.sql +16 -0
- package/dist/drizzle/0013_motionless_white_queen.sql +140 -0
- package/dist/drizzle/0014_wiki_aggregation.sql +11 -0
- package/dist/drizzle/0015_pg_trgm_alias_title_indexes.sql +9 -0
- package/dist/drizzle/0016_wiki_schema_drops.sql +24 -0
- package/dist/drizzle/0017_wiki_places.sql +46 -0
- package/dist/drizzle/0018_agent_workspace_overlay.sql +26 -0
- package/dist/drizzle/0018_cool_firebird.sql +24 -0
- package/dist/drizzle/0018_skill_runs.sql +84 -0
- package/dist/drizzle/0019_condemned_dragon_man.sql +95 -0
- package/dist/drizzle/0019_webhook_skill_runs.sql +58 -0
- package/dist/drizzle/0020_crazy_the_anarchist.sql +9 -0
- package/dist/drizzle/0020_mutation_idempotency.sql +64 -0
- package/dist/drizzle/0021_crm_work_links.sql +76 -0
- package/dist/drizzle/0021_skill_runs_completion_hmac.sql +33 -0
- package/dist/drizzle/0022_add_billing_tables.sql +70 -0
- package/dist/drizzle/0022_seed_thinkwork_admin_permissions.sql +160 -0
- package/dist/drizzle/0022_stripe_billing_indexes.sql +48 -0
- package/dist/drizzle/0023_tenants_deactivation.sql +27 -0
- package/dist/drizzle/0024_tenant_mcp_admin_keys.sql +63 -0
- package/dist/drizzle/0025_v1_agent_architecture.sql +182 -0
- package/dist/drizzle/0026_thread_turns_add_kind.sql +28 -0
- package/dist/drizzle/0027_capability_catalog_and_manifests.sql +219 -0
- package/dist/drizzle/0028_aws_s3_extension.sql +26 -0
- package/dist/drizzle/0029_collapse_execution_types.sql +42 -0
- package/dist/drizzle/0030_retire_composition_primitives.sql +48 -0
- package/dist/drizzle/0031_thread_cleanup_drops.sql +131 -0
- package/dist/drizzle/0032_add_browser_automation_template_config.sql +24 -0
- package/dist/drizzle/0033_agent_operation_leases.sql +32 -0
- package/dist/drizzle/0034_agent_workspace_events.sql +116 -0
- package/dist/drizzle/0035_workspace_review_decisions.sql +19 -0
- package/dist/drizzle/0036_user_scoped_memory_wiki.sql +152 -0
- package/dist/drizzle/0037_user_profile_operating_model.sql +34 -0
- package/dist/drizzle/0042_agent_runtime_selector.sql +41 -0
- package/dist/drizzle/0043_wiki_search_tsv_tokenization.sql +48 -0
- package/dist/drizzle/0044_add_web_search_template_config.sql +7 -0
- package/dist/drizzle/0045_add_send_email_template_config.sql +7 -0
- package/dist/drizzle/0046_tenant_mcp_context_tools.sql +26 -0
- package/dist/drizzle/0047_add_context_engine_template_config.sql +7 -0
- package/dist/drizzle/0048_tenant_context_provider_settings.sql +22 -0
- package/dist/drizzle/0050_brain_v0_entity_subtype.sql +29 -0
- package/dist/drizzle/0051_brain_v0_tenant_entity_pages.sql +170 -0
- package/dist/drizzle/0052_brain_v0_external_refs.sql +41 -0
- package/dist/drizzle/0053_brain_v0_unresolved_mentions_subtype.sql +48 -0
- package/dist/drizzle/0054_wiki_compile_jobs_input.sql +28 -0
- package/dist/drizzle/0055_routines_stepfunctions_substrate.sql +202 -0
- package/dist/drizzle/0056_routine_step_events_dedup_idx.sql +25 -0
- package/dist/drizzle/0057_archive_legacy_python_routines.sql +36 -0
- package/dist/drizzle/0058_routines_visibility_and_owning_agent.sql +61 -0
- package/dist/drizzle/0061_routine_execution_asl_version_id.sql +29 -0
- package/dist/drizzle/0062_migrate_pi_to_flue.sql +110 -0
- package/dist/drizzle/0063_threads_session_data.sql +23 -0
- package/dist/drizzle/0064_tenant_credentials.sql +65 -0
- package/dist/drizzle/0067_thinkwork_computers_phase_one.sql +174 -0
- package/dist/drizzle/0068_drop_system_workflows_and_activation.sql +115 -0
- package/dist/drizzle/0069_compliance_schema.sql +364 -0
- package/dist/drizzle/0070_compliance_aurora_roles.sql +171 -0
- package/dist/drizzle/0072_threads_computer_ownership.sql +24 -0
- package/dist/drizzle/0073_compliance_tenant_anchor_state.sql +105 -0
- package/dist/drizzle/0074_compliance_event_hash_index.sql +49 -0
- package/dist/drizzle/0075_scheduled_jobs_computer_ownership.sql +27 -0
- package/dist/drizzle/0076_scheduled_jobs_marco_backfill.sql +69 -0
- package/dist/drizzle/0077_computers_primary_agent_id.sql +38 -0
- package/dist/drizzle/0078_tenant_customize_catalog.sql +46 -0
- package/dist/drizzle/0079_seed_tenant_customize_catalog.sql +53 -0
- package/dist/drizzle/0081_routines_catalog_slug.sql +42 -0
- package/dist/drizzle/0082_messages_parts_jsonb.sql +52 -0
- package/dist/drizzle/0083_computer_runbooks.sql +103 -0
- package/dist/drizzle/0084_artifacts_favorited_at.sql +32 -0
- package/dist/drizzle/0085_seed_thinkwork_computer_default_template.sql +46 -0
- package/dist/drizzle/0086_update_default_template_models.sql +19 -0
- package/dist/drizzle/0087_retire_oss_connectors.sql +77 -0
- package/dist/drizzle/0088_compliance_event_types_finance_pilot.sql +37 -0
- package/dist/drizzle/0089_remove_maniflow_eval_seeds.sql +81 -0
- package/dist/drizzle/0089_wiki_schema_extraction.sql +315 -0
- package/dist/drizzle/0090_brain_schema_extraction.sql +274 -0
- package/dist/drizzle/0091_drop_wiki_brain_compat_views.sql +118 -0
- package/dist/drizzle/0092_finish_oss_connector_retirement.sql +97 -0
- package/dist/drizzle/0093_eval_runs_scheduled_job_id.sql +23 -0
- package/dist/drizzle/0094_slack_workspace_app.sql +140 -0
- package/dist/drizzle/0095_eval_runs_computer_id.sql +22 -0
- package/dist/drizzle/0096_true_redteam_eval_seed_cleanup.sql +67 -0
- package/dist/drizzle/0097_shared_computers.sql +191 -0
- package/dist/drizzle/0098_business_ontology.sql +587 -0
- package/dist/drizzle/0099_thread_idle_learning.sql +145 -0
- package/dist/drizzle/0100_ontology_gated_brain_dynamic_subtypes.sql +7 -0
- package/dist/drizzle/0101_ontology_gated_unresolved_mentions_dynamic_subtypes.sql +7 -0
- package/dist/drizzle/0102_wiki_brain_owner_repair.sql +87 -0
- package/dist/drizzle/0103_brain_section_source_trigger_repair.sql +75 -0
- package/dist/drizzle/0104_expand_seed_ontology_for_user_memory.sql +166 -0
- package/dist/drizzle/0105_spaces_domain.sql +349 -0
- package/dist/drizzle/0106_expand_seed_ontology_for_triples.sql +173 -0
- package/dist/drizzle/0106_space_threads_participants.sql +197 -0
- package/dist/drizzle/0107_linked_task_mirror.sql +245 -0
- package/dist/drizzle/0108_message_mentions.sql +95 -0
- package/dist/drizzle/0109_space_owned_threads.sql +217 -0
- package/dist/drizzle/0110_thread_participant_read_state.sql +21 -0
- package/dist/drizzle/0111_agents_tenant_name_unique.sql +38 -0
- package/dist/drizzle/0112_recast_spaces_as_contextual_workrooms.sql +138 -0
- package/dist/drizzle/0113_agents_own_runtime_fields.sql +48 -0
- package/dist/drizzle/0114_migrate_templates_to_agents_and_spaces.sql +361 -0
- package/dist/drizzle/0115_remove_computer_eval_template_dependencies.sql +69 -0
- package/dist/drizzle/0116_backfill_thread_participants_access.sql +126 -0
- package/dist/drizzle/0117_space_access_mode.sql +40 -0
- package/dist/drizzle/0118_normalize_tenant_member_principal_type.sql +41 -0
- package/dist/drizzle/0119_space_knowledge_bases.sql +126 -0
- package/dist/drizzle/0120_space_automations.sql +58 -0
- package/dist/drizzle/0121_drop_computer_runbooks.sql +26 -0
- package/dist/drizzle/0122_space_email_triggers.sql +24 -0
- package/dist/drizzle/0123_single_platform_agent_and_overrides.sql +58 -0
- package/dist/drizzle/0124_thread_turns_finalized_at.sql +17 -0
- package/dist/drizzle/0125_drop_space_agent_assignments.sql +42 -0
- package/dist/drizzle/0126_migrate_flue_to_pi.sql +42 -0
- package/dist/drizzle/0127_runtime_type_observability.sql +28 -0
- package/dist/drizzle/0128_drop_eval_test_cases_agent_id.sql +37 -0
- package/dist/drizzle/0129_drop_code_factory_tables.sql +43 -0
- package/dist/drizzle/0129_eval_results_system_prompt.sql +30 -0
- package/dist/drizzle/0130_drop_teams_and_team_id_columns.sql +54 -0
- package/dist/drizzle/0131_drop_skill_catalog_and_tenant_skills.sql +33 -0
- package/dist/drizzle/0132_drop_computer_tables.sql +31 -0
- package/dist/drizzle/0133_drop_seed_view_tombstones.sql +79 -0
- package/dist/drizzle/0133_thread_turns_system_prompt.sql +22 -0
- package/dist/drizzle/0134_drop_dead_agent_runtime_tables.sql +53 -0
- package/dist/drizzle/0135_native_checklist_linked_tasks.sql +48 -0
- package/dist/drizzle/0136_goal_ledger.sql +55 -0
- package/dist/drizzle/0136_space_email_trigger_status.sql +66 -0
- package/dist/drizzle/0137_thread_participant_pins.sql +25 -0
- package/dist/drizzle/0138_users_cognito_sub.sql +30 -0
- package/dist/drizzle/0139_mobile_turn_client_id.sql +23 -0
- package/dist/drizzle/0140_workspace_folder_names.sql +36 -0
- package/dist/drizzle/0141_eval_runs_desktop_pi_provenance.sql +31 -0
- package/dist/drizzle/0142_pi_only_agent_runtime.sql +61 -0
- package/dist/drizzle/0143_add_web_extract_builtin_config.sql +28 -0
- package/dist/drizzle/0144_skill_catalog_index.sql +40 -0
- package/dist/drizzle/0145_knowledge_graph_thread_ingest.sql +512 -0
- package/dist/drizzle/0146_knowledge_graph_source_scope.sql +413 -0
- package/dist/drizzle/0147_knowledge_graph_scope_trigger_qualification.sql +211 -0
- package/dist/drizzle/0148_user_cost_attribution.sql +171 -0
- package/dist/drizzle/0149_managed_mcp_servers.sql +64 -0
- package/dist/drizzle/0149_user_model_approvals.sql +89 -0
- package/dist/drizzle/0150_bootstrap_first_admin_claim.sql +11 -0
- package/dist/drizzle/0151_managed_deployments.sql +91 -0
- package/dist/drizzle/0152_agent_profiles.sql +81 -0
- package/dist/drizzle/0153_message_mentions_agent_profile.sql +9 -0
- package/dist/drizzle/0154_customer_deployment_sessions.sql +61 -0
- package/dist/drizzle/0155_tenant_model_catalog.sql +152 -0
- package/dist/drizzle/0156_bootstrap_credential_leases.sql +52 -0
- package/dist/drizzle/0157_knowledge_graph_observations_source.sql +79 -0
- package/dist/drizzle/0158_pending_user_questions.sql +80 -0
- package/dist/drizzle/0158_wiki_tenant_scope.sql +38 -0
- package/dist/drizzle/0159_agent_profiles_space_local.sql +49 -0
- package/dist/drizzle/0159_application_plugins.sql +193 -0
- package/dist/drizzle/0159_eval_scoring_version.sql +46 -0
- package/dist/drizzle/0160_compliance_event_types_plugins.sql +37 -0
- package/dist/drizzle/0160_eval_datasets.sql +75 -0
- package/dist/drizzle/0160_eval_results_thread_turn.sql +35 -0
- package/dist/drizzle/0161_eval_run_pinning.sql +54 -0
- package/dist/drizzle/0161_tenant_mcp_servers_plugin_source.sql +62 -0
- package/dist/drizzle/0162_eval_result_override.sql +49 -0
- package/dist/drizzle/0163_eval_replay_tool_allowlist.sql +50 -0
- package/dist/drizzle/0164_eval_replay_tool_override_mode.sql +52 -0
- package/dist/drizzle/0165_plugin_premium_entitlements.sql +153 -0
- package/dist/drizzle/0166_company_brain_substrate_contract.sql +386 -0
- package/dist/drizzle/0167_company_brain_artifact_manifest_runtime.sql +85 -0
- package/dist/drizzle/0168_eval_skill_gate.sql +44 -0
- package/dist/drizzle/0169_release_update_jobs.sql +67 -0
- package/dist/drizzle/0170_email_channel_plugin.sql +291 -0
- package/dist/drizzle/0171_linked_task_external_providers.sql +30 -0
- package/dist/drizzle/0172_email_channel_sendgrid_provider.sql +8 -0
- package/dist/drizzle/0173_auth_provider_resources.sql +83 -0
- package/dist/drizzle/0174_workos_auth_bridges.sql +37 -0
- package/dist/drizzle/0175_workos_auth_sessions.sql +38 -0
- package/dist/drizzle/0176_n8n_agent_step_runs.sql +107 -0
- package/dist/drizzle/0177_workflow_control_plane.sql +281 -0
- package/dist/drizzle/0178_workflow_backfill_existing_routines.sql +525 -0
- package/dist/drizzle/0179_tenant_goal_budget_settings.sql +21 -0
- package/dist/drizzle/0180_skill_drafts.sql +89 -0
- package/dist/drizzle/0181_skill_draft_publish_status.sql +21 -0
- package/dist/drizzle/0182_agent_loops.sql +260 -0
- package/dist/drizzle/0183_okf_artifact_manifests.sql +52 -0
- package/dist/drizzle/0184_skill_catalog_trust_cache.sql +35 -0
- package/dist/drizzle/0185_agent_loop_space.sql +16 -0
- package/dist/drizzle/0186_tenant_mcp_runtime_metadata.sql +10 -0
- package/dist/drizzle/0187_native_work_items.sql +220 -0
- package/dist/drizzle/0188_company_etl_plugin_rename.sql +99 -0
- package/dist/drizzle/0189_trace_cost_substrate.sql +247 -0
- package/dist/drizzle/0190_billing_export_reconciliation.sql +101 -0
- package/dist/drizzle/0191_open_engine_work_item_queue.sql +66 -0
- package/dist/drizzle/0192_work_item_labels.sql +44 -0
- package/dist/drizzle/0193_work_item_documents.sql +31 -0
- package/dist/drizzle/0194_memory_retain_attempts.sql +103 -0
- package/dist/drizzle/0194_work_item_comments.sql +35 -0
- package/dist/drizzle/0195_plugin_app_overlays.sql +45 -0
- package/dist/drizzle/0196_pi_extensions.sql +118 -0
- package/dist/drizzle/0197_eval_profiles.sql +150 -0
- package/dist/drizzle/0197_rcm_context_columns.sql +28 -0
- package/dist/drizzle/0198_eval_runs_unstable.sql +27 -0
- package/dist/drizzle/0199_eval_runs_cost_partial.sql +27 -0
- package/dist/drizzle/meta/_journal.json +160 -0
- package/dist/plugins/README.md +162 -0
- package/dist/plugins/catalog/package.json +40 -0
- package/dist/plugins/catalog/scripts/build-catalog.ts +120 -0
- package/dist/plugins/catalog/scripts/generate-plugin-registry.ts +144 -0
- package/dist/plugins/catalog/src/__tests__/build-catalog.test.ts +86 -0
- package/dist/plugins/catalog/src/__tests__/catalog.test.ts +308 -0
- package/dist/plugins/catalog/src/__tests__/contracts.test.ts +861 -0
- package/dist/plugins/catalog/src/__tests__/plugin-package.test.ts +124 -0
- package/dist/plugins/catalog/src/__tests__/plugin-registry.test.ts +120 -0
- package/dist/plugins/catalog/src/catalog.ts +434 -0
- package/dist/plugins/catalog/src/contracts.ts +1498 -0
- package/dist/plugins/catalog/src/index.ts +4 -0
- package/dist/plugins/catalog/src/plugin-package.ts +171 -0
- package/dist/plugins/catalog/src/registry/generated-first-party.ts +76 -0
- package/dist/plugins/catalog/src/registry/index.ts +1 -0
- package/dist/plugins/catalog/tsconfig.json +8 -0
- package/dist/plugins/company-brain/README.md +37 -0
- package/dist/plugins/company-brain/package.json +33 -0
- package/dist/plugins/company-brain/runtime/cognee/Dockerfile +11 -0
- package/dist/plugins/company-brain/smoke/cognee-managed-app-smoke.mjs +458 -0
- package/dist/plugins/company-brain/smoke/cognee-memory-cutover-smoke.mjs +539 -0
- package/dist/plugins/company-brain/smoke/company-brain-context-engine-smoke.mjs +312 -0
- package/dist/plugins/company-brain/smoke/company-brain-operations-smoke.mjs +449 -0
- package/dist/plugins/company-brain/smoke/company-brain-plugin-smoke.mjs +655 -0
- package/dist/plugins/company-brain/smoke/hindsight-memory-isolation-smoke.mjs +474 -0
- package/dist/plugins/company-brain/src/api/cognee-client.ts +896 -0
- package/dist/plugins/company-brain/src/api/cognee-cluster-identity.ts +49 -0
- package/dist/plugins/company-brain/src/api/cognee-memory-scope.ts +84 -0
- package/dist/plugins/company-brain/src/api/context-engine-provider.ts +888 -0
- package/dist/plugins/company-brain/src/api/migration.ts +665 -0
- package/dist/plugins/company-brain/src/deployment/cognee-managed-app.ts +396 -0
- package/dist/plugins/company-brain/src/index.ts +62 -0
- package/dist/plugins/company-brain/src/manifest.ts +112 -0
- package/dist/plugins/company-brain/terraform/cognee/README.md +263 -0
- package/dist/plugins/company-brain/terraform/cognee/main.tf +766 -0
- package/dist/plugins/company-brain/terraform/cognee/outputs.tf +144 -0
- package/dist/plugins/company-brain/terraform/cognee/variables.tf +402 -0
- package/dist/plugins/company-brain/test/api/cognee-client.test.ts +562 -0
- package/dist/plugins/company-brain/test/api/cognee-memory-scope.test.ts +74 -0
- package/dist/plugins/company-brain/test/api/context-engine-provider.test.ts +447 -0
- package/dist/plugins/company-brain/test/api/migration.test.ts +465 -0
- package/dist/plugins/company-brain/test/manifest.test.ts +95 -0
- package/dist/plugins/company-brain/tsconfig.json +8 -0
- package/dist/plugins/company-data/README.md +49 -0
- package/dist/plugins/company-data/package.json +21 -0
- package/dist/plugins/company-data/src/index.ts +30 -0
- package/dist/plugins/company-data/src/manifest.ts +26 -0
- package/dist/plugins/company-data/test/manifest.test.ts +116 -0
- package/dist/plugins/company-data/tsconfig.json +8 -0
- package/dist/plugins/company-etl/README.md +46 -0
- package/dist/plugins/company-etl/package.json +21 -0
- package/dist/plugins/company-etl/src/index.ts +29 -0
- package/dist/plugins/company-etl/src/manifest.ts +26 -0
- package/dist/plugins/company-etl/test/manifest.test.ts +108 -0
- package/dist/plugins/company-etl/tsconfig.json +8 -0
- package/dist/plugins/email-channel/README.md +41 -0
- package/dist/plugins/email-channel/package.json +22 -0
- package/dist/plugins/email-channel/src/index.ts +36 -0
- package/dist/plugins/email-channel/src/manifest.ts +44 -0
- package/dist/plugins/email-channel/src/provider-contract.ts +36 -0
- package/dist/plugins/email-channel/test/manifest.test.ts +119 -0
- package/dist/plugins/email-channel/tsconfig.json +8 -0
- package/dist/plugins/lastmile/README.md +50 -0
- package/dist/plugins/lastmile/package.json +23 -0
- package/dist/plugins/lastmile/smoke/lastmile-plugin-smoke.mjs +661 -0
- package/dist/plugins/lastmile/src/api/tasks-adapter.ts +572 -0
- package/dist/plugins/lastmile/src/discovery.fixture.ts +64 -0
- package/dist/plugins/lastmile/src/index.ts +46 -0
- package/dist/plugins/lastmile/src/manifest.ts +139 -0
- package/dist/plugins/lastmile/test/api/tasks-adapter.test.ts +266 -0
- package/dist/plugins/lastmile/test/discovery.test.ts +88 -0
- package/dist/plugins/lastmile/tsconfig.json +8 -0
- package/dist/plugins/n8n/README.md +201 -0
- package/dist/plugins/n8n/n8n-app/README.md +33 -0
- package/dist/plugins/n8n/n8n-app/package.json +23 -0
- package/dist/plugins/n8n/n8n-app/src/application-config.ts +45 -0
- package/dist/plugins/n8n/n8n-app/src/front-components/thinkwork-workflows.front-component.tsx +970 -0
- package/dist/plugins/n8n/n8n-app/src/lib/n8n-app-data.ts +190 -0
- package/dist/plugins/n8n/n8n-app/src/vite-env.d.ts +7 -0
- package/dist/plugins/n8n/n8n-app/tsconfig.json +15 -0
- package/dist/plugins/n8n/package.json +35 -0
- package/dist/plugins/n8n/runtime/Dockerfile +18 -0
- package/dist/plugins/n8n/runtime/n8n-task-runners.json +14 -0
- package/dist/plugins/n8n/runtime/n8n-task-runners.json.template +14 -0
- package/dist/plugins/n8n/runtime/package-lock.json +13 -0
- package/dist/plugins/n8n/runtime/package.json +7 -0
- package/dist/plugins/n8n/scripts/sync-thinkwork-app.mjs +268 -0
- package/dist/plugins/n8n/smoke/README.md +95 -0
- package/dist/plugins/n8n/smoke/n8n-agent-step-bridge-smoke.mjs +866 -0
- package/dist/plugins/n8n/smoke/n8n-integrated-app-smoke.mjs +262 -0
- package/dist/plugins/n8n/smoke/n8n-managed-app-smoke.mjs +409 -0
- package/dist/plugins/n8n/smoke/n8n-mcp-smoke.mjs +624 -0
- package/dist/plugins/n8n/src/deployment/image-build.ts +172 -0
- package/dist/plugins/n8n/src/deployment/managed-app.ts +429 -0
- package/dist/plugins/n8n/src/index.ts +79 -0
- package/dist/plugins/n8n/src/manifest.ts +403 -0
- package/dist/plugins/n8n/src/package-config.ts +186 -0
- package/dist/plugins/n8n/src/skills/n8n-workflow-operator/SKILL.md +76 -0
- package/dist/plugins/n8n/src/skills/n8n-workflow-operator/references/mcp-tooling.md +40 -0
- package/dist/plugins/n8n/src/skills/n8n-workflow-operator/references/validation-and-handoff.md +40 -0
- package/dist/plugins/n8n/src/skills/n8n-workflow-operator/references/workflow-authoring.md +45 -0
- package/dist/plugins/n8n/terraform/n8n/README.md +113 -0
- package/dist/plugins/n8n/terraform/n8n/main.tf +918 -0
- package/dist/plugins/n8n/terraform/n8n/outputs.tf +124 -0
- package/dist/plugins/n8n/terraform/n8n/scripts/sync-database.py +250 -0
- package/dist/plugins/n8n/terraform/n8n/scripts/test_sync_database.py +55 -0
- package/dist/plugins/n8n/terraform/n8n/variables.tf +354 -0
- package/dist/plugins/n8n/test/image-build.test.ts +118 -0
- package/dist/plugins/n8n/test/integrated-app-contract.test.ts +353 -0
- package/dist/plugins/n8n/test/manifest.test.ts +278 -0
- package/dist/plugins/n8n/test/package-config.test.ts +57 -0
- package/dist/plugins/n8n/tsconfig.json +8 -0
- package/dist/plugins/sendgrid/README.md +30 -0
- package/dist/plugins/sendgrid/package.json +22 -0
- package/dist/plugins/sendgrid/src/index.ts +36 -0
- package/dist/plugins/sendgrid/src/manifest.ts +37 -0
- package/dist/plugins/sendgrid/src/provider-contract.ts +14 -0
- package/dist/plugins/sendgrid/test/manifest.test.ts +80 -0
- package/dist/plugins/sendgrid/tsconfig.json +8 -0
- package/dist/plugins/twenty/README.md +78 -0
- package/dist/plugins/twenty/package.json +27 -0
- package/dist/plugins/twenty/scripts/__tests__/sync-thinkwork-app.test.mjs +67 -0
- package/dist/plugins/twenty/scripts/sync-thinkwork-app.mjs +185 -0
- package/dist/plugins/twenty/scripts/wire-thinkwork-workflow.mjs +658 -0
- package/dist/plugins/twenty/smoke/twenty-managed-app-smoke.mjs +359 -0
- package/dist/plugins/twenty/smoke/twenty-mcp-oauth-smoke.mjs +574 -0
- package/dist/plugins/twenty/src/api/cutover.ts +209 -0
- package/dist/plugins/twenty/src/deployment/managed-app.ts +253 -0
- package/dist/plugins/twenty/src/index.ts +55 -0
- package/dist/plugins/twenty/src/manifest.ts +259 -0
- package/dist/plugins/twenty/terraform/twenty/README.md +97 -0
- package/dist/plugins/twenty/terraform/twenty/main.tf +829 -0
- package/dist/plugins/twenty/terraform/twenty/outputs.tf +79 -0
- package/dist/plugins/twenty/terraform/twenty/variables.tf +268 -0
- package/dist/plugins/twenty/test/api/cutover.test.ts +183 -0
- package/dist/plugins/twenty/test/manifest.test.ts +463 -0
- package/dist/plugins/twenty/tsconfig.json +9 -0
- package/dist/plugins/twenty/twenty-app/.nvmrc +1 -0
- package/dist/plugins/twenty/twenty-app/README.md +148 -0
- package/dist/plugins/twenty/twenty-app/package.json +30 -0
- package/dist/plugins/twenty/twenty-app/src/application-config.ts +44 -0
- package/dist/plugins/twenty/twenty-app/src/constants/universal-identifiers.ts +18 -0
- package/dist/plugins/twenty/twenty-app/src/default-role.ts +24 -0
- package/dist/plugins/twenty/twenty-app/src/front-components/thinkwork-settings.front-component.tsx +299 -0
- package/dist/plugins/twenty/twenty-app/src/logic-functions/thinkwork-webhook.logic-function.ts +354 -0
- package/dist/plugins/twenty/twenty-app/tsconfig.json +14 -0
- package/dist/plugins/twenty/twenty-app/yarn.lock +4144 -0
- package/dist/plugins/workos-auth/package.json +22 -0
- package/dist/plugins/workos-auth/src/index.ts +30 -0
- package/dist/plugins/workos-auth/src/manifest.ts +40 -0
- package/dist/plugins/workos-auth/src/provider-contract.ts +39 -0
- package/dist/plugins/workos-auth/test/manifest.test.ts +94 -0
- package/dist/plugins/workos-auth/tsconfig.json +8 -0
- package/dist/scripts/bootstrap-workspace.sh +162 -0
- package/dist/scripts/post-deploy.sh +290 -0
- package/dist/terraform/examples/greenfield/main.tf +903 -75
- package/dist/terraform/examples/greenfield/terraform.tfvars.example +67 -8
- package/dist/terraform/modules/app/agentcore-code-interpreter/Dockerfile.sandbox-base +2 -2
- package/dist/terraform/modules/app/agentcore-code-interpreter/README.md +8 -9
- package/dist/terraform/modules/app/agentcore-code-interpreter/sandbox/sitecustomize.py +227 -0
- package/dist/terraform/modules/app/agentcore-code-interpreter/sandbox/test_sitecustomize.py +277 -0
- package/dist/terraform/modules/app/agentcore-memory/README.md +6 -6
- package/dist/terraform/modules/app/agentcore-memory/main.tf +1 -1
- package/dist/terraform/modules/app/agentcore-memory/scripts/create_or_find_memory.sh +40 -9
- package/dist/terraform/modules/app/agentcore-pi/README.md +61 -0
- package/dist/terraform/modules/app/agentcore-pi/main.tf +466 -0
- package/dist/terraform/modules/app/agentcore-pi/outputs.tf +38 -0
- package/dist/terraform/modules/app/agentcore-pi/variables.tf +145 -0
- package/dist/terraform/modules/app/agentcore-platform/main.tf +83 -0
- package/dist/terraform/modules/app/agentcore-runtime/main.tf +9 -11
- package/dist/terraform/modules/app/appsync-subscriptions/main.tf +5 -1
- package/dist/terraform/modules/app/customer-domain/main.tf +483 -0
- package/dist/terraform/modules/app/deployment-control-plane/README.md +47 -0
- package/dist/terraform/modules/app/deployment-control-plane/buildspec.yml +24 -0
- package/dist/terraform/modules/app/deployment-control-plane/main.tf +614 -0
- package/dist/terraform/modules/app/deployment-control-plane/outputs.tf +54 -0
- package/dist/terraform/modules/app/deployment-control-plane/runner.py +4720 -0
- package/dist/terraform/modules/app/deployment-control-plane/test_runner_bundle.py +3026 -0
- package/dist/terraform/modules/app/deployment-control-plane/variables.tf +96 -0
- package/dist/terraform/modules/app/hindsight-memory/README.md +25 -23
- package/dist/terraform/modules/app/hindsight-memory/main.tf +26 -2
- package/dist/terraform/modules/app/lambda-api/eval-fanout.tf +17 -50
- package/dist/terraform/modules/app/lambda-api/handlers.tf +1290 -679
- package/dist/terraform/modules/app/lambda-api/iam-grouped.tf +933 -0
- package/dist/terraform/modules/app/lambda-api/main.tf +14 -527
- package/dist/terraform/modules/app/lambda-api/mcp-oauth.tf +3 -19
- package/dist/terraform/modules/app/lambda-api/outputs.tf +50 -6
- package/dist/terraform/modules/app/lambda-api/runtime-config.tf +163 -0
- package/dist/terraform/modules/app/lambda-api/slack-app-secrets.tf +3 -1
- package/dist/terraform/modules/app/lambda-api/stripe-secrets.tf +3 -1
- package/dist/terraform/modules/app/lambda-api/variables.tf +240 -53
- package/dist/terraform/modules/app/lambda-api/workspace-events.tf +2 -25
- package/dist/terraform/modules/app/ses-email/main.tf +143 -30
- package/dist/terraform/modules/app/static-site/main.tf +4 -3
- package/dist/terraform/modules/app/www-dns/main.tf +45 -5
- package/dist/terraform/modules/app/www-dns/outputs.tf +10 -0
- package/dist/terraform/modules/app/www-dns/variables.tf +24 -0
- package/dist/terraform/modules/data/aurora-postgres/main.tf +15 -1
- package/dist/terraform/modules/data/compliance-exports-bucket/main.tf +1 -1
- package/dist/terraform/modules/data/compliance-exports-bucket/variables.tf +6 -0
- package/dist/terraform/modules/foundation/cognito/main.tf +167 -11
- package/dist/terraform/modules/foundation/cognito/outputs.tf +5 -0
- package/dist/terraform/modules/foundation/cognito/variables.tf +110 -0
- package/dist/terraform/modules/foundation/vpc/main.tf +45 -3
- package/dist/terraform/modules/foundation/vpc/outputs.tf +20 -0
- package/dist/terraform/modules/foundation/vpc/variables.tf +18 -0
- package/dist/terraform/modules/thinkwork/README.md +71 -0
- package/dist/terraform/modules/thinkwork/main.tf +1325 -174
- package/dist/terraform/modules/thinkwork/outputs.tf +457 -24
- package/dist/terraform/modules/thinkwork/variables.tf +1169 -93
- package/dist/terraform/schema.graphql +82 -9
- package/dist/workspace-defaults/files/AGENTS.md +344 -0
- package/dist/workspace-defaults/files/CONTEXT.md +8 -0
- package/dist/workspace-defaults/files/GUARDRAILS.md +51 -0
- package/dist/workspace-defaults/files/MEMORY_GUIDE.md +65 -0
- package/dist/workspace-defaults/files/ROUTER.md +24 -0
- package/dist/workspace-defaults/files/SPACE.md +62 -0
- package/dist/workspace-defaults/files/TOOLS.md +65 -0
- package/dist/workspace-defaults/files/USER.md +40 -0
- package/dist/workspace-defaults/files/mcp.json +3 -0
- package/dist/workspace-defaults/files/memory/contacts.md +13 -0
- package/dist/workspace-defaults/files/memory/lessons.md +13 -0
- package/dist/workspace-defaults/files/memory/preferences.md +12 -0
- package/dist/workspace-defaults/files/skills/.gitkeep +1 -0
- package/dist/workspace-defaults/files/skills/artifact-builder/SKILL.md +79 -0
- package/dist/workspace-defaults/files/skills/artifact-builder/references/crm-dashboard.md +166 -0
- package/dist/workspace-defaults/files/skills/automation-loop-designer/SKILL.md +120 -0
- package/dist/workspace-defaults/files/skills/skill-creator/LICENSE.txt +202 -0
- package/dist/workspace-defaults/files/skills/skill-creator/SKILL.md +485 -0
- package/dist/workspace-defaults/files/skills/skill-creator/UPSTREAM.json +124 -0
- package/dist/workspace-defaults/files/skills/skill-creator/agents/analyzer.md +274 -0
- package/dist/workspace-defaults/files/skills/skill-creator/agents/comparator.md +202 -0
- package/dist/workspace-defaults/files/skills/skill-creator/agents/grader.md +223 -0
- package/dist/workspace-defaults/files/skills/skill-creator/assets/eval_review.html +146 -0
- package/dist/workspace-defaults/files/skills/skill-creator/eval-viewer/generate_review.py +471 -0
- package/dist/workspace-defaults/files/skills/skill-creator/eval-viewer/viewer.html +1325 -0
- package/dist/workspace-defaults/files/skills/skill-creator/references/schemas.md +430 -0
- package/dist/workspace-defaults/files/skills/skill-creator/scripts/__init__.py +0 -0
- package/dist/workspace-defaults/files/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
- package/dist/workspace-defaults/files/skills/skill-creator/scripts/generate_report.py +326 -0
- package/dist/workspace-defaults/files/skills/skill-creator/scripts/improve_description.py +247 -0
- package/dist/workspace-defaults/files/skills/skill-creator/scripts/package_skill.py +136 -0
- package/dist/workspace-defaults/files/skills/skill-creator/scripts/quick_validate.py +103 -0
- package/dist/workspace-defaults/files/skills/skill-creator/scripts/run_eval.py +310 -0
- package/dist/workspace-defaults/files/skills/skill-creator/scripts/run_loop.py +328 -0
- package/dist/workspace-defaults/files/skills/skill-creator/scripts/utils.py +47 -0
- package/package.json +2 -1
- package/dist/terraform/modules/app/agentcore-flue/README.md +0 -58
- package/dist/terraform/modules/app/agentcore-flue/main.tf +0 -323
- package/dist/terraform/modules/app/agentcore-flue/outputs.tf +0 -23
- package/dist/terraform/modules/app/agentcore-flue/variables.tf +0 -97
- package/dist/terraform/modules/app/computer-runtime/README.md +0 -15
- package/dist/terraform/modules/app/computer-runtime/main.tf +0 -406
- package/dist/terraform/modules/app/computer-runtime/outputs.tf +0 -75
- package/dist/terraform/modules/app/computer-runtime/variables.tf +0 -66
|
@@ -18,6 +18,12 @@
|
|
|
18
18
|
|
|
19
19
|
data "aws_caller_identity" "current" {}
|
|
20
20
|
|
|
21
|
+
locals {
|
|
22
|
+
cognee_worker_vpc_enabled = var.cognee_enabled && length(var.cognee_worker_subnet_ids) > 0 && length(var.cognee_worker_security_group_ids) > 0
|
|
23
|
+
okf_efs_vpc_enabled = length(var.okf_efs_subnet_ids) > 0 && length(var.okf_efs_security_group_ids) > 0
|
|
24
|
+
api_base_url = var.custom_domain != "" ? "https://${var.custom_domain}" : trimsuffix(aws_apigatewayv2_stage.default.invoke_url, "/")
|
|
25
|
+
}
|
|
26
|
+
|
|
21
27
|
################################################################################
|
|
22
28
|
# API Gateway V2 — HTTP API
|
|
23
29
|
################################################################################
|
|
@@ -144,536 +150,17 @@ resource "aws_iam_role_policy_attachment" "lambda_basic" {
|
|
|
144
150
|
policy_arn = "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"
|
|
145
151
|
}
|
|
146
152
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
# aws_iam_policy.manager.arn — a computed attribute only known at
|
|
153
|
-
# apply time, not at plan time. If a future caller wants to make
|
|
154
|
-
# this attachment conditional, gate it on a known-at-plan-time
|
|
155
|
-
# boolean variable rather than the ARN string.
|
|
156
|
-
role = aws_iam_role.lambda.name
|
|
157
|
-
policy_arn = var.computer_runtime_manager_policy_arn
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
resource "aws_iam_role_policy" "lambda_rds" {
|
|
161
|
-
name = "rds-data-api"
|
|
162
|
-
role = aws_iam_role.lambda.id
|
|
163
|
-
|
|
164
|
-
policy = jsonencode({
|
|
165
|
-
Version = "2012-10-17"
|
|
166
|
-
Statement = [{
|
|
167
|
-
Effect = "Allow"
|
|
168
|
-
Action = [
|
|
169
|
-
"rds-data:ExecuteStatement",
|
|
170
|
-
"rds-data:BatchExecuteStatement",
|
|
171
|
-
"rds-data:BeginTransaction",
|
|
172
|
-
"rds-data:CommitTransaction",
|
|
173
|
-
"rds-data:RollbackTransaction",
|
|
174
|
-
]
|
|
175
|
-
Resource = var.db_cluster_arn
|
|
176
|
-
}]
|
|
177
|
-
})
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
resource "aws_iam_role_policy" "lambda_secrets" {
|
|
181
|
-
name = "secrets-manager"
|
|
182
|
-
role = aws_iam_role.lambda.id
|
|
183
|
-
|
|
184
|
-
policy = jsonencode({
|
|
185
|
-
Version = "2012-10-17"
|
|
186
|
-
Statement = [
|
|
187
|
-
{
|
|
188
|
-
Effect = "Allow"
|
|
189
|
-
Action = ["secretsmanager:GetSecretValue"]
|
|
190
|
-
Resource = var.graphql_db_secret_arn
|
|
191
|
-
},
|
|
192
|
-
{
|
|
193
|
-
Effect = "Allow"
|
|
194
|
-
Action = [
|
|
195
|
-
"secretsmanager:CreateSecret",
|
|
196
|
-
"secretsmanager:UpdateSecret",
|
|
197
|
-
"secretsmanager:DeleteSecret",
|
|
198
|
-
"secretsmanager:GetSecretValue"
|
|
199
|
-
]
|
|
200
|
-
Resource = "arn:aws:secretsmanager:${var.region}:${var.account_id}:secret:thinkwork/*"
|
|
201
|
-
}
|
|
202
|
-
]
|
|
203
|
-
})
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
resource "aws_iam_role_policy" "lambda_s3" {
|
|
207
|
-
name = "s3-access"
|
|
208
|
-
role = aws_iam_role.lambda.id
|
|
209
|
-
|
|
210
|
-
policy = jsonencode({
|
|
211
|
-
Version = "2012-10-17"
|
|
212
|
-
Statement = [{
|
|
213
|
-
Effect = "Allow"
|
|
214
|
-
Action = [
|
|
215
|
-
"s3:GetObject",
|
|
216
|
-
"s3:PutObject",
|
|
217
|
-
"s3:DeleteObject",
|
|
218
|
-
"s3:ListBucket",
|
|
219
|
-
]
|
|
220
|
-
Resource = [
|
|
221
|
-
var.bucket_arn,
|
|
222
|
-
"${var.bucket_arn}/*",
|
|
223
|
-
]
|
|
224
|
-
}]
|
|
225
|
-
})
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
resource "aws_iam_role_policy" "lambda_cognito" {
|
|
229
|
-
name = "cognito-access"
|
|
230
|
-
role = aws_iam_role.lambda.id
|
|
231
|
-
|
|
232
|
-
policy = jsonencode({
|
|
233
|
-
Version = "2012-10-17"
|
|
234
|
-
Statement = [{
|
|
235
|
-
Effect = "Allow"
|
|
236
|
-
Action = [
|
|
237
|
-
"cognito-idp:AdminCreateUser",
|
|
238
|
-
"cognito-idp:AdminGetUser",
|
|
239
|
-
"cognito-idp:AdminUpdateUserAttributes",
|
|
240
|
-
"cognito-idp:ListUsers",
|
|
241
|
-
]
|
|
242
|
-
Resource = var.user_pool_arn
|
|
243
|
-
}]
|
|
244
|
-
})
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
resource "aws_iam_role_policy" "lambda_cloudwatch_read" {
|
|
248
|
-
name = "cloudwatch-logs-read"
|
|
249
|
-
role = aws_iam_role.lambda.id
|
|
250
|
-
|
|
251
|
-
policy = jsonencode({
|
|
252
|
-
Version = "2012-10-17"
|
|
253
|
-
Statement = [{
|
|
254
|
-
Effect = "Allow"
|
|
255
|
-
Action = ["logs:FilterLogEvents", "logs:GetLogEvents", "logs:DescribeLogGroups"]
|
|
256
|
-
Resource = "arn:aws:logs:${var.region}:${var.account_id}:log-group:*model-invocations*"
|
|
257
|
-
}]
|
|
258
|
-
})
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
resource "aws_iam_role_policy" "lambda_bedrock" {
|
|
262
|
-
name = "bedrock-invoke"
|
|
263
|
-
role = aws_iam_role.lambda.id
|
|
264
|
-
|
|
265
|
-
# Cross-region inference profiles (us.anthropic.claude-*) require
|
|
266
|
-
# `bedrock:InvokeModel` on the *inference-profile* ARN AND on the
|
|
267
|
-
# underlying foundation-model ARN in *every* region the profile can
|
|
268
|
-
# route to (e.g. us-east-2 for us.anthropic.claude-haiku-4-5). The
|
|
269
|
-
# region wildcard below covers all of them. Needed by the eval-runner
|
|
270
|
-
# llm-rubric judge and any handler that calls Converse with a profile ID.
|
|
271
|
-
policy = jsonencode({
|
|
272
|
-
Version = "2012-10-17"
|
|
273
|
-
Statement = [{
|
|
274
|
-
Effect = "Allow"
|
|
275
|
-
Action = ["bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream"]
|
|
276
|
-
Resource = [
|
|
277
|
-
"arn:aws:bedrock:*::foundation-model/*",
|
|
278
|
-
"arn:aws:bedrock:*:${var.account_id}:inference-profile/*",
|
|
279
|
-
]
|
|
280
|
-
}]
|
|
281
|
-
})
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
# SES send permissions for the email-send handler. Scoped to any
|
|
285
|
-
# verified identity in this account+region so the email-send Lambda
|
|
286
|
-
# can SendRawEmail from agents.thinkwork.ai (and any other domain
|
|
287
|
-
# identity a future deployment might add).
|
|
288
|
-
resource "aws_iam_role_policy" "lambda_ses_send" {
|
|
289
|
-
name = "ses-send"
|
|
290
|
-
role = aws_iam_role.lambda.id
|
|
291
|
-
|
|
292
|
-
policy = jsonencode({
|
|
293
|
-
Version = "2012-10-17"
|
|
294
|
-
Statement = [{
|
|
295
|
-
Effect = "Allow"
|
|
296
|
-
Action = [
|
|
297
|
-
"ses:SendEmail",
|
|
298
|
-
"ses:SendRawEmail",
|
|
299
|
-
]
|
|
300
|
-
Resource = [
|
|
301
|
-
"arn:aws:ses:${var.region}:${var.account_id}:identity/*",
|
|
302
|
-
"arn:aws:ses:${var.region}:${var.account_id}:configuration-set/*",
|
|
303
|
-
]
|
|
304
|
-
}]
|
|
305
|
-
})
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
# Allow API Lambdas to directly invoke the AgentCore Lambda. Used by
|
|
309
|
-
# chat-agent-invoke (and future wake-up/retry paths) via InvokeCommand.
|
|
310
|
-
resource "aws_iam_role_policy" "lambda_agentcore_invoke" {
|
|
311
|
-
count = var.agentcore_function_arn != "" ? 1 : 0
|
|
312
|
-
name = "agentcore-invoke"
|
|
313
|
-
role = aws_iam_role.lambda.id
|
|
314
|
-
|
|
315
|
-
policy = jsonencode({
|
|
316
|
-
Version = "2012-10-17"
|
|
317
|
-
Statement = [{
|
|
318
|
-
Effect = "Allow"
|
|
319
|
-
Action = [
|
|
320
|
-
"lambda:InvokeFunction",
|
|
321
|
-
]
|
|
322
|
-
Resource = compact([
|
|
323
|
-
var.agentcore_function_arn,
|
|
324
|
-
"${var.agentcore_function_arn}:*",
|
|
325
|
-
var.agentcore_flue_function_arn,
|
|
326
|
-
var.agentcore_flue_function_arn != "" ? "${var.agentcore_flue_function_arn}:*" : "",
|
|
327
|
-
])
|
|
328
|
-
}]
|
|
329
|
-
})
|
|
330
|
-
}
|
|
331
|
-
|
|
332
|
-
# Eval-runner: invoke the AgentCore Runtime data plane to run an agent
|
|
333
|
-
# under test, and call AgentCore Evaluations.Evaluate to score the
|
|
334
|
-
# resulting spans. Both APIs are on the bedrock-agentcore service. Also
|
|
335
|
-
# allow reading spans + log events from CloudWatch Logs (aws/spans is
|
|
336
|
-
# the Transaction Search destination; the runtime log groups carry the
|
|
337
|
-
# OTel scope=strands.telemetry.tracer log records that EvaluateCommand
|
|
338
|
-
# requires alongside the spans).
|
|
339
|
-
resource "aws_iam_role_policy" "lambda_eval_runner" {
|
|
340
|
-
name = "eval-runner-bedrock-agentcore"
|
|
341
|
-
role = aws_iam_role.lambda.id
|
|
342
|
-
|
|
343
|
-
policy = jsonencode({
|
|
344
|
-
Version = "2012-10-17"
|
|
345
|
-
Statement = [
|
|
346
|
-
{
|
|
347
|
-
Sid = "AgentCoreInvokeRuntime"
|
|
348
|
-
Effect = "Allow"
|
|
349
|
-
Action = ["bedrock-agentcore:InvokeAgentRuntime"]
|
|
350
|
-
Resource = "arn:aws:bedrock-agentcore:${var.region}:${var.account_id}:runtime/*"
|
|
351
|
-
},
|
|
352
|
-
{
|
|
353
|
-
Sid = "AgentCoreEvaluate"
|
|
354
|
-
Effect = "Allow"
|
|
355
|
-
Action = [
|
|
356
|
-
"bedrock-agentcore:Evaluate",
|
|
357
|
-
"bedrock-agentcore:GetEvaluator",
|
|
358
|
-
"bedrock-agentcore:ListEvaluators",
|
|
359
|
-
]
|
|
360
|
-
Resource = "*"
|
|
361
|
-
},
|
|
362
|
-
{
|
|
363
|
-
Sid = "EvalSpansRead"
|
|
364
|
-
Effect = "Allow"
|
|
365
|
-
Action = [
|
|
366
|
-
"logs:FilterLogEvents",
|
|
367
|
-
"logs:GetLogEvents",
|
|
368
|
-
"logs:DescribeLogGroups",
|
|
369
|
-
"logs:DescribeLogStreams",
|
|
370
|
-
]
|
|
371
|
-
Resource = [
|
|
372
|
-
"arn:aws:logs:${var.region}:${var.account_id}:log-group:aws/spans",
|
|
373
|
-
"arn:aws:logs:${var.region}:${var.account_id}:log-group:aws/spans:*",
|
|
374
|
-
"arn:aws:logs:${var.region}:${var.account_id}:log-group:/aws/bedrock-agentcore/runtimes/*",
|
|
375
|
-
"arn:aws:logs:${var.region}:${var.account_id}:log-group:/aws/bedrock-agentcore/runtimes/*:*",
|
|
376
|
-
]
|
|
377
|
-
},
|
|
378
|
-
{
|
|
379
|
-
Sid = "SsmReadEvalRunnerCfg"
|
|
380
|
-
Effect = "Allow"
|
|
381
|
-
Action = ["ssm:GetParameter", "ssm:GetParameters"]
|
|
382
|
-
Resource = "arn:aws:ssm:${var.region}:${var.account_id}:parameter/thinkwork/${var.stage}/agentcore/runtime-id-*"
|
|
383
|
-
},
|
|
384
|
-
]
|
|
385
|
-
})
|
|
386
|
-
}
|
|
387
|
-
|
|
388
|
-
# AgentCore Memory read access for the GraphQL memory resolvers.
|
|
389
|
-
# memoryRecords / memorySearch call ListMemoryRecordsCommand to fetch
|
|
390
|
-
# records across the tenant's agents.
|
|
391
|
-
resource "aws_iam_role_policy" "lambda_agentcore_memory" {
|
|
392
|
-
name = "agentcore-memory-rw"
|
|
393
|
-
role = aws_iam_role.lambda.id
|
|
394
|
-
|
|
395
|
-
policy = jsonencode({
|
|
396
|
-
Version = "2012-10-17"
|
|
397
|
-
Statement = [{
|
|
398
|
-
Effect = "Allow"
|
|
399
|
-
Action = [
|
|
400
|
-
"bedrock-agentcore:ListMemoryRecords",
|
|
401
|
-
"bedrock-agentcore:RetrieveMemoryRecords",
|
|
402
|
-
"bedrock-agentcore:GetMemoryRecord",
|
|
403
|
-
"bedrock-agentcore:BatchCreateMemoryRecords",
|
|
404
|
-
"bedrock-agentcore:BatchUpdateMemoryRecords",
|
|
405
|
-
"bedrock-agentcore:BatchDeleteMemoryRecords",
|
|
406
|
-
"bedrock-agentcore:DeleteMemoryRecord",
|
|
407
|
-
]
|
|
408
|
-
Resource = "*"
|
|
409
|
-
}]
|
|
410
|
-
})
|
|
411
|
-
}
|
|
153
|
+
# All other IAM grants for aws_iam_role.lambda live in the four grouped
|
|
154
|
+
# customer-managed policies in iam-grouped.tf (R9, plan 2026-06-11-006 U6).
|
|
155
|
+
# Do not add inline aws_iam_role_policy resources to this role: the inline
|
|
156
|
+
# aggregate hit IAM's 10,240-byte cap on 2026-06-11 (#2378/#2379). New grants
|
|
157
|
+
# go into the grouped managed policies, never inline.
|
|
412
158
|
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
# Lambda targets for cross-function invocation. Without this, the SSM
|
|
416
|
-
# GetParameter call fails with AccessDenied, the caller silently
|
|
417
|
-
# catches the error, and sendMessage falls back to the wakeup-processor
|
|
418
|
-
# path — which doesn't load messages_history from Aurora. That's why
|
|
419
|
-
# multi-turn chat was losing prior context: history was only loaded on
|
|
420
|
-
# the direct path, which never ran.
|
|
421
|
-
resource "aws_iam_role_policy" "lambda_ssm_read" {
|
|
422
|
-
name = "ssm-param-read"
|
|
423
|
-
role = aws_iam_role.lambda.id
|
|
424
|
-
|
|
425
|
-
policy = jsonencode({
|
|
426
|
-
Version = "2012-10-17"
|
|
427
|
-
Statement = [
|
|
428
|
-
{
|
|
429
|
-
Effect = "Allow"
|
|
430
|
-
Action = [
|
|
431
|
-
"ssm:GetParameter",
|
|
432
|
-
"ssm:GetParameters",
|
|
433
|
-
]
|
|
434
|
-
Resource = "arn:aws:ssm:${var.region}:${var.account_id}:parameter/thinkwork/${var.stage}/*"
|
|
435
|
-
},
|
|
436
|
-
# SecureString parameters (e.g. /thinkwork/<stage>/google-places/api-key)
|
|
437
|
-
# are encrypted with the default AWS-managed SSM key. The default key's
|
|
438
|
-
# resource policy auto-grants Decrypt to any IAM principal with
|
|
439
|
-
# ssm:GetParameter on the parameter via `kms:ViaService = ssm.*`, so
|
|
440
|
-
# this explicit grant is a belt-and-suspenders clarification. If we
|
|
441
|
-
# later move to a customer-managed KMS key, this is the scope that
|
|
442
|
-
# needs updating.
|
|
443
|
-
{
|
|
444
|
-
Effect = "Allow"
|
|
445
|
-
Action = ["kms:Decrypt"]
|
|
446
|
-
Resource = "*"
|
|
447
|
-
Condition = {
|
|
448
|
-
StringEquals = {
|
|
449
|
-
"kms:ViaService" = "ssm.${var.region}.amazonaws.com"
|
|
450
|
-
}
|
|
451
|
-
}
|
|
452
|
-
},
|
|
453
|
-
]
|
|
454
|
-
})
|
|
455
|
-
}
|
|
159
|
+
resource "aws_iam_role_policy_attachment" "lambda_cognee_worker_vpc_access" {
|
|
160
|
+
count = local.cognee_worker_vpc_enabled || local.okf_efs_vpc_enabled ? 1 : 0
|
|
456
161
|
|
|
457
|
-
# job-schedule-manager creates/updates/deletes EventBridge Scheduler
|
|
458
|
-
# schedules (and the thinkwork-jobs schedule group on first use). Without
|
|
459
|
-
# these permissions the manager Lambda threw silently and every scheduled
|
|
460
|
-
# automation was orphaned with eb_schedule_name = null.
|
|
461
|
-
resource "aws_iam_role_policy" "lambda_scheduler" {
|
|
462
|
-
name = "eventbridge-scheduler-rw"
|
|
463
|
-
role = aws_iam_role.lambda.id
|
|
464
|
-
|
|
465
|
-
policy = jsonencode({
|
|
466
|
-
Version = "2012-10-17"
|
|
467
|
-
Statement = [
|
|
468
|
-
{
|
|
469
|
-
Effect = "Allow"
|
|
470
|
-
Action = [
|
|
471
|
-
"scheduler:CreateSchedule",
|
|
472
|
-
"scheduler:UpdateSchedule",
|
|
473
|
-
"scheduler:DeleteSchedule",
|
|
474
|
-
"scheduler:GetSchedule",
|
|
475
|
-
"scheduler:ListSchedules",
|
|
476
|
-
"scheduler:CreateScheduleGroup",
|
|
477
|
-
"scheduler:GetScheduleGroup",
|
|
478
|
-
"scheduler:DeleteScheduleGroup",
|
|
479
|
-
"scheduler:TagResource",
|
|
480
|
-
]
|
|
481
|
-
Resource = "*"
|
|
482
|
-
},
|
|
483
|
-
# Scheduler.CreateSchedule takes a RoleArn for the target; AWS requires
|
|
484
|
-
# the caller to have iam:PassRole on that role. Without this the
|
|
485
|
-
# CreateSchedule call fails with AccessDenied even if the scheduler
|
|
486
|
-
# permissions above are set.
|
|
487
|
-
{
|
|
488
|
-
Effect = "Allow"
|
|
489
|
-
Action = ["iam:PassRole"]
|
|
490
|
-
Resource = var.job_scheduler_role_arn != "" ? var.job_scheduler_role_arn : "*"
|
|
491
|
-
},
|
|
492
|
-
]
|
|
493
|
-
})
|
|
494
|
-
}
|
|
495
|
-
|
|
496
|
-
# Allow API handler Lambdas to invoke each other directly. sendMessage
|
|
497
|
-
# dispatches to chat-agent-invoke for instant chat response; the memory
|
|
498
|
-
# resolvers reach knowledge-base-manager and job-schedule-manager for
|
|
499
|
-
# admin-driven operations. The existing lambda_agentcore_invoke policy
|
|
500
|
-
# covers the Strands runtime Lambda only — this one covers internal
|
|
501
|
-
# api-to-api calls. ARNs are constructed deterministically from the
|
|
502
|
-
# handler naming pattern so we don't create a dependency cycle with the
|
|
503
|
-
# handler resource.
|
|
504
|
-
resource "aws_iam_role_policy" "lambda_api_cross_invoke" {
|
|
505
|
-
name = "api-cross-function-invoke"
|
|
506
|
-
role = aws_iam_role.lambda.id
|
|
507
|
-
|
|
508
|
-
policy = jsonencode({
|
|
509
|
-
Version = "2012-10-17"
|
|
510
|
-
Statement = [{
|
|
511
|
-
Effect = "Allow"
|
|
512
|
-
Action = ["lambda:InvokeFunction"]
|
|
513
|
-
Resource = [
|
|
514
|
-
"arn:aws:lambda:${var.region}:${var.account_id}:function:thinkwork-${var.stage}-api-chat-agent-invoke",
|
|
515
|
-
"arn:aws:lambda:${var.region}:${var.account_id}:function:thinkwork-${var.stage}-api-knowledge-base-manager",
|
|
516
|
-
"arn:aws:lambda:${var.region}:${var.account_id}:function:thinkwork-${var.stage}-api-job-schedule-manager",
|
|
517
|
-
# eval-runner: graphql-http's startEvalRun mutation Event-invokes
|
|
518
|
-
# this asynchronously after inserting the eval_runs row.
|
|
519
|
-
"arn:aws:lambda:${var.region}:${var.account_id}:function:thinkwork-${var.stage}-api-eval-runner",
|
|
520
|
-
# wiki-compile: memory-retain Event-invokes this after a successful
|
|
521
|
-
# retainTurn when the tenant's wiki_compile_enabled flag is on.
|
|
522
|
-
# compileWikiNow admin mutation also Event-invokes.
|
|
523
|
-
"arn:aws:lambda:${var.region}:${var.account_id}:function:thinkwork-${var.stage}-api-wiki-compile",
|
|
524
|
-
# wiki-bootstrap-import: bootstrapJournalImport admin mutation
|
|
525
|
-
# Event-invokes this for the long-running ingest path.
|
|
526
|
-
"arn:aws:lambda:${var.region}:${var.account_id}:function:thinkwork-${var.stage}-api-wiki-bootstrap-import",
|
|
527
|
-
# ontology-scan: startOntologySuggestionScan Event-invokes this
|
|
528
|
-
# after inserting a durable scan job row.
|
|
529
|
-
"arn:aws:lambda:${var.region}:${var.account_id}:function:thinkwork-${var.stage}-api-ontology-scan",
|
|
530
|
-
# ontology-reprocess: approveOntologyChangeSet Event-invokes this
|
|
531
|
-
# after inserting a durable reprocess job row.
|
|
532
|
-
"arn:aws:lambda:${var.region}:${var.account_id}:function:thinkwork-${var.stage}-api-ontology-reprocess",
|
|
533
|
-
# routine-resume: routine-approval-bridge (Phase B U8) invokes
|
|
534
|
-
# this with RequestResponse after a HITL decideInboxItem
|
|
535
|
-
# decision. Calls SendTaskSuccess/SendTaskFailure on the SFN
|
|
536
|
-
# task token; idempotent on already-consumed tokens.
|
|
537
|
-
"arn:aws:lambda:${var.region}:${var.account_id}:function:thinkwork-${var.stage}-api-routine-resume",
|
|
538
|
-
# workspace-files-efs: workspace-files invokes this (RequestResponse)
|
|
539
|
-
# for Computer-target list/get to bypass the computer_tasks queue
|
|
540
|
-
# and read EFS directly. Standalone resource below.
|
|
541
|
-
"arn:aws:lambda:${var.region}:${var.account_id}:function:thinkwork-${var.stage}-api-workspace-files-efs",
|
|
542
|
-
]
|
|
543
|
-
}]
|
|
544
|
-
})
|
|
545
|
-
}
|
|
546
|
-
|
|
547
|
-
resource "aws_iam_policy" "thread_idle_memory_learning_invoke" {
|
|
548
|
-
name = "thinkwork-${var.stage}-thread-idle-memory-learning-invoke"
|
|
549
|
-
description = "Allow API job-trigger Lambda to invoke requester idle memory learning worker."
|
|
550
|
-
|
|
551
|
-
policy = jsonencode({
|
|
552
|
-
Version = "2012-10-17"
|
|
553
|
-
Statement = [{
|
|
554
|
-
Effect = "Allow"
|
|
555
|
-
Action = ["lambda:InvokeFunction"]
|
|
556
|
-
Resource = "arn:aws:lambda:${var.region}:${var.account_id}:function:thinkwork-${var.stage}-api-thread-idle-memory-learning"
|
|
557
|
-
}]
|
|
558
|
-
})
|
|
559
|
-
}
|
|
560
|
-
|
|
561
|
-
resource "aws_iam_role_policy_attachment" "lambda_thread_idle_memory_learning_invoke" {
|
|
562
162
|
role = aws_iam_role.lambda.name
|
|
563
|
-
policy_arn =
|
|
564
|
-
}
|
|
565
|
-
|
|
566
|
-
# Step Functions admin operations — for createRoutine / publishRoutineVersion
|
|
567
|
-
# / triggerRoutineRun / updateRoutine resolvers (Phase B U7) and the
|
|
568
|
-
# routine-asl-validator Lambda (Phase A U5). State-machine ARNs follow the
|
|
569
|
-
# naming convention `thinkwork-${stage}-routine-*`; aliases follow the
|
|
570
|
-
# state-machine ARN with a colon-separated alias name.
|
|
571
|
-
resource "aws_iam_role_policy" "lambda_routines_stepfunctions" {
|
|
572
|
-
name = "routines-step-functions"
|
|
573
|
-
role = aws_iam_role.lambda.id
|
|
574
|
-
|
|
575
|
-
policy = jsonencode({
|
|
576
|
-
Version = "2012-10-17"
|
|
577
|
-
Statement = [
|
|
578
|
-
{
|
|
579
|
-
Sid = "RoutineStateMachineLifecycle"
|
|
580
|
-
Effect = "Allow"
|
|
581
|
-
Action = [
|
|
582
|
-
"states:CreateStateMachine",
|
|
583
|
-
"states:UpdateStateMachine",
|
|
584
|
-
"states:DeleteStateMachine",
|
|
585
|
-
"states:DescribeStateMachine",
|
|
586
|
-
"states:ListStateMachines",
|
|
587
|
-
"states:TagResource",
|
|
588
|
-
"states:UntagResource",
|
|
589
|
-
"states:PublishStateMachineVersion",
|
|
590
|
-
"states:DeleteStateMachineVersion",
|
|
591
|
-
"states:ListStateMachineVersions",
|
|
592
|
-
"states:CreateStateMachineAlias",
|
|
593
|
-
"states:UpdateStateMachineAlias",
|
|
594
|
-
"states:DeleteStateMachineAlias",
|
|
595
|
-
"states:DescribeStateMachineAlias",
|
|
596
|
-
"states:ListStateMachineAliases",
|
|
597
|
-
"states:DescribeStateMachineForExecution",
|
|
598
|
-
]
|
|
599
|
-
Resource = "arn:aws:states:${var.region}:${var.account_id}:stateMachine:thinkwork-${var.stage}-routine-*"
|
|
600
|
-
},
|
|
601
|
-
{
|
|
602
|
-
Sid = "RoutineExecution"
|
|
603
|
-
Effect = "Allow"
|
|
604
|
-
Action = [
|
|
605
|
-
"states:StartExecution",
|
|
606
|
-
"states:StartSyncExecution",
|
|
607
|
-
"states:StopExecution",
|
|
608
|
-
"states:DescribeExecution",
|
|
609
|
-
"states:ListExecutions",
|
|
610
|
-
"states:GetExecutionHistory",
|
|
611
|
-
]
|
|
612
|
-
Resource = [
|
|
613
|
-
"arn:aws:states:${var.region}:${var.account_id}:stateMachine:thinkwork-${var.stage}-routine-*",
|
|
614
|
-
"arn:aws:states:${var.region}:${var.account_id}:execution:thinkwork-${var.stage}-routine-*:*",
|
|
615
|
-
]
|
|
616
|
-
},
|
|
617
|
-
{
|
|
618
|
-
Sid = "RoutineTaskTokens"
|
|
619
|
-
Effect = "Allow"
|
|
620
|
-
Action = [
|
|
621
|
-
"states:SendTaskSuccess",
|
|
622
|
-
"states:SendTaskFailure",
|
|
623
|
-
"states:SendTaskHeartbeat",
|
|
624
|
-
]
|
|
625
|
-
Resource = "*"
|
|
626
|
-
},
|
|
627
|
-
{
|
|
628
|
-
Sid = "RoutineValidate"
|
|
629
|
-
Effect = "Allow"
|
|
630
|
-
Action = ["states:ValidateStateMachineDefinition"]
|
|
631
|
-
Resource = "*"
|
|
632
|
-
},
|
|
633
|
-
{
|
|
634
|
-
# PassRole so the createRoutine resolver can hand the routines
|
|
635
|
-
# execution role to a newly-created state machine. Scoped to the
|
|
636
|
-
# specific role created by the routines-stepfunctions module.
|
|
637
|
-
Sid = "RoutinePassExecutionRole"
|
|
638
|
-
Effect = "Allow"
|
|
639
|
-
Action = ["iam:PassRole"]
|
|
640
|
-
Resource = "arn:aws:iam::${var.account_id}:role/thinkwork-${var.stage}-routines-execution-role"
|
|
641
|
-
Condition = {
|
|
642
|
-
StringEquals = {
|
|
643
|
-
"iam:PassedToService" = "states.amazonaws.com"
|
|
644
|
-
}
|
|
645
|
-
}
|
|
646
|
-
},
|
|
647
|
-
{
|
|
648
|
-
# routine-task-python (Phase B U6) wraps the AgentCore code
|
|
649
|
-
# interpreter so SFN can run `python` recipe states. Three calls
|
|
650
|
-
# per Task: Start session, Invoke, Stop. Resource is `*` because
|
|
651
|
-
# interpreter sessions are runtime-scoped, not provisioned.
|
|
652
|
-
Sid = "RoutineTaskPythonCodeInterpreter"
|
|
653
|
-
Effect = "Allow"
|
|
654
|
-
Action = [
|
|
655
|
-
"bedrock-agentcore:StartCodeInterpreterSession",
|
|
656
|
-
"bedrock-agentcore:InvokeCodeInterpreter",
|
|
657
|
-
"bedrock-agentcore:StopCodeInterpreterSession",
|
|
658
|
-
"bedrock-agentcore:GetCodeInterpreterSession",
|
|
659
|
-
]
|
|
660
|
-
Resource = "*"
|
|
661
|
-
},
|
|
662
|
-
{
|
|
663
|
-
# routine-task-python S3 offload — full stdout/stderr land in
|
|
664
|
-
# the per-stage routine-output bucket under
|
|
665
|
-
# <tenantId>/<sfn-execution-id>/<nodeId>/{stdout,stderr}.log.
|
|
666
|
-
# PutObject only — the read path is GraphQL-fronted and runs
|
|
667
|
-
# under the graphql-http handler's role, not this one.
|
|
668
|
-
Sid = "RoutineTaskPythonS3Offload"
|
|
669
|
-
Effect = "Allow"
|
|
670
|
-
Action = [
|
|
671
|
-
"s3:PutObject",
|
|
672
|
-
]
|
|
673
|
-
Resource = "arn:aws:s3:::thinkwork-${var.stage}-routine-output/*"
|
|
674
|
-
},
|
|
675
|
-
]
|
|
676
|
-
})
|
|
163
|
+
policy_arn = "arn:aws:iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"
|
|
677
164
|
}
|
|
678
165
|
|
|
679
166
|
################################################################################
|
|
@@ -2,7 +2,7 @@ locals {
|
|
|
2
2
|
mcp_oauth_api_base_url = "https://${aws_apigatewayv2_api.main.id}.execute-api.${var.region}.amazonaws.com"
|
|
3
3
|
mcp_oauth_cognito_base_url = var.cognito_auth_domain != "" ? "https://${var.cognito_auth_domain}.auth.${var.region}.amazoncognito.com" : ""
|
|
4
4
|
mcp_oauth_identity_providers = var.google_oauth_client_id != "" ? ["Google", "COGNITO"] : ["COGNITO"]
|
|
5
|
-
mcp_oauth_logo_path = "${path.module}/../../../../apps/
|
|
5
|
+
mcp_oauth_logo_path = "${path.module}/../../../../apps/web/public/logo.png"
|
|
6
6
|
}
|
|
7
7
|
|
|
8
8
|
resource "aws_dynamodb_table" "mcp_oauth_revocations" {
|
|
@@ -98,21 +98,5 @@ resource "aws_cognito_user_pool_ui_customization" "mcp_oauth" {
|
|
|
98
98
|
CSS
|
|
99
99
|
}
|
|
100
100
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
role = aws_iam_role.lambda.id
|
|
104
|
-
|
|
105
|
-
policy = jsonencode({
|
|
106
|
-
Version = "2012-10-17"
|
|
107
|
-
Statement = [
|
|
108
|
-
{
|
|
109
|
-
Effect = "Allow"
|
|
110
|
-
Action = [
|
|
111
|
-
"dynamodb:GetItem",
|
|
112
|
-
"dynamodb:PutItem"
|
|
113
|
-
]
|
|
114
|
-
Resource = aws_dynamodb_table.mcp_oauth_revocations.arn
|
|
115
|
-
}
|
|
116
|
-
]
|
|
117
|
-
})
|
|
118
|
-
}
|
|
101
|
+
# The shared-role DynamoDB grant for the revocations table moved to
|
|
102
|
+
# aws_iam_policy.api_data_plane in iam-grouped.tf (R9).
|
|
@@ -4,8 +4,8 @@ output "api_id" {
|
|
|
4
4
|
}
|
|
5
5
|
|
|
6
6
|
output "api_endpoint" {
|
|
7
|
-
description = "API
|
|
8
|
-
value =
|
|
7
|
+
description = "Public HTTP API base URL. Uses the custom domain when configured so VPC runtimes with execute-api private DNS can still call service callbacks."
|
|
8
|
+
value = local.api_base_url
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
output "api_execution_arn" {
|
|
@@ -34,23 +34,67 @@ output "lambda_artifact_mode" {
|
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
output "memory_retain_fn_name" {
|
|
37
|
-
description = "Memory-retain Lambda function name.
|
|
37
|
+
description = "Memory-retain Lambda function name. Pi invokes this directly to push conversational turns into the active memory engine."
|
|
38
38
|
value = local.deploy_lambda_handlers ? aws_lambda_function.handler["memory-retain"].function_name : ""
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
output "memory_retain_fn_arn" {
|
|
42
|
-
description = "Memory-retain Lambda ARN. Used to grant lambda:InvokeFunction to the
|
|
42
|
+
description = "Memory-retain Lambda ARN. Used to grant lambda:InvokeFunction to the Pi runtime role."
|
|
43
43
|
value = local.deploy_lambda_handlers ? aws_lambda_function.handler["memory-retain"].arn : ""
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
+
output "knowledge_graph_thread_ingest_fn_name" {
|
|
47
|
+
description = "Knowledge Graph thread ingest worker Lambda function name."
|
|
48
|
+
value = local.deploy_lambda_handlers ? aws_lambda_function.handler["knowledge-graph-thread-ingest"].function_name : ""
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
output "knowledge_graph_thread_ingest_fn_arn" {
|
|
52
|
+
description = "Knowledge Graph thread ingest worker Lambda ARN."
|
|
53
|
+
value = local.deploy_lambda_handlers ? aws_lambda_function.handler["knowledge-graph-thread-ingest"].arn : ""
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
output "okf_efs_refresh_fn_name" {
|
|
57
|
+
description = "OKF EFS refresh Lambda function name."
|
|
58
|
+
value = local.deploy_lambda_handlers ? aws_lambda_function.handler["okf-efs-refresh"].function_name : ""
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
output "okf_efs_refresh_fn_arn" {
|
|
62
|
+
description = "OKF EFS refresh Lambda ARN."
|
|
63
|
+
value = local.deploy_lambda_handlers ? aws_lambda_function.handler["okf-efs-refresh"].arn : ""
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
output "brain_artifacts_bucket_name" {
|
|
67
|
+
description = "Canonical Company Brain S3 bucket for source artifacts, ingestion manifests, migration snapshots, vault projections, and exports."
|
|
68
|
+
value = aws_s3_bucket.brain_artifacts.bucket
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
output "brain_artifacts_bucket_arn" {
|
|
72
|
+
description = "ARN of the canonical Company Brain artifact bucket."
|
|
73
|
+
value = aws_s3_bucket.brain_artifacts.arn
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
output "billing_export_bucket_name" {
|
|
77
|
+
description = "Configured AWS billing export bucket consumed by the THNK-74 bill reconciler, or empty when not configured."
|
|
78
|
+
value = var.billing_export_bucket_name
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
output "billing_export_manifest_key" {
|
|
82
|
+
description = "Configured AWS billing export manifest key consumed by the THNK-74 bill reconciler, or empty when not configured."
|
|
83
|
+
value = var.billing_export_manifest_key
|
|
84
|
+
}
|
|
85
|
+
|
|
46
86
|
output "email_inbound_fn_arn" {
|
|
47
87
|
description = "email-inbound Lambda ARN. Used by the SES module to wire the receipt rule Lambda action."
|
|
48
|
-
|
|
88
|
+
# Statically constructed (not a resource attribute): SES/customer-domain gate
|
|
89
|
+
# count on this value, and an apply-time-unknown breaks the FIRST apply in a
|
|
90
|
+
# fresh account ("Invalid count argument" — THINK-118 harness cycle 4).
|
|
91
|
+
value = local.deploy_lambda_handlers ? "arn:aws:lambda:${var.region}:${var.account_id}:function:thinkwork-${var.stage}-api-email-inbound" : ""
|
|
49
92
|
}
|
|
50
93
|
|
|
51
94
|
output "email_inbound_fn_name" {
|
|
52
95
|
description = "email-inbound Lambda function name. Used by the SES module for lambda:InvokeFunction permissions."
|
|
53
|
-
|
|
96
|
+
# Static for the same fresh-account plan-time reason as email_inbound_fn_arn.
|
|
97
|
+
value = local.deploy_lambda_handlers ? "thinkwork-${var.stage}-api-email-inbound" : ""
|
|
54
98
|
}
|
|
55
99
|
|
|
56
100
|
# ---------------------------------------------------------------------------
|