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
|
@@ -1,323 +0,0 @@
|
|
|
1
|
-
################################################################################
|
|
2
|
-
# AgentCore Flue — App Module
|
|
3
|
-
#
|
|
4
|
-
# Plan §005 U2 — provisions the Flue agent runtime as a Lambda+LWA function.
|
|
5
|
-
#
|
|
6
|
-
# Layout note: this module owns the IAM role, log group, Lambda function, and
|
|
7
|
-
# event-invoke config that are unique to Flue. The shared ECR repo and async
|
|
8
|
-
# DLQ live in `../agentcore-runtime` and are injected via input variables; the
|
|
9
|
-
# IAM policy here grants `sqs:SendMessage` against the shared DLQ ARN.
|
|
10
|
-
#
|
|
11
|
-
# State migration: the resources here previously lived inside `module.agentcore`
|
|
12
|
-
# (the Strands runtime module) under the address `aws_*.agentcore_flue`. The
|
|
13
|
-
# `moved {}` blocks in `terraform/modules/thinkwork/main.tf` realign state
|
|
14
|
-
# across modules without destroy+create on the underlying AWS resources.
|
|
15
|
-
#
|
|
16
|
-
# Forward compat: U4-U8 will tighten the IAM role with Aurora Data API
|
|
17
|
-
# permissions for SessionStore, Secrets Manager for resolved DB credentials,
|
|
18
|
-
# and the AgentCore Code Interpreter actions that the FR-9a spike exercised.
|
|
19
|
-
# U2 lays the role down with the minimum permissions Flue needs to boot —
|
|
20
|
-
# subsequent units extend it as their dependencies land.
|
|
21
|
-
################################################################################
|
|
22
|
-
|
|
23
|
-
# memory-retain Lambda name + ARN are constructed locally rather than
|
|
24
|
-
# taken as inputs to avoid a circular dependency: the lambda-api module
|
|
25
|
-
# already consumes this module's output (agentcore_flue_function_name/arn).
|
|
26
|
-
# Mirrors the pattern in `../agentcore-runtime/main.tf`.
|
|
27
|
-
locals {
|
|
28
|
-
memory_retain_fn_name = "thinkwork-${var.stage}-api-memory-retain"
|
|
29
|
-
memory_retain_fn_arn = "arn:aws:lambda:${var.region}:${var.account_id}:function:${local.memory_retain_fn_name}"
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
################################################################################
|
|
33
|
-
# Execution Role
|
|
34
|
-
################################################################################
|
|
35
|
-
|
|
36
|
-
resource "aws_iam_role" "agentcore_flue" {
|
|
37
|
-
name = "thinkwork-${var.stage}-agentcore-flue-role"
|
|
38
|
-
|
|
39
|
-
assume_role_policy = jsonencode({
|
|
40
|
-
Version = "2012-10-17"
|
|
41
|
-
Statement = [{
|
|
42
|
-
Effect = "Allow"
|
|
43
|
-
Principal = { Service = ["ecs-tasks.amazonaws.com", "lambda.amazonaws.com", "bedrock-agentcore.amazonaws.com"] }
|
|
44
|
-
Action = "sts:AssumeRole"
|
|
45
|
-
}]
|
|
46
|
-
})
|
|
47
|
-
|
|
48
|
-
tags = {
|
|
49
|
-
Name = "thinkwork-${var.stage}-agentcore-flue-role"
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
resource "aws_iam_role_policy" "agentcore_flue" {
|
|
54
|
-
# Sibling policy: ../agentcore-runtime/main.tf `aws_iam_role_policy.agentcore`.
|
|
55
|
-
# The two policies share ~83% of statements (S3, Bedrock, AgentCore Memory,
|
|
56
|
-
# Code Interpreter, Logs, X-Ray, ECR, SSM, MemoryRetain). Flue adds Aurora
|
|
57
|
-
# Data API + Secrets Manager for U4 SessionStore. Keep both surfaces in
|
|
58
|
-
# sync for shared statements; let Flue-only additions diverge here.
|
|
59
|
-
name = "agentcore-flue-permissions"
|
|
60
|
-
role = aws_iam_role.agentcore_flue.id
|
|
61
|
-
|
|
62
|
-
policy = jsonencode({
|
|
63
|
-
Version = "2012-10-17"
|
|
64
|
-
Statement = [
|
|
65
|
-
{
|
|
66
|
-
Sid = "S3Access"
|
|
67
|
-
Effect = "Allow"
|
|
68
|
-
Action = ["s3:GetObject", "s3:PutObject", "s3:ListBucket"]
|
|
69
|
-
Resource = [
|
|
70
|
-
"arn:aws:s3:::${var.bucket_name}",
|
|
71
|
-
"arn:aws:s3:::${var.bucket_name}/*",
|
|
72
|
-
]
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
# Bedrock invoke spans foundation models, inference profiles, and
|
|
76
|
-
# cross-region routing. The original
|
|
77
|
-
# `arn:aws:bedrock:${region}::foundation-model/*` only covered
|
|
78
|
-
# foundation models in the primary region — but a
|
|
79
|
-
# `us.anthropic.claude-sonnet-...` inference profile (the default
|
|
80
|
-
# routing path used by chat-agent-invoke) lives at
|
|
81
|
-
# `arn:aws:bedrock:${region}:${account}:inference-profile/*` AND
|
|
82
|
-
# dispatches the actual InvokeModel call to the foundation model
|
|
83
|
-
# in whatever region the profile resolves to (us-east-1,
|
|
84
|
-
# us-east-2, us-west-2). The narrow ARN caused every agent turn
|
|
85
|
-
# to fail with AccessDenied silently inside pi-ai's Bedrock
|
|
86
|
-
# provider, surfacing as an empty assistant message with zero
|
|
87
|
-
# token usage. Strands uses `Resource = "*"` for the same actions;
|
|
88
|
-
# we match that posture.
|
|
89
|
-
Sid = "BedrockInvoke"
|
|
90
|
-
Effect = "Allow"
|
|
91
|
-
Action = ["bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream", "bedrock:InvokeAgent"]
|
|
92
|
-
Resource = "*"
|
|
93
|
-
},
|
|
94
|
-
{
|
|
95
|
-
# Automatic memory retention — every agent turn calls CreateEvent
|
|
96
|
-
# to feed AgentCore's background strategies. Also needs read access
|
|
97
|
-
# so the recall() tool can fetch previously extracted records and
|
|
98
|
-
# so forget() can soft-archive old records. Mirrors the Strands role.
|
|
99
|
-
Sid = "AgentCoreMemoryReadWrite"
|
|
100
|
-
Effect = "Allow"
|
|
101
|
-
Action = [
|
|
102
|
-
"bedrock-agentcore:CreateEvent",
|
|
103
|
-
"bedrock-agentcore:ListEvents",
|
|
104
|
-
"bedrock-agentcore:GetEvent",
|
|
105
|
-
"bedrock-agentcore:ListMemoryRecords",
|
|
106
|
-
"bedrock-agentcore:RetrieveMemoryRecords",
|
|
107
|
-
"bedrock-agentcore:GetMemoryRecord",
|
|
108
|
-
"bedrock-agentcore:BatchCreateMemoryRecords",
|
|
109
|
-
"bedrock-agentcore:BatchUpdateMemoryRecords",
|
|
110
|
-
]
|
|
111
|
-
Resource = "*"
|
|
112
|
-
},
|
|
113
|
-
{
|
|
114
|
-
# AgentCore Code Interpreter — Flue's primary sandbox per the FR-9a
|
|
115
|
-
# integration spike (`packages/flue-aws/connectors/agentcore-
|
|
116
|
-
# codeinterpreter.ts`). Per-tenant interpreters live under
|
|
117
|
-
# `code-interpreter-custom/*`; sessions are started, exec'd against,
|
|
118
|
-
# and stopped per Flue invocation.
|
|
119
|
-
Sid = "AgentCoreCodeInterpreter"
|
|
120
|
-
Effect = "Allow"
|
|
121
|
-
Action = [
|
|
122
|
-
"bedrock-agentcore:StartCodeInterpreterSession",
|
|
123
|
-
"bedrock-agentcore:StopCodeInterpreterSession",
|
|
124
|
-
"bedrock-agentcore:InvokeCodeInterpreter",
|
|
125
|
-
"bedrock-agentcore:GetCodeInterpreterSession",
|
|
126
|
-
"bedrock-agentcore:ListCodeInterpreterSessions",
|
|
127
|
-
"bedrock-agentcore:GetCodeInterpreter",
|
|
128
|
-
]
|
|
129
|
-
Resource = "arn:aws:bedrock-agentcore:${var.region}:${var.account_id}:code-interpreter-custom/*"
|
|
130
|
-
},
|
|
131
|
-
{
|
|
132
|
-
Sid = "CloudWatchLogs"
|
|
133
|
-
Effect = "Allow"
|
|
134
|
-
Action = [
|
|
135
|
-
"logs:CreateLogGroup",
|
|
136
|
-
"logs:CreateLogStream",
|
|
137
|
-
"logs:DescribeLogGroups",
|
|
138
|
-
"logs:DescribeLogStreams",
|
|
139
|
-
"logs:PutLogEvents",
|
|
140
|
-
]
|
|
141
|
-
# Lambda log group + AgentCore Runtime container log groups + the
|
|
142
|
-
# account-wide aws/spans log group (CloudWatch Transaction Search
|
|
143
|
-
# destination — required for AgentCore Evaluations to read spans).
|
|
144
|
-
Resource = [
|
|
145
|
-
"arn:aws:logs:${var.region}:${var.account_id}:log-group:/aws/lambda/thinkwork-${var.stage}-*",
|
|
146
|
-
"arn:aws:logs:${var.region}:${var.account_id}:log-group:/aws/lambda/thinkwork-${var.stage}-*:*",
|
|
147
|
-
"arn:aws:logs:${var.region}:${var.account_id}:log-group:/aws/bedrock-agentcore/runtimes/*",
|
|
148
|
-
"arn:aws:logs:${var.region}:${var.account_id}:log-group:/aws/bedrock-agentcore/runtimes/*:*",
|
|
149
|
-
"arn:aws:logs:${var.region}:${var.account_id}:log-group:aws/spans",
|
|
150
|
-
"arn:aws:logs:${var.region}:${var.account_id}:log-group:aws/spans:*",
|
|
151
|
-
]
|
|
152
|
-
},
|
|
153
|
-
{
|
|
154
|
-
# X-Ray ingestion — ADOT exporters publish spans here, which then
|
|
155
|
-
# flow to aws/spans via the Transaction Search policy. AgentCore
|
|
156
|
-
# Evaluations queries those spans by session.id when scoring runs.
|
|
157
|
-
Sid = "XRayIngest"
|
|
158
|
-
Effect = "Allow"
|
|
159
|
-
Action = [
|
|
160
|
-
"xray:PutTraceSegments",
|
|
161
|
-
"xray:PutTelemetryRecords",
|
|
162
|
-
"xray:GetSamplingRules",
|
|
163
|
-
"xray:GetSamplingTargets",
|
|
164
|
-
]
|
|
165
|
-
Resource = [
|
|
166
|
-
"arn:aws:xray:${var.region}:${var.account_id}:*",
|
|
167
|
-
"*",
|
|
168
|
-
]
|
|
169
|
-
},
|
|
170
|
-
{
|
|
171
|
-
Sid = "ECRPull"
|
|
172
|
-
Effect = "Allow"
|
|
173
|
-
Action = ["ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage"]
|
|
174
|
-
Resource = "arn:aws:ecr:${var.region}:${var.account_id}:repository/thinkwork-${var.stage}-*"
|
|
175
|
-
},
|
|
176
|
-
{
|
|
177
|
-
Sid = "ECRAuth"
|
|
178
|
-
Effect = "Allow"
|
|
179
|
-
Action = ["ecr:GetAuthorizationToken"]
|
|
180
|
-
Resource = "*"
|
|
181
|
-
},
|
|
182
|
-
{
|
|
183
|
-
Sid = "SSMParameterAccess"
|
|
184
|
-
Effect = "Allow"
|
|
185
|
-
Action = ["ssm:GetParameter", "ssm:PutParameter"]
|
|
186
|
-
Resource = "arn:aws:ssm:${var.region}:${var.account_id}:parameter/thinkwork/${var.stage}/agentcore/*"
|
|
187
|
-
},
|
|
188
|
-
{
|
|
189
|
-
# Async-invoke the memory-retain Lambda after every chat turn so
|
|
190
|
-
# the API's normalized memory layer can run the active engine's
|
|
191
|
-
# retainTurn() path (Hindsight POST /memories or AgentCore
|
|
192
|
-
# CreateEvent). InvocationType=Event from the runtime; this Lambda
|
|
193
|
-
# is the only target.
|
|
194
|
-
Sid = "MemoryRetainInvoke"
|
|
195
|
-
Effect = "Allow"
|
|
196
|
-
Action = ["lambda:InvokeFunction"]
|
|
197
|
-
Resource = local.memory_retain_fn_arn
|
|
198
|
-
},
|
|
199
|
-
{
|
|
200
|
-
# Aurora Data API — U4 SessionStore writes thread/message rows via
|
|
201
|
-
# the RDS Data API rather than long-lived Postgres connections.
|
|
202
|
-
# The cluster ARN and credentials secret are wired through the API
|
|
203
|
-
# Lambda's env (Plan §005 U4); listed here as broad cluster scope
|
|
204
|
-
# because the cluster ARN isn't an input to this module yet.
|
|
205
|
-
Sid = "AuroraDataAPI"
|
|
206
|
-
Effect = "Allow"
|
|
207
|
-
Action = [
|
|
208
|
-
"rds-data:ExecuteStatement",
|
|
209
|
-
"rds-data:BatchExecuteStatement",
|
|
210
|
-
"rds-data:BeginTransaction",
|
|
211
|
-
"rds-data:CommitTransaction",
|
|
212
|
-
"rds-data:RollbackTransaction",
|
|
213
|
-
]
|
|
214
|
-
Resource = "arn:aws:rds:${var.region}:${var.account_id}:cluster:thinkwork-${var.stage}-db-*"
|
|
215
|
-
},
|
|
216
|
-
{
|
|
217
|
-
# Secrets Manager — Flue resolves db credentials and other runtime
|
|
218
|
-
# secrets at invocation time per `feedback_completion_callback_
|
|
219
|
-
# snapshot_pattern`. Scoped to `/thinkwork/${stage}/*` per the
|
|
220
|
-
# existing convention.
|
|
221
|
-
Sid = "SecretsManagerRead"
|
|
222
|
-
Effect = "Allow"
|
|
223
|
-
Action = [
|
|
224
|
-
"secretsmanager:GetSecretValue",
|
|
225
|
-
"secretsmanager:DescribeSecret",
|
|
226
|
-
]
|
|
227
|
-
Resource = "arn:aws:secretsmanager:${var.region}:${var.account_id}:secret:thinkwork-${var.stage}-*"
|
|
228
|
-
},
|
|
229
|
-
]
|
|
230
|
-
})
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
resource "aws_iam_role_policy" "agentcore_flue_dlq_send" {
|
|
234
|
-
name = "agentcore-flue-dlq-send"
|
|
235
|
-
role = aws_iam_role.agentcore_flue.id
|
|
236
|
-
|
|
237
|
-
policy = jsonencode({
|
|
238
|
-
Version = "2012-10-17"
|
|
239
|
-
Statement = [{
|
|
240
|
-
Effect = "Allow"
|
|
241
|
-
Action = ["sqs:SendMessage"]
|
|
242
|
-
Resource = var.async_dlq_arn
|
|
243
|
-
}]
|
|
244
|
-
})
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
################################################################################
|
|
248
|
-
# CloudWatch Log Group
|
|
249
|
-
################################################################################
|
|
250
|
-
|
|
251
|
-
resource "aws_cloudwatch_log_group" "agentcore_flue" {
|
|
252
|
-
name = "/thinkwork/${var.stage}/agentcore-flue"
|
|
253
|
-
retention_in_days = 30
|
|
254
|
-
|
|
255
|
-
tags = {
|
|
256
|
-
Name = "thinkwork-${var.stage}-agentcore-flue-logs"
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
################################################################################
|
|
261
|
-
# Lambda Container Image
|
|
262
|
-
################################################################################
|
|
263
|
-
|
|
264
|
-
resource "aws_lambda_function" "agentcore_flue" {
|
|
265
|
-
function_name = "thinkwork-${var.stage}-agentcore-flue"
|
|
266
|
-
role = aws_iam_role.agentcore_flue.arn
|
|
267
|
-
package_type = "Image"
|
|
268
|
-
image_uri = "${var.ecr_repository_url}:flue-latest"
|
|
269
|
-
timeout = 900
|
|
270
|
-
memory_size = 2048
|
|
271
|
-
|
|
272
|
-
environment {
|
|
273
|
-
variables = {
|
|
274
|
-
PORT = "8080"
|
|
275
|
-
AWS_LWA_PORT = "8080"
|
|
276
|
-
AGENTCORE_MEMORY_ID = var.agentcore_memory_id
|
|
277
|
-
AGENTCORE_FILES_BUCKET = var.bucket_name
|
|
278
|
-
MEMORY_ENGINE = var.memory_engine
|
|
279
|
-
REQUESTER_IDLE_MEMORY_LEARNING_ENABLED = tostring(var.requester_idle_memory_learning_enabled)
|
|
280
|
-
MEMORY_RETAIN_FN_NAME = local.memory_retain_fn_name
|
|
281
|
-
HINDSIGHT_ENDPOINT = var.hindsight_endpoint
|
|
282
|
-
THINKWORK_API_URL = var.api_endpoint
|
|
283
|
-
API_AUTH_SECRET = var.api_auth_secret
|
|
284
|
-
# Plan §005 U4 — AuroraSessionStore uses the RDS Data API to persist
|
|
285
|
-
# Flue's SessionData blobs against threads.session_data. Empty during
|
|
286
|
-
# the first greenfield apply (DB cluster doesn't exist yet); the
|
|
287
|
-
# constructor fail-closes if either is missing at runtime.
|
|
288
|
-
DB_CLUSTER_ARN = var.db_cluster_arn
|
|
289
|
-
DB_SECRET_ARN = var.db_secret_arn
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
|
|
293
|
-
logging_config {
|
|
294
|
-
log_group = aws_cloudwatch_log_group.agentcore_flue.name
|
|
295
|
-
log_format = "Text"
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
tags = {
|
|
299
|
-
Name = "thinkwork-${var.stage}-agentcore-flue"
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
################################################################################
|
|
304
|
-
# Async-invoke hardening — MaximumRetryAttempts=0 + DLQ
|
|
305
|
-
#
|
|
306
|
-
# Mirrors the Strands runtime's invoke-config in `../agentcore-runtime/main.tf`.
|
|
307
|
-
# AWS Lambda async-invoke defaults to 2 retries; the agent loop is not
|
|
308
|
-
# idempotent (Bedrock tokens get re-burned, partial deliverables can
|
|
309
|
-
# overwrite the first), so retries are disabled and failed invokes land in
|
|
310
|
-
# the shared DLQ for operator visibility.
|
|
311
|
-
################################################################################
|
|
312
|
-
|
|
313
|
-
resource "aws_lambda_function_event_invoke_config" "agentcore_flue" {
|
|
314
|
-
function_name = aws_lambda_function.agentcore_flue.function_name
|
|
315
|
-
maximum_retry_attempts = 0
|
|
316
|
-
maximum_event_age_in_seconds = 3600
|
|
317
|
-
|
|
318
|
-
destination_config {
|
|
319
|
-
on_failure {
|
|
320
|
-
destination = var.async_dlq_arn
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
################################################################################
|
|
2
|
-
# AgentCore Flue — App Module (outputs)
|
|
3
|
-
################################################################################
|
|
4
|
-
|
|
5
|
-
output "agentcore_flue_function_name" {
|
|
6
|
-
description = "Flue AgentCore Lambda function name (for direct SDK invoke from chat-agent-invoke)"
|
|
7
|
-
value = aws_lambda_function.agentcore_flue.function_name
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
output "agentcore_flue_function_arn" {
|
|
11
|
-
description = "Flue AgentCore Lambda function ARN (for IAM policy on callers; used to grant lambda:InvokeFunction)"
|
|
12
|
-
value = aws_lambda_function.agentcore_flue.arn
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
output "agentcore_flue_runtime_role_arn" {
|
|
16
|
-
description = "IAM role ARN for the Flue agent runtime (assumed by Lambda + Bedrock AgentCore Runtime principals)"
|
|
17
|
-
value = aws_iam_role.agentcore_flue.arn
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
output "agentcore_flue_log_group_name" {
|
|
21
|
-
description = "CloudWatch log group name for the Flue Lambda. Useful for log scrubbing and operator inspection."
|
|
22
|
-
value = aws_cloudwatch_log_group.agentcore_flue.name
|
|
23
|
-
}
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
################################################################################
|
|
2
|
-
# AgentCore Flue — App Module (variables)
|
|
3
|
-
#
|
|
4
|
-
# Plan §005 U2 — provisions the Flue agent runtime as a Lambda+LWA function
|
|
5
|
-
# (the same shape as the Strands runtime in `../agentcore-runtime`, NOT the
|
|
6
|
-
# Bedrock AgentCore Runtime ECR-substrate pattern in `../agentcore-code-
|
|
7
|
-
# interpreter`).
|
|
8
|
-
#
|
|
9
|
-
# ECR repo + async DLQ are shared with the Strands runtime — they're injected
|
|
10
|
-
# from `module.agentcore` outputs at the parent composition layer rather than
|
|
11
|
-
# being created here. This avoids a duplicate ECR repository and a parallel DLQ
|
|
12
|
-
# while still letting Flue carry its own IAM role, log group, Lambda function,
|
|
13
|
-
# and event-invoke config.
|
|
14
|
-
################################################################################
|
|
15
|
-
|
|
16
|
-
variable "stage" {
|
|
17
|
-
description = "Deployment stage"
|
|
18
|
-
type = string
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
variable "account_id" {
|
|
22
|
-
description = "AWS account ID"
|
|
23
|
-
type = string
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
variable "region" {
|
|
27
|
-
description = "AWS region"
|
|
28
|
-
type = string
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
variable "bucket_name" {
|
|
32
|
-
description = "Primary S3 bucket for skills and workspace files."
|
|
33
|
-
type = string
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
variable "ecr_repository_url" {
|
|
37
|
-
description = "ECR repository URL for the AgentCore container image. Shared with the Strands runtime (thinkwork-<stage>-agentcore); the Flue runtime pulls the flue-latest / <sha>-flue image tags from this repo."
|
|
38
|
-
type = string
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
variable "async_dlq_arn" {
|
|
42
|
-
description = "SQS DLQ ARN for failed `kind=run_skill` async invokes. Shared with the Strands runtime so operator inspection has a single queue to watch."
|
|
43
|
-
type = string
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
variable "hindsight_endpoint" {
|
|
47
|
-
description = "Hindsight API endpoint. Empty string (default) disables Hindsight tools in the container; set to an endpoint URL to enable Hindsight as an add-on alongside the always-on managed memory."
|
|
48
|
-
type = string
|
|
49
|
-
default = ""
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
variable "agentcore_memory_id" {
|
|
53
|
-
description = "AgentCore Memory resource ID. Populated automatically by the agentcore-memory module; injected into the container as AGENTCORE_MEMORY_ID for auto-retention."
|
|
54
|
-
type = string
|
|
55
|
-
default = ""
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
variable "api_endpoint" {
|
|
59
|
-
description = "Deployed API Gateway base URL. Injected as THINKWORK_API_URL so the composition runner (run_skill dispatch) can POST terminal state back to /api/skills/complete."
|
|
60
|
-
type = string
|
|
61
|
-
default = ""
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
variable "api_auth_secret" {
|
|
65
|
-
description = "Service-auth bearer shared secret. Injected as API_AUTH_SECRET so the composition runner can authenticate to /api/skills/complete. Matches the lambda-api module's value."
|
|
66
|
-
type = string
|
|
67
|
-
default = ""
|
|
68
|
-
sensitive = true
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
variable "memory_engine" {
|
|
72
|
-
description = "Active long-term memory engine ('hindsight' or 'agentcore'). Surfaced to the runtime as MEMORY_ENGINE for telemetry/debugging only; engine selection itself happens in the API's normalized memory layer when memory-retain is invoked."
|
|
73
|
-
type = string
|
|
74
|
-
default = "hindsight"
|
|
75
|
-
validation {
|
|
76
|
-
condition = contains(["hindsight", "agentcore"], var.memory_engine)
|
|
77
|
-
error_message = "memory_engine must be 'hindsight' or 'agentcore'."
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
variable "requester_idle_memory_learning_enabled" {
|
|
82
|
-
description = "When true, requester memory learning runs through the API idle/dreaming pipeline instead of runtime retain-on-every-turn."
|
|
83
|
-
type = bool
|
|
84
|
-
default = false
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
variable "db_cluster_arn" {
|
|
88
|
-
description = "Aurora DB cluster ARN. Injected as DB_CLUSTER_ARN so AuroraSessionStore (plan §005 U4) can target the cluster via the RDS Data API. The cluster's IAM resource scope (thinkwork-<stage>-db-* in agentcore-flue's role policy) covers any cluster-id suffix."
|
|
89
|
-
type = string
|
|
90
|
-
default = ""
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
variable "db_secret_arn" {
|
|
94
|
-
description = "Secrets Manager ARN for the Aurora cluster credentials. Injected as DB_SECRET_ARN so AuroraSessionStore can authenticate against the cluster via the RDS Data API. Matches the secret graphql-http already consumes — single source of truth."
|
|
95
|
-
type = string
|
|
96
|
-
default = ""
|
|
97
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
# Computer Runtime
|
|
2
|
-
|
|
3
|
-
Shared ECS/EFS substrate for ThinkWork Computers.
|
|
4
|
-
|
|
5
|
-
This module creates shared infrastructure only:
|
|
6
|
-
|
|
7
|
-
- ECR repository for the Computer runtime image.
|
|
8
|
-
- ECS/Fargate cluster.
|
|
9
|
-
- Encrypted EFS filesystem and mount targets.
|
|
10
|
-
- Task and EFS security groups, with NFS scoped to runtime tasks.
|
|
11
|
-
- Optional public-IP task networking for low-cost outbound API/CLI access without a NAT gateway.
|
|
12
|
-
- Execution/task roles and CloudWatch log group.
|
|
13
|
-
- Manager IAM policy for per-Computer access points, task definitions, and services.
|
|
14
|
-
|
|
15
|
-
Per-Computer EFS access points, task-definition revisions, and ECS services are created by the Computer manager Lambda from database rows. Terraform should not create one resource set per user.
|