@terreno/mcp 57.3.0 → 57.4.0

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 (250) hide show
  1. package/README.md +7 -1
  2. package/dist/bootstrap.d.ts +0 -18
  3. package/dist/bootstrap.d.ts.map +1 -1
  4. package/dist/bootstrap.js +10 -2428
  5. package/dist/bootstrap.js.map +1 -1
  6. package/dist/docs/guidelines/admin-frontend/guidelines/core.md +5 -1
  7. package/dist/docs/guidelines/api/skills/mongoose-schema-safety/SKILL.md +23 -10
  8. package/dist/docs/resources/syncdb.md +4 -1
  9. package/dist/docs/upgrades/57.4.0.md +140 -0
  10. package/dist/docs/versioned/next/README.md +3 -0
  11. package/dist/docs/versioned/next/explanation/README.md +4 -1
  12. package/dist/docs/versioned/next/explanation/admin-interface.md +20 -13
  13. package/dist/docs/versioned/next/explanation/charts.md +29 -0
  14. package/dist/docs/versioned/next/explanation/deployment-architecture-gcp.md +32 -0
  15. package/dist/docs/versioned/next/explanation/deployment-baseline.md +1 -1
  16. package/dist/docs/versioned/next/explanation/example-coverage.md +43 -0
  17. package/dist/docs/versioned/next/explanation/local-first-data.md +5 -2
  18. package/dist/docs/versioned/next/explanation/loop-engineering.md +9 -6
  19. package/dist/docs/versioned/next/explanation/model-router-actions.md +19 -2
  20. package/dist/docs/versioned/next/explanation/organizations.md +88 -0
  21. package/dist/docs/versioned/next/explanation/planning-plugins.md +114 -0
  22. package/dist/docs/versioned/next/explanation/positioning.md +3 -3
  23. package/dist/docs/versioned/next/explanation/repository-settings.md +6 -5
  24. package/dist/docs/versioned/next/explanation/roadmap-seed-issues.md +44 -34
  25. package/dist/docs/versioned/next/explanation/source-rules.md +1 -1
  26. package/dist/docs/versioned/next/explanation/static-analysis.md +76 -16
  27. package/dist/docs/versioned/next/how-to/README.md +10 -0
  28. package/dist/docs/versioned/next/how-to/add-gpt-chat-mascot.md +92 -0
  29. package/dist/docs/versioned/next/how-to/add-organizations.md +204 -0
  30. package/dist/docs/versioned/next/how-to/admin-add-model.md +9 -1
  31. package/dist/docs/versioned/next/how-to/admin-import-prebuilt.md +7 -1
  32. package/dist/docs/versioned/next/how-to/audit-log.md +85 -0
  33. package/dist/docs/versioned/next/how-to/background-jobs.md +296 -0
  34. package/dist/docs/versioned/next/how-to/build-admin-screens.md +42 -13
  35. package/dist/docs/versioned/next/how-to/charts-and-dashboards.md +37 -0
  36. package/dist/docs/versioned/next/how-to/circleci.md +136 -27
  37. package/dist/docs/versioned/next/how-to/compare-chart-rendered-snapshots.md +36 -0
  38. package/dist/docs/versioned/next/how-to/configure-better-auth.md +4 -0
  39. package/dist/docs/versioned/next/how-to/create-a-terreno-app.md +154 -0
  40. package/dist/docs/versioned/next/how-to/deploy-backend-to-cloud-run.md +2 -0
  41. package/dist/docs/versioned/next/how-to/github-actions-ci.md +4 -3
  42. package/dist/docs/versioned/next/how-to/github-issue-lifecycle.md +12 -8
  43. package/dist/docs/versioned/next/how-to/in-app-notifications.md +147 -0
  44. package/dist/docs/versioned/next/how-to/install-agent-skills.md +24 -12
  45. package/dist/docs/versioned/next/how-to/migrate-rtk-to-syncdb.md +19 -3
  46. package/dist/docs/versioned/next/how-to/product-announcements.md +155 -0
  47. package/dist/docs/versioned/next/how-to/run-mongodb-migrations.md +127 -0
  48. package/dist/docs/versioned/next/how-to/run-tests-locally.md +102 -0
  49. package/dist/docs/versioned/next/how-to/seed-a-database.md +7 -2
  50. package/dist/docs/versioned/next/implementationPlans/README.md +8 -5
  51. package/dist/docs/versioned/next/implementationPlans/admin-scripts-durable-jobs.md +44 -0
  52. package/dist/docs/versioned/next/implementationPlans/agent-ui-blocks.md +386 -0
  53. package/dist/docs/versioned/next/implementationPlans/agentic-sdlc-plugin.md +11 -8
  54. package/dist/docs/versioned/next/implementationPlans/announcements-surfaces.md +231 -0
  55. package/dist/docs/versioned/next/implementationPlans/announcements.md +289 -0
  56. package/dist/docs/versioned/next/implementationPlans/b2b-platform-program.md +3 -1
  57. package/dist/docs/versioned/next/implementationPlans/charts-and-dashboards.md +246 -0
  58. package/dist/docs/versioned/next/implementationPlans/comms-admin-dashboard.md +4 -3
  59. package/dist/docs/versioned/next/implementationPlans/create-terreno-app.md +177 -0
  60. package/dist/docs/versioned/next/implementationPlans/datatable-server-side-filtering.md +219 -0
  61. package/dist/docs/versioned/next/implementationPlans/examples-demo-coverage.md +17 -17
  62. package/dist/docs/versioned/next/implementationPlans/framework-audit-log.md +247 -0
  63. package/dist/docs/versioned/next/implementationPlans/gpt-chat-mascot.md +40 -0
  64. package/dist/docs/versioned/next/implementationPlans/job-queues.md +330 -0
  65. package/dist/docs/versioned/next/implementationPlans/knip-cleanup.md +136 -0
  66. package/dist/docs/versioned/next/implementationPlans/migrate-admin-to-syncdb.md +210 -0
  67. package/dist/docs/versioned/next/implementationPlans/mongodb-migrations-tooling.md +254 -0
  68. package/dist/docs/versioned/next/implementationPlans/notification-center.md +185 -0
  69. package/dist/docs/versioned/next/implementationPlans/org-management-ui.md +8 -3
  70. package/dist/docs/versioned/next/implementationPlans/positioning-django-rails-universal.md +1 -1
  71. package/dist/docs/versioned/next/reference/README.md +4 -0
  72. package/dist/docs/versioned/next/reference/admin-backend.md +83 -5
  73. package/dist/docs/versioned/next/reference/admin-config.md +7 -0
  74. package/dist/docs/versioned/next/reference/admin-frontend.md +178 -5
  75. package/dist/docs/versioned/next/reference/admin-spa.md +18 -1
  76. package/dist/docs/versioned/next/reference/ai.md +2 -0
  77. package/dist/docs/versioned/next/reference/announcements.md +179 -0
  78. package/dist/docs/versioned/next/reference/api.md +343 -4
  79. package/dist/docs/versioned/next/reference/comms.md +33 -0
  80. package/dist/docs/versioned/next/reference/create-terreno-app.md +44 -0
  81. package/dist/docs/versioned/next/reference/environment-variables.md +29 -0
  82. package/dist/docs/versioned/next/reference/jobs.md +319 -0
  83. package/dist/docs/versioned/next/reference/legacy/rtk.md +5 -1
  84. package/dist/docs/versioned/next/reference/lifecycle-plugin.md +29 -11
  85. package/dist/docs/versioned/next/reference/mcp-server.md +2 -43
  86. package/dist/docs/versioned/next/reference/scan-plugin.md +169 -0
  87. package/dist/docs/versioned/next/reference/syncdb.md +38 -12
  88. package/dist/docs/versioned/next/reference/test.md +57 -6
  89. package/dist/docs/versioned/next/reference/ui-performance.md +2 -1
  90. package/dist/docs/versioned/next/reference/ui.md +257 -3
  91. package/dist/docs/versioned/next/tasks/admin-scripts-durable-jobs.md +10 -0
  92. package/dist/docs/versioned/next/tasks/agent-ui-blocks.md +114 -0
  93. package/dist/docs/versioned/next/tasks/announcements-surfaces.md +101 -0
  94. package/dist/docs/versioned/next/tasks/announcements.md +173 -0
  95. package/dist/docs/versioned/next/tasks/charts-and-dashboards.md +120 -0
  96. package/dist/docs/versioned/next/tasks/create-terreno-app.md +82 -0
  97. package/dist/docs/versioned/next/tasks/datatable-server-side-filtering.md +87 -0
  98. package/dist/docs/versioned/next/tasks/examples-demo-coverage.md +123 -17
  99. package/dist/docs/versioned/next/tasks/framework-audit-log.md +86 -0
  100. package/dist/docs/versioned/next/tasks/gpt-chat-mascot.md +13 -0
  101. package/dist/docs/versioned/next/tasks/job-queues.md +144 -0
  102. package/dist/docs/versioned/next/tasks/knip-cleanup.md +146 -0
  103. package/dist/docs/versioned/next/tasks/migrate-admin-to-syncdb.md +209 -0
  104. package/dist/docs/versioned/next/tasks/mongodb-migrations-tooling.md +107 -0
  105. package/dist/docs/versioned/next/tasks/notification-center.md +102 -0
  106. package/dist/docs/versioned/next/tasks/org-management-ui.md +14 -14
  107. package/dist/docs/versioned/next/tutorials/README.md +1 -1
  108. package/dist/docs/versioned/next/tutorials/getting-started.md +62 -22
  109. package/dist/help/excerpt.d.ts +2 -0
  110. package/dist/help/excerpt.d.ts.map +1 -0
  111. package/dist/help/excerpt.js +8 -0
  112. package/dist/help/excerpt.js.map +1 -0
  113. package/dist/help/updateNotes.d.ts +42 -0
  114. package/dist/help/updateNotes.d.ts.map +1 -0
  115. package/dist/help/updateNotes.js +235 -0
  116. package/dist/help/updateNotes.js.map +1 -0
  117. package/dist/index.js +1 -1
  118. package/dist/index.js.map +1 -1
  119. package/dist/local/tools/databaseQuery.d.ts +1 -0
  120. package/dist/local/tools/databaseQuery.d.ts.map +1 -1
  121. package/dist/local/tools/databaseQuery.js +1 -0
  122. package/dist/local/tools/databaseQuery.js.map +1 -1
  123. package/dist/packageGuidelines.d.ts +2 -2
  124. package/dist/packageGuidelines.d.ts.map +1 -1
  125. package/dist/packageGuidelines.js +2 -8
  126. package/dist/packageGuidelines.js.map +1 -1
  127. package/dist/resources.d.ts +3 -0
  128. package/dist/resources.d.ts.map +1 -1
  129. package/dist/resources.js +3 -0
  130. package/dist/resources.js.map +1 -1
  131. package/dist/search/chunker.d.ts +1 -0
  132. package/dist/search/chunker.d.ts.map +1 -1
  133. package/dist/search/chunker.js +1 -0
  134. package/dist/search/chunker.js.map +1 -1
  135. package/dist/search/docIndex.d.ts +1 -5
  136. package/dist/search/docIndex.d.ts.map +1 -1
  137. package/dist/search/docIndex.js +1 -0
  138. package/dist/search/docIndex.js.map +1 -1
  139. package/dist/search/docVersion.d.ts +2 -1
  140. package/dist/search/docVersion.d.ts.map +1 -1
  141. package/dist/search/docVersion.js +3 -1
  142. package/dist/search/docVersion.js.map +1 -1
  143. package/dist/tools.d.ts +2 -2
  144. package/dist/tools.d.ts.map +1 -1
  145. package/dist/tools.js +113 -2
  146. package/dist/tools.js.map +1 -1
  147. package/package.json +28 -27
  148. package/src/docs/guidelines/admin-frontend/guidelines/core.md +5 -1
  149. package/src/docs/guidelines/api/skills/mongoose-schema-safety/SKILL.md +23 -10
  150. package/src/docs/resources/syncdb.md +4 -1
  151. package/src/docs/upgrades/57.4.0.md +140 -0
  152. package/src/docs/versioned/next/README.md +3 -0
  153. package/src/docs/versioned/next/explanation/README.md +4 -1
  154. package/src/docs/versioned/next/explanation/admin-interface.md +20 -13
  155. package/src/docs/versioned/next/explanation/charts.md +29 -0
  156. package/src/docs/versioned/next/explanation/deployment-architecture-gcp.md +32 -0
  157. package/src/docs/versioned/next/explanation/deployment-baseline.md +1 -1
  158. package/src/docs/versioned/next/explanation/example-coverage.md +43 -0
  159. package/src/docs/versioned/next/explanation/local-first-data.md +5 -2
  160. package/src/docs/versioned/next/explanation/loop-engineering.md +9 -6
  161. package/src/docs/versioned/next/explanation/model-router-actions.md +19 -2
  162. package/src/docs/versioned/next/explanation/organizations.md +88 -0
  163. package/src/docs/versioned/next/explanation/planning-plugins.md +114 -0
  164. package/src/docs/versioned/next/explanation/positioning.md +3 -3
  165. package/src/docs/versioned/next/explanation/repository-settings.md +6 -5
  166. package/src/docs/versioned/next/explanation/roadmap-seed-issues.md +44 -34
  167. package/src/docs/versioned/next/explanation/source-rules.md +1 -1
  168. package/src/docs/versioned/next/explanation/static-analysis.md +76 -16
  169. package/src/docs/versioned/next/how-to/README.md +10 -0
  170. package/src/docs/versioned/next/how-to/add-gpt-chat-mascot.md +92 -0
  171. package/src/docs/versioned/next/how-to/add-organizations.md +204 -0
  172. package/src/docs/versioned/next/how-to/admin-add-model.md +9 -1
  173. package/src/docs/versioned/next/how-to/admin-import-prebuilt.md +7 -1
  174. package/src/docs/versioned/next/how-to/audit-log.md +85 -0
  175. package/src/docs/versioned/next/how-to/background-jobs.md +296 -0
  176. package/src/docs/versioned/next/how-to/build-admin-screens.md +42 -13
  177. package/src/docs/versioned/next/how-to/charts-and-dashboards.md +37 -0
  178. package/src/docs/versioned/next/how-to/circleci.md +136 -27
  179. package/src/docs/versioned/next/how-to/compare-chart-rendered-snapshots.md +36 -0
  180. package/src/docs/versioned/next/how-to/configure-better-auth.md +4 -0
  181. package/src/docs/versioned/next/how-to/create-a-terreno-app.md +154 -0
  182. package/src/docs/versioned/next/how-to/deploy-backend-to-cloud-run.md +2 -0
  183. package/src/docs/versioned/next/how-to/github-actions-ci.md +4 -3
  184. package/src/docs/versioned/next/how-to/github-issue-lifecycle.md +12 -8
  185. package/src/docs/versioned/next/how-to/in-app-notifications.md +147 -0
  186. package/src/docs/versioned/next/how-to/install-agent-skills.md +24 -12
  187. package/src/docs/versioned/next/how-to/migrate-rtk-to-syncdb.md +19 -3
  188. package/src/docs/versioned/next/how-to/product-announcements.md +155 -0
  189. package/src/docs/versioned/next/how-to/run-mongodb-migrations.md +127 -0
  190. package/src/docs/versioned/next/how-to/run-tests-locally.md +102 -0
  191. package/src/docs/versioned/next/how-to/seed-a-database.md +7 -2
  192. package/src/docs/versioned/next/implementationPlans/README.md +8 -5
  193. package/src/docs/versioned/next/implementationPlans/admin-scripts-durable-jobs.md +44 -0
  194. package/src/docs/versioned/next/implementationPlans/agent-ui-blocks.md +386 -0
  195. package/src/docs/versioned/next/implementationPlans/agentic-sdlc-plugin.md +11 -8
  196. package/src/docs/versioned/next/implementationPlans/announcements-surfaces.md +231 -0
  197. package/src/docs/versioned/next/implementationPlans/announcements.md +289 -0
  198. package/src/docs/versioned/next/implementationPlans/b2b-platform-program.md +3 -1
  199. package/src/docs/versioned/next/implementationPlans/charts-and-dashboards.md +246 -0
  200. package/src/docs/versioned/next/implementationPlans/comms-admin-dashboard.md +4 -3
  201. package/src/docs/versioned/next/implementationPlans/create-terreno-app.md +177 -0
  202. package/src/docs/versioned/next/implementationPlans/datatable-server-side-filtering.md +219 -0
  203. package/src/docs/versioned/next/implementationPlans/examples-demo-coverage.md +17 -17
  204. package/src/docs/versioned/next/implementationPlans/framework-audit-log.md +247 -0
  205. package/src/docs/versioned/next/implementationPlans/gpt-chat-mascot.md +40 -0
  206. package/src/docs/versioned/next/implementationPlans/job-queues.md +330 -0
  207. package/src/docs/versioned/next/implementationPlans/knip-cleanup.md +136 -0
  208. package/src/docs/versioned/next/implementationPlans/migrate-admin-to-syncdb.md +210 -0
  209. package/src/docs/versioned/next/implementationPlans/mongodb-migrations-tooling.md +254 -0
  210. package/src/docs/versioned/next/implementationPlans/notification-center.md +185 -0
  211. package/src/docs/versioned/next/implementationPlans/org-management-ui.md +8 -3
  212. package/src/docs/versioned/next/implementationPlans/positioning-django-rails-universal.md +1 -1
  213. package/src/docs/versioned/next/reference/README.md +4 -0
  214. package/src/docs/versioned/next/reference/admin-backend.md +83 -5
  215. package/src/docs/versioned/next/reference/admin-config.md +7 -0
  216. package/src/docs/versioned/next/reference/admin-frontend.md +178 -5
  217. package/src/docs/versioned/next/reference/admin-spa.md +18 -1
  218. package/src/docs/versioned/next/reference/ai.md +2 -0
  219. package/src/docs/versioned/next/reference/announcements.md +179 -0
  220. package/src/docs/versioned/next/reference/api.md +343 -4
  221. package/src/docs/versioned/next/reference/comms.md +33 -0
  222. package/src/docs/versioned/next/reference/create-terreno-app.md +44 -0
  223. package/src/docs/versioned/next/reference/environment-variables.md +29 -0
  224. package/src/docs/versioned/next/reference/jobs.md +319 -0
  225. package/src/docs/versioned/next/reference/legacy/rtk.md +5 -1
  226. package/src/docs/versioned/next/reference/lifecycle-plugin.md +29 -11
  227. package/src/docs/versioned/next/reference/mcp-server.md +2 -43
  228. package/src/docs/versioned/next/reference/scan-plugin.md +169 -0
  229. package/src/docs/versioned/next/reference/syncdb.md +38 -12
  230. package/src/docs/versioned/next/reference/test.md +57 -6
  231. package/src/docs/versioned/next/reference/ui-performance.md +2 -1
  232. package/src/docs/versioned/next/reference/ui.md +257 -3
  233. package/src/docs/versioned/next/tasks/admin-scripts-durable-jobs.md +10 -0
  234. package/src/docs/versioned/next/tasks/agent-ui-blocks.md +114 -0
  235. package/src/docs/versioned/next/tasks/announcements-surfaces.md +101 -0
  236. package/src/docs/versioned/next/tasks/announcements.md +173 -0
  237. package/src/docs/versioned/next/tasks/charts-and-dashboards.md +120 -0
  238. package/src/docs/versioned/next/tasks/create-terreno-app.md +82 -0
  239. package/src/docs/versioned/next/tasks/datatable-server-side-filtering.md +87 -0
  240. package/src/docs/versioned/next/tasks/examples-demo-coverage.md +123 -17
  241. package/src/docs/versioned/next/tasks/framework-audit-log.md +86 -0
  242. package/src/docs/versioned/next/tasks/gpt-chat-mascot.md +13 -0
  243. package/src/docs/versioned/next/tasks/job-queues.md +144 -0
  244. package/src/docs/versioned/next/tasks/knip-cleanup.md +146 -0
  245. package/src/docs/versioned/next/tasks/migrate-admin-to-syncdb.md +209 -0
  246. package/src/docs/versioned/next/tasks/mongodb-migrations-tooling.md +107 -0
  247. package/src/docs/versioned/next/tasks/notification-center.md +102 -0
  248. package/src/docs/versioned/next/tasks/org-management-ui.md +14 -14
  249. package/src/docs/versioned/next/tutorials/README.md +1 -1
  250. package/src/docs/versioned/next/tutorials/getting-started.md +62 -22
@@ -6,19 +6,19 @@ Supporting skills (all tasks): `update-docs`. Models: `mongoose-schema-safety`.
6
6
 
7
7
  ## Phase 1 — Models + context
8
8
 
9
- - [ ] **Task 1.1**: Organization + Membership models
9
+ - [x] **Task 1.1**: Organization + Membership models
10
10
  - Delivers: persist orgs and per-org `roleName` (`org-admin` \| `member`)
11
11
  - Files: `api/src/orgs/organizationModel.ts`, types, `api/src/orgs/*.test.ts`
12
12
  - Blocked by: none
13
13
  - Docs: field `description`s (OpenAPI); note in `docs/reference/api.md` stub section if the page is updated later in 6.1
14
14
  - Acceptance: unit tests for compound unique index and duplicate membership rejection
15
- - [ ] **Task 1.2**: `orgScopedPlugin`
15
+ - [x] **Task 1.2**: `orgScopedPlugin`
16
16
  - Delivers: required indexed `organizationId` on consumer schemas
17
17
  - Files: `api/src/orgs/orgPlugin.ts` + tests
18
18
  - Blocked by: 1.1
19
19
  - Docs: none until 6.1
20
20
  - Acceptance: save without org fails; index present
21
- - [ ] **Task 1.3**: Org context middleware + `OrgQueryFilter`
21
+ - [x] **Task 1.3**: Org context middleware + `OrgQueryFilter`
22
22
  - Delivers: Q13 header matrix; lists never cross orgs
23
23
  - Files: `api/src/orgs/orgContext.ts`, `orgPermissions.ts`, `api/src/permissions.ts` (stop using `User.organizationIds`)
24
24
  - Blocked by: 1.1, 1.2
@@ -27,7 +27,7 @@ Supporting skills (all tasks): `update-docs`. Models: `mongoose-schema-safety`.
27
27
 
28
28
  ## Phase 2 — RBAC
29
29
 
30
- - [ ] **Task 2.1**: `organization` statements + `operator` role + membership-scoped `org-admin`
30
+ - [x] **Task 2.1**: `organization` statements + `operator` role + membership-scoped `org-admin`
31
31
  - Delivers: platform vs org grants as in the IP tables
32
32
  - Files: `api/src/rbac/statements.ts`, `roleModel.ts`, resolve/can path for Membership `roleName`, tests
33
33
  - Blocked by: 1.3
@@ -36,13 +36,13 @@ Supporting skills (all tasks): `update-docs`. Models: `mongoose-schema-safety`.
36
36
 
37
37
  ## Phase 3 — OrgsApp routes
38
38
 
39
- - [ ] **Task 3.1**: Operator org CRUD + `/orgs/mine`
39
+ - [x] **Task 3.1**: Operator org CRUD + `/orgs/mine`
40
40
  - Delivers: create/list-all/mine/read/patch/soft-delete + `onOrgAudit`
41
41
  - Files: `api/src/orgs/orgsApp.ts`, exports, OpenAPI, supertest
42
42
  - Blocked by: 2.1
43
43
  - Docs: none until 6.1
44
44
  - Acceptance: org-admin 403 on `GET /orgs`; operator 200; create does not require membership; disable/soft-delete suspends memberships
45
- - [ ] **Task 3.2**: Members attach / patch / delete + last-admin guards
45
+ - [x] **Task 3.2**: Members attach / patch / delete + last-admin guards
46
46
  - Delivers: existing-user attach; no email; last `org-admin` protected
47
47
  - Files: `api/src/orgs/orgsApp.ts` + tests
48
48
  - Blocked by: 3.1
@@ -51,7 +51,7 @@ Supporting skills (all tasks): `update-docs`. Models: `mongoose-schema-safety`.
51
51
 
52
52
  ## Phase 4 — Admin backend
53
53
 
54
- - [ ] **Task 4.1**: Admin org routes + AdminApp tenant context
54
+ - [x] **Task 4.1**: Admin org routes + AdminApp tenant context
55
55
  - Delivers: admin UI can call org APIs; generic admin model lists use context filter
56
56
  - Files: `admin-backend/src/*` (org registration or aliases), AdminApp queryFilter/preCreate, tests
57
57
  - Blocked by: 3.2
@@ -60,31 +60,31 @@ Supporting skills (all tasks): `update-docs`. Models: `mongoose-schema-safety`.
60
60
 
61
61
  ## Phase 5 — Admin frontend
62
62
 
63
- - [ ] **Task 5.1**: `OrgDirectoryScreen` (operator)
63
+ - [x] **Task 5.1**: `OrgDirectoryScreen` (operator)
64
64
  - Delivers: all-orgs table, create, disable, enter org
65
65
  - Files: `admin-frontend/src/orgs/OrgDirectoryScreen.tsx` + tests
66
66
  - Blocked by: 4.1
67
67
  - Docs: `docs/reference/admin-frontend.md` component section
68
68
  - Acceptance: loading/error/empty; org-admin nav hidden in unit test via role prop/fixture
69
- - [ ] **Task 5.2**: `OrgSwitcher` + `useOrgContext` (header + URL)
69
+ - [x] **Task 5.2**: `OrgSwitcher` + `useOrgContext` (header + URL)
70
70
  - Delivers: Q10/Q13 client behavior for org-admins and operators-in-org
71
71
  - Files: `admin-frontend/src/orgs/OrgSwitcher.tsx`, `useOrgContext.tsx`, `AdminShellLayout` slot
72
72
  - Blocked by: 5.1
73
73
  - Docs: admin-frontend reference
74
74
  - Acceptance: switching sets `X-Organization-Id` on subsequent admin queries (test with mocked api); single-org org-admin still renders org name
75
- - [ ] **Task 5.3**: Org settings + members table
75
+ - [x] **Task 5.3**: Org settings + members table
76
76
  - Delivers: settings PATCH; members DataTable; add existing user; last-admin error; disabled Invite; billing placeholder
77
77
  - Files: `admin-frontend/src/orgs/OrgSettingsScreen.tsx`, `OrgMembersScreen.tsx` + tests
78
78
  - Blocked by: 5.2, 3.2
79
79
  - Docs: admin-frontend reference
80
80
  - Acceptance: Invite control disabled; billing placeholder visible; last-admin error shown
81
- - [ ] **Task 5.4**: Host wiring — admin-spa + example-frontend `/admin`
81
+ - [x] **Task 5.4**: Host wiring — admin-spa + example-frontend `/admin`
82
82
  - Delivers: routes on both hosts; SDK regen
83
83
  - Files: `admin-spa/app/orgs/*`, `example-frontend/app/admin/orgs/*`, `example-frontend/store/openApiSdk.ts` (generated)
84
84
  - Blocked by: 5.3
85
85
  - Docs: `docs/reference/admin-spa.md` nav entry
86
86
  - Acceptance: `cd example-frontend && bun run sdk` compiles; both apps have `/admin/orgs` routes
87
- - [ ] **Task 5.5**: Frontend verification
87
+ - [x] **Task 5.5**: Frontend verification
88
88
  - Delivers: evidence org-admin vs operator flows
89
89
  - Files: `/opt/cursor/artifacts/` (not in repo)
90
90
  - Blocked by: 5.4, 6.2
@@ -93,13 +93,13 @@ Supporting skills (all tasks): `update-docs`. Models: `mongoose-schema-safety`.
93
93
 
94
94
  ## Phase 6 — Example + docs
95
95
 
96
- - [ ] **Task 6.1**: Docs (same slice as behavior; can land incrementally but must be complete before Brew)
96
+ - [x] **Task 6.1**: Docs (same slice as behavior; can land incrementally but must be complete before Brew)
97
97
  - Delivers: stranger can operate orgs from docs
98
98
  - Files: `docs/how-to/add-organizations.md`, `docs/explanation/organizations.md`, `docs/reference/api.md`, `docs/reference/admin-backend.md`, `docs/reference/admin-frontend.md`, `docs/reference/admin-spa.md`, `.rulesync/**` if agent rules need org context
99
99
  - Blocked by: 4.1 (content must match shipped routes)
100
100
  - Docs: (this task)
101
101
  - Acceptance: `bun run website:build` (or package docs check used in CI); how-to has one minimal OrgsApp + AdminApp example
102
- - [ ] **Task 6.2**: example-backend migration + seeds
102
+ - [x] **Task 6.2**: example-backend migration + seeds
103
103
  - Delivers: Membership instead of `User.organizationIds`; operator + two org-admins
104
104
  - Files: `example-backend/src/models/user.ts`, `types/models/userTypes.ts`, `api/projects.ts`, `scripts/seed-*`, `access.ts`, `rbacRoles.ts`, tests
105
105
  - Blocked by: 3.2, 2.1
@@ -4,4 +4,4 @@ Learning-oriented, hands-on lessons. Start here if you are new to Terreno.
4
4
 
5
5
  ## Contents
6
6
 
7
- - [Getting started](getting-started.md) — Install, run the examples, and see the stack in action
7
+ - [Getting started](getting-started.md) — Scaffold a new app with `create-terreno-app`, run it locally, or explore monorepo examples
@@ -1,44 +1,84 @@
1
1
  # Getting Started
2
2
 
3
- Run the example full stack to see Terreno in action.
3
+ Create a new Terreno app with the scaffolding CLI, then run it locally.
4
4
 
5
5
  ## Prerequisites
6
6
 
7
7
  - [Bun](https://bun.sh/) installed
8
- - MongoDB running (for the backend example)
8
+ - MongoDB as a **replica set** (required for sync and realtime — see [deployment baseline](../explanation/deployment-baseline.md))
9
9
 
10
- ## Steps
10
+ ## 1. Scaffold a new app
11
11
 
12
- 1. **Clone and install**
12
+ From an empty parent directory:
13
13
 
14
- ```bash
15
- bun install
16
- ```
14
+ ```bash
15
+ bunx create-terreno-app my-app --display-name "My App"
16
+ ```
17
17
 
18
- 2. **Start the backend** (terminal 1)
18
+ npm alternative:
19
19
 
20
- ```bash
21
- bun run backend:dev
22
- ```
20
+ ```bash
21
+ npm create terreno-app my-app -- --display-name "My App"
22
+ ```
23
23
 
24
- Backend runs at `http://localhost:4000`. OpenAPI spec at `/openapi.json`.
24
+ This writes `my-app/backend` and `my-app/frontend` plus deploy and agent config. The CLI does not install dependencies or seed data.
25
25
 
26
- 3. **Start the frontend** (terminal 2)
26
+ Full flag reference, layout, and deploy notes: [Create a Terreno app](../how-to/create-a-terreno-app.md).
27
27
 
28
- ```bash
29
- bun run frontend:web
30
- ```
28
+ ## 2. Install dependencies
31
29
 
32
- Frontend runs in the browser and talks to the backend.
30
+ ```bash
31
+ cd my-app
32
+ (cd backend && bun install)
33
+ (cd frontend && bun install)
34
+ ```
33
35
 
34
- 4. **Optional: regenerate SDK** after backend route changes
36
+ ## 3. Start MongoDB
35
37
 
36
- ```bash
37
- cd example-frontend && bun run sdk
38
- ```
38
+ Use Atlas or a local single-node replica set. The scaffolded `backend/.env` points at `mongodb://127.0.0.1:27017/my_app?replicaSet=rs0` (database name derived from `appName`).
39
+ Follow [Start MongoDB (replica set)](../how-to/create-a-terreno-app.md#3-start-mongodb-replica-set) for local commands.
40
+
41
+ ## 4. Seed and start the backend
42
+
43
+ ```bash
44
+ (cd backend && bun run seed)
45
+ (cd backend && bun run dev)
46
+ ```
47
+
48
+ Backend runs at `http://localhost:4000`. OpenAPI spec at `/openapi.json`.
49
+
50
+ Seed users: `test@example.com` and `admin@example.com`, password `testpassword123`.
51
+
52
+ ## 5. Start the frontend
53
+
54
+ Keep the backend running while generating the SDK.
55
+
56
+ ```bash
57
+ (cd frontend && bun run sdk)
58
+ (cd frontend && bun run web)
59
+ ```
60
+
61
+ Frontend runs at `http://localhost:8082`. Sign in with `test@example.com` / `testpassword123`.
62
+
63
+ ## Explore the Terreno monorepo examples
64
+
65
+ If you are contributing to Terreno or want reference implementations inside this repository:
66
+
67
+ ```bash
68
+ git clone https://github.com/FlourishHealth/terreno.git
69
+ cd terreno && bun run bootstrap
70
+ ```
71
+
72
+ | Service | Port | Command (from repo root) |
73
+ | --- | --- | --- |
74
+ | example-backend | 4000 | `bun run backend:dev` |
75
+ | example-frontend web | 8082 | `EXPO_PUBLIC_API_URL=http://localhost:4000 bun run frontend:web` |
76
+
77
+ The example backend needs `MONGO_URI` (replica set) and auth secrets — see the repository [AGENTS.md](https://github.com/FlourishHealth/terreno/blob/master/AGENTS.md) (Cursor Cloud section). Seed with `bun run backend:seed` from the repo root.
39
78
 
40
79
  ## Next steps
41
80
 
42
- - [How to create a model](../how-to/create-a-model.md) — Learn model conventions including required field descriptions
81
+ - [Create a Terreno app](../how-to/create-a-terreno-app.md) — CLI flags, layout, deploy, MCP write path
82
+ - [How to create a model](../how-to/create-a-model.md) — Model conventions including required field descriptions
43
83
  - [How-to guides](../how-to/) — Task-focused guides
44
84
  - [Reference](../reference/) — Package and API details
@@ -0,0 +1,2 @@
1
+ export declare const excerptBody: (body: string, maxLength?: number) => string;
2
+ //# sourceMappingURL=excerpt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"excerpt.d.ts","sourceRoot":"","sources":["../../src/help/excerpt.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,EAAE,kBAAe,KAAG,MAM3D,CAAC"}
@@ -0,0 +1,8 @@
1
+ export const excerptBody = (body, maxLength = 240) => {
2
+ const normalized = body.replace(/\s+/g, " ").trim();
3
+ if (normalized.length <= maxLength) {
4
+ return normalized;
5
+ }
6
+ return `${normalized.slice(0, maxLength)}…`;
7
+ };
8
+ //# sourceMappingURL=excerpt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"excerpt.js","sourceRoot":"","sources":["../../src/help/excerpt.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,SAAS,GAAG,GAAG,EAAU,EAAE;IACnE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACpD,IAAI,UAAU,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;QACnC,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC;AAC9C,CAAC,CAAC"}
@@ -0,0 +1,42 @@
1
+ export interface UpdateNoteSearchHit {
2
+ archivedAt?: string;
3
+ excerpt: string;
4
+ id: string;
5
+ kind: "announcement" | "upgrade";
6
+ publishedAt?: string;
7
+ status?: string;
8
+ title: string;
9
+ version?: string;
10
+ }
11
+ export interface UpdateNoteDetail {
12
+ archivedAt?: string;
13
+ body: string;
14
+ expiresAt?: string;
15
+ id: string;
16
+ kind: "announcement" | "upgrade";
17
+ platforms?: string[];
18
+ publishedAt?: string;
19
+ status?: string;
20
+ title: string;
21
+ version?: string;
22
+ }
23
+ export declare const searchUpdateNotes: ({ includeArchived, limit, queries, question, source, }: {
24
+ includeArchived?: boolean;
25
+ limit?: number;
26
+ queries?: string[];
27
+ question?: string;
28
+ source?: "announcement" | "auto" | "bundled";
29
+ }) => Promise<{
30
+ hits: UpdateNoteSearchHit[];
31
+ sources: string[];
32
+ }>;
33
+ export declare const getUpdateNote: ({ id, includeArchived, }: {
34
+ id: string;
35
+ includeArchived?: boolean;
36
+ }) => Promise<UpdateNoteDetail>;
37
+ export declare const askUpdateHelp: ({ includeArchived, limit, question, }: {
38
+ includeArchived?: boolean;
39
+ limit?: number;
40
+ question: string;
41
+ }) => Promise<string>;
42
+ //# sourceMappingURL=updateNotes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateNotes.d.ts","sourceRoot":"","sources":["../../src/help/updateNotes.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,cAAc,GAAG,SAAS,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,cAAc,GAAG,SAAS,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA6MD,eAAO,MAAM,iBAAiB,GAAU,wDAMrC;IACD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,CAAC;CAC9C,KAAG,OAAO,CAAC;IAAC,IAAI,EAAE,mBAAmB,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAC,CA2C3D,CAAC;AAEF,eAAO,MAAM,aAAa,GAAU,0BAGjC;IACD,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,KAAG,OAAO,CAAC,gBAAgB,CAqB3B,CAAC;AAEF,eAAO,MAAM,aAAa,GAAU,uCAIjC;IACD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB,KAAG,OAAO,CAAC,MAAM,CAmCjB,CAAC"}
@@ -0,0 +1,235 @@
1
+ import { existsSync, readdirSync, readFileSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ import MiniSearch from "minisearch";
4
+ import { getDocsRoot } from "../docsRoot.js";
5
+ import { getUpgradeGuideMarkdown } from "../upgradeGuide.js";
6
+ import { excerptBody } from "./excerpt.js";
7
+ const UPGRADE_ID_PREFIX = "upgrade:";
8
+ const ANNOUNCEMENT_ID_PREFIX = "announcement:";
9
+ let bundledUpgradeCache = null;
10
+ const normalizeApiBase = (apiUrl) => apiUrl.replace(/\/$/, "");
11
+ const getHelpApiConfig = () => {
12
+ const apiUrl = process.env.TERRENO_HELP_API_URL?.trim();
13
+ if (!apiUrl) {
14
+ return null;
15
+ }
16
+ const apiToken = process.env.TERRENO_HELP_API_TOKEN?.trim();
17
+ return { apiToken, apiUrl: normalizeApiBase(apiUrl) };
18
+ };
19
+ const listBundledUpgradeVersions = () => {
20
+ const dir = join(getDocsRoot(), "upgrades");
21
+ if (!existsSync(dir)) {
22
+ return [];
23
+ }
24
+ return readdirSync(dir)
25
+ .filter((file) => /^\d.*\.md$/i.test(file))
26
+ .map((file) => file.replace(/\.md$/i, ""))
27
+ .sort();
28
+ };
29
+ const getBundledUpgradeCache = () => {
30
+ const docsRoot = getDocsRoot();
31
+ if (bundledUpgradeCache && bundledUpgradeCache.docsRoot === docsRoot) {
32
+ return bundledUpgradeCache;
33
+ }
34
+ const versions = listBundledUpgradeVersions();
35
+ const docs = versions.map((version) => {
36
+ const body = readFileSync(join(docsRoot, "upgrades", `${version}.md`), "utf-8");
37
+ return {
38
+ body,
39
+ id: `${UPGRADE_ID_PREFIX}${version}`,
40
+ title: `Terreno ${version} upgrade notes`,
41
+ version,
42
+ };
43
+ });
44
+ const index = new MiniSearch({
45
+ fields: ["title", "body", "version"],
46
+ searchOptions: {
47
+ boost: { title: 3, version: 2 },
48
+ prefix: true,
49
+ },
50
+ storeFields: ["id", "title", "version", "body"],
51
+ });
52
+ index.addAll(docs);
53
+ bundledUpgradeCache = { docs, docsRoot, index };
54
+ return bundledUpgradeCache;
55
+ };
56
+ const loadBundledUpgradeDocs = () => getBundledUpgradeCache().docs;
57
+ const getBundledIndex = () => getBundledUpgradeCache().index;
58
+ const parseQueries = (queries, question) => {
59
+ const merged = [...queries];
60
+ if (question?.trim()) {
61
+ merged.push(question.trim());
62
+ }
63
+ return merged.map((query) => query.trim()).filter(Boolean);
64
+ };
65
+ const searchBundledUpgrades = (queries, limit) => {
66
+ const activeQueries = parseQueries(queries);
67
+ if (activeQueries.length === 0) {
68
+ return loadBundledUpgradeDocs()
69
+ .slice(-limit)
70
+ .reverse()
71
+ .map((doc) => ({
72
+ excerpt: excerptBody(doc.body),
73
+ id: doc.id,
74
+ kind: "upgrade",
75
+ title: doc.title,
76
+ version: doc.version,
77
+ }));
78
+ }
79
+ const index = getBundledIndex();
80
+ const combinedQuery = activeQueries.join(" ");
81
+ const results = index.search(combinedQuery, { combineWith: "OR", fuzzy: 0.1 });
82
+ return results.slice(0, limit).map((result) => ({
83
+ excerpt: excerptBody(String(result.body ?? "")),
84
+ id: String(result.id),
85
+ kind: "upgrade",
86
+ title: String(result.title),
87
+ version: String(result.version),
88
+ }));
89
+ };
90
+ const apiFetch = async (config, path) => {
91
+ const headers = { Accept: "application/json" };
92
+ if (config.apiToken) {
93
+ headers.Authorization = `Bearer ${config.apiToken}`;
94
+ }
95
+ const response = await fetch(`${config.apiUrl}${path}`, { headers });
96
+ if (!response.ok) {
97
+ const body = await response.text();
98
+ throw new Error(`Help API ${response.status}: ${body}`);
99
+ }
100
+ return (await response.json());
101
+ };
102
+ const searchApiAnnouncements = async ({ config, includeArchived, limit, queries, }) => {
103
+ const activeQueries = parseQueries(queries);
104
+ const queryString = activeQueries.map((query) => `&q=${encodeURIComponent(query)}`).join("");
105
+ const archivedFlag = includeArchived ? "&includeArchived=true" : "";
106
+ const response = await apiFetch(config, `/announcements/help/search?limit=${limit}${archivedFlag}${queryString}`);
107
+ return response.data.map((row) => ({
108
+ archivedAt: typeof row.archivedAt === "string" ? row.archivedAt : undefined,
109
+ excerpt: typeof row.excerpt === "string" ? row.excerpt : "",
110
+ id: `${ANNOUNCEMENT_ID_PREFIX}${String(row.id)}`,
111
+ kind: "announcement",
112
+ publishedAt: typeof row.publishedAt === "string" ? row.publishedAt : undefined,
113
+ status: typeof row.status === "string" ? row.status : undefined,
114
+ title: typeof row.title === "string" ? row.title : "Announcement",
115
+ version: typeof row.version === "number" ? String(row.version) : undefined,
116
+ }));
117
+ };
118
+ const getApiAnnouncement = async ({ config, id, includeArchived, }) => {
119
+ const archivedFlag = includeArchived ? "?includeArchived=true" : "";
120
+ const response = await apiFetch(config, `/announcements/help/${encodeURIComponent(id)}${archivedFlag}`);
121
+ const row = response.data;
122
+ return {
123
+ archivedAt: typeof row.archivedAt === "string" ? row.archivedAt : undefined,
124
+ body: typeof row.body === "string" ? row.body : "",
125
+ expiresAt: typeof row.expiresAt === "string" ? row.expiresAt : undefined,
126
+ id: `${ANNOUNCEMENT_ID_PREFIX}${String(row.id)}`,
127
+ kind: "announcement",
128
+ platforms: Array.isArray(row.platforms)
129
+ ? row.platforms.filter((value) => typeof value === "string")
130
+ : undefined,
131
+ publishedAt: typeof row.publishedAt === "string" ? row.publishedAt : undefined,
132
+ status: typeof row.status === "string" ? row.status : undefined,
133
+ title: typeof row.title === "string" ? row.title : "Announcement",
134
+ version: typeof row.version === "number" ? String(row.version) : undefined,
135
+ };
136
+ };
137
+ const parseUpdateNoteId = (rawId) => {
138
+ const trimmed = rawId.trim();
139
+ if (trimmed.startsWith(ANNOUNCEMENT_ID_PREFIX)) {
140
+ return { announcementId: trimmed.slice(ANNOUNCEMENT_ID_PREFIX.length), kind: "announcement" };
141
+ }
142
+ if (trimmed.startsWith(UPGRADE_ID_PREFIX)) {
143
+ return { kind: "upgrade", upgradeVersion: trimmed.slice(UPGRADE_ID_PREFIX.length) };
144
+ }
145
+ if (/^\d+\.\d+\.\d+/.test(trimmed)) {
146
+ return { kind: "upgrade", upgradeVersion: trimmed };
147
+ }
148
+ return { announcementId: trimmed, kind: "announcement" };
149
+ };
150
+ export const searchUpdateNotes = async ({ includeArchived = false, limit = 10, queries = [], question, source = "auto", }) => {
151
+ const config = getHelpApiConfig();
152
+ const sources = [];
153
+ const activeQueries = parseQueries(queries, question);
154
+ const perSourceLimit = Math.max(limit, 1);
155
+ const shouldSearchBundled = source === "bundled" || source === "auto";
156
+ const shouldSearchAnnouncements = source === "announcement" || (source === "auto" && config !== null);
157
+ const bundledHits = shouldSearchBundled
158
+ ? searchBundledUpgrades(activeQueries, perSourceLimit)
159
+ : [];
160
+ if (shouldSearchBundled) {
161
+ sources.push("bundled-upgrades");
162
+ }
163
+ let announcementHits = [];
164
+ if (shouldSearchAnnouncements && config) {
165
+ try {
166
+ announcementHits = await searchApiAnnouncements({
167
+ config,
168
+ includeArchived,
169
+ limit: perSourceLimit,
170
+ queries: activeQueries,
171
+ });
172
+ sources.push("announcements-api");
173
+ }
174
+ catch (error) {
175
+ sources.push(`announcements-api-error:${error.message}`);
176
+ }
177
+ }
178
+ const mergedHits = [...announcementHits, ...bundledHits];
179
+ const seenIds = new Set();
180
+ const dedupedHits = mergedHits.filter((hit) => {
181
+ if (seenIds.has(hit.id)) {
182
+ return false;
183
+ }
184
+ seenIds.add(hit.id);
185
+ return true;
186
+ });
187
+ return { hits: dedupedHits.slice(0, perSourceLimit), sources };
188
+ };
189
+ export const getUpdateNote = async ({ id, includeArchived = false, }) => {
190
+ const parsed = parseUpdateNoteId(id);
191
+ if (parsed.kind === "upgrade" && parsed.upgradeVersion) {
192
+ const body = getUpgradeGuideMarkdown(parsed.upgradeVersion, parsed.upgradeVersion);
193
+ return {
194
+ body,
195
+ id: `${UPGRADE_ID_PREFIX}${parsed.upgradeVersion}`,
196
+ kind: "upgrade",
197
+ title: `Terreno ${parsed.upgradeVersion} upgrade notes`,
198
+ version: parsed.upgradeVersion,
199
+ };
200
+ }
201
+ const config = getHelpApiConfig();
202
+ if (!config || !parsed.announcementId) {
203
+ throw new Error("Announcement update notes require TERRENO_HELP_API_URL (and optional TERRENO_HELP_API_TOKEN).");
204
+ }
205
+ return getApiAnnouncement({ config, id: parsed.announcementId, includeArchived });
206
+ };
207
+ export const askUpdateHelp = async ({ includeArchived = false, limit = 5, question, }) => {
208
+ const trimmed = question.trim();
209
+ if (!trimmed) {
210
+ return "Provide a non-empty `question` string.";
211
+ }
212
+ const { hits, sources } = await searchUpdateNotes({
213
+ includeArchived,
214
+ limit,
215
+ question: trimmed,
216
+ });
217
+ if (hits.length === 0) {
218
+ return [
219
+ `No update notes matched: "${trimmed}"`,
220
+ `Sources searched: ${sources.join(", ") || "none"}`,
221
+ "Try broader keywords or call terreno_get_update_note with a specific id.",
222
+ ].join("\n");
223
+ }
224
+ const lines = [
225
+ `Question: ${trimmed}`,
226
+ `Sources: ${sources.join(", ")}`,
227
+ "",
228
+ "Top matches (call terreno_get_update_note with `id` for the full note):",
229
+ ];
230
+ for (const hit of hits) {
231
+ lines.push(`- [${hit.kind}] ${hit.title} (${hit.id})${hit.status ? ` — ${hit.status}` : ""}`, ` ${hit.excerpt}`);
232
+ }
233
+ return lines.join("\n");
234
+ };
235
+ //# sourceMappingURL=updateNotes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateNotes.js","sourceRoot":"","sources":["../../src/help/updateNotes.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -50,7 +50,7 @@ const createServer = () => {
50
50
  });
51
51
  server.server.setRequestHandler("tools/call", async (request) => {
52
52
  logger.info("MCP CallTool", { arguments: request.params.arguments, name: request.params.name });
53
- return handleToolCall(request.params.name, request.params.arguments ?? {});
53
+ return await handleToolCall(request.params.name, request.params.arguments ?? {});
54
54
  });
55
55
  server.server.setRequestHandler("prompts/list", async () => {
56
56
  return {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  /** Exported for unit tests; local `database_query` rejects filters that include these operators. */
2
+ /** @internal */
2
3
  export declare const databaseQueryFilterUsesForbiddenOperators: (filter: unknown) => boolean;
3
4
  export interface DatabaseQueryArgs {
4
5
  collection: string;
@@ -1 +1 @@
1
- {"version":3,"file":"databaseQuery.d.ts","sourceRoot":"","sources":["../../../src/local/tools/databaseQuery.ts"],"names":[],"mappings":"AA6EA,oGAAoG;AACpG,eAAO,MAAM,yCAAyC,GAAI,QAAQ,OAAO,KAAG,OAE3E,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,aAAa,GAAU,MAAM,iBAAiB,KAAG,OAAO,CAAC,MAAM,CA2F3E,CAAC"}
1
+ {"version":3,"file":"databaseQuery.d.ts","sourceRoot":"","sources":["../../../src/local/tools/databaseQuery.ts"],"names":[],"mappings":"AA6EA,oGAAoG;AACpG,gBAAgB;AAChB,eAAO,MAAM,yCAAyC,GAAI,QAAQ,OAAO,KAAG,OAE3E,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,aAAa,GAAU,MAAM,iBAAiB,KAAG,OAAO,CAAC,MAAM,CA2F3E,CAAC"}
@@ -67,6 +67,7 @@ const filterContainsForbidden = (value) => {
67
67
  };
68
68
  const ALLOWED = new Set(["find", "aggregate", "countDocuments", "distinct"]);
69
69
  /** Exported for unit tests; local `database_query` rejects filters that include these operators. */
70
+ /** @internal */
70
71
  export const databaseQueryFilterUsesForbiddenOperators = (filter) => {
71
72
  return filterContainsForbidden(filter ?? {});
72
73
  };
@@ -1 +1 @@
1
- {"version":3,"file":"databaseQuery.js","sourceRoot":"","sources":["../../../src/local/tools/databaseQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"databaseQuery.js","sourceRoot":"","sources":["../../../src/local/tools/databaseQuery.ts"],"names":[],"mappings":"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"}