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.
Files changed (475) hide show
  1. package/README.md +42 -38
  2. package/dist/{api-client-ASJWIG3Z.js → api-client-JUBCQQDF.js} +1 -1
  3. package/dist/{chunk-JEHV35EU.js → chunk-STY44FQO.js} +353 -30
  4. package/dist/cli.js +23823 -10151
  5. package/dist/commands/enterprise/templates/deploy-repo/.github/workflows/deploy.yml +17 -6
  6. package/dist/commands/enterprise/templates/deploy-repo/docs/runbook.md +81 -9
  7. package/dist/commands/enterprise/templates/deploy-repo/scripts/apply-release.mjs +183 -21
  8. package/dist/commands/enterprise/templates/deploy-repo/scripts/smoke.mjs +1 -2
  9. package/dist/commands/enterprise/templates/deploy-repo/terraform/main.tf +286 -0
  10. package/dist/drizzle/0000_petite_marvel_apes.sql +1188 -0
  11. package/dist/drizzle/0001_milky_surge.sql +103 -0
  12. package/dist/drizzle/0002_aberrant_mattie_franklin.sql +41 -0
  13. package/dist/drizzle/0003_exotic_ogun.sql +3 -0
  14. package/dist/drizzle/0004_glamorous_magneto.sql +2 -0
  15. package/dist/drizzle/0005_ancient_nocturne.sql +2 -0
  16. package/dist/drizzle/0006_new_colonel_america.sql +2 -0
  17. package/dist/drizzle/0007_unique_external_task_id.sql +31 -0
  18. package/dist/drizzle/0008_external_task_id_column.sql +43 -0
  19. package/dist/drizzle/0009_evaluations.sql +64 -0
  20. package/dist/drizzle/0010_eval_agent_template.sql +2 -0
  21. package/dist/drizzle/0011_eval_run_template.sql +2 -0
  22. package/dist/drizzle/0012_eval_seed_unique.sql +16 -0
  23. package/dist/drizzle/0013_motionless_white_queen.sql +140 -0
  24. package/dist/drizzle/0014_wiki_aggregation.sql +11 -0
  25. package/dist/drizzle/0015_pg_trgm_alias_title_indexes.sql +9 -0
  26. package/dist/drizzle/0016_wiki_schema_drops.sql +24 -0
  27. package/dist/drizzle/0017_wiki_places.sql +46 -0
  28. package/dist/drizzle/0018_agent_workspace_overlay.sql +26 -0
  29. package/dist/drizzle/0018_cool_firebird.sql +24 -0
  30. package/dist/drizzle/0018_skill_runs.sql +84 -0
  31. package/dist/drizzle/0019_condemned_dragon_man.sql +95 -0
  32. package/dist/drizzle/0019_webhook_skill_runs.sql +58 -0
  33. package/dist/drizzle/0020_crazy_the_anarchist.sql +9 -0
  34. package/dist/drizzle/0020_mutation_idempotency.sql +64 -0
  35. package/dist/drizzle/0021_crm_work_links.sql +76 -0
  36. package/dist/drizzle/0021_skill_runs_completion_hmac.sql +33 -0
  37. package/dist/drizzle/0022_add_billing_tables.sql +70 -0
  38. package/dist/drizzle/0022_seed_thinkwork_admin_permissions.sql +160 -0
  39. package/dist/drizzle/0022_stripe_billing_indexes.sql +48 -0
  40. package/dist/drizzle/0023_tenants_deactivation.sql +27 -0
  41. package/dist/drizzle/0024_tenant_mcp_admin_keys.sql +63 -0
  42. package/dist/drizzle/0025_v1_agent_architecture.sql +182 -0
  43. package/dist/drizzle/0026_thread_turns_add_kind.sql +28 -0
  44. package/dist/drizzle/0027_capability_catalog_and_manifests.sql +219 -0
  45. package/dist/drizzle/0028_aws_s3_extension.sql +26 -0
  46. package/dist/drizzle/0029_collapse_execution_types.sql +42 -0
  47. package/dist/drizzle/0030_retire_composition_primitives.sql +48 -0
  48. package/dist/drizzle/0031_thread_cleanup_drops.sql +131 -0
  49. package/dist/drizzle/0032_add_browser_automation_template_config.sql +24 -0
  50. package/dist/drizzle/0033_agent_operation_leases.sql +32 -0
  51. package/dist/drizzle/0034_agent_workspace_events.sql +116 -0
  52. package/dist/drizzle/0035_workspace_review_decisions.sql +19 -0
  53. package/dist/drizzle/0036_user_scoped_memory_wiki.sql +152 -0
  54. package/dist/drizzle/0037_user_profile_operating_model.sql +34 -0
  55. package/dist/drizzle/0042_agent_runtime_selector.sql +41 -0
  56. package/dist/drizzle/0043_wiki_search_tsv_tokenization.sql +48 -0
  57. package/dist/drizzle/0044_add_web_search_template_config.sql +7 -0
  58. package/dist/drizzle/0045_add_send_email_template_config.sql +7 -0
  59. package/dist/drizzle/0046_tenant_mcp_context_tools.sql +26 -0
  60. package/dist/drizzle/0047_add_context_engine_template_config.sql +7 -0
  61. package/dist/drizzle/0048_tenant_context_provider_settings.sql +22 -0
  62. package/dist/drizzle/0050_brain_v0_entity_subtype.sql +29 -0
  63. package/dist/drizzle/0051_brain_v0_tenant_entity_pages.sql +170 -0
  64. package/dist/drizzle/0052_brain_v0_external_refs.sql +41 -0
  65. package/dist/drizzle/0053_brain_v0_unresolved_mentions_subtype.sql +48 -0
  66. package/dist/drizzle/0054_wiki_compile_jobs_input.sql +28 -0
  67. package/dist/drizzle/0055_routines_stepfunctions_substrate.sql +202 -0
  68. package/dist/drizzle/0056_routine_step_events_dedup_idx.sql +25 -0
  69. package/dist/drizzle/0057_archive_legacy_python_routines.sql +36 -0
  70. package/dist/drizzle/0058_routines_visibility_and_owning_agent.sql +61 -0
  71. package/dist/drizzle/0061_routine_execution_asl_version_id.sql +29 -0
  72. package/dist/drizzle/0062_migrate_pi_to_flue.sql +110 -0
  73. package/dist/drizzle/0063_threads_session_data.sql +23 -0
  74. package/dist/drizzle/0064_tenant_credentials.sql +65 -0
  75. package/dist/drizzle/0067_thinkwork_computers_phase_one.sql +174 -0
  76. package/dist/drizzle/0068_drop_system_workflows_and_activation.sql +115 -0
  77. package/dist/drizzle/0069_compliance_schema.sql +364 -0
  78. package/dist/drizzle/0070_compliance_aurora_roles.sql +171 -0
  79. package/dist/drizzle/0072_threads_computer_ownership.sql +24 -0
  80. package/dist/drizzle/0073_compliance_tenant_anchor_state.sql +105 -0
  81. package/dist/drizzle/0074_compliance_event_hash_index.sql +49 -0
  82. package/dist/drizzle/0075_scheduled_jobs_computer_ownership.sql +27 -0
  83. package/dist/drizzle/0076_scheduled_jobs_marco_backfill.sql +69 -0
  84. package/dist/drizzle/0077_computers_primary_agent_id.sql +38 -0
  85. package/dist/drizzle/0078_tenant_customize_catalog.sql +46 -0
  86. package/dist/drizzle/0079_seed_tenant_customize_catalog.sql +53 -0
  87. package/dist/drizzle/0081_routines_catalog_slug.sql +42 -0
  88. package/dist/drizzle/0082_messages_parts_jsonb.sql +52 -0
  89. package/dist/drizzle/0083_computer_runbooks.sql +103 -0
  90. package/dist/drizzle/0084_artifacts_favorited_at.sql +32 -0
  91. package/dist/drizzle/0085_seed_thinkwork_computer_default_template.sql +46 -0
  92. package/dist/drizzle/0086_update_default_template_models.sql +19 -0
  93. package/dist/drizzle/0087_retire_oss_connectors.sql +77 -0
  94. package/dist/drizzle/0088_compliance_event_types_finance_pilot.sql +37 -0
  95. package/dist/drizzle/0089_remove_maniflow_eval_seeds.sql +81 -0
  96. package/dist/drizzle/0089_wiki_schema_extraction.sql +315 -0
  97. package/dist/drizzle/0090_brain_schema_extraction.sql +274 -0
  98. package/dist/drizzle/0091_drop_wiki_brain_compat_views.sql +118 -0
  99. package/dist/drizzle/0092_finish_oss_connector_retirement.sql +97 -0
  100. package/dist/drizzle/0093_eval_runs_scheduled_job_id.sql +23 -0
  101. package/dist/drizzle/0094_slack_workspace_app.sql +140 -0
  102. package/dist/drizzle/0095_eval_runs_computer_id.sql +22 -0
  103. package/dist/drizzle/0096_true_redteam_eval_seed_cleanup.sql +67 -0
  104. package/dist/drizzle/0097_shared_computers.sql +191 -0
  105. package/dist/drizzle/0098_business_ontology.sql +587 -0
  106. package/dist/drizzle/0099_thread_idle_learning.sql +145 -0
  107. package/dist/drizzle/0100_ontology_gated_brain_dynamic_subtypes.sql +7 -0
  108. package/dist/drizzle/0101_ontology_gated_unresolved_mentions_dynamic_subtypes.sql +7 -0
  109. package/dist/drizzle/0102_wiki_brain_owner_repair.sql +87 -0
  110. package/dist/drizzle/0103_brain_section_source_trigger_repair.sql +75 -0
  111. package/dist/drizzle/0104_expand_seed_ontology_for_user_memory.sql +166 -0
  112. package/dist/drizzle/0105_spaces_domain.sql +349 -0
  113. package/dist/drizzle/0106_expand_seed_ontology_for_triples.sql +173 -0
  114. package/dist/drizzle/0106_space_threads_participants.sql +197 -0
  115. package/dist/drizzle/0107_linked_task_mirror.sql +245 -0
  116. package/dist/drizzle/0108_message_mentions.sql +95 -0
  117. package/dist/drizzle/0109_space_owned_threads.sql +217 -0
  118. package/dist/drizzle/0110_thread_participant_read_state.sql +21 -0
  119. package/dist/drizzle/0111_agents_tenant_name_unique.sql +38 -0
  120. package/dist/drizzle/0112_recast_spaces_as_contextual_workrooms.sql +138 -0
  121. package/dist/drizzle/0113_agents_own_runtime_fields.sql +48 -0
  122. package/dist/drizzle/0114_migrate_templates_to_agents_and_spaces.sql +361 -0
  123. package/dist/drizzle/0115_remove_computer_eval_template_dependencies.sql +69 -0
  124. package/dist/drizzle/0116_backfill_thread_participants_access.sql +126 -0
  125. package/dist/drizzle/0117_space_access_mode.sql +40 -0
  126. package/dist/drizzle/0118_normalize_tenant_member_principal_type.sql +41 -0
  127. package/dist/drizzle/0119_space_knowledge_bases.sql +126 -0
  128. package/dist/drizzle/0120_space_automations.sql +58 -0
  129. package/dist/drizzle/0121_drop_computer_runbooks.sql +26 -0
  130. package/dist/drizzle/0122_space_email_triggers.sql +24 -0
  131. package/dist/drizzle/0123_single_platform_agent_and_overrides.sql +58 -0
  132. package/dist/drizzle/0124_thread_turns_finalized_at.sql +17 -0
  133. package/dist/drizzle/0125_drop_space_agent_assignments.sql +42 -0
  134. package/dist/drizzle/0126_migrate_flue_to_pi.sql +42 -0
  135. package/dist/drizzle/0127_runtime_type_observability.sql +28 -0
  136. package/dist/drizzle/0128_drop_eval_test_cases_agent_id.sql +37 -0
  137. package/dist/drizzle/0129_drop_code_factory_tables.sql +43 -0
  138. package/dist/drizzle/0129_eval_results_system_prompt.sql +30 -0
  139. package/dist/drizzle/0130_drop_teams_and_team_id_columns.sql +54 -0
  140. package/dist/drizzle/0131_drop_skill_catalog_and_tenant_skills.sql +33 -0
  141. package/dist/drizzle/0132_drop_computer_tables.sql +31 -0
  142. package/dist/drizzle/0133_drop_seed_view_tombstones.sql +79 -0
  143. package/dist/drizzle/0133_thread_turns_system_prompt.sql +22 -0
  144. package/dist/drizzle/0134_drop_dead_agent_runtime_tables.sql +53 -0
  145. package/dist/drizzle/0135_native_checklist_linked_tasks.sql +48 -0
  146. package/dist/drizzle/0136_goal_ledger.sql +55 -0
  147. package/dist/drizzle/0136_space_email_trigger_status.sql +66 -0
  148. package/dist/drizzle/0137_thread_participant_pins.sql +25 -0
  149. package/dist/drizzle/0138_users_cognito_sub.sql +30 -0
  150. package/dist/drizzle/0139_mobile_turn_client_id.sql +23 -0
  151. package/dist/drizzle/0140_workspace_folder_names.sql +36 -0
  152. package/dist/drizzle/0141_eval_runs_desktop_pi_provenance.sql +31 -0
  153. package/dist/drizzle/0142_pi_only_agent_runtime.sql +61 -0
  154. package/dist/drizzle/0143_add_web_extract_builtin_config.sql +28 -0
  155. package/dist/drizzle/0144_skill_catalog_index.sql +40 -0
  156. package/dist/drizzle/0145_knowledge_graph_thread_ingest.sql +512 -0
  157. package/dist/drizzle/0146_knowledge_graph_source_scope.sql +413 -0
  158. package/dist/drizzle/0147_knowledge_graph_scope_trigger_qualification.sql +211 -0
  159. package/dist/drizzle/0148_user_cost_attribution.sql +171 -0
  160. package/dist/drizzle/0149_managed_mcp_servers.sql +64 -0
  161. package/dist/drizzle/0149_user_model_approvals.sql +89 -0
  162. package/dist/drizzle/0150_bootstrap_first_admin_claim.sql +11 -0
  163. package/dist/drizzle/0151_managed_deployments.sql +91 -0
  164. package/dist/drizzle/0152_agent_profiles.sql +81 -0
  165. package/dist/drizzle/0153_message_mentions_agent_profile.sql +9 -0
  166. package/dist/drizzle/0154_customer_deployment_sessions.sql +61 -0
  167. package/dist/drizzle/0155_tenant_model_catalog.sql +152 -0
  168. package/dist/drizzle/0156_bootstrap_credential_leases.sql +52 -0
  169. package/dist/drizzle/0157_knowledge_graph_observations_source.sql +79 -0
  170. package/dist/drizzle/0158_pending_user_questions.sql +80 -0
  171. package/dist/drizzle/0158_wiki_tenant_scope.sql +38 -0
  172. package/dist/drizzle/0159_agent_profiles_space_local.sql +49 -0
  173. package/dist/drizzle/0159_application_plugins.sql +193 -0
  174. package/dist/drizzle/0159_eval_scoring_version.sql +46 -0
  175. package/dist/drizzle/0160_compliance_event_types_plugins.sql +37 -0
  176. package/dist/drizzle/0160_eval_datasets.sql +75 -0
  177. package/dist/drizzle/0160_eval_results_thread_turn.sql +35 -0
  178. package/dist/drizzle/0161_eval_run_pinning.sql +54 -0
  179. package/dist/drizzle/0161_tenant_mcp_servers_plugin_source.sql +62 -0
  180. package/dist/drizzle/0162_eval_result_override.sql +49 -0
  181. package/dist/drizzle/0163_eval_replay_tool_allowlist.sql +50 -0
  182. package/dist/drizzle/0164_eval_replay_tool_override_mode.sql +52 -0
  183. package/dist/drizzle/0165_plugin_premium_entitlements.sql +153 -0
  184. package/dist/drizzle/0166_company_brain_substrate_contract.sql +386 -0
  185. package/dist/drizzle/0167_company_brain_artifact_manifest_runtime.sql +85 -0
  186. package/dist/drizzle/0168_eval_skill_gate.sql +44 -0
  187. package/dist/drizzle/0169_release_update_jobs.sql +67 -0
  188. package/dist/drizzle/0170_email_channel_plugin.sql +291 -0
  189. package/dist/drizzle/0171_linked_task_external_providers.sql +30 -0
  190. package/dist/drizzle/0172_email_channel_sendgrid_provider.sql +8 -0
  191. package/dist/drizzle/0173_auth_provider_resources.sql +83 -0
  192. package/dist/drizzle/0174_workos_auth_bridges.sql +37 -0
  193. package/dist/drizzle/0175_workos_auth_sessions.sql +38 -0
  194. package/dist/drizzle/0176_n8n_agent_step_runs.sql +107 -0
  195. package/dist/drizzle/0177_workflow_control_plane.sql +281 -0
  196. package/dist/drizzle/0178_workflow_backfill_existing_routines.sql +525 -0
  197. package/dist/drizzle/0179_tenant_goal_budget_settings.sql +21 -0
  198. package/dist/drizzle/0180_skill_drafts.sql +89 -0
  199. package/dist/drizzle/0181_skill_draft_publish_status.sql +21 -0
  200. package/dist/drizzle/0182_agent_loops.sql +260 -0
  201. package/dist/drizzle/0183_okf_artifact_manifests.sql +52 -0
  202. package/dist/drizzle/0184_skill_catalog_trust_cache.sql +35 -0
  203. package/dist/drizzle/0185_agent_loop_space.sql +16 -0
  204. package/dist/drizzle/0186_tenant_mcp_runtime_metadata.sql +10 -0
  205. package/dist/drizzle/0187_native_work_items.sql +220 -0
  206. package/dist/drizzle/0188_company_etl_plugin_rename.sql +99 -0
  207. package/dist/drizzle/0189_trace_cost_substrate.sql +247 -0
  208. package/dist/drizzle/0190_billing_export_reconciliation.sql +101 -0
  209. package/dist/drizzle/0191_open_engine_work_item_queue.sql +66 -0
  210. package/dist/drizzle/0192_work_item_labels.sql +44 -0
  211. package/dist/drizzle/0193_work_item_documents.sql +31 -0
  212. package/dist/drizzle/0194_memory_retain_attempts.sql +103 -0
  213. package/dist/drizzle/0194_work_item_comments.sql +35 -0
  214. package/dist/drizzle/0195_plugin_app_overlays.sql +45 -0
  215. package/dist/drizzle/0196_pi_extensions.sql +118 -0
  216. package/dist/drizzle/0197_eval_profiles.sql +150 -0
  217. package/dist/drizzle/0197_rcm_context_columns.sql +28 -0
  218. package/dist/drizzle/0198_eval_runs_unstable.sql +27 -0
  219. package/dist/drizzle/0199_eval_runs_cost_partial.sql +27 -0
  220. package/dist/drizzle/meta/_journal.json +160 -0
  221. package/dist/plugins/README.md +162 -0
  222. package/dist/plugins/catalog/package.json +40 -0
  223. package/dist/plugins/catalog/scripts/build-catalog.ts +120 -0
  224. package/dist/plugins/catalog/scripts/generate-plugin-registry.ts +144 -0
  225. package/dist/plugins/catalog/src/__tests__/build-catalog.test.ts +86 -0
  226. package/dist/plugins/catalog/src/__tests__/catalog.test.ts +308 -0
  227. package/dist/plugins/catalog/src/__tests__/contracts.test.ts +861 -0
  228. package/dist/plugins/catalog/src/__tests__/plugin-package.test.ts +124 -0
  229. package/dist/plugins/catalog/src/__tests__/plugin-registry.test.ts +120 -0
  230. package/dist/plugins/catalog/src/catalog.ts +434 -0
  231. package/dist/plugins/catalog/src/contracts.ts +1498 -0
  232. package/dist/plugins/catalog/src/index.ts +4 -0
  233. package/dist/plugins/catalog/src/plugin-package.ts +171 -0
  234. package/dist/plugins/catalog/src/registry/generated-first-party.ts +76 -0
  235. package/dist/plugins/catalog/src/registry/index.ts +1 -0
  236. package/dist/plugins/catalog/tsconfig.json +8 -0
  237. package/dist/plugins/company-brain/README.md +37 -0
  238. package/dist/plugins/company-brain/package.json +33 -0
  239. package/dist/plugins/company-brain/runtime/cognee/Dockerfile +11 -0
  240. package/dist/plugins/company-brain/smoke/cognee-managed-app-smoke.mjs +458 -0
  241. package/dist/plugins/company-brain/smoke/cognee-memory-cutover-smoke.mjs +539 -0
  242. package/dist/plugins/company-brain/smoke/company-brain-context-engine-smoke.mjs +312 -0
  243. package/dist/plugins/company-brain/smoke/company-brain-operations-smoke.mjs +449 -0
  244. package/dist/plugins/company-brain/smoke/company-brain-plugin-smoke.mjs +655 -0
  245. package/dist/plugins/company-brain/smoke/hindsight-memory-isolation-smoke.mjs +474 -0
  246. package/dist/plugins/company-brain/src/api/cognee-client.ts +896 -0
  247. package/dist/plugins/company-brain/src/api/cognee-cluster-identity.ts +49 -0
  248. package/dist/plugins/company-brain/src/api/cognee-memory-scope.ts +84 -0
  249. package/dist/plugins/company-brain/src/api/context-engine-provider.ts +888 -0
  250. package/dist/plugins/company-brain/src/api/migration.ts +665 -0
  251. package/dist/plugins/company-brain/src/deployment/cognee-managed-app.ts +396 -0
  252. package/dist/plugins/company-brain/src/index.ts +62 -0
  253. package/dist/plugins/company-brain/src/manifest.ts +112 -0
  254. package/dist/plugins/company-brain/terraform/cognee/README.md +263 -0
  255. package/dist/plugins/company-brain/terraform/cognee/main.tf +766 -0
  256. package/dist/plugins/company-brain/terraform/cognee/outputs.tf +144 -0
  257. package/dist/plugins/company-brain/terraform/cognee/variables.tf +402 -0
  258. package/dist/plugins/company-brain/test/api/cognee-client.test.ts +562 -0
  259. package/dist/plugins/company-brain/test/api/cognee-memory-scope.test.ts +74 -0
  260. package/dist/plugins/company-brain/test/api/context-engine-provider.test.ts +447 -0
  261. package/dist/plugins/company-brain/test/api/migration.test.ts +465 -0
  262. package/dist/plugins/company-brain/test/manifest.test.ts +95 -0
  263. package/dist/plugins/company-brain/tsconfig.json +8 -0
  264. package/dist/plugins/company-data/README.md +49 -0
  265. package/dist/plugins/company-data/package.json +21 -0
  266. package/dist/plugins/company-data/src/index.ts +30 -0
  267. package/dist/plugins/company-data/src/manifest.ts +26 -0
  268. package/dist/plugins/company-data/test/manifest.test.ts +116 -0
  269. package/dist/plugins/company-data/tsconfig.json +8 -0
  270. package/dist/plugins/company-etl/README.md +46 -0
  271. package/dist/plugins/company-etl/package.json +21 -0
  272. package/dist/plugins/company-etl/src/index.ts +29 -0
  273. package/dist/plugins/company-etl/src/manifest.ts +26 -0
  274. package/dist/plugins/company-etl/test/manifest.test.ts +108 -0
  275. package/dist/plugins/company-etl/tsconfig.json +8 -0
  276. package/dist/plugins/email-channel/README.md +41 -0
  277. package/dist/plugins/email-channel/package.json +22 -0
  278. package/dist/plugins/email-channel/src/index.ts +36 -0
  279. package/dist/plugins/email-channel/src/manifest.ts +44 -0
  280. package/dist/plugins/email-channel/src/provider-contract.ts +36 -0
  281. package/dist/plugins/email-channel/test/manifest.test.ts +119 -0
  282. package/dist/plugins/email-channel/tsconfig.json +8 -0
  283. package/dist/plugins/lastmile/README.md +50 -0
  284. package/dist/plugins/lastmile/package.json +23 -0
  285. package/dist/plugins/lastmile/smoke/lastmile-plugin-smoke.mjs +661 -0
  286. package/dist/plugins/lastmile/src/api/tasks-adapter.ts +572 -0
  287. package/dist/plugins/lastmile/src/discovery.fixture.ts +64 -0
  288. package/dist/plugins/lastmile/src/index.ts +46 -0
  289. package/dist/plugins/lastmile/src/manifest.ts +139 -0
  290. package/dist/plugins/lastmile/test/api/tasks-adapter.test.ts +266 -0
  291. package/dist/plugins/lastmile/test/discovery.test.ts +88 -0
  292. package/dist/plugins/lastmile/tsconfig.json +8 -0
  293. package/dist/plugins/n8n/README.md +201 -0
  294. package/dist/plugins/n8n/n8n-app/README.md +33 -0
  295. package/dist/plugins/n8n/n8n-app/package.json +23 -0
  296. package/dist/plugins/n8n/n8n-app/src/application-config.ts +45 -0
  297. package/dist/plugins/n8n/n8n-app/src/front-components/thinkwork-workflows.front-component.tsx +970 -0
  298. package/dist/plugins/n8n/n8n-app/src/lib/n8n-app-data.ts +190 -0
  299. package/dist/plugins/n8n/n8n-app/src/vite-env.d.ts +7 -0
  300. package/dist/plugins/n8n/n8n-app/tsconfig.json +15 -0
  301. package/dist/plugins/n8n/package.json +35 -0
  302. package/dist/plugins/n8n/runtime/Dockerfile +18 -0
  303. package/dist/plugins/n8n/runtime/n8n-task-runners.json +14 -0
  304. package/dist/plugins/n8n/runtime/n8n-task-runners.json.template +14 -0
  305. package/dist/plugins/n8n/runtime/package-lock.json +13 -0
  306. package/dist/plugins/n8n/runtime/package.json +7 -0
  307. package/dist/plugins/n8n/scripts/sync-thinkwork-app.mjs +268 -0
  308. package/dist/plugins/n8n/smoke/README.md +95 -0
  309. package/dist/plugins/n8n/smoke/n8n-agent-step-bridge-smoke.mjs +866 -0
  310. package/dist/plugins/n8n/smoke/n8n-integrated-app-smoke.mjs +262 -0
  311. package/dist/plugins/n8n/smoke/n8n-managed-app-smoke.mjs +409 -0
  312. package/dist/plugins/n8n/smoke/n8n-mcp-smoke.mjs +624 -0
  313. package/dist/plugins/n8n/src/deployment/image-build.ts +172 -0
  314. package/dist/plugins/n8n/src/deployment/managed-app.ts +429 -0
  315. package/dist/plugins/n8n/src/index.ts +79 -0
  316. package/dist/plugins/n8n/src/manifest.ts +403 -0
  317. package/dist/plugins/n8n/src/package-config.ts +186 -0
  318. package/dist/plugins/n8n/src/skills/n8n-workflow-operator/SKILL.md +76 -0
  319. package/dist/plugins/n8n/src/skills/n8n-workflow-operator/references/mcp-tooling.md +40 -0
  320. package/dist/plugins/n8n/src/skills/n8n-workflow-operator/references/validation-and-handoff.md +40 -0
  321. package/dist/plugins/n8n/src/skills/n8n-workflow-operator/references/workflow-authoring.md +45 -0
  322. package/dist/plugins/n8n/terraform/n8n/README.md +113 -0
  323. package/dist/plugins/n8n/terraform/n8n/main.tf +918 -0
  324. package/dist/plugins/n8n/terraform/n8n/outputs.tf +124 -0
  325. package/dist/plugins/n8n/terraform/n8n/scripts/sync-database.py +250 -0
  326. package/dist/plugins/n8n/terraform/n8n/scripts/test_sync_database.py +55 -0
  327. package/dist/plugins/n8n/terraform/n8n/variables.tf +354 -0
  328. package/dist/plugins/n8n/test/image-build.test.ts +118 -0
  329. package/dist/plugins/n8n/test/integrated-app-contract.test.ts +353 -0
  330. package/dist/plugins/n8n/test/manifest.test.ts +278 -0
  331. package/dist/plugins/n8n/test/package-config.test.ts +57 -0
  332. package/dist/plugins/n8n/tsconfig.json +8 -0
  333. package/dist/plugins/sendgrid/README.md +30 -0
  334. package/dist/plugins/sendgrid/package.json +22 -0
  335. package/dist/plugins/sendgrid/src/index.ts +36 -0
  336. package/dist/plugins/sendgrid/src/manifest.ts +37 -0
  337. package/dist/plugins/sendgrid/src/provider-contract.ts +14 -0
  338. package/dist/plugins/sendgrid/test/manifest.test.ts +80 -0
  339. package/dist/plugins/sendgrid/tsconfig.json +8 -0
  340. package/dist/plugins/twenty/README.md +78 -0
  341. package/dist/plugins/twenty/package.json +27 -0
  342. package/dist/plugins/twenty/scripts/__tests__/sync-thinkwork-app.test.mjs +67 -0
  343. package/dist/plugins/twenty/scripts/sync-thinkwork-app.mjs +185 -0
  344. package/dist/plugins/twenty/scripts/wire-thinkwork-workflow.mjs +658 -0
  345. package/dist/plugins/twenty/smoke/twenty-managed-app-smoke.mjs +359 -0
  346. package/dist/plugins/twenty/smoke/twenty-mcp-oauth-smoke.mjs +574 -0
  347. package/dist/plugins/twenty/src/api/cutover.ts +209 -0
  348. package/dist/plugins/twenty/src/deployment/managed-app.ts +253 -0
  349. package/dist/plugins/twenty/src/index.ts +55 -0
  350. package/dist/plugins/twenty/src/manifest.ts +259 -0
  351. package/dist/plugins/twenty/terraform/twenty/README.md +97 -0
  352. package/dist/plugins/twenty/terraform/twenty/main.tf +829 -0
  353. package/dist/plugins/twenty/terraform/twenty/outputs.tf +79 -0
  354. package/dist/plugins/twenty/terraform/twenty/variables.tf +268 -0
  355. package/dist/plugins/twenty/test/api/cutover.test.ts +183 -0
  356. package/dist/plugins/twenty/test/manifest.test.ts +463 -0
  357. package/dist/plugins/twenty/tsconfig.json +9 -0
  358. package/dist/plugins/twenty/twenty-app/.nvmrc +1 -0
  359. package/dist/plugins/twenty/twenty-app/README.md +148 -0
  360. package/dist/plugins/twenty/twenty-app/package.json +30 -0
  361. package/dist/plugins/twenty/twenty-app/src/application-config.ts +44 -0
  362. package/dist/plugins/twenty/twenty-app/src/constants/universal-identifiers.ts +18 -0
  363. package/dist/plugins/twenty/twenty-app/src/default-role.ts +24 -0
  364. package/dist/plugins/twenty/twenty-app/src/front-components/thinkwork-settings.front-component.tsx +299 -0
  365. package/dist/plugins/twenty/twenty-app/src/logic-functions/thinkwork-webhook.logic-function.ts +354 -0
  366. package/dist/plugins/twenty/twenty-app/tsconfig.json +14 -0
  367. package/dist/plugins/twenty/twenty-app/yarn.lock +4144 -0
  368. package/dist/plugins/workos-auth/package.json +22 -0
  369. package/dist/plugins/workos-auth/src/index.ts +30 -0
  370. package/dist/plugins/workos-auth/src/manifest.ts +40 -0
  371. package/dist/plugins/workos-auth/src/provider-contract.ts +39 -0
  372. package/dist/plugins/workos-auth/test/manifest.test.ts +94 -0
  373. package/dist/plugins/workos-auth/tsconfig.json +8 -0
  374. package/dist/scripts/bootstrap-workspace.sh +162 -0
  375. package/dist/scripts/post-deploy.sh +290 -0
  376. package/dist/terraform/examples/greenfield/main.tf +903 -75
  377. package/dist/terraform/examples/greenfield/terraform.tfvars.example +67 -8
  378. package/dist/terraform/modules/app/agentcore-code-interpreter/Dockerfile.sandbox-base +2 -2
  379. package/dist/terraform/modules/app/agentcore-code-interpreter/README.md +8 -9
  380. package/dist/terraform/modules/app/agentcore-code-interpreter/sandbox/sitecustomize.py +227 -0
  381. package/dist/terraform/modules/app/agentcore-code-interpreter/sandbox/test_sitecustomize.py +277 -0
  382. package/dist/terraform/modules/app/agentcore-memory/README.md +6 -6
  383. package/dist/terraform/modules/app/agentcore-memory/main.tf +1 -1
  384. package/dist/terraform/modules/app/agentcore-memory/scripts/create_or_find_memory.sh +40 -9
  385. package/dist/terraform/modules/app/agentcore-pi/README.md +61 -0
  386. package/dist/terraform/modules/app/agentcore-pi/main.tf +466 -0
  387. package/dist/terraform/modules/app/agentcore-pi/outputs.tf +38 -0
  388. package/dist/terraform/modules/app/agentcore-pi/variables.tf +145 -0
  389. package/dist/terraform/modules/app/agentcore-platform/main.tf +83 -0
  390. package/dist/terraform/modules/app/agentcore-runtime/main.tf +9 -11
  391. package/dist/terraform/modules/app/appsync-subscriptions/main.tf +5 -1
  392. package/dist/terraform/modules/app/customer-domain/main.tf +483 -0
  393. package/dist/terraform/modules/app/deployment-control-plane/README.md +47 -0
  394. package/dist/terraform/modules/app/deployment-control-plane/buildspec.yml +24 -0
  395. package/dist/terraform/modules/app/deployment-control-plane/main.tf +614 -0
  396. package/dist/terraform/modules/app/deployment-control-plane/outputs.tf +54 -0
  397. package/dist/terraform/modules/app/deployment-control-plane/runner.py +4720 -0
  398. package/dist/terraform/modules/app/deployment-control-plane/test_runner_bundle.py +3026 -0
  399. package/dist/terraform/modules/app/deployment-control-plane/variables.tf +96 -0
  400. package/dist/terraform/modules/app/hindsight-memory/README.md +25 -23
  401. package/dist/terraform/modules/app/hindsight-memory/main.tf +26 -2
  402. package/dist/terraform/modules/app/lambda-api/eval-fanout.tf +17 -50
  403. package/dist/terraform/modules/app/lambda-api/handlers.tf +1290 -679
  404. package/dist/terraform/modules/app/lambda-api/iam-grouped.tf +933 -0
  405. package/dist/terraform/modules/app/lambda-api/main.tf +14 -527
  406. package/dist/terraform/modules/app/lambda-api/mcp-oauth.tf +3 -19
  407. package/dist/terraform/modules/app/lambda-api/outputs.tf +50 -6
  408. package/dist/terraform/modules/app/lambda-api/runtime-config.tf +163 -0
  409. package/dist/terraform/modules/app/lambda-api/slack-app-secrets.tf +3 -1
  410. package/dist/terraform/modules/app/lambda-api/stripe-secrets.tf +3 -1
  411. package/dist/terraform/modules/app/lambda-api/variables.tf +240 -53
  412. package/dist/terraform/modules/app/lambda-api/workspace-events.tf +2 -25
  413. package/dist/terraform/modules/app/ses-email/main.tf +143 -30
  414. package/dist/terraform/modules/app/static-site/main.tf +4 -3
  415. package/dist/terraform/modules/app/www-dns/main.tf +45 -5
  416. package/dist/terraform/modules/app/www-dns/outputs.tf +10 -0
  417. package/dist/terraform/modules/app/www-dns/variables.tf +24 -0
  418. package/dist/terraform/modules/data/aurora-postgres/main.tf +15 -1
  419. package/dist/terraform/modules/data/compliance-exports-bucket/main.tf +1 -1
  420. package/dist/terraform/modules/data/compliance-exports-bucket/variables.tf +6 -0
  421. package/dist/terraform/modules/foundation/cognito/main.tf +167 -11
  422. package/dist/terraform/modules/foundation/cognito/outputs.tf +5 -0
  423. package/dist/terraform/modules/foundation/cognito/variables.tf +110 -0
  424. package/dist/terraform/modules/foundation/vpc/main.tf +45 -3
  425. package/dist/terraform/modules/foundation/vpc/outputs.tf +20 -0
  426. package/dist/terraform/modules/foundation/vpc/variables.tf +18 -0
  427. package/dist/terraform/modules/thinkwork/README.md +71 -0
  428. package/dist/terraform/modules/thinkwork/main.tf +1325 -174
  429. package/dist/terraform/modules/thinkwork/outputs.tf +457 -24
  430. package/dist/terraform/modules/thinkwork/variables.tf +1169 -93
  431. package/dist/terraform/schema.graphql +82 -9
  432. package/dist/workspace-defaults/files/AGENTS.md +344 -0
  433. package/dist/workspace-defaults/files/CONTEXT.md +8 -0
  434. package/dist/workspace-defaults/files/GUARDRAILS.md +51 -0
  435. package/dist/workspace-defaults/files/MEMORY_GUIDE.md +65 -0
  436. package/dist/workspace-defaults/files/ROUTER.md +24 -0
  437. package/dist/workspace-defaults/files/SPACE.md +62 -0
  438. package/dist/workspace-defaults/files/TOOLS.md +65 -0
  439. package/dist/workspace-defaults/files/USER.md +40 -0
  440. package/dist/workspace-defaults/files/mcp.json +3 -0
  441. package/dist/workspace-defaults/files/memory/contacts.md +13 -0
  442. package/dist/workspace-defaults/files/memory/lessons.md +13 -0
  443. package/dist/workspace-defaults/files/memory/preferences.md +12 -0
  444. package/dist/workspace-defaults/files/skills/.gitkeep +1 -0
  445. package/dist/workspace-defaults/files/skills/artifact-builder/SKILL.md +79 -0
  446. package/dist/workspace-defaults/files/skills/artifact-builder/references/crm-dashboard.md +166 -0
  447. package/dist/workspace-defaults/files/skills/automation-loop-designer/SKILL.md +120 -0
  448. package/dist/workspace-defaults/files/skills/skill-creator/LICENSE.txt +202 -0
  449. package/dist/workspace-defaults/files/skills/skill-creator/SKILL.md +485 -0
  450. package/dist/workspace-defaults/files/skills/skill-creator/UPSTREAM.json +124 -0
  451. package/dist/workspace-defaults/files/skills/skill-creator/agents/analyzer.md +274 -0
  452. package/dist/workspace-defaults/files/skills/skill-creator/agents/comparator.md +202 -0
  453. package/dist/workspace-defaults/files/skills/skill-creator/agents/grader.md +223 -0
  454. package/dist/workspace-defaults/files/skills/skill-creator/assets/eval_review.html +146 -0
  455. package/dist/workspace-defaults/files/skills/skill-creator/eval-viewer/generate_review.py +471 -0
  456. package/dist/workspace-defaults/files/skills/skill-creator/eval-viewer/viewer.html +1325 -0
  457. package/dist/workspace-defaults/files/skills/skill-creator/references/schemas.md +430 -0
  458. package/dist/workspace-defaults/files/skills/skill-creator/scripts/__init__.py +0 -0
  459. package/dist/workspace-defaults/files/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
  460. package/dist/workspace-defaults/files/skills/skill-creator/scripts/generate_report.py +326 -0
  461. package/dist/workspace-defaults/files/skills/skill-creator/scripts/improve_description.py +247 -0
  462. package/dist/workspace-defaults/files/skills/skill-creator/scripts/package_skill.py +136 -0
  463. package/dist/workspace-defaults/files/skills/skill-creator/scripts/quick_validate.py +103 -0
  464. package/dist/workspace-defaults/files/skills/skill-creator/scripts/run_eval.py +310 -0
  465. package/dist/workspace-defaults/files/skills/skill-creator/scripts/run_loop.py +328 -0
  466. package/dist/workspace-defaults/files/skills/skill-creator/scripts/utils.py +47 -0
  467. package/package.json +2 -1
  468. package/dist/terraform/modules/app/agentcore-flue/README.md +0 -58
  469. package/dist/terraform/modules/app/agentcore-flue/main.tf +0 -323
  470. package/dist/terraform/modules/app/agentcore-flue/outputs.tf +0 -23
  471. package/dist/terraform/modules/app/agentcore-flue/variables.tf +0 -97
  472. package/dist/terraform/modules/app/computer-runtime/README.md +0 -15
  473. package/dist/terraform/modules/app/computer-runtime/main.tf +0 -406
  474. package/dist/terraform/modules/app/computer-runtime/outputs.tf +0 -75
  475. package/dist/terraform/modules/app/computer-runtime/variables.tf +0 -66
@@ -0,0 +1,396 @@
1
+ import {
2
+ type ManagedAppAdapter,
3
+ type RequiredManagedAppInput,
4
+ } from "@thinkwork/deployment-runner/apps/registry";
5
+ import {
6
+ boolOutput,
7
+ optionalNumber,
8
+ optionalString,
9
+ optionalStringArray,
10
+ requireDigestImage,
11
+ requireStringInput,
12
+ stringOutput,
13
+ } from "@thinkwork/deployment-runner/apps/utils";
14
+
15
+ const BRAIN_STORAGE_TIERS = ["default", "production"] as const;
16
+
17
+ const smokeContracts = [
18
+ {
19
+ id: "cognee-health",
20
+ command: "plugins/company-brain/smoke/cognee-managed-app-smoke.mjs",
21
+ required: true,
22
+ },
23
+ ] as const;
24
+
25
+ const statusOutputs = [
26
+ "cognee_enabled",
27
+ "cognee_endpoint",
28
+ "cognee_log_group_name",
29
+ "cognee_cluster_arn",
30
+ "cognee_service_name",
31
+ "cognee_storage_file_system_id",
32
+ "cognee_brain_instance_key",
33
+ "cognee_brain_tenant_id",
34
+ "cognee_brain_storage_tier",
35
+ "cognee_graph_database_provider",
36
+ "cognee_vector_db_provider",
37
+ "cognee_embedding_model",
38
+ "cognee_embedding_dimensions",
39
+ "cognee_s3_artifact_root",
40
+ "cognee_s3_manifest_root",
41
+ "cognee_s3_vault_projection_root",
42
+ "cognee_neptune_graph_id",
43
+ "cognee_neptune_endpoint",
44
+ "cognee_private_substrate_mode",
45
+ "cognee_production_posture",
46
+ ] as const;
47
+
48
+ const enableRequiredInputs: RequiredManagedAppInput[] = [
49
+ {
50
+ key: "imageUri",
51
+ description: "Cognee container image URI pinned with @sha256.",
52
+ terraformVariable: "cognee_image_uri",
53
+ },
54
+ {
55
+ key: "dbPasswordSecretArn",
56
+ description: "Secrets Manager ARN for the dedicated Cognee DB password.",
57
+ terraformVariable: "cognee_db_password_secret_arn",
58
+ secret: true,
59
+ },
60
+ {
61
+ key: "bedrockModelResourceArns",
62
+ description:
63
+ "Explicit Bedrock model or inference-profile ARNs for Cognee providers.",
64
+ terraformVariable: "cognee_bedrock_model_resource_arns",
65
+ },
66
+ ];
67
+
68
+ export const cogneeAdapter: ManagedAppAdapter = {
69
+ appKey: "cognee",
70
+ displayName: "Cognee",
71
+ description:
72
+ "ThinkWork Brain ontology/knowledge-graph runtime with app-owned graph/vector storage.",
73
+ catalogVisible: true,
74
+ terraformModulePath: "plugins/company-brain/terraform/cognee",
75
+ requiredInputs(operation) {
76
+ return operation === "ENABLE" || operation === "UPGRADE"
77
+ ? enableRequiredInputs
78
+ : [];
79
+ },
80
+ buildTerraformVariables({ operation, desiredConfig }) {
81
+ if (operation === "DESTROY" || operation === "PARK") {
82
+ return {
83
+ enable_cognee: false,
84
+ };
85
+ }
86
+
87
+ const brainStorageTier = normalizeBrainStorageTier(desiredConfig);
88
+ const llmProvider =
89
+ optionalString(desiredConfig, "llmProvider") ?? "bedrock";
90
+ const embeddingProvider =
91
+ optionalString(desiredConfig, "embeddingProvider") ?? "bedrock";
92
+ const backendMode =
93
+ optionalString(desiredConfig, "backendMode") ??
94
+ (brainStorageTier === "production" ? "remote" : "dogfood");
95
+ const vectorDbProvider =
96
+ optionalString(desiredConfig, "vectorDbProvider") ??
97
+ (brainStorageTier === "production" ? "neptune_analytics" : "lancedb");
98
+ const graphDatabaseProvider =
99
+ optionalString(desiredConfig, "graphDatabaseProvider") ??
100
+ (brainStorageTier === "production" ? "neptune_analytics" : "kuzu");
101
+ const neptuneEndpoint = optionalString(desiredConfig, "neptuneEndpoint");
102
+ const vectorDbUrl =
103
+ optionalString(desiredConfig, "vectorDbUrl") ??
104
+ (brainStorageTier === "production" ? neptuneEndpoint : undefined);
105
+ const graphDatabaseUrl =
106
+ optionalString(desiredConfig, "graphDatabaseUrl") ??
107
+ (brainStorageTier === "production" ? neptuneEndpoint : undefined);
108
+ const bedrockModelResourceArns = optionalStringArray(
109
+ desiredConfig,
110
+ "bedrockModelResourceArns",
111
+ );
112
+
113
+ if (
114
+ (llmProvider === "bedrock" || embeddingProvider === "bedrock") &&
115
+ !bedrockModelResourceArns
116
+ ) {
117
+ throw new Error(
118
+ "Cognee Bedrock providers require bedrockModelResourceArns",
119
+ );
120
+ }
121
+
122
+ return compactObject({
123
+ enable_cognee: true,
124
+ cognee_image_uri: requireDigestImage(
125
+ desiredConfig,
126
+ "imageUri",
127
+ "Cognee imageUri",
128
+ ),
129
+ cognee_db_password_secret_arn: requireStringInput(
130
+ desiredConfig,
131
+ "dbPasswordSecretArn",
132
+ "Cognee dbPasswordSecretArn",
133
+ ),
134
+ cognee_db_username: optionalString(desiredConfig, "dbUsername"),
135
+ cognee_db_name: optionalString(desiredConfig, "dbName"),
136
+ cognee_allowed_internal_cidr_blocks: optionalStringArray(
137
+ desiredConfig,
138
+ "allowedInternalCidrBlocks",
139
+ ),
140
+ cognee_allowed_internal_security_group_ids: optionalStringArray(
141
+ desiredConfig,
142
+ "allowedInternalSecurityGroupIds",
143
+ ),
144
+ cognee_backend_mode: backendMode,
145
+ cognee_desired_count: optionalNumber(desiredConfig, "desiredCount"),
146
+ cognee_brain_tenant_id: optionalString(desiredConfig, "brainTenantId"),
147
+ cognee_brain_instance_key: optionalString(
148
+ desiredConfig,
149
+ "brainInstanceKey",
150
+ ),
151
+ cognee_brain_storage_tier: brainStorageTier,
152
+ cognee_brain_s3_artifact_root: optionalString(
153
+ desiredConfig,
154
+ "brainS3ArtifactRoot",
155
+ ),
156
+ cognee_brain_s3_manifest_root: optionalString(
157
+ desiredConfig,
158
+ "brainS3ManifestRoot",
159
+ ),
160
+ cognee_brain_s3_vault_projection_root: optionalString(
161
+ desiredConfig,
162
+ "brainS3VaultProjectionRoot",
163
+ ),
164
+ cognee_brain_artifacts_bucket_arn: optionalString(
165
+ desiredConfig,
166
+ "brainArtifactsBucketArn",
167
+ ),
168
+ cognee_brain_artifacts_prefixes: optionalStringArray(
169
+ desiredConfig,
170
+ "brainArtifactsPrefixes",
171
+ ),
172
+ cognee_private_substrate_mode:
173
+ optionalBoolean(desiredConfig, "privateSubstrateMode") ?? true,
174
+ cognee_require_authentication: optionalBoolean(
175
+ desiredConfig,
176
+ "requireAuthentication",
177
+ ),
178
+ cognee_enable_backend_access_control: optionalBoolean(
179
+ desiredConfig,
180
+ "enableBackendAccessControl",
181
+ ),
182
+ cognee_cors_allowed_origins: optionalString(
183
+ desiredConfig,
184
+ "corsAllowedOrigins",
185
+ ),
186
+ cognee_llm_provider: llmProvider,
187
+ cognee_llm_model: optionalString(desiredConfig, "llmModel"),
188
+ cognee_llm_api_key_secret_arn: optionalString(
189
+ desiredConfig,
190
+ "llmApiKeySecretArn",
191
+ ),
192
+ cognee_embedding_provider: embeddingProvider,
193
+ cognee_embedding_model: optionalString(desiredConfig, "embeddingModel"),
194
+ cognee_embedding_dimensions: optionalNumber(
195
+ desiredConfig,
196
+ "embeddingDimensions",
197
+ ),
198
+ cognee_embedding_api_key_secret_arn: optionalString(
199
+ desiredConfig,
200
+ "embeddingApiKeySecretArn",
201
+ ),
202
+ cognee_vector_db_provider: vectorDbProvider,
203
+ cognee_vector_db_url: vectorDbUrl,
204
+ cognee_vector_db_key_secret_arn: optionalString(
205
+ desiredConfig,
206
+ "vectorDbKeySecretArn",
207
+ ),
208
+ cognee_graph_database_provider: graphDatabaseProvider,
209
+ cognee_graph_database_url: graphDatabaseUrl,
210
+ cognee_graph_database_username: optionalString(
211
+ desiredConfig,
212
+ "graphDatabaseUsername",
213
+ ),
214
+ cognee_graph_database_password_secret_arn: optionalString(
215
+ desiredConfig,
216
+ "graphDatabasePasswordSecretArn",
217
+ ),
218
+ cognee_bedrock_model_resource_arns: bedrockModelResourceArns,
219
+ cognee_kms_key_arns: optionalStringArray(desiredConfig, "kmsKeyArns"),
220
+ cognee_neptune_graph_id: optionalString(desiredConfig, "neptuneGraphId"),
221
+ cognee_neptune_graph_arn: optionalString(
222
+ desiredConfig,
223
+ "neptuneGraphArn",
224
+ ),
225
+ cognee_neptune_endpoint: neptuneEndpoint,
226
+ cognee_production_posture: optionalString(
227
+ desiredConfig,
228
+ "productionPosture",
229
+ ),
230
+ });
231
+ },
232
+ dataImpact(operation) {
233
+ if (operation !== "DESTROY") {
234
+ return {
235
+ destructive: false,
236
+ summary:
237
+ "No destructive Company Brain substrate teardown requested. Provisioning or upgrades may create tenant-scoped Brain runtime resources.",
238
+ resources: [
239
+ "Canonical Company Brain S3 artifacts, ingestion manifests, migration snapshots, vault projections, and exports remain the replay source of truth.",
240
+ "Default tier uses Cognee Postgres metadata plus local LanceDB/Kuzu graph/vector stores on the task storage substrate.",
241
+ "Production tier uses Cognee-supported Neptune Analytics graph/vector resources when selected.",
242
+ ],
243
+ };
244
+ }
245
+ return {
246
+ destructive: true,
247
+ summary:
248
+ "Company Brain substrate destroy deletes the internal runtime and non-canonical graph/vector working stores.",
249
+ resources: [
250
+ "Tenant-scoped Brain ECS cluster, task definition, service, task/execution IAM roles, and internal ALB resources",
251
+ "Encrypted EFS file system, access point, mount targets, default-tier LanceDB/Kuzu graph/vector data, and system scratch directories",
252
+ "Dedicated Brain/Cognee Postgres metadata database, least-privilege database role, and password secret",
253
+ "Production-tier Neptune Analytics graph/vector resources referenced by the instance configuration",
254
+ "Provider and graph/vector database secrets owned by the Brain substrate module",
255
+ "CloudWatch log groups and deployment evidence artifacts for the Brain substrate job",
256
+ "Canonical Company Brain S3 artifacts/manifests are not destroyed by this module and must follow the artifact retention/deletion workflow.",
257
+ ],
258
+ };
259
+ },
260
+ preDestroySteps(operation) {
261
+ if (operation !== "DESTROY") return [];
262
+ return [
263
+ {
264
+ id: "cognee-db-drop",
265
+ description:
266
+ "Drop the dedicated Cognee database and least-privilege role after active sessions are terminated.",
267
+ evidenceKey: "pre-destroy/cognee-db-drop.json",
268
+ },
269
+ ];
270
+ },
271
+ smokeContracts,
272
+ statusOutputs: [...statusOutputs],
273
+ extractStatus(terraformOutputs) {
274
+ const provisioned = boolOutput(terraformOutputs, "cognee_enabled");
275
+ const endpoint = stringOutput(terraformOutputs, "cognee_endpoint");
276
+ return {
277
+ provisioned,
278
+ runtimeEnabled: provisioned,
279
+ endpoint,
280
+ status: provisioned ? "running" : "disabled",
281
+ evidence: {
282
+ endpoint,
283
+ logGroupName: stringOutput(terraformOutputs, "cognee_log_group_name"),
284
+ clusterArn: stringOutput(terraformOutputs, "cognee_cluster_arn"),
285
+ serviceName: stringOutput(terraformOutputs, "cognee_service_name"),
286
+ brainInstanceKey: stringOutput(
287
+ terraformOutputs,
288
+ "cognee_brain_instance_key",
289
+ ),
290
+ brainTenantId: stringOutput(terraformOutputs, "cognee_brain_tenant_id"),
291
+ storageTier: stringOutput(
292
+ terraformOutputs,
293
+ "cognee_brain_storage_tier",
294
+ ),
295
+ backendMode: stringOutput(terraformOutputs, "cognee_backend_mode"),
296
+ graphProvider: stringOutput(
297
+ terraformOutputs,
298
+ "cognee_graph_database_provider",
299
+ ),
300
+ vectorProvider: stringOutput(
301
+ terraformOutputs,
302
+ "cognee_vector_db_provider",
303
+ ),
304
+ embeddingModel: stringOutput(
305
+ terraformOutputs,
306
+ "cognee_embedding_model",
307
+ ),
308
+ vectorDimension: numberOutput(
309
+ terraformOutputs,
310
+ "cognee_embedding_dimensions",
311
+ ),
312
+ s3ArtifactRoot: stringOutput(
313
+ terraformOutputs,
314
+ "cognee_s3_artifact_root",
315
+ ),
316
+ s3ManifestRoot: stringOutput(
317
+ terraformOutputs,
318
+ "cognee_s3_manifest_root",
319
+ ),
320
+ s3VaultProjectionRoot: stringOutput(
321
+ terraformOutputs,
322
+ "cognee_s3_vault_projection_root",
323
+ ),
324
+ neptuneGraphId: stringOutput(
325
+ terraformOutputs,
326
+ "cognee_neptune_graph_id",
327
+ ),
328
+ neptuneEndpoint: stringOutput(
329
+ terraformOutputs,
330
+ "cognee_neptune_endpoint",
331
+ ),
332
+ storageFileSystemId: stringOutput(
333
+ terraformOutputs,
334
+ "cognee_storage_file_system_id",
335
+ ),
336
+ privateSubstrateMode: boolOutput(
337
+ terraformOutputs,
338
+ "cognee_private_substrate_mode",
339
+ ),
340
+ productionPosture: stringOutput(
341
+ terraformOutputs,
342
+ "cognee_production_posture",
343
+ ),
344
+ },
345
+ };
346
+ },
347
+ };
348
+
349
+ function normalizeBrainStorageTier(
350
+ desiredConfig: Record<string, unknown> | undefined,
351
+ ): (typeof BRAIN_STORAGE_TIERS)[number] {
352
+ const tier =
353
+ optionalString(desiredConfig, "brainStorageTier") ??
354
+ optionalString(desiredConfig, "storageTier") ??
355
+ "default";
356
+ if (
357
+ !BRAIN_STORAGE_TIERS.includes(tier as (typeof BRAIN_STORAGE_TIERS)[number])
358
+ ) {
359
+ throw new Error("Cognee brainStorageTier must be default or production");
360
+ }
361
+ return tier as (typeof BRAIN_STORAGE_TIERS)[number];
362
+ }
363
+
364
+ function optionalBoolean(
365
+ desiredConfig: Record<string, unknown> | undefined,
366
+ key: string,
367
+ ): boolean | undefined {
368
+ const value = desiredConfig?.[key];
369
+ return typeof value === "boolean" ? value : undefined;
370
+ }
371
+
372
+ function numberOutput(
373
+ terraformOutputs: Record<string, unknown>,
374
+ key: string,
375
+ ): number | null {
376
+ const value = terraformOutputs[key];
377
+ const outputValue =
378
+ value && typeof value === "object" && "value" in value
379
+ ? (value as { value?: unknown }).value
380
+ : value;
381
+ return typeof outputValue === "number" && Number.isFinite(outputValue)
382
+ ? outputValue
383
+ : null;
384
+ }
385
+
386
+ function compactObject(
387
+ value: Record<string, unknown>,
388
+ ): Record<string, unknown> {
389
+ return Object.fromEntries(
390
+ Object.entries(value).filter(([, entry]) => {
391
+ if (entry === undefined || entry === null || entry === "") return false;
392
+ if (Array.isArray(entry) && entry.length === 0) return false;
393
+ return true;
394
+ }),
395
+ );
396
+ }
@@ -0,0 +1,62 @@
1
+ import { companyBrainManifest } from "./manifest";
2
+
3
+ export const companyBrainPluginPackage = {
4
+ packageKey: "company-brain",
5
+ sourceRoot: "plugins/company-brain",
6
+ manifest: companyBrainManifest,
7
+ ownedSources: [
8
+ {
9
+ kind: "manifest",
10
+ path: "plugins/company-brain/src/manifest.ts",
11
+ description:
12
+ "Company Brain catalog manifest and internal Brain substrate component contract.",
13
+ },
14
+ {
15
+ kind: "smoke",
16
+ path: "plugins/company-brain/smoke",
17
+ description:
18
+ "Company Brain entitlement, operations, context engine, and substrate smoke validation scripts.",
19
+ },
20
+ {
21
+ kind: "deployment",
22
+ path: "plugins/company-brain/src/deployment/cognee-managed-app.ts",
23
+ description: "Company Brain internal substrate managed-app adapter.",
24
+ },
25
+ {
26
+ kind: "terraform",
27
+ path: "plugins/company-brain/terraform/cognee",
28
+ description: "Company Brain internal substrate Terraform module.",
29
+ },
30
+ {
31
+ kind: "runtime",
32
+ path: "plugins/company-brain/runtime/cognee/Dockerfile",
33
+ description: "Company Brain internal substrate runtime image source.",
34
+ },
35
+ {
36
+ kind: "api",
37
+ path: "plugins/company-brain/src/api",
38
+ description:
39
+ "Company Brain migration helpers, context provider, substrate client, and cluster identity utilities.",
40
+ },
41
+ {
42
+ kind: "tests",
43
+ path: "plugins/company-brain/test",
44
+ description: "Company Brain package-local manifest and contract tests.",
45
+ },
46
+ {
47
+ kind: "docs",
48
+ path: "plugins/company-brain/README.md",
49
+ description:
50
+ "Company Brain customer-facing ownership and substrate migration notes.",
51
+ },
52
+ ],
53
+ compatibilityLinks: [],
54
+ } as const;
55
+
56
+ export { companyBrainManifest };
57
+ export { cogneeAdapter } from "./deployment/cognee-managed-app";
58
+ export * from "./api/cognee-client";
59
+ export * from "./api/cognee-memory-scope";
60
+ export * from "./api/cognee-cluster-identity";
61
+ export * from "./api/context-engine-provider";
62
+ export * from "./api/migration";
@@ -0,0 +1,112 @@
1
+ /**
2
+ * ThinkWork Brain plugin manifest.
3
+ *
4
+ * ThinkWork Brain is the customer-facing premium product. The infrastructure
5
+ * component is backed by the existing internal Cognee managed-app adapter, but
6
+ * manifest display copy keeps Cognee out of the customer-facing catalog.
7
+ *
8
+ * v0.1.1 proves the premium plugin shell plus direct agent access:
9
+ * - always visible in the catalog
10
+ * - install gated by a ThinkWork-provided key
11
+ * - internal Brain substrate provisioned/adopted through managed-app infra
12
+ * - Brain substrate MCP registered as a plugin-owned server for Pi/direct MCP
13
+ * - no rendered plugin UI surface and no Full Brain runtime component
14
+ */
15
+
16
+ export const companyBrainManifest = {
17
+ pluginKey: "company-brain",
18
+ displayName: "ThinkWork Brain",
19
+ description:
20
+ "Premium ontology and knowledge-graph substrate for organizing shared Brain context.",
21
+ premium: {
22
+ entitlementProductKey: "company-brain",
23
+ installKeyRequired: true,
24
+ installKeyPrompt:
25
+ "Enter the ThinkWork Brain install key provided by ThinkWork to unlock this premium plugin for your tenant.",
26
+ },
27
+ versions: [
28
+ {
29
+ version: "0.1.0",
30
+ requiredOauthScopes: [],
31
+ components: [
32
+ {
33
+ type: "infrastructure",
34
+ key: "brain-substrate",
35
+ managedAppKey: "cognee",
36
+ // Mirrors the deployment-runner Cognee adapter's requiredInputs
37
+ // for ENABLE/UPGRADE. The adapter remains internal implementation
38
+ // machinery; Hindsight remains the user and Space memory provider.
39
+ // The catalog presents the component as ThinkWork Brain's knowledge
40
+ // graph substrate.
41
+ terraformInputs: {
42
+ imageUri: {
43
+ description:
44
+ "ThinkWork Brain substrate container image URI pinned with @sha256.",
45
+ type: "string",
46
+ },
47
+ dbPasswordSecretArn: {
48
+ description:
49
+ "Secrets Manager ARN containing the dedicated Brain substrate database password.",
50
+ type: "string",
51
+ },
52
+ bedrockModelResourceArns: {
53
+ description:
54
+ "Explicit Bedrock model or inference-profile ARNs for ThinkWork Brain providers.",
55
+ type: "list(string)",
56
+ },
57
+ },
58
+ },
59
+ ],
60
+ },
61
+ {
62
+ version: "0.1.1",
63
+ requiredOauthScopes: [],
64
+ components: [
65
+ {
66
+ type: "infrastructure",
67
+ key: "brain-substrate",
68
+ managedAppKey: "cognee",
69
+ // Mirrors the deployment-runner Cognee adapter's requiredInputs
70
+ // for ENABLE/UPGRADE. The adapter remains internal implementation
71
+ // machinery; Hindsight remains the user and Space memory provider.
72
+ // The catalog presents the component as ThinkWork Brain's knowledge
73
+ // graph substrate.
74
+ terraformInputs: {
75
+ imageUri: {
76
+ description:
77
+ "ThinkWork Brain substrate container image URI pinned with @sha256.",
78
+ type: "string",
79
+ },
80
+ dbPasswordSecretArn: {
81
+ description:
82
+ "Secrets Manager ARN containing the dedicated Brain substrate database password.",
83
+ type: "string",
84
+ },
85
+ bedrockModelResourceArns: {
86
+ description:
87
+ "Explicit Bedrock model or inference-profile ARNs for ThinkWork Brain providers.",
88
+ type: "list(string)",
89
+ },
90
+ },
91
+ },
92
+ {
93
+ type: "mcp-server",
94
+ key: "brain",
95
+ displayName: "ThinkWork Brain",
96
+ description:
97
+ "Direct MCP access to the tenant's ThinkWork Brain substrate for ontology, graph search, and substrate-native operations.",
98
+ endpointFrom: {
99
+ managedApp: "cognee",
100
+ configKey: "cogneeEndpoint",
101
+ path: "/mcp-server/http",
102
+ },
103
+ auth: { mode: "none" },
104
+ toolNotes: [
105
+ "ThinkWork Brain MCP is tenant-internal and plugin-owned; agents should discover the live tool list before calling substrate-native ontology or graph operations.",
106
+ "Use Hindsight-backed ThinkWork memory APIs for user and Space memory. ThinkWork Brain direct MCP/API access is for Brain substrate operations; GraphQL is control-plane only.",
107
+ ],
108
+ },
109
+ ],
110
+ },
111
+ ],
112
+ };