thinkwork-cli 0.13.0 → 0.13.2

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.
Files changed (178) hide show
  1. package/dist/{api-client-JUBCQQDF.js → api-client-JYZXYQJR.js} +3 -1
  2. package/dist/bowser-6Z6JFAIR.js +2822 -0
  3. package/dist/chunk-DV3MRBR5.js +43 -0
  4. package/dist/chunk-DVPBI5HM.js +1728 -0
  5. package/dist/chunk-EI5ZX7CN.js +522 -0
  6. package/dist/chunk-EUJ7X6YD.js +126 -0
  7. package/dist/chunk-GG5WKBOX.js +436 -0
  8. package/dist/chunk-I64EZSU5.js +358 -0
  9. package/dist/chunk-ILZKG5WV.js +6151 -0
  10. package/dist/chunk-KMIJ5KGT.js +128 -0
  11. package/dist/chunk-OCPHU34C.js +996 -0
  12. package/dist/chunk-QOERT44A.js +3286 -0
  13. package/dist/chunk-XYM7PE2A.js +2264 -0
  14. package/dist/{chunk-STY44FQO.js → chunk-Z2F6RJFR.js} +12 -18
  15. package/dist/cli.js +72564 -18884
  16. package/dist/dist-es-CRV46D5B.js +315 -0
  17. package/dist/dist-es-DCY4IC3Y.js +2000 -0
  18. package/dist/dist-es-ENBUC3JP.js +14726 -0
  19. package/dist/dist-es-G54LBMRN.js +48 -0
  20. package/dist/dist-es-G7PTG75M.js +176 -0
  21. package/dist/dist-es-GKDBE7E6.js +88 -0
  22. package/dist/dist-es-HY3535OI.js +70 -0
  23. package/dist/dist-es-KL7Y5NB2.js +377 -0
  24. package/dist/dist-es-LDE437AM.js +170 -0
  25. package/dist/dist-es-P26FWFLT.js +485 -0
  26. package/dist/dist-es-Q57SZXZ7.js +70 -0
  27. package/dist/dist-es-R7FGL2IB.js +88 -0
  28. package/dist/dist-es-USORBXZ5.js +318 -0
  29. package/dist/dist-es-ZKC2QKD2.js +377 -0
  30. package/dist/drizzle/0076_scheduled_jobs_marco_backfill.sql +2 -1
  31. package/dist/drizzle/0079_seed_tenant_customize_catalog.sql +1 -0
  32. package/dist/drizzle/0090_brain_schema_extraction.sql +10 -0
  33. package/dist/drizzle/0132_drop_computer_tables.sql +3 -0
  34. package/dist/drizzle/0160_compliance_event_types_plugins.sql +2 -0
  35. package/dist/drizzle/0214_think137_drop_judge_evidence_roi.sql +1 -0
  36. package/dist/drizzle/0216_drop_agent_loop_versions_goal_worker_policy.sql +1 -0
  37. package/dist/drizzle/0227_analyst_reader_role.sql +106 -38
  38. package/dist/drizzle/0230_analyst_rls.sql +192 -66
  39. package/dist/drizzle/0232_memory_source_thin_ledger.sql +176 -0
  40. package/dist/drizzle/0232_message_source_event_id.sql +9 -0
  41. package/dist/drizzle/0233_msteams_install_and_links.sql +151 -0
  42. package/dist/drizzle/0233_workflow_memory_stage_tokens.sql +20 -0
  43. package/dist/drizzle/0234_memory_claim_lifecycle.sql +160 -0
  44. package/dist/drizzle/0235_workflow_token_execution_claim.sql +34 -0
  45. package/dist/drizzle/0236_memory_retraction_fencing.sql +50 -0
  46. package/dist/drizzle/0237_memory_claims_active_value_uidx.sql +172 -0
  47. package/dist/drizzle/0238_memory_erase_generation_fence.sql +97 -0
  48. package/dist/drizzle/0239_canonical_entity_identity.sql +257 -0
  49. package/dist/drizzle/0240_memory_personal_scope.sql +45 -0
  50. package/dist/drizzle/0241_knowledge_base_document_manifest.sql +67 -0
  51. package/dist/drizzle/0242_search_queries.sql +28 -0
  52. package/dist/drizzle/0243_section_sources_thread_refs.sql +12 -0
  53. package/dist/drizzle/0244_system_automations_and_memory_stage_overrides.sql +45 -0
  54. package/dist/drizzle/0245_wiki_page_render.sql +21 -0
  55. package/dist/drizzle/0246_automation_workflow_ownership.sql +30 -0
  56. package/dist/drizzle/0247_capability_runtime.sql +402 -0
  57. package/dist/drizzle/0248_capability_private_interpreter.sql +13 -0
  58. package/dist/drizzle/0249_capability_headless_execution_evidence.sql +40 -0
  59. package/dist/drizzle/0250_kg_schema_extraction.sql +576 -0
  60. package/dist/drizzle/0251_agents_json_render_ui.sql +25 -0
  61. package/dist/drizzle/0251_brain_stragglers.sql +263 -0
  62. package/dist/drizzle/0252_drop_kg_and_straggler_compat_views.sql +100 -0
  63. package/dist/drizzle/0253_drop_brain_substrate.sql +93 -0
  64. package/dist/drizzle/0254_capability_autonomous_admission.sql +29 -0
  65. package/dist/drizzle/0255_capability_autonomous_approval_mode.sql +16 -0
  66. package/dist/drizzle/0256_agent_profile_manifest_authority.sql +18 -0
  67. package/dist/drizzle/0257_agents_runtime_allow_harness.sql +24 -0
  68. package/dist/drizzle/0257_capability_approvals.sql +53 -0
  69. package/dist/drizzle/0258_pending_tool_approvals.sql +84 -0
  70. package/dist/drizzle/0259_tenant_capability_registry_trust.sql +19 -0
  71. package/dist/drizzle/0260_scheduled_jobs_run_as_user.sql +20 -0
  72. package/dist/drizzle/0261_managed_harness_multiplayer.sql +313 -0
  73. package/dist/drizzle/0261_native_auth_control_plane.sql +328 -0
  74. package/dist/drizzle/0262_auth_subscription_tickets.sql +59 -0
  75. package/dist/drizzle/0262_parallel_harness_threads.sql +9 -0
  76. package/dist/drizzle/0263_agentcore_runtime_identifier.sql +69 -0
  77. package/dist/drizzle/0263_drop_workos_auth_runtime.sql +236 -0
  78. package/dist/drizzle/0264_auth_enrollment_attempt_limits.sql +15 -0
  79. package/dist/drizzle/0264_harness_tool_execution_ledger.sql +113 -0
  80. package/dist/drizzle/0265_eval_runs_requester_identity.sql +28 -0
  81. package/dist/drizzle/0265_require_fully_valid_auth_publication.sql +27 -0
  82. package/dist/drizzle/0266_auth_identity_recovery_grants.sql +9 -0
  83. package/dist/drizzle/0266_eval_profiles_runtime_type.sql +12 -0
  84. package/dist/drizzle/0267_ontology_candidate_rejections.sql +53 -0
  85. package/dist/drizzle/0268_identity_crosswalk_routing.sql +182 -0
  86. package/dist/drizzle/0269_ontology_system_map.sql +31 -0
  87. package/dist/event-streams-7JNLJEEL.js +894 -0
  88. package/dist/event-streams-KDF5RWR6.js +1515 -0
  89. package/dist/loadSso-DJVB7BXE.js +576 -0
  90. package/dist/loadSso-JAMNA3WY.js +583 -0
  91. package/dist/plugins/catalog/package.json +1 -2
  92. package/dist/plugins/catalog/src/__tests__/build-catalog.test.ts +0 -1
  93. package/dist/plugins/catalog/src/__tests__/contracts.test.ts +0 -69
  94. package/dist/plugins/catalog/src/__tests__/plugin-package.test.ts +0 -2
  95. package/dist/plugins/catalog/src/__tests__/plugin-registry.test.ts +0 -5
  96. package/dist/plugins/catalog/src/contracts.ts +2 -179
  97. package/dist/plugins/catalog/src/registry/generated-first-party.ts +0 -6
  98. package/dist/signin-UGDWTGS4.js +821 -0
  99. package/dist/sso-oidc-Q4VXANXY.js +837 -0
  100. package/dist/sts-CWLSE3GH.js +1241 -0
  101. package/dist/sts-DNZLNVOV.js +1245 -0
  102. package/dist/terraform/examples/greenfield/main.tf +247 -50
  103. package/dist/terraform/examples/greenfield/terraform.tfvars.example +15 -1
  104. package/dist/terraform/modules/app/agentcore-admin/main.tf +341 -0
  105. package/dist/terraform/modules/app/agentcore-admin/outputs.tf +20 -0
  106. package/dist/terraform/modules/app/agentcore-code-interpreter/main.tf +61 -0
  107. package/dist/terraform/modules/app/agentcore-gateway/main.tf +305 -0
  108. package/dist/terraform/modules/app/agentcore-gateway/outputs.tf +44 -0
  109. package/dist/terraform/modules/app/agentcore-gateway/scripts/delete_gateway.sh +93 -0
  110. package/dist/terraform/modules/app/agentcore-gateway/scripts/read_gateway.sh +33 -0
  111. package/dist/terraform/modules/app/agentcore-gateway/scripts/reconcile_gateway.sh +543 -0
  112. package/dist/terraform/modules/app/agentcore-gateway/variables.tf +70 -0
  113. package/dist/terraform/modules/app/agentcore-harness/main.tf +330 -0
  114. package/dist/terraform/modules/app/agentcore-harness/outputs.tf +72 -0
  115. package/dist/terraform/modules/app/agentcore-harness/scripts/delete_harness.sh +5 -0
  116. package/dist/terraform/modules/app/agentcore-harness/scripts/harness-lifecycle.mjs +430 -0
  117. package/dist/terraform/modules/app/agentcore-harness/scripts/harness-readback.mjs +180 -0
  118. package/dist/terraform/modules/app/agentcore-harness/scripts/harness-tool-contract.mjs +193 -0
  119. package/dist/terraform/modules/app/agentcore-harness/scripts/prune_harness.sh +5 -0
  120. package/dist/terraform/modules/app/agentcore-harness/scripts/read_harness.sh +5 -0
  121. package/dist/terraform/modules/app/agentcore-harness/scripts/reconcile_harness.sh +5 -0
  122. package/dist/terraform/modules/app/agentcore-harness/variables.tf +96 -0
  123. package/dist/terraform/modules/app/agentcore-identity/main.tf +173 -0
  124. package/dist/terraform/modules/app/agentcore-identity/outputs.tf +51 -0
  125. package/dist/terraform/modules/app/agentcore-identity/scripts/bootstrap_twenty_oauth_client.sh +122 -0
  126. package/dist/terraform/modules/app/agentcore-identity/scripts/delete_identity.sh +25 -0
  127. package/dist/terraform/modules/app/agentcore-identity/scripts/delete_twenty_identity.sh +16 -0
  128. package/dist/terraform/modules/app/agentcore-identity/scripts/read_identity.sh +40 -0
  129. package/dist/terraform/modules/app/agentcore-identity/scripts/reconcile_identity.sh +73 -0
  130. package/dist/terraform/modules/app/agentcore-identity/scripts/reconcile_twenty_identity.sh +74 -0
  131. package/dist/terraform/modules/app/agentcore-identity/scripts/reconcile_twenty_provider.mjs +61 -0
  132. package/dist/terraform/modules/app/agentcore-identity/variables.tf +54 -0
  133. package/dist/terraform/modules/app/agentcore-pi/main.tf +7 -0
  134. package/dist/terraform/modules/app/appsync-subscriptions/main.tf +127 -21
  135. package/dist/terraform/modules/app/appsync-subscriptions/outputs.tf +0 -6
  136. package/dist/terraform/modules/app/appsync-subscriptions/variables.tf +5 -0
  137. package/dist/terraform/modules/app/capability-broker/main.tf +393 -0
  138. package/dist/terraform/modules/app/capability-broker/outputs.tf +54 -0
  139. package/dist/terraform/modules/app/capability-broker/variables.tf +98 -0
  140. package/dist/terraform/modules/app/deployment-control-plane/runner.py +1011 -31
  141. package/dist/terraform/modules/app/deployment-control-plane/test_runner_bundle.py +655 -2
  142. package/dist/terraform/modules/app/lambda-api/agentcore-harness-alarms.tf +88 -0
  143. package/dist/terraform/modules/app/lambda-api/agentcore-identity-alarms.tf +91 -0
  144. package/dist/terraform/modules/app/lambda-api/capability-search-alarms.tf +60 -0
  145. package/dist/terraform/modules/app/lambda-api/handlers.tf +606 -37
  146. package/dist/terraform/modules/app/lambda-api/iam-grouped.tf +192 -21
  147. package/dist/terraform/modules/app/lambda-api/main.tf +35 -0
  148. package/dist/terraform/modules/app/lambda-api/mcp-oauth.tf +181 -4
  149. package/dist/terraform/modules/app/lambda-api/memory-alarms.tf +92 -0
  150. package/dist/terraform/modules/app/lambda-api/msteams-app-secrets.tf +46 -0
  151. package/dist/terraform/modules/app/lambda-api/outputs.tf +35 -0
  152. package/dist/terraform/modules/app/lambda-api/runtime-config.tf +3 -21
  153. package/dist/terraform/modules/app/lambda-api/variables.tf +188 -3
  154. package/dist/terraform/modules/app/workflow-interpreter-stepfunctions/alarms.tf +47 -0
  155. package/dist/terraform/modules/app/workflow-interpreter-stepfunctions/main.tf +43 -2
  156. package/dist/terraform/modules/foundation/cognito/main.tf +319 -73
  157. package/dist/terraform/modules/foundation/cognito/outputs.tf +42 -0
  158. package/dist/terraform/modules/foundation/cognito/variables.tf +124 -2
  159. package/dist/terraform/modules/foundation/vpc/outputs.tf +5 -0
  160. package/dist/terraform/modules/thinkwork/main.tf +396 -26
  161. package/dist/terraform/modules/thinkwork/outputs.tf +188 -5
  162. package/dist/terraform/modules/thinkwork/variables.tf +154 -5
  163. package/dist/terraform/schema.graphql +69 -36
  164. package/dist/workspace-defaults/files/TOOLS.md +39 -0
  165. package/dist/workspace-defaults/files/USER.md +1 -0
  166. package/dist/workspace-defaults/files/agents/analyst/INSTRUCTIONS.md +18 -0
  167. package/dist/workspace-defaults/files/agents/coding/INSTRUCTIONS.md +11 -0
  168. package/dist/workspace-defaults/files/agents/research/INSTRUCTIONS.md +12 -0
  169. package/dist/workspace-defaults/files/agents/reviewer/INSTRUCTIONS.md +15 -0
  170. package/dist/workspace-defaults/files/skills/document-composer/SKILL.md +6 -2
  171. package/package.json +6 -3
  172. package/dist/plugins/workos-auth/package.json +0 -22
  173. package/dist/plugins/workos-auth/src/index.ts +0 -30
  174. package/dist/plugins/workos-auth/src/manifest.ts +0 -40
  175. package/dist/plugins/workos-auth/src/provider-contract.ts +0 -39
  176. package/dist/plugins/workos-auth/test/manifest.test.ts +0 -94
  177. package/dist/plugins/workos-auth/tsconfig.json +0 -8
  178. /package/dist/workspace-defaults/files/{AGENTS.md → INSTRUCTIONS.md} +0 -0
@@ -28,6 +28,30 @@ output "identity_provider_names" {
28
28
  value = module.cognito.identity_provider_names
29
29
  }
30
30
 
31
+ output "auth_route_clients" {
32
+ description = "Safe Cognito app-client manifest for local, Google, Microsoft, and tenant Entra routes."
33
+ value = module.cognito.auth_route_clients
34
+ }
35
+
36
+ output "auth_retirement_phase" {
37
+ description = "Applied authentication retirement phase used for safe controller upgrades."
38
+ value = module.cognito.auth_retirement_phase
39
+ }
40
+
41
+ output "web_local_client_id" {
42
+ description = "Local-password-only Cognito app client for web login."
43
+ value = module.cognito.web_local_client_id
44
+ }
45
+
46
+ output "mobile_local_client_id" {
47
+ description = "Local-password-only Cognito app client for mobile login."
48
+ value = module.cognito.mobile_local_client_id
49
+ }
50
+
51
+ output "microsoft_identity_provider_name" {
52
+ value = module.cognito.microsoft_identity_provider_name
53
+ }
54
+
31
55
  output "kms_key_arn" {
32
56
  value = module.kms.key_arn
33
57
  }
@@ -107,11 +131,6 @@ output "appsync_realtime_url" {
107
131
  value = module.appsync.graphql_realtime_url
108
132
  }
109
133
 
110
- output "appsync_api_key" {
111
- value = module.appsync.graphql_api_key
112
- sensitive = true
113
- }
114
-
115
134
  output "auth_domain" {
116
135
  description = "Cognito hosted UI domain"
117
136
  value = module.cognito.auth_domain
@@ -604,3 +623,167 @@ output "compliance_anchor_lambda_role_arn" {
604
623
  description = "ARN of the IAM role the anchor Lambda (U8a/U8b) will assume. Inert in U7 — no Lambda function references this yet."
605
624
  value = module.compliance_anchors.lambda_role_arn
606
625
  }
626
+
627
+ # Capability broker (THINK-280 U3) — ship-inert; all empty until
628
+ # var.enable_capability_broker flips on. The API-side session opener reads
629
+ # these to build the sandbox SessionBootstrap.
630
+ output "capability_broker_enabled" {
631
+ description = "Whether the governed capability broker infra is provisioned."
632
+ value = module.capability_broker.enabled
633
+ }
634
+
635
+ output "capability_broker_session_table_name" {
636
+ description = "DynamoDB session table (CAPABILITY_BROKER_SESSION_TABLE). Empty when disabled."
637
+ value = module.capability_broker.session_table_name
638
+ }
639
+
640
+ output "capability_broker_audience" {
641
+ description = "PoP session audience (CAPABILITY_BROKER_AUDIENCE). Empty when disabled."
642
+ value = module.capability_broker.broker_audience
643
+ }
644
+
645
+ output "capability_broker_private_api_id" {
646
+ description = "Private REST API id the sandbox targets through the VPCE (CAPABILITY_BROKER_API_ID). Empty when disabled."
647
+ value = module.capability_broker.private_api_id
648
+ }
649
+
650
+ output "capability_broker_vpce_dns_name" {
651
+ description = "Endpoint-specific execute-api VPCE DNS name (private DNS OFF; CAPABILITY_BROKER_VPCE_DNS). Empty when disabled."
652
+ value = module.capability_broker.execute_api_vpce_dns_name
653
+ }
654
+
655
+ # THINK-280 U4 — VPC placement for the capability-private interpreter, threaded
656
+ # to the agentcore-admin Lambda (CAPABILITY_PRIVATE_SUBNET_IDS /
657
+ # CAPABILITY_PRIVATE_SECURITY_GROUP_IDS) when U5/U6 wire that handler. Empty
658
+ # when the broker is disabled, so the Lambda skips capability-private entirely.
659
+ output "capability_private_interpreter_subnet_ids" {
660
+ description = "No-NAT subnets the capability-private VPC-mode interpreter attaches to. Empty when the broker is disabled."
661
+ value = module.capability_broker.capability_private_interpreter_subnet_ids
662
+ }
663
+
664
+ output "capability_private_interpreter_security_group_id" {
665
+ description = "Egress-only SG (broker execute-api VPCE + DNS only) for the capability-private interpreter. Empty when the broker is disabled."
666
+ value = module.capability_broker.capability_private_interpreter_security_group_id
667
+ }
668
+
669
+ output "analyst_egress_ip" {
670
+ description = "Stable NAT egress IP of the VPC-attached analyst data-path Lambdas — the address an external database's IP allowlist must admit. Null unless analyst_lambda_vpc_egress is set (and the stack has a NAT gateway)."
671
+ value = var.analyst_lambda_vpc_egress ? module.vpc.nat_gateway_public_ip : null
672
+ }
673
+
674
+ # AgentCore Harness managed runtime outputs. Rollout-era `*_proof_*` aliases
675
+ # remain below so existing automation can migrate without replacing resources.
676
+ output "agentcore_harness_execution_role_arn" {
677
+ description = "Execution role ARN Harness microVMs assume (CreateHarness executionRoleArn). Empty when enable_agentcore_harness is false."
678
+ value = module.agentcore_harness.execution_role_arn
679
+ }
680
+
681
+ output "agentcore_harness_arn" {
682
+ description = "Managed tenant/profile AgentCore Harness ARN. Empty when the managed runtime is disabled."
683
+ value = module.agentcore_harness.managed_harness_arn
684
+ }
685
+
686
+ output "agentcore_harness_endpoint_arn" {
687
+ description = "Named version-pinned managed AgentCore Harness endpoint ARN."
688
+ value = module.agentcore_harness.managed_endpoint_arn
689
+ }
690
+
691
+ output "agentcore_harness_endpoint_name" {
692
+ description = "Named managed AgentCore Harness endpoint qualifier."
693
+ value = module.agentcore_harness.managed_endpoint_name
694
+ }
695
+
696
+ output "agentcore_harness_version" {
697
+ description = "Attested immutable AgentCore Harness version served by the managed endpoint."
698
+ value = module.agentcore_harness.managed_target_version
699
+ }
700
+
701
+ output "agentcore_harness_status" {
702
+ description = "Safe server readiness state for the managed AgentCore Harness runtime."
703
+ value = module.agentcore_harness.managed_status
704
+ }
705
+
706
+ output "agentcore_harness_configuration_fingerprint" {
707
+ description = "Non-secret fingerprint of the managed AgentCore Harness configuration ceiling."
708
+ value = module.agentcore_harness.managed_configuration_fingerprint
709
+ }
710
+
711
+ output "agentcore_harness_proof_arn" {
712
+ description = "Deprecated: use agentcore_harness_arn."
713
+ value = module.agentcore_harness.managed_harness_arn
714
+ }
715
+
716
+ output "agentcore_harness_proof_endpoint_arn" {
717
+ description = "Deprecated: use agentcore_harness_endpoint_arn."
718
+ value = module.agentcore_harness.managed_endpoint_arn
719
+ }
720
+
721
+ output "agentcore_harness_proof_endpoint_name" {
722
+ description = "Deprecated: use agentcore_harness_endpoint_name."
723
+ value = module.agentcore_harness.managed_endpoint_name
724
+ }
725
+
726
+ output "agentcore_harness_proof_version" {
727
+ description = "Deprecated: use agentcore_harness_version."
728
+ value = module.agentcore_harness.managed_target_version
729
+ }
730
+
731
+ output "agentcore_harness_proof_status" {
732
+ description = "Deprecated: use agentcore_harness_status."
733
+ value = module.agentcore_harness.managed_status
734
+ }
735
+
736
+ output "agentcore_harness_proof_configuration_fingerprint" {
737
+ description = "Deprecated: use agentcore_harness_configuration_fingerprint."
738
+ value = module.agentcore_harness.managed_configuration_fingerprint
739
+ }
740
+
741
+ output "agentcore_turn_assertion_issuer" {
742
+ description = "Proof CUSTOM_JWT issuer used by deployed operator probes."
743
+ value = module.api.agentcore_turn_assertion_issuer
744
+ }
745
+
746
+ output "agentcore_harness_audience" {
747
+ description = "Purpose-bound proof Harness audience."
748
+ value = module.api.agentcore_harness_audience
749
+ }
750
+
751
+ output "agentcore_turn_assertion_active_key_arn" {
752
+ description = "Operator-only active proof signing key ARN."
753
+ value = module.api.agentcore_turn_assertion_active_key_arn
754
+ }
755
+
756
+ output "agentcore_turn_assertion_active_kid" {
757
+ description = "Public JWKS key identifier for the active proof signing key."
758
+ value = module.api.agentcore_turn_assertion_active_kid
759
+ }
760
+
761
+ output "agentcore_harness_proof_profile_parameter_name" {
762
+ description = "Deprecated rollout-compatible SSM Harness profile address."
763
+ value = var.enable_agentcore_multiplayer_proof ? aws_ssm_parameter.agentcore_harness_proof_profile[0].name : ""
764
+ }
765
+
766
+ output "agentcore_harness_profile_parameter_name" {
767
+ description = "Server-only per-tenant SSM profile consumed by the managed Harness runtime."
768
+ value = var.enable_agentcore_multiplayer_proof ? aws_ssm_parameter.agentcore_harness_profile[0].name : ""
769
+ }
770
+
771
+ output "agentcore_multiplayer_proof_gateway_arn" {
772
+ description = "Proof-only AgentCore Gateway ARN. Empty unless enable_agentcore_multiplayer_proof is true."
773
+ value = module.agentcore_proof_gateway.gateway_arn
774
+ }
775
+
776
+ output "agentcore_multiplayer_proof_gateway_url" {
777
+ description = "Proof-only AgentCore Gateway MCP endpoint."
778
+ value = module.agentcore_proof_gateway.gateway_url
779
+ }
780
+
781
+ output "agentcore_multiplayer_proof_workload_identity_arn" {
782
+ description = "Manual proof workload identity ARN used only for U1 Identity verification."
783
+ value = module.agentcore_proof_identity.workload_identity_arn
784
+ }
785
+
786
+ output "agentcore_multiplayer_proof_credential_provider_arn" {
787
+ description = "Synthetic proof OAuth credential provider ARN."
788
+ value = module.agentcore_proof_identity.credential_provider_arn
789
+ }
@@ -51,22 +51,38 @@ variable "google_oauth_client_secret" {
51
51
  }
52
52
 
53
53
  variable "microsoft_oauth_client_id" {
54
- description = "Microsoft OAuth client ID reserved for future Cognito/OAuth wiring. Accepted here so deployment-control-plane generated wrappers stay forward-compatible."
54
+ description = "Microsoft Entra application client ID for the deployment's default tenant-specific Cognito OIDC route."
55
55
  type = string
56
56
  default = ""
57
57
  }
58
58
 
59
59
  variable "microsoft_oauth_client_secret" {
60
- description = "Microsoft OAuth client secret reserved for future Cognito/OAuth wiring."
60
+ description = "Microsoft Entra application client secret for the deployment's default tenant-specific Cognito OIDC route."
61
61
  type = string
62
62
  sensitive = true
63
63
  default = ""
64
64
  }
65
65
 
66
66
  variable "microsoft_oauth_tenant" {
67
- description = "Microsoft OAuth tenant reserved for future Cognito/OAuth wiring."
67
+ description = "Microsoft Entra directory GUID for the deployment's default Microsoft login route. Cognito requires the exact tenant issuer; organizations/common authorities are not valid token issuers."
68
68
  type = string
69
- default = "organizations"
69
+ default = ""
70
+
71
+ validation {
72
+ condition = var.microsoft_oauth_tenant == "" || can(regex("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$", var.microsoft_oauth_tenant))
73
+ error_message = "microsoft_oauth_tenant must be an Entra directory GUID."
74
+ }
75
+ }
76
+
77
+ variable "tenant_entra_connections" {
78
+ description = "Safe tenant-specific Entra provider metadata. Secrets are reconciled outside Terraform and are never accepted here."
79
+ type = list(object({
80
+ connection_key = string
81
+ tenant_id = string
82
+ provider_name = string
83
+ display_name = string
84
+ }))
85
+ default = []
70
86
  }
71
87
 
72
88
  variable "oidc_identity_providers" {
@@ -117,6 +133,12 @@ variable "platform_operator_emails" {
117
133
  default = ""
118
134
  }
119
135
 
136
+ variable "analyst_lambda_vpc_egress" {
137
+ description = "VPC-attach the analyst data-path Lambdas (graphql-http, analyst-query-broker, analyst-connection-reconciler) to the stack's private subnets so their egress rides the NAT gateway's stable EIP. Enables external analyst data sources that sit behind an IP allowlist: the DBA admits the one NAT IP (see the analyst_egress_ip output) instead of opening the database to the world. Requires private (NAT-routed) subnets."
138
+ type = bool
139
+ default = false
140
+ }
141
+
120
142
  variable "okf_wiki_efs_enabled" {
121
143
  description = "Provision the OKF Wiki Navigator EFS current-view substrate and mount it into the okf-efs-refresh Lambda plus Pi."
122
144
  type = bool
@@ -315,6 +337,21 @@ variable "existing_identity_pool_id" {
315
337
  default = null
316
338
  }
317
339
 
340
+ variable "existing_auth_route_clients" {
341
+ description = "Safe route-client manifest for BYO Cognito pools."
342
+ type = map(object({
343
+ client_id = string
344
+ route_key = string
345
+ client_family = string
346
+ provider_names = list(string)
347
+ explicit_auth_flows = list(string)
348
+ callback_urls = list(string)
349
+ logout_urls = list(string)
350
+ lifecycle_state = string
351
+ }))
352
+ default = {}
353
+ }
354
+
318
355
  variable "create_database" {
319
356
  description = "Create a new Aurora cluster (false = BYO)"
320
357
  type = bool
@@ -353,6 +390,48 @@ variable "enable_hindsight" {
353
390
  default = true
354
391
  }
355
392
 
393
+ variable "enable_agentcore_harness" {
394
+ description = "Create the AgentCore Harness trial IAM surface (THINK-311 U4): the Harness microVM execution role plus the api Lambda's Harness create/invoke grants. Pure-IAM and ship-inert (no handler calls Harness until U5), so it defaults on. Never grants bedrock-agentcore:InvokeAgentRuntimeCommand."
395
+ type = bool
396
+ default = true
397
+ }
398
+
399
+ variable "enable_agentcore_multiplayer_proof" {
400
+ description = "Provision the non-production THINK-316 Identity/Gateway proof substrate. Defaults off; requires the Harness IAM surface and never changes the tenant runtime selector by itself."
401
+ type = bool
402
+ default = false
403
+ }
404
+
405
+ variable "agentcore_multiplayer_proof_tenant_slug" {
406
+ description = "Explicit non-production pilot tenant slug for the one-Harness multiplayer proof. Required when the proof is enabled."
407
+ type = string
408
+ default = ""
409
+ }
410
+
411
+ variable "agentcore_multiplayer_proof_owner_allowlist" {
412
+ description = "Comma-separated non-production subjects for the manual authorization-code and mixed-disclosure fixtures. Signed OBO turn participants are admitted from canonical tenant membership, not this list."
413
+ type = string
414
+ default = ""
415
+ }
416
+
417
+ variable "agentcore_turn_assertion_key_versions" {
418
+ description = "One or two published assertion key versions for the managed Harness proof."
419
+ type = list(string)
420
+ default = ["v1"]
421
+ }
422
+
423
+ variable "agentcore_turn_assertion_active_key_version" {
424
+ description = "Assertion key version used for new Harness and Gateway tokens."
425
+ type = string
426
+ default = "v1"
427
+ }
428
+
429
+ variable "enable_capability_broker" {
430
+ description = "Enable the THINK-280 governed capability broker (private REST API + dedicated execute-api VPCE with private DNS disabled, DynamoDB session store, broker Lambda). Ship-inert: defaults OFF; U4 flips it on after the live negative-egress proof. The broker Lambda code also fails closed independent of this flag."
431
+ type = bool
432
+ default = false
433
+ }
434
+
356
435
  variable "memory_engine" {
357
436
  description = "Active long-term memory engine for canonical recall/inspect/export. Exactly one engine is authoritative per deployment. Empty auto-selects Hindsight for full installs. Accepted values: 'hindsight' (requires enable_hindsight = true) or 'agentcore' (explicit low-cost/development managed-memory mode). Legacy value 'managed' maps to 'agentcore'."
358
437
  type = string
@@ -956,8 +1035,12 @@ variable "admin_callback_urls" {
956
1035
  default = [
957
1036
  "http://localhost:5174",
958
1037
  "http://localhost:5174/auth/callback",
1038
+ "http://127.0.0.1:5174",
1039
+ "http://127.0.0.1:5174/auth/callback",
959
1040
  "http://localhost:5175",
960
1041
  "http://localhost:5175/auth/callback",
1042
+ "http://127.0.0.1:5175",
1043
+ "http://127.0.0.1:5175/auth/callback",
961
1044
  "http://127.0.0.1:42010/callback",
962
1045
  "http://localhost:42010/callback",
963
1046
  ]
@@ -967,7 +1050,9 @@ variable "admin_logout_urls" {
967
1050
  type = list(string)
968
1051
  default = [
969
1052
  "http://localhost:5174",
1053
+ "http://127.0.0.1:5174",
970
1054
  "http://localhost:5175",
1055
+ "http://127.0.0.1:5175",
971
1056
  ]
972
1057
  }
973
1058
 
@@ -980,6 +1065,22 @@ variable "desktop_callback_urls" {
980
1065
  ]
981
1066
  }
982
1067
 
1068
+ variable "cli_callback_urls" {
1069
+ type = list(string)
1070
+ default = [
1071
+ "http://127.0.0.1:42010/callback",
1072
+ "http://localhost:42010/callback",
1073
+ ]
1074
+ }
1075
+
1076
+ variable "cli_logout_urls" {
1077
+ type = list(string)
1078
+ default = [
1079
+ "http://127.0.0.1:42010/callback",
1080
+ "http://localhost:42010/callback",
1081
+ ]
1082
+ }
1083
+
983
1084
  variable "mobile_callback_urls" {
984
1085
  type = list(string)
985
1086
  default = ["exp://localhost:8081", "thinkwork://", "thinkwork://auth/callback"]
@@ -1000,12 +1101,42 @@ variable "pre_signup_lambda_zip" {
1000
1101
  default = ""
1001
1102
  }
1002
1103
 
1104
+ variable "auth_retirement_phase" {
1105
+ description = "Native-auth migration phase. Fresh deployments default to retired (no WorkOS runtime); existing deployments must explicitly select coexistence/cutover until their evidence-gated retirement is complete."
1106
+ type = string
1107
+ default = "retired"
1108
+
1109
+ validation {
1110
+ condition = contains(["coexistence", "cutover", "retired"], var.auth_retirement_phase)
1111
+ error_message = "auth_retirement_phase must be coexistence, cutover, or retired."
1112
+ }
1113
+ }
1114
+
1115
+ variable "auth_migration_recovery_deadline" {
1116
+ description = "RFC3339 deadline for legacy-session identity migration. Must be supplied explicitly for coexistence deployments."
1117
+ type = string
1118
+ default = ""
1119
+
1120
+ validation {
1121
+ condition = trimspace(var.auth_migration_recovery_deadline) == "" || (
1122
+ can(timecmp(var.auth_migration_recovery_deadline, var.auth_migration_recovery_deadline))
1123
+ )
1124
+ error_message = "auth_migration_recovery_deadline must be empty or an RFC3339 timestamp."
1125
+ }
1126
+ }
1127
+
1003
1128
  variable "cognito_custom_auth_lambda_zip" {
1004
- description = "Path to the Cognito custom-auth challenge Lambda zip"
1129
+ description = "Local WorkOS bridge custom-auth artifact retained only as a rollback runtime before auth retirement."
1005
1130
  type = string
1006
1131
  default = ""
1007
1132
  }
1008
1133
 
1134
+ variable "cognito_denied_app_client_ids" {
1135
+ description = "Cognito app clients denied new and refresh token issuance during native-auth cutover"
1136
+ type = list(string)
1137
+ default = []
1138
+ }
1139
+
1009
1140
  # ---------------------------------------------------------------------------
1010
1141
  # Docs site (custom domain — optional)
1011
1142
  # ---------------------------------------------------------------------------
@@ -1149,6 +1280,12 @@ variable "enable_slack_workspace_app" {
1149
1280
  default = true
1150
1281
  }
1151
1282
 
1283
+ variable "enable_msteams_app" {
1284
+ description = "Provision Microsoft Teams app install/link Lambdas, API routes, and credentials placeholder secret."
1285
+ type = bool
1286
+ default = false
1287
+ }
1288
+
1152
1289
  # ---------------------------------------------------------------------------
1153
1290
  # SES inbound email (delegated tenant subzones — Option A)
1154
1291
  # ---------------------------------------------------------------------------
@@ -1247,6 +1384,12 @@ variable "knowledge_graph_observations_ingest_enabled" {
1247
1384
  default = false
1248
1385
  }
1249
1386
 
1387
+ variable "ontology_scan_sweep_enabled" {
1388
+ description = "Enable the recurring per-tenant ontology suggestion scan sweep (THINK-320 U4/KTD-3). Ships disabled."
1389
+ type = bool
1390
+ default = false
1391
+ }
1392
+
1250
1393
  variable "wiki_source" {
1251
1394
  description = "Wiki compile pipeline source: 'planner' or 'graph' (THINK-133 U8/KTD-4)."
1252
1395
  type = string
@@ -1328,6 +1471,12 @@ variable "analyst_policy_source" {
1328
1471
  }
1329
1472
  }
1330
1473
 
1474
+ variable "capability_self_extension_tenants" {
1475
+ description = "Governed autonomy opt-in: comma/space-separated tenant ids allowed to autonomously self-extend capabilities. Empty (default) = NO tenant enabled; self-extension ships inert and fail-closed."
1476
+ type = string
1477
+ default = ""
1478
+ }
1479
+
1331
1480
  variable "compliance_anchor_retention_days" {
1332
1481
  description = "Default Object Lock retention in days for the compliance audit-anchor bucket. SOC2 Type 1 baseline is 12 months (365)."
1333
1482
  type = number