aimeat 1.35.0 → 1.36.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 (112) hide show
  1. package/dist/.env.example +25 -0
  2. package/dist/locales/en.json +6 -2
  3. package/dist/locales/fi.json +6 -2
  4. package/dist/public/spa.html +5 -1
  5. package/dist/public/views/my-company.js +13 -1
  6. package/dist/public/views/secretary.js +13 -0
  7. package/dist/scripts/archive-stale-versions.d.ts +33 -0
  8. package/dist/scripts/archive-stale-versions.d.ts.map +1 -0
  9. package/dist/scripts/archive-stale-versions.js +278 -0
  10. package/dist/scripts/archive-stale-versions.js.map +1 -0
  11. package/dist/src/cli/connect/mcp/tools/agent-management.d.ts +4 -1
  12. package/dist/src/cli/connect/mcp/tools/agent-management.d.ts.map +1 -1
  13. package/dist/src/cli/connect/mcp/tools/agent-management.js +1 -1
  14. package/dist/src/cli/connect/mcp/tools/agent-management.js.map +1 -1
  15. package/dist/src/config.d.ts +11 -0
  16. package/dist/src/config.d.ts.map +1 -1
  17. package/dist/src/config.js +12 -0
  18. package/dist/src/config.js.map +1 -1
  19. package/dist/src/generated/api-types.d.ts +439 -2
  20. package/dist/src/generated/api-types.d.ts.map +1 -1
  21. package/dist/src/generated/prisma-postgres/edge.js +4 -3
  22. package/dist/src/generated/prisma-postgres/index-browser.js +1 -0
  23. package/dist/src/generated/prisma-postgres/index.d.ts +24 -1
  24. package/dist/src/generated/prisma-postgres/index.js +4 -3
  25. package/dist/src/generated/prisma-postgres/package.json +1 -1
  26. package/dist/src/generated/prisma-postgres/schema.prisma +1 -0
  27. package/dist/src/generated/prisma-postgres/wasm.js +4 -3
  28. package/dist/src/mcp/workspaces.d.ts +4 -0
  29. package/dist/src/mcp/workspaces.d.ts.map +1 -1
  30. package/dist/src/mcp/workspaces.js +16 -3
  31. package/dist/src/mcp/workspaces.js.map +1 -1
  32. package/dist/src/routes/agents.d.ts +7 -0
  33. package/dist/src/routes/agents.d.ts.map +1 -1
  34. package/dist/src/routes/agents.js +48 -5
  35. package/dist/src/routes/agents.js.map +1 -1
  36. package/dist/src/routes/libs.d.ts +14 -0
  37. package/dist/src/routes/libs.d.ts.map +1 -1
  38. package/dist/src/routes/libs.js +56 -17
  39. package/dist/src/routes/libs.js.map +1 -1
  40. package/dist/src/routes/oauth-login.d.ts +26 -21
  41. package/dist/src/routes/oauth-login.d.ts.map +1 -1
  42. package/dist/src/routes/oauth-login.js +257 -229
  43. package/dist/src/routes/oauth-login.js.map +1 -1
  44. package/dist/src/routes/openrouter.d.ts +3 -0
  45. package/dist/src/routes/openrouter.d.ts.map +1 -1
  46. package/dist/src/routes/openrouter.js +10 -5
  47. package/dist/src/routes/openrouter.js.map +1 -1
  48. package/dist/src/routes/organisms.d.ts +4 -0
  49. package/dist/src/routes/organisms.d.ts.map +1 -1
  50. package/dist/src/routes/organisms.js +32 -5
  51. package/dist/src/routes/organisms.js.map +1 -1
  52. package/dist/src/routes/site.d.ts +2 -0
  53. package/dist/src/routes/site.d.ts.map +1 -1
  54. package/dist/src/routes/site.js +10 -2
  55. package/dist/src/routes/site.js.map +1 -1
  56. package/dist/src/server-bootstrap/routes-loader.d.ts.map +1 -1
  57. package/dist/src/server-bootstrap/routes-loader.js +8 -15
  58. package/dist/src/server-bootstrap/routes-loader.js.map +1 -1
  59. package/dist/src/services/ai-completion.d.ts +2 -0
  60. package/dist/src/services/ai-completion.d.ts.map +1 -1
  61. package/dist/src/services/ai-completion.js +2 -1
  62. package/dist/src/services/ai-completion.js.map +1 -1
  63. package/dist/src/services/config-schema.d.ts.map +1 -1
  64. package/dist/src/services/config-schema.js +2 -0
  65. package/dist/src/services/config-schema.js.map +1 -1
  66. package/dist/src/services/generator-autopilot.d.ts +2 -0
  67. package/dist/src/services/generator-autopilot.d.ts.map +1 -1
  68. package/dist/src/services/generator-autopilot.js +3 -1
  69. package/dist/src/services/generator-autopilot.js.map +1 -1
  70. package/dist/src/services/notebook-ai.d.ts +2 -0
  71. package/dist/src/services/notebook-ai.d.ts.map +1 -1
  72. package/dist/src/services/notebook-ai.js +1 -1
  73. package/dist/src/services/notebook-ai.js.map +1 -1
  74. package/dist/src/services/oidc-providers.d.ts +94 -0
  75. package/dist/src/services/oidc-providers.d.ts.map +1 -0
  76. package/dist/src/services/oidc-providers.js +181 -0
  77. package/dist/src/services/oidc-providers.js.map +1 -0
  78. package/dist/src/services/organism-template.d.ts.map +1 -1
  79. package/dist/src/services/organism-template.js +3 -1
  80. package/dist/src/services/organism-template.js.map +1 -1
  81. package/dist/src/services/scheduler.d.ts.map +1 -1
  82. package/dist/src/services/scheduler.js +5 -1
  83. package/dist/src/services/scheduler.js.map +1 -1
  84. package/dist/src/services/skill-bundle/generator.d.ts +2 -0
  85. package/dist/src/services/skill-bundle/generator.d.ts.map +1 -1
  86. package/dist/src/services/skill-bundle/generator.js +3 -1
  87. package/dist/src/services/skill-bundle/generator.js.map +1 -1
  88. package/dist/src/storage/interface.d.ts +2 -1
  89. package/dist/src/storage/interface.d.ts.map +1 -1
  90. package/dist/src/storage/interface.js.map +1 -1
  91. package/dist/src/storage/providers/mongodb/index.d.ts +1 -0
  92. package/dist/src/storage/providers/mongodb/index.d.ts.map +1 -1
  93. package/dist/src/storage/providers/mongodb/index.js +27 -0
  94. package/dist/src/storage/providers/mongodb/index.js.map +1 -1
  95. package/dist/src/storage/providers/sqlite/index.d.ts +1 -0
  96. package/dist/src/storage/providers/sqlite/index.d.ts.map +1 -1
  97. package/dist/src/storage/providers/sqlite/index.js +18 -4
  98. package/dist/src/storage/providers/sqlite/index.js.map +1 -1
  99. package/dist/src/storage/providers/sqlite/schema.d.ts.map +1 -1
  100. package/dist/src/storage/providers/sqlite/schema.js +6 -0
  101. package/dist/src/storage/providers/sqlite/schema.js.map +1 -1
  102. package/dist/src/storage/repositories/identity.repository.d.ts +2 -0
  103. package/dist/src/storage/repositories/identity.repository.d.ts.map +1 -1
  104. package/dist/src/utils/env-config.d.ts.map +1 -1
  105. package/dist/src/utils/env-config.js +11 -0
  106. package/dist/src/utils/env-config.js.map +1 -1
  107. package/dist/src/utils/node-descriptor.d.ts.map +1 -1
  108. package/dist/src/utils/node-descriptor.js +1 -0
  109. package/dist/src/utils/node-descriptor.js.map +1 -1
  110. package/package.json +3 -1
  111. package/prisma/schema.postgres.prisma +1 -0
  112. package/prisma/schema.prisma +1 -0
@@ -5568,6 +5568,166 @@ export interface paths {
5568
5568
  patch?: never;
5569
5569
  trace?: never;
5570
5570
  };
5571
+ "/v1/auth/providers": {
5572
+ parameters: {
5573
+ query?: never;
5574
+ header?: never;
5575
+ path?: never;
5576
+ cookie?: never;
5577
+ };
5578
+ /**
5579
+ * List the social-login (OIDC) providers this node offers
5580
+ * @description Discovery endpoint: returns the enabled social-login providers (Google, Casdoor, Microsoft
5581
+ * Entra ID) so any SPA can render the correct sign-in buttons and start URLs instead of
5582
+ * hard-coding provider availability. No authentication required.
5583
+ */
5584
+ get: operations["authProviders"];
5585
+ put?: never;
5586
+ post?: never;
5587
+ delete?: never;
5588
+ options?: never;
5589
+ head?: never;
5590
+ patch?: never;
5591
+ trace?: never;
5592
+ };
5593
+ "/v1/ghii/login/casdoor": {
5594
+ parameters: {
5595
+ query?: never;
5596
+ header?: never;
5597
+ path?: never;
5598
+ cookie?: never;
5599
+ };
5600
+ /**
5601
+ * Begin Casdoor sign-in (social login)
5602
+ * @description Starts the Casdoor OIDC sign-in flow and redirects the browser to Casdoor's consent screen.
5603
+ * Available only when the node has Casdoor sign-in configured (`AIMEAT_CASDOOR_OAUTH_ENABLED=true`
5604
+ * + endpoint + client credentials); otherwise returns 503. Browser-navigation endpoint.
5605
+ */
5606
+ get: operations["ghiiLoginCasdoorStart"];
5607
+ put?: never;
5608
+ post?: never;
5609
+ delete?: never;
5610
+ options?: never;
5611
+ head?: never;
5612
+ patch?: never;
5613
+ trace?: never;
5614
+ };
5615
+ "/v1/ghii/login/casdoor/callback": {
5616
+ parameters: {
5617
+ query?: never;
5618
+ header?: never;
5619
+ path?: never;
5620
+ cookie?: never;
5621
+ };
5622
+ /**
5623
+ * Casdoor sign-in OIDC redirect callback
5624
+ * @description Casdoor redirects the browser here with `code` and `state`. The node exchanges the code and
5625
+ * maps the Casdoor identity to a GHII (returning user by subject, or verified-email link, else a
5626
+ * one-time username choice via `?aimeat_signup=1` + `/v1/ghii/login/casdoor/finalize`). On any
5627
+ * failure it redirects to `/?auth_error=<CODE>`.
5628
+ */
5629
+ get: operations["ghiiLoginCasdoorCallback"];
5630
+ put?: never;
5631
+ post?: never;
5632
+ delete?: never;
5633
+ options?: never;
5634
+ head?: never;
5635
+ patch?: never;
5636
+ trace?: never;
5637
+ };
5638
+ "/v1/ghii/login/casdoor/finalize": {
5639
+ parameters: {
5640
+ query?: never;
5641
+ header?: never;
5642
+ path?: never;
5643
+ cookie?: never;
5644
+ };
5645
+ get?: never;
5646
+ put?: never;
5647
+ /**
5648
+ * Complete a first-time Casdoor sign-up with the chosen username
5649
+ * @description Finalizes a brand-new Casdoor sign-up: reads the signed pending-signup cookie (must be for the
5650
+ * casdoor provider), validates the chosen username, creates the owner + GHII linked to the Casdoor
5651
+ * account, and establishes an owner session. Idempotent on double-submit. Rate-limited.
5652
+ */
5653
+ post: operations["ghiiLoginCasdoorFinalize"];
5654
+ delete?: never;
5655
+ options?: never;
5656
+ head?: never;
5657
+ patch?: never;
5658
+ trace?: never;
5659
+ };
5660
+ "/v1/ghii/login/entra": {
5661
+ parameters: {
5662
+ query?: never;
5663
+ header?: never;
5664
+ path?: never;
5665
+ cookie?: never;
5666
+ };
5667
+ /**
5668
+ * Begin Microsoft Entra ID sign-in (social login)
5669
+ * @description Starts the Microsoft Entra ID OIDC sign-in flow and redirects the browser to Microsoft's
5670
+ * consent screen. Available only when the node has Entra sign-in configured
5671
+ * (`AIMEAT_ENTRA_OAUTH_ENABLED=true` + client credentials); otherwise returns 503. When the node
5672
+ * pins a tenant GUID (`AIMEAT_ENTRA_OAUTH_TENANT`), only that tenant's members may complete
5673
+ * sign-in (the `tid` claim is enforced). Browser-navigation endpoint.
5674
+ */
5675
+ get: operations["ghiiLoginEntraStart"];
5676
+ put?: never;
5677
+ post?: never;
5678
+ delete?: never;
5679
+ options?: never;
5680
+ head?: never;
5681
+ patch?: never;
5682
+ trace?: never;
5683
+ };
5684
+ "/v1/ghii/login/entra/callback": {
5685
+ parameters: {
5686
+ query?: never;
5687
+ header?: never;
5688
+ path?: never;
5689
+ cookie?: never;
5690
+ };
5691
+ /**
5692
+ * Microsoft Entra ID sign-in OIDC redirect callback
5693
+ * @description Entra redirects the browser here with `code` and `state`. The node exchanges the code,
5694
+ * optionally enforces the configured tenant (`tid`), and maps the identity to a GHII (returning
5695
+ * user by subject, or verified-email link for a pinned tenant, else a one-time username choice via
5696
+ * `?aimeat_signup=1` + `/v1/ghii/login/entra/finalize`). A token from a different tenant is
5697
+ * rejected with `/?auth_error=ENTRA_WRONG_TENANT`. On other failures it redirects to
5698
+ * `/?auth_error=<CODE>`.
5699
+ */
5700
+ get: operations["ghiiLoginEntraCallback"];
5701
+ put?: never;
5702
+ post?: never;
5703
+ delete?: never;
5704
+ options?: never;
5705
+ head?: never;
5706
+ patch?: never;
5707
+ trace?: never;
5708
+ };
5709
+ "/v1/ghii/login/entra/finalize": {
5710
+ parameters: {
5711
+ query?: never;
5712
+ header?: never;
5713
+ path?: never;
5714
+ cookie?: never;
5715
+ };
5716
+ get?: never;
5717
+ put?: never;
5718
+ /**
5719
+ * Complete a first-time Microsoft Entra ID sign-up with the chosen username
5720
+ * @description Finalizes a brand-new Entra sign-up: reads the signed pending-signup cookie (must be for the
5721
+ * entra provider), validates the chosen username, creates the owner + GHII linked to the Entra
5722
+ * account, and establishes an owner session. Idempotent on double-submit. Rate-limited.
5723
+ */
5724
+ post: operations["ghiiLoginEntraFinalize"];
5725
+ delete?: never;
5726
+ options?: never;
5727
+ head?: never;
5728
+ patch?: never;
5729
+ trace?: never;
5730
+ };
5571
5731
  "/v1/catalogue/directory": {
5572
5732
  parameters: {
5573
5733
  query?: never;
@@ -6475,6 +6635,12 @@ export interface paths {
6475
6635
  * draft is schema-validated. If the organism's `meta.config` enables a publish gate
6476
6636
  * (`gates.publish.enabled`), this instead creates a pending approval (202) for human review;
6477
6637
  * on approval the publish runs. Default (no config) publishes immediately.
6638
+ *
6639
+ * Change-guard: re-publishing a draft byte-identical to the live `.latest` is a no-op — the draft
6640
+ * is consumed and the response includes `skipped: true` with no new `.version.N`. `versioned` flag:
6641
+ * if the objectType is declared `versioned: false` in the manifest (e.g. a transient request
6642
+ * queue), publish writes only `.latest` and never appends a `.version.N`. Default is `versioned:
6643
+ * true` (full revision history).
6478
6644
  */
6479
6645
  post: operations["publishOrganismDraft"];
6480
6646
  delete?: never;
@@ -7444,6 +7610,10 @@ export interface paths {
7444
7610
  * (`try`, `howItWorks`, `business`, `devView`, `help`). Defaults to all links
7445
7611
  * visible in their declared order. No authentication required (Tier 0) — the
7446
7612
  * header renders for anonymous visitors too.
7613
+ *
7614
+ * Also returns a `features` map of node-level feature flags the SPA shell uses to
7615
+ * gate optional surfaces (currently `{ secretary }` — whether the per-user Secretary
7616
+ * and specialist agents are enabled on this node; off by default).
7447
7617
  */
7448
7618
  get: operations["getSiteHeaderNav"];
7449
7619
  /**
@@ -23759,7 +23929,12 @@ export interface operations {
23759
23929
  content: {
23760
23930
  "application/json": components["schemas"]["AimeatEnvelope"] & {
23761
23931
  data?: {
23762
- /** @description Suggested username (derived from the Google account, free at suggestion time) */
23932
+ /**
23933
+ * @description Which OIDC provider this pending sign-up is for (drives which finalize route the SPA calls)
23934
+ * @enum {string}
23935
+ */
23936
+ provider?: "google" | "casdoor" | "entra";
23937
+ /** @description Suggested username (derived from the provider account, free at suggestion time) */
23763
23938
  suggested?: string;
23764
23939
  email?: string | null;
23765
23940
  displayName?: string;
@@ -23827,6 +24002,8 @@ export interface operations {
23827
24002
  "application/json": {
23828
24003
  /** @description The username the user chose or confirmed; blank uses the suggested name */
23829
24004
  username?: string;
24005
+ /** @description The display name the user chose; blank uses the provider-supplied name. Editable later (unlike the username). */
24006
+ displayName?: string;
23830
24007
  };
23831
24008
  };
23832
24009
  };
@@ -23870,6 +24047,260 @@ export interface operations {
23870
24047
  };
23871
24048
  };
23872
24049
  };
24050
+ authProviders: {
24051
+ parameters: {
24052
+ query?: never;
24053
+ header?: never;
24054
+ path?: never;
24055
+ cookie?: never;
24056
+ };
24057
+ requestBody?: never;
24058
+ responses: {
24059
+ /** @description Enabled providers */
24060
+ 200: {
24061
+ headers: {
24062
+ [name: string]: unknown;
24063
+ };
24064
+ content: {
24065
+ "application/json": components["schemas"]["AimeatEnvelope"] & {
24066
+ data?: {
24067
+ providers?: {
24068
+ /** @enum {string} */
24069
+ id?: "google" | "casdoor" | "entra";
24070
+ label?: string;
24071
+ /** @description Same-node path to begin this provider's sign-in flow */
24072
+ loginUrl?: string;
24073
+ }[];
24074
+ };
24075
+ };
24076
+ };
24077
+ };
24078
+ };
24079
+ };
24080
+ ghiiLoginCasdoorStart: {
24081
+ parameters: {
24082
+ query?: {
24083
+ /** @description Same-site absolute path to return to after login (must start with `/`). Defaults to `/`. */
24084
+ redirect?: string;
24085
+ };
24086
+ header?: never;
24087
+ path?: never;
24088
+ cookie?: never;
24089
+ };
24090
+ requestBody?: never;
24091
+ responses: {
24092
+ /** @description Redirect to the Casdoor authorization endpoint */
24093
+ 302: {
24094
+ headers: {
24095
+ [name: string]: unknown;
24096
+ };
24097
+ content?: never;
24098
+ };
24099
+ /** @description Casdoor sign-in is not available on this node */
24100
+ 503: {
24101
+ headers: {
24102
+ [name: string]: unknown;
24103
+ };
24104
+ content: {
24105
+ "application/json": components["schemas"]["AimeatEnvelope"] & {
24106
+ error?: {
24107
+ /** @example FEATURE_DISABLED */
24108
+ code?: unknown;
24109
+ };
24110
+ };
24111
+ };
24112
+ };
24113
+ };
24114
+ };
24115
+ ghiiLoginCasdoorCallback: {
24116
+ parameters: {
24117
+ query: {
24118
+ code: string;
24119
+ state: string;
24120
+ };
24121
+ header?: never;
24122
+ path?: never;
24123
+ cookie?: never;
24124
+ };
24125
+ requestBody?: never;
24126
+ responses: {
24127
+ /** @description Redirect back to the SPA on success (refresh cookie set), or to `/?auth_error=<CODE>` on failure. */
24128
+ 302: {
24129
+ headers: {
24130
+ [name: string]: unknown;
24131
+ };
24132
+ content?: never;
24133
+ };
24134
+ /** @description Casdoor sign-in is not available on this node */
24135
+ 503: {
24136
+ headers: {
24137
+ [name: string]: unknown;
24138
+ };
24139
+ content?: never;
24140
+ };
24141
+ };
24142
+ };
24143
+ ghiiLoginCasdoorFinalize: {
24144
+ parameters: {
24145
+ query?: never;
24146
+ header?: never;
24147
+ path?: never;
24148
+ cookie?: never;
24149
+ };
24150
+ requestBody?: {
24151
+ content: {
24152
+ "application/json": {
24153
+ username?: string;
24154
+ /** @description The display name the user chose; blank uses the provider-supplied name. Editable later (unlike the username). */
24155
+ displayName?: string;
24156
+ };
24157
+ };
24158
+ };
24159
+ responses: {
24160
+ /** @description Account created (or resolved) and session established */
24161
+ 200: {
24162
+ headers: {
24163
+ [name: string]: unknown;
24164
+ };
24165
+ content: {
24166
+ "application/json": components["schemas"]["AimeatEnvelope"] & {
24167
+ data?: {
24168
+ ghii?: string;
24169
+ owner?: string;
24170
+ displayName?: string;
24171
+ redirect?: string;
24172
+ };
24173
+ };
24174
+ };
24175
+ };
24176
+ /** @description No pending sign-up, or invalid username */
24177
+ 400: {
24178
+ headers: {
24179
+ [name: string]: unknown;
24180
+ };
24181
+ content?: never;
24182
+ };
24183
+ /** @description Username already taken */
24184
+ 409: {
24185
+ headers: {
24186
+ [name: string]: unknown;
24187
+ };
24188
+ content?: never;
24189
+ };
24190
+ };
24191
+ };
24192
+ ghiiLoginEntraStart: {
24193
+ parameters: {
24194
+ query?: {
24195
+ /** @description Same-site absolute path to return to after login (must start with `/`). Defaults to `/`. */
24196
+ redirect?: string;
24197
+ };
24198
+ header?: never;
24199
+ path?: never;
24200
+ cookie?: never;
24201
+ };
24202
+ requestBody?: never;
24203
+ responses: {
24204
+ /** @description Redirect to the Entra authorization endpoint */
24205
+ 302: {
24206
+ headers: {
24207
+ [name: string]: unknown;
24208
+ };
24209
+ content?: never;
24210
+ };
24211
+ /** @description Entra sign-in is not available on this node */
24212
+ 503: {
24213
+ headers: {
24214
+ [name: string]: unknown;
24215
+ };
24216
+ content: {
24217
+ "application/json": components["schemas"]["AimeatEnvelope"] & {
24218
+ error?: {
24219
+ /** @example FEATURE_DISABLED */
24220
+ code?: unknown;
24221
+ };
24222
+ };
24223
+ };
24224
+ };
24225
+ };
24226
+ };
24227
+ ghiiLoginEntraCallback: {
24228
+ parameters: {
24229
+ query: {
24230
+ code: string;
24231
+ state: string;
24232
+ };
24233
+ header?: never;
24234
+ path?: never;
24235
+ cookie?: never;
24236
+ };
24237
+ requestBody?: never;
24238
+ responses: {
24239
+ /** @description Redirect back to the SPA on success (refresh cookie set), or to `/?auth_error=<CODE>` on failure. */
24240
+ 302: {
24241
+ headers: {
24242
+ [name: string]: unknown;
24243
+ };
24244
+ content?: never;
24245
+ };
24246
+ /** @description Entra sign-in is not available on this node */
24247
+ 503: {
24248
+ headers: {
24249
+ [name: string]: unknown;
24250
+ };
24251
+ content?: never;
24252
+ };
24253
+ };
24254
+ };
24255
+ ghiiLoginEntraFinalize: {
24256
+ parameters: {
24257
+ query?: never;
24258
+ header?: never;
24259
+ path?: never;
24260
+ cookie?: never;
24261
+ };
24262
+ requestBody?: {
24263
+ content: {
24264
+ "application/json": {
24265
+ username?: string;
24266
+ /** @description The display name the user chose; blank uses the provider-supplied name. Editable later (unlike the username). */
24267
+ displayName?: string;
24268
+ };
24269
+ };
24270
+ };
24271
+ responses: {
24272
+ /** @description Account created (or resolved) and session established */
24273
+ 200: {
24274
+ headers: {
24275
+ [name: string]: unknown;
24276
+ };
24277
+ content: {
24278
+ "application/json": components["schemas"]["AimeatEnvelope"] & {
24279
+ data?: {
24280
+ ghii?: string;
24281
+ owner?: string;
24282
+ displayName?: string;
24283
+ redirect?: string;
24284
+ };
24285
+ };
24286
+ };
24287
+ };
24288
+ /** @description No pending sign-up, or invalid username */
24289
+ 400: {
24290
+ headers: {
24291
+ [name: string]: unknown;
24292
+ };
24293
+ content?: never;
24294
+ };
24295
+ /** @description Username already taken */
24296
+ 409: {
24297
+ headers: {
24298
+ [name: string]: unknown;
24299
+ };
24300
+ content?: never;
24301
+ };
24302
+ };
24303
+ };
23873
24304
  searchDirectory: {
23874
24305
  parameters: {
23875
24306
  query?: {
@@ -27398,7 +27829,13 @@ export interface operations {
27398
27829
  };
27399
27830
  content: {
27400
27831
  "application/json": components["schemas"]["AimeatEnvelope"] & {
27401
- data?: components["schemas"]["HeaderNavConfig"];
27832
+ data?: components["schemas"]["HeaderNavConfig"] & {
27833
+ /** @description Node feature flags the SPA shell uses to gate optional surfaces. */
27834
+ features?: {
27835
+ /** @description Whether the Secretary + specialist agents are enabled on this node. */
27836
+ secretary?: boolean;
27837
+ };
27838
+ };
27402
27839
  };
27403
27840
  };
27404
27841
  };