@jskit-ai/agent-docs 0.1.257 → 0.1.259

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 (230) hide show
  1. package/guide/agent/app-extras/assistant-conversation.md +88 -35
  2. package/guide/agent/app-extras/assistant.md +28 -28
  3. package/guide/agent/app-setup/authentication.md +36 -17
  4. package/guide/agent/app-setup/database-layer.md +116 -17
  5. package/guide/agent/app-setup/existing-application-migration.md +29 -25
  6. package/guide/agent/app-setup/multi-homing.md +94 -48
  7. package/guide/agent/app-setup/run-an-accounts-hub.md +6 -4
  8. package/guide/agent/framework/client-features.md +496 -0
  9. package/guide/agent/framework/crud-operations.md +5 -5
  10. package/guide/agent/framework/translation.md +4 -3
  11. package/guide/agent/framework/typed-features.md +1104 -0
  12. package/guide/agent/framework/ui-operations.md +2 -2
  13. package/guide/agent/index.md +6 -1
  14. package/package.json +1 -1
  15. package/patterns/feature-package/PATTERN.md +104 -10
  16. package/patterns/feature-package/example/booking-engine/package.json +9 -4
  17. package/patterns/feature-package/example/booking-engine/src/server/BookingEngineFeature.js +24 -0
  18. package/patterns/feature-package/example/booking-engine/src/server/bookingAvailability.js +10 -0
  19. package/patterns/feature-package/example/booking-engine/src/server/bookingEngine.js +29 -0
  20. package/patterns/feature-package/example/booking-engine/src/server/bookingEngineActions.js +26 -0
  21. package/patterns/feature-package/example/booking-engine/src/server/inputSchemas.js +1 -2
  22. package/patterns/feature-package/example/booking-engine/src/server/types.js +12 -0
  23. package/patterns/feature-package/example/variations/AvailabilityEngineFeature.js +19 -0
  24. package/patterns/feature-package/example/variations/InvoiceRollupFeature.js +23 -0
  25. package/patterns/feature-package/example/variations/availabilityEngineActions.js +26 -0
  26. package/patterns/feature-package/example/variations/customKnexRepository.js +32 -26
  27. package/patterns/feature-package/example/variations/invoiceRollupActions.js +26 -0
  28. package/patterns/feature-package/example/variations/orchestratorService.js +24 -19
  29. package/patterns/feature-package/example/variations/types.js +7 -0
  30. package/patterns/minimal-foundation/PATTERN.md +30 -1
  31. package/patterns/minimal-foundation/example/AGENTS.md +14 -0
  32. package/patterns/minimal-foundation/example/bin/develop.js +10 -5
  33. package/patterns/minimal-foundation/example/eslint.config.mjs +21 -2
  34. package/patterns/minimal-foundation/example/package.json +5 -4
  35. package/patterns/minimal-foundation/example/playwright.config.mjs +1 -1
  36. package/patterns/minimal-foundation/example/server/lib/envFile.js +19 -0
  37. package/patterns/minimal-foundation/example/server/lib/loggerOptions.js +15 -0
  38. package/patterns/minimal-foundation/example/server/lib/runtimeEnv.js +17 -17
  39. package/patterns/minimal-foundation/example/server.js +32 -29
  40. package/patterns/minimal-foundation/example/tests/server/smoke.test.js +2 -1
  41. package/patterns/shell-foundation/PATTERN.md +29 -0
  42. package/patterns/shell-foundation/example/AGENTS.md +14 -0
  43. package/patterns/shell-foundation/example/bin/develop.js +10 -5
  44. package/patterns/shell-foundation/example/eslint.config.mjs +21 -2
  45. package/patterns/shell-foundation/example/package.json +6 -5
  46. package/patterns/shell-foundation/example/packages/main/package.json +1 -1
  47. package/patterns/shell-foundation/example/packages/main/src/client/providers/MainClientProvider.js +1 -0
  48. package/patterns/shell-foundation/example/playwright.config.mjs +1 -1
  49. package/patterns/shell-foundation/example/server/lib/envFile.js +19 -0
  50. package/patterns/shell-foundation/example/server/lib/loggerOptions.js +15 -0
  51. package/patterns/shell-foundation/example/server/lib/runtimeEnv.js +17 -17
  52. package/patterns/shell-foundation/example/server.js +32 -29
  53. package/patterns/shell-foundation/example/tests/server/smoke.test.js +2 -1
  54. package/reference/autogen/KERNEL_MAP.md +14 -8
  55. package/reference/autogen/PATTERN_INDEX.md +37 -37
  56. package/reference/autogen/README.md +2 -0
  57. package/reference/autogen/packages/agent-docs.md +70 -26
  58. package/reference/autogen/packages/agent-runtime.md +129 -0
  59. package/reference/autogen/packages/agent.md +149 -0
  60. package/reference/autogen/packages/architecture-inspector.md +97 -44
  61. package/reference/autogen/packages/assistant-core.md +786 -292
  62. package/reference/autogen/packages/assistant-runtime.md +182 -57
  63. package/reference/autogen/packages/assistant-voice-sherpa.md +4 -0
  64. package/reference/autogen/packages/assistant-voice.md +54 -8
  65. package/reference/autogen/packages/auth-core.md +44 -13
  66. package/reference/autogen/packages/auth-provider-local-core.md +86 -34
  67. package/reference/autogen/packages/auth-provider-local-db-core.md +1 -2
  68. package/reference/autogen/packages/auth-provider-oidc-core.md +10 -4
  69. package/reference/autogen/packages/auth-provider-supabase-core.md +52 -66
  70. package/reference/autogen/packages/auth-web.md +19 -11
  71. package/reference/autogen/packages/connectors-catalog.md +71 -43
  72. package/reference/autogen/packages/connectors-core.md +42 -4
  73. package/reference/autogen/packages/console-core.md +27 -14
  74. package/reference/autogen/packages/crud-core.md +178 -170
  75. package/reference/autogen/packages/database-runtime-mysql.md +0 -2
  76. package/reference/autogen/packages/database-runtime-postgres.md +0 -2
  77. package/reference/autogen/packages/database-runtime.md +39 -10
  78. package/reference/autogen/packages/http-runtime.md +79 -57
  79. package/reference/autogen/packages/json-rest-api-core.md +11 -8
  80. package/reference/autogen/packages/kernel.md +144 -83
  81. package/reference/autogen/packages/oidc-issuer-core.md +49 -20
  82. package/reference/autogen/packages/payments-core.md +20 -3
  83. package/reference/autogen/packages/realtime.md +47 -22
  84. package/reference/autogen/packages/resource-core.md +1 -1
  85. package/reference/autogen/packages/resource-crud-core.md +64 -26
  86. package/reference/autogen/packages/rewarded-core.md +47 -36
  87. package/reference/autogen/packages/shell-web.md +7 -10
  88. package/reference/autogen/packages/storage-runtime.md +6 -2
  89. package/reference/autogen/packages/uploads-runtime.md +10 -2
  90. package/reference/autogen/packages/users-core.md +73 -71
  91. package/reference/autogen/packages/workspaces-core.md +121 -106
  92. package/reference/autogen/packages/workspaces-web.md +1 -2
  93. package/reference/autogen/tooling/config-eslint.md +302 -0
  94. package/reference/autogen/tooling/jskit-catalog.md +28 -18
  95. package/reference/autogen/tooling/jskit-release.md +35 -20
  96. package/reference/autogen/tooling/testUtils.md +3 -1
  97. package/skills/jskit/SKILL.md +9 -8
  98. package/skills/jskit/references/app-operations.md +1 -1
  99. package/skills/jskit/references/client-features.md +491 -0
  100. package/skills/jskit/references/crud-form-actions.md +1 -1
  101. package/skills/jskit/references/crud-operations.md +7 -7
  102. package/skills/jskit/references/existing-application-migration.md +31 -27
  103. package/skills/jskit/references/heuristics/INDEX.md +5 -1
  104. package/skills/jskit/references/heuristics/child-cruds.md +1 -1
  105. package/skills/jskit/references/heuristics/client-features.md +66 -0
  106. package/skills/jskit/references/heuristics/client-requests.md +1 -1
  107. package/skills/jskit/references/heuristics/crud-authoring.md +12 -2
  108. package/skills/jskit/references/heuristics/crud-links.md +1 -1
  109. package/skills/jskit/references/heuristics/crud-repository-mapping.md +3 -3
  110. package/skills/jskit/references/heuristics/filters.md +1 -1
  111. package/skills/jskit/references/heuristics/live-actions.md +1 -1
  112. package/skills/jskit/references/heuristics/page-redirects.md +1 -1
  113. package/skills/jskit/references/heuristics/page-scaffolding.md +1 -1
  114. package/skills/jskit/references/heuristics/placements.md +1 -1
  115. package/skills/jskit/references/heuristics/row-policies.md +1 -1
  116. package/skills/jskit/references/heuristics/server-search.md +1 -1
  117. package/skills/jskit/references/heuristics/surfaces.md +1 -1
  118. package/skills/jskit/references/heuristics/typed-features.md +100 -0
  119. package/skills/jskit/references/heuristics/ui-contract.md +1 -1
  120. package/skills/jskit/references/heuristics/ui-testing.md +4 -4
  121. package/skills/jskit/references/material-3.md +2 -2
  122. package/skills/jskit/references/multi-homing.md +96 -50
  123. package/skills/jskit/references/pattern-index.md +37 -37
  124. package/skills/jskit/references/patterns/app/minimal-foundation/PATTERN.md +30 -1
  125. package/skills/jskit/references/patterns/app/minimal-foundation/example/AGENTS.md +14 -0
  126. package/skills/jskit/references/patterns/app/minimal-foundation/example/bin/develop.js +10 -5
  127. package/skills/jskit/references/patterns/app/minimal-foundation/example/eslint.config.mjs +21 -2
  128. package/skills/jskit/references/patterns/app/minimal-foundation/example/package.json +5 -4
  129. package/skills/jskit/references/patterns/app/minimal-foundation/example/playwright.config.mjs +1 -1
  130. package/skills/jskit/references/patterns/app/minimal-foundation/example/server/lib/envFile.js +19 -0
  131. package/skills/jskit/references/patterns/app/minimal-foundation/example/server/lib/loggerOptions.js +15 -0
  132. package/skills/jskit/references/patterns/app/minimal-foundation/example/server/lib/runtimeEnv.js +17 -17
  133. package/skills/jskit/references/patterns/app/minimal-foundation/example/server.js +32 -29
  134. package/skills/jskit/references/patterns/app/minimal-foundation/example/tests/server/smoke.test.js +2 -1
  135. package/skills/jskit/references/patterns/app/shell-foundation/PATTERN.md +29 -0
  136. package/skills/jskit/references/patterns/app/shell-foundation/example/AGENTS.md +14 -0
  137. package/skills/jskit/references/patterns/app/shell-foundation/example/bin/develop.js +10 -5
  138. package/skills/jskit/references/patterns/app/shell-foundation/example/eslint.config.mjs +21 -2
  139. package/skills/jskit/references/patterns/app/shell-foundation/example/package.json +6 -5
  140. package/skills/jskit/references/patterns/app/shell-foundation/example/packages/main/package.json +1 -1
  141. package/skills/jskit/references/patterns/app/shell-foundation/example/packages/main/src/client/providers/MainClientProvider.js +1 -0
  142. package/skills/jskit/references/patterns/app/shell-foundation/example/playwright.config.mjs +1 -1
  143. package/skills/jskit/references/patterns/app/shell-foundation/example/server/lib/envFile.js +19 -0
  144. package/skills/jskit/references/patterns/app/shell-foundation/example/server/lib/loggerOptions.js +15 -0
  145. package/skills/jskit/references/patterns/app/shell-foundation/example/server/lib/runtimeEnv.js +17 -17
  146. package/skills/jskit/references/patterns/app/shell-foundation/example/server.js +32 -29
  147. package/skills/jskit/references/patterns/app/shell-foundation/example/tests/server/smoke.test.js +2 -1
  148. package/skills/jskit/references/patterns/assistant/assistant-surface/example/src/ApplicationAiFeature.js +4 -2
  149. package/skills/jskit/references/patterns/auth/accounts-hub/PATTERN.md +2 -1
  150. package/skills/jskit/references/patterns/auth/accounts-hub/example/package.json +2 -2
  151. package/skills/jskit/references/patterns/auth/accounts-hub/example/server/hubPaths.js +9 -3
  152. package/skills/jskit/references/patterns/auth/auth-surface/PATTERN.md +25 -12
  153. package/skills/jskit/references/patterns/auth/auth-surface/example/tools/preview-identity +7 -1
  154. package/skills/jskit/references/patterns/auth/oidc-sign-in/example/package.json +2 -2
  155. package/skills/jskit/references/patterns/auth/supabase-auth/example/package.json +1 -1
  156. package/skills/jskit/references/patterns/connectors/ai-connections/PATTERN.md +16 -1
  157. package/skills/jskit/references/patterns/connectors/ai-connections/example/ai-model.js +12 -3
  158. package/skills/jskit/references/patterns/connectors/ai-connections/example/perplexity-answer.js +15 -4
  159. package/skills/jskit/references/patterns/connectors/api-key-connection/PATTERN.md +9 -1
  160. package/skills/jskit/references/patterns/connectors/api-key-connection/example/connections.js +5 -2
  161. package/skills/jskit/references/patterns/connectors/aws-storage-queries/PATTERN.md +13 -3
  162. package/skills/jskit/references/patterns/connectors/aws-storage-queries/example/s3-transfer.js +14 -3
  163. package/skills/jskit/references/patterns/connectors/calendar-cli/PATTERN.md +8 -0
  164. package/skills/jskit/references/patterns/connectors/calendar-cli/example/knexfile.js +1 -1
  165. package/skills/jskit/references/patterns/connectors/calendar-cli/example/package.json +4 -4
  166. package/skills/jskit/references/patterns/connectors/calendar-cli/example/scripts/calendar.js +8 -4
  167. package/skills/jskit/references/patterns/connectors/event-delivery/PATTERN.md +1 -1
  168. package/skills/jskit/references/patterns/connectors/firebase-messaging/PATTERN.md +10 -0
  169. package/skills/jskit/references/patterns/connectors/firebase-messaging/example/server/notifications.js +8 -0
  170. package/skills/jskit/references/patterns/connectors/google-ads-search/PATTERN.md +18 -7
  171. package/skills/jskit/references/patterns/connectors/google-ads-search/example/ads-setup.js +13 -5
  172. package/skills/jskit/references/patterns/connectors/oauth-connection/PATTERN.md +1 -1
  173. package/skills/jskit/references/patterns/connectors/paddle-catalogue/PATTERN.md +11 -2
  174. package/skills/jskit/references/patterns/connectors/paddle-catalogue/example/create-products.js +5 -2
  175. package/skills/jskit/references/patterns/connectors/public-image/PATTERN.md +10 -1
  176. package/skills/jskit/references/patterns/connectors/public-image/example/logo-url.js +4 -1
  177. package/skills/jskit/references/patterns/connectors/redshift-queries/PATTERN.md +1 -1
  178. package/skills/jskit/references/patterns/connectors/source-scanning/PATTERN.md +13 -2
  179. package/skills/jskit/references/patterns/connectors/source-scanning/example/source-scanner.js +9 -0
  180. package/skills/jskit/references/patterns/crud/json-api-resource-package/PATTERN.md +102 -23
  181. package/skills/jskit/references/patterns/crud/json-api-resource-package/example/packages/books/package.json +3 -2
  182. package/skills/jskit/references/patterns/crud/json-api-resource-package/example/packages/books/src/server/types.js +5 -0
  183. package/skills/jskit/references/patterns/crud/resource-contract/PATTERN.md +54 -1
  184. package/skills/jskit/references/patterns/database/mysql-application/PATTERN.md +16 -5
  185. package/skills/jskit/references/patterns/database/mysql-application/example/knexfile.js +2 -2
  186. package/skills/jskit/references/patterns/database/mysql-application/example/package.json +1 -1
  187. package/skills/jskit/references/patterns/database/mysql-application/example/scripts/prepare-database.js +1 -1
  188. package/skills/jskit/references/patterns/database/postgres-application/PATTERN.md +16 -5
  189. package/skills/jskit/references/patterns/database/postgres-application/example/knexfile.js +2 -2
  190. package/skills/jskit/references/patterns/database/postgres-application/example/package.json +1 -1
  191. package/skills/jskit/references/patterns/database/postgres-application/example/scripts/prepare-database.js +1 -1
  192. package/skills/jskit/references/patterns/realtime/realtime-application/example/package.json +2 -2
  193. package/skills/jskit/references/patterns/rewards/google-rewarded/example/GoogleRewardedDeliveryProvider.js +1 -1
  194. package/skills/jskit/references/patterns/rewards/google-rewarded/example/googlePublisherTag.js +5 -11
  195. package/skills/jskit/references/patterns/server/feature-package/PATTERN.md +104 -10
  196. package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/package.json +9 -4
  197. package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/BookingEngineFeature.js +24 -0
  198. package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/bookingAvailability.js +10 -0
  199. package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/bookingEngine.js +29 -0
  200. package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/bookingEngineActions.js +26 -0
  201. package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/inputSchemas.js +1 -2
  202. package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/types.js +12 -0
  203. package/skills/jskit/references/patterns/server/feature-package/example/variations/AvailabilityEngineFeature.js +19 -0
  204. package/skills/jskit/references/patterns/server/feature-package/example/variations/InvoiceRollupFeature.js +23 -0
  205. package/skills/jskit/references/patterns/server/feature-package/example/variations/availabilityEngineActions.js +26 -0
  206. package/skills/jskit/references/patterns/server/feature-package/example/variations/customKnexRepository.js +32 -26
  207. package/skills/jskit/references/patterns/server/feature-package/example/variations/invoiceRollupActions.js +26 -0
  208. package/skills/jskit/references/patterns/server/feature-package/example/variations/orchestratorService.js +24 -19
  209. package/skills/jskit/references/patterns/server/feature-package/example/variations/types.js +7 -0
  210. package/skills/jskit/references/patterns/users/user-administration-server/PATTERN.md +16 -1
  211. package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users/package.json +3 -2
  212. package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users/src/server/types.js +5 -0
  213. package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users-workspace/package.json +4 -3
  214. package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users-workspace/src/server/UsersWorkspaceFeature.js +2 -9
  215. package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users-workspace/src/server/types.js +5 -0
  216. package/skills/jskit/references/patterns/workspaces/workspace-server/PATTERN.md +42 -17
  217. package/skills/jskit/references/patterns/workspaces/workspace-server/example/packages/main/src/server/WorkspaceInvitationsFeature.js +27 -0
  218. package/skills/jskit/references/patterns/workspaces/workspace-server/example/packages/main/src/server/email/workspaceInviteEmail.js +11 -10
  219. package/skills/jskit/references/patterns/workspaces/workspace-server/example/packages/main/src/server/email/workspaceInviteMailer.js +27 -0
  220. package/skills/jskit/references/translation.md +5 -4
  221. package/skills/jskit/references/typed-features.md +1099 -0
  222. package/skills/jskit/references/ui-operations.md +3 -3
  223. package/patterns/feature-package/example/booking-engine/src/server/BookingEngineProvider.js +0 -33
  224. package/patterns/feature-package/example/booking-engine/src/server/actions.js +0 -24
  225. package/patterns/feature-package/example/variations/AvailabilityEngineProvider.js +0 -31
  226. package/patterns/feature-package/example/variations/InvoiceRollupProvider.js +0 -36
  227. package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/BookingEngineProvider.js +0 -33
  228. package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/actions.js +0 -24
  229. package/skills/jskit/references/patterns/server/feature-package/example/variations/AvailabilityEngineProvider.js +0 -31
  230. package/skills/jskit/references/patterns/server/feature-package/example/variations/InvoiceRollupProvider.js +0 -36
@@ -16,7 +16,10 @@ Use this on demand; do not load the full index at startup.
16
16
 
17
17
  ### `src/client/components/AssistantConversationClientElement.vue`
18
18
  Exports
19
- - None
19
+ - `type AssistantApi`
20
+ - `type AssistantAttachments`
21
+ - `type AssistantSuggestions`
22
+ - `type AssistantModelChoices`
20
23
 
21
24
  ### `src/client/components/AssistantSettingsClientElement.vue`
22
25
  Exports
@@ -28,7 +31,9 @@ Local functions
28
31
 
29
32
  ### `src/client/components/AssistantSurfaceClientElement.vue`
30
33
  Exports
31
- - None
34
+ - `type AssistantConversationAdapter`
35
+ - `type AssistantAttachments`
36
+ - `type AssistantSuggestions`
32
37
  Local functions
33
38
  - `submitMessage({ attachments = [], retryMessageId = "" })`
34
39
  - `conversationTitle(entry, fallbackKey)`
@@ -36,40 +41,65 @@ Local functions
36
41
  - `selectConversation(entry)`
37
42
  - `startNewConversation()`
38
43
 
44
+ ### `src/client/composables/conversationGoal.js`
45
+ Exports
46
+ - `createConversationGoal({ api, identity, readers, goalReadEnabled, current, active, available, accessDenied, snapshot, delivery, submitRequest, receiveError, reloadSubscription })`
47
+
48
+ ### `src/client/composables/conversationHistory.js`
49
+ Exports
50
+ - `createConversationHistory({ api, identity, snapshot, current, listening, available, receiveError })`
51
+ Local functions
52
+ - `compareTurnIds(left, right)`
53
+ - `ignoreLoadResult()`
54
+
55
+ ### `src/client/composables/conversationRuntime.js`
56
+ Exports
57
+ - `authoredRequest(payload, { attachmentIds, steer })`
58
+ - `createConversationRuntime({ identity, api, socket, actorKey, placement, readers, retain, queueWhileSending, deferWhileWorking, admitWhileWorking, draftStorage, application, goalReadEnabled })`
59
+ - `isQuestionConfiguration(value)`
60
+ - `resolveWorkingPolicy(snapshot, { deferWhileWorking, admitWhileWorking })`
61
+ - `text(value)`
62
+ Local functions
63
+ - `draftAfterAcceptedSubmission(currentDraft, submittedDraft)`
64
+
39
65
  ### `src/client/composables/useAssistantConversation.js`
40
66
  Exports
41
- - `configureAssistantConversations(app, { actorKey, api = null, request, clearDraftOn = "dispatch" } = {})`
67
+ - `configureAssistantConversations(app, { actorKey, api, request = assistantHttpClient.request, clearDraftOn = "dispatch" } = {})`
42
68
  - `useAssistantConversation(options)`
43
69
  - `useAssistantConversationFactory(options = {})`
70
+ - `type AssistantApi`
71
+ - `type TextOption`
72
+ - `type ConversationDefaults`
73
+ - `type BoundedTask`
74
+ - `type ConversationBindingOptions`
75
+ - `type ConversationBindingSetup`
44
76
  Local functions
45
- - `text(value)`
46
- - `failureMessage(failure, fallback = "")`
47
- - `resultError(result)`
48
77
  - `stateError(state)`
49
- - `compareTurnIds(left, right)`
50
- - `isQuestionConfiguration(value)`
78
+ - `alwaysCurrent()`
79
+ - `ignoreSubmit()`
80
+ - `ignoreAcceptance()`
81
+ - `ignoreResult()`
51
82
  - `questionsAnswered(prompts)`
52
- - `authoredRequest(payload, { attachmentIds, steer })`
53
- - `draftAfterAcceptedSubmission(currentDraft = "", submittedDraft = "")`
54
- - `resolveWorkingPolicy(snapshot, { deferWhileWorking, admitWhileWorking })`
55
- - `createConversation(identity, { api, socket, actorKey, placement, readers, queueWhileSending, deferWhileWorking, admitWhileWorking, draftStorage, application, goalReadEnabled })`
56
- - `useBoundedTask({ command, endpoint, scope, input, result, onResult }, { active, data, presentation })`
57
- - `conversationBindingSetup({ socket, boundedTask = null } = {})`
58
- - `createConversationBinding({ conversationId, endpoint = "", surfaceId = "", hostSurfaceId = "", workspaceSlug, actorKey: suppliedActorKey, api: suppliedApi = null, socket: suppliedSocket = null, active = true, onEvent, clearDraftOn: suppliedClearDraftOn, queueWhileSending, deferWhileWorking = false, admitWhileWorking = false, draftWhileLoading = false, draftStorage = null, application = null, boundedTask = null, data, attachments = null, suggestions = null, models = null, questions = null, goal = null, presentation = {} } = {}, setup)`
83
+ - `formatsAnswers(prompts)`
84
+ - `assertBoundedTask({ command, endpoint, scope, input, result, onResult })`
85
+ - `useBoundedTask({ command, endpoint, scope, input, result, onResult = ignoreResult }, { active, data, presentation })`
86
+ - `conversationBindingSetup({ socket, boundedTask })`
87
+ - `createConversationBinding({ conversationId, endpoint = "", surfaceId = "", hostSurfaceId = "", workspaceSlug, actorKey: suppliedActorKey, api: suppliedApi, socket: suppliedSocket, active = true, onEvent, clearDraftOn: suppliedClearDraftOn, queueWhileSending, deferWhileWorking = false, admitWhileWorking = false, draftWhileLoading = false, draftStorage, application, boundedTask, data, attachments, suggestions, models, questions, goal, presentation }, setup)`
59
88
 
60
89
  ### `src/client/composables/useAssistantRuntime.js`
61
90
  Exports
62
- - `useAssistantRuntime({ api = null, surfaceId = "", integrationId = "" } = {})`
91
+ - `useAssistantRuntime({ api, surfaceId = "", integrationId = "" })`
92
+ - `type RuntimeScope`
63
93
  Local functions
64
- - `toNonNegativeInteger(value, fallback = 0)`
65
- - `buildScopeStorageKey(scope = {})`
66
- - `readStoredActiveConversationId(scope = {})`
67
- - `writeStoredActiveConversationId(scope = {}, conversationId)`
94
+ - `toNonNegativeInteger(value, fallback)`
95
+ - `buildScopeStorageKey(scope)`
96
+ - `browserSessionStorage()`
97
+ - `readStoredActiveConversationId(scope)`
98
+ - `writeStoredActiveConversationId(scope, conversationId)`
68
99
  - `normalizeConversationStatus(value)`
69
100
  - `formatConversationStartedAt(value)`
70
- - `failureText(failure)`
71
101
  - `resolveRuntimePolicy()`
72
- - `createRuntimeApi({ overrideApi = null, resolveBasePath, resolveSurfaceId = null } = {})`
102
+ - `ignoreAcceptance()`
73
103
 
74
104
  ### `src/client/i18n.js`
75
105
  Exports
@@ -90,23 +120,24 @@ Exports
90
120
  Exports
91
121
  - `AssistantClientProvider`
92
122
 
93
- ### `src/client/support/accessDenied.js`
94
- Exports
95
- - `isAccessDenied(error)`
96
-
97
123
  ### `src/client/support/assistantRuntimeState.js`
98
124
  Exports
99
- - `buildHistory(messages)`
100
- - `buildId(prefix = "id")`
125
+ - `buildId(prefix)`
101
126
  - `interruptPendingToolEvents(toolEvents)`
102
127
  - `mapTranscriptEntriesToAssistantState(entries)`
103
128
  - `mapAssistantConversationTurns(messages, toolEvents = [], { showToolActivity = true } = {})`
104
129
  - `normalizeToolName(value)`
105
130
  - `toolStatusText(status)`
106
131
 
132
+ ### `src/client/support/conversationFailures.js`
133
+ Exports
134
+ - `failureMessage(failure, fallback = "")`
135
+ - `isAccessDenied(error)`
136
+ - `resultError(result)`
137
+
107
138
  ### `src/client/support/conversationRestoreSupport.js`
108
139
  Exports
109
- - `loadConversationTranscript({ fetchPage, pageSize = DEFAULT_RESTORE_MESSAGES_PAGE_SIZE, maxEntries = DEFAULT_RESTORE_MESSAGES_MAX_ENTRIES } = {})`
140
+ - `loadConversationTranscript({ fetchPage, pageSize = DEFAULT_RESTORE_MESSAGES_PAGE_SIZE, maxEntries = DEFAULT_RESTORE_MESSAGES_MAX_ENTRIES })`
110
141
  - `resolveConversationRestorePolicy({ pageSize, maxEntries } = {})`
111
142
  Local functions
112
143
  - `normalizeBoundedPositiveInteger(value, fallback, maximum)`
@@ -114,16 +145,27 @@ Local functions
114
145
 
115
146
  ### `src/client/support/subscribeAssistantConversation.js`
116
147
  Exports
117
- - `subscribeAssistantConversation({ socket, conversationId, targetSurfaceId, hostSurfaceId, workspaceSlug, read, onState, onEvent = () => {}, onError = () => {} } = {})`
148
+ - `subscribeAssistantConversation({ socket, conversationId, targetSurfaceId, hostSurfaceId, workspaceSlug, read, onState, onEvent = ignoreConversationEvent, onError = ignoreSubscriptionError })`
118
149
  - `refreshedHistoryPages`
119
- - `patchLoadedHistoryPages(pages = [], patch)`
150
+ - `patchLoadedHistoryPages(pages, patch)`
151
+ Local functions
152
+ - `ignoreConversationEvent()`
153
+ - `ignoreSubscriptionError()`
120
154
 
121
155
  ### `src/client/support/workspaceScopeSupport.js`
122
156
  Exports
123
- - `EMPTY_WORKSPACE_WEB_SCOPE_SUPPORT`
124
- - `WORKSPACES_WEB_SCOPE_SUPPORT_INJECTION_KEY`
125
- - `isWorkspaceWebScopeSupport(value)`
126
- - `useWorkspaceWebScopeSupport({ required = false } = {})`
157
+ - `useWorkspaceWebScopeSupport()`
158
+
159
+ ### `src/client/types.js`
160
+ Exports
161
+ - `type RealtimeSocket`
162
+ - `type SurfaceRouteContext`
163
+ - `type PlacementRuntime`
164
+ - `type WorkspaceScopeSupport`
165
+ - `type ConversationIdentity`
166
+ - `type ConversationReader`
167
+ - `type ConversationSubscription`
168
+ - `type ConversationRuntime`
127
169
 
128
170
  ### `src/server/actionIds.js`
129
171
  Exports
@@ -131,24 +173,66 @@ Exports
131
173
 
132
174
  ### `src/server/actions.js`
133
175
  Exports
134
- - `createAssistantActions({ assistantConfigService, chatService, conversationRuntime = null, conversationAccess = null, conversationDataSchema = null, conversationConfigurationSchema = null, conversationSelectionSchema = null, conversationReplacementSchema = null, workspaceScopeSupport = null, config = {} } = {})`
176
+ - `createAssistantActions({ assistantConfigService, chatService, conversationRuntime, conversationAccess, conversationDataSchema, conversationConfigurationSchema, conversationSelectionSchema, conversationReplacementSchema, workspaceScopeSupport, config })`
177
+ - `type AssistantConfigService`
178
+ - `type ChatService`
179
+ - `type ConversationAccess`
180
+ - `type ConversationRuntime`
181
+ - `type WorkspaceScopeSupport`
182
+ - `type ConversationOperations`
135
183
  Local functions
136
184
  - `configuredAssistantSurfaces(config = {})`
137
- - `createConversationActions({ conversationRuntime, conversationDataSchema, conversationConfigurationSchema, conversationSelectionSchema, conversationReplacementSchema, config, runtimeSurfaces, workspaceScopeSupport })`
185
+ - `listConversationsDocument(chatService, input, context)`
186
+ - `listConversationMessagesDocument(chatService, input, context)`
187
+ - `createConversationActions({ conversationOperations, conversationDataSchema, conversationConfigurationSchema, conversationSelectionSchema, conversationReplacementSchema, runtimeSurfaces })`
138
188
 
139
189
  ### `src/server/AssistantProvider.js`
140
190
  Exports
141
191
  - `AssistantFeature`
192
+ - `type AssistantRuntime`
193
+ - `type ConversationAccess`
194
+ - `type ConversationRuntime`
195
+ - `type ActionCatalogue`
196
+ Local functions
197
+ - `releaseNoSubscriptions()`
198
+ - `assertConversationAccess(conversationAccess, conversationRuntime)`
199
+
200
+ ### `src/server/conversationOperations.js`
201
+ Exports
202
+ - `createConversationOperations({ conversationRuntime, config, workspaceScopeSupport, conversationDataSchema })`
203
+ - `type ConversationRuntime`
204
+ - `type WorkspaceScopeSupport`
205
+ Local functions
206
+ - `alwaysCurrent()`
207
+ - `ignoreStage()`
142
208
 
143
209
  ### `src/server/createAssistantRuntime.js`
144
210
  Exports
145
211
  - `createAssistantAiClientFactory(config = {})`
146
- - `createAssistantRuntime({ actionCatalogue, config, consoleRuntime, repositories = {}, env, aiConnections, attachments, workspaces } = {})`
212
+ - `createAssistantRuntime({ actionCatalogue, config, consoleRuntime, repositories, env, aiConnections, attachments, workspaces })`
147
213
  - `createAssistantConversationRuntime({ conversationsRepository, messagesRepository, aiClientFactory, toolCatalog, attachments })`
214
+ - `type AssistantAttachments`
215
+ - `type AssistantAiClientFactory`
216
+ - `type AssistantConfigRepository`
217
+ - `type ConversationsRepository`
218
+ - `type MessagesRepository`
219
+ - `type TurnRequestsRepository`
220
+ - `type SurfaceAwareToolCatalog`
221
+ - `type AiConnectionResolver`
148
222
 
149
223
  ### `src/server/createAssistantSettingsActions.js`
150
224
  Exports
151
225
  - `createAssistantSettingsActions({ assistantConfigService, settingsSurfaces })`
226
+ - `type AssistantConfigService`
227
+ Local functions
228
+ - `readSettingsDocument(assistantConfigService, input, context)`
229
+ - `updateSettingsDocument(assistantConfigService, input, context)`
230
+
231
+ ### `src/server/hostedAssistant.js`
232
+ Exports
233
+ - `createHostedAssistant({ conversationRuntime, assistantConfigService })`
234
+ - `type ConversationRuntime`
235
+ - `type AssistantConfigService`
152
236
 
153
237
  ### `src/server/index.js`
154
238
  Exports
@@ -158,6 +242,7 @@ Exports
158
242
  - `registerAssistantRoutes`
159
243
  - `registerConversationSubscriptions`
160
244
  - `registerFastifyConversations`
245
+ - `createSurfaceAwareToolCatalog`
161
246
 
162
247
  ### `src/server/inputSchemas.js`
163
248
  Exports
@@ -175,14 +260,16 @@ Exports
175
260
 
176
261
  ### `src/server/registerConversationSubscriptions.js`
177
262
  Exports
178
- - `registerConversationSubscriptions({ realtime, events, actions, config = {}, logger = null, workspaceScopeSupport = null, subscribeActionId = actionIds.conversationSubscribe, requestPolicy = "authenticated", diagnostics = false } = {})`
263
+ - `registerConversationSubscriptions({ realtime, events, actions, config = {}, logger = silentLogger, workspaceScopeSupport = null, subscribeActionId = actionIds.conversationSubscribe, requestPolicy = "authenticated", diagnostics = false } = {})`
179
264
  Local functions
180
265
  - `requireSubscriptionId(input)`
181
266
  - `subscriptionError(error)`
267
+ - `releaseNoDiagnostics()`
268
+ - `detachNoObserver()`
182
269
 
183
270
  ### `src/server/registerFastifyConversations.js`
184
271
  Exports
185
- - `registerFastifyConversations(app, { runtime, config, authenticate, bootstrap, env = process.env } = {})`
272
+ - `registerFastifyConversations(app, { runtime, config, authenticate, bootstrap, env } = {})`
186
273
 
187
274
  ### `src/server/registerRoutes.js`
188
275
  Exports
@@ -190,7 +277,7 @@ Exports
190
277
  Local functions
191
278
  - `sendPreStreamErrorResponse(reply, error)`
192
279
  - `buildChatStreamActionInput(routeInput = {}, requestBody = {})`
193
- - `resolveAssistantConversationMessagesRecordId(record = {})`
280
+ - `resolveAssistantConversationMessagesRecordId(record)`
194
281
  - `registerRuntimeRoutes(router, resolveCurrentAppConfig, { requiresWorkspace = false, workspaceScopeSupport = null } = {})`
195
282
  - `registerConversationRoutes(router, resolveCurrentAppConfig, { requiresWorkspace = false, workspaceScopeSupport = null, conversationDataSchema = null, conversationConfigurationSchema = null, conversationSelectionSchema = null, conversationReplacementSchema = null } = {})`
196
283
 
@@ -198,15 +285,13 @@ Local functions
198
285
  Exports
199
286
  - `registerSettingsRoutes(router, resolveCurrentAppConfig, { requiresWorkspace = false, workspaceScopeSupport = null } = {})`
200
287
  Local functions
201
- - `resolveAssistantSettingsRecordId(record = {})`
288
+ - `resolveAssistantSettingsRecordId(record)`
202
289
 
203
290
  ### `src/server/repositories/assistantConfigRepository.js`
204
291
  Exports
205
292
  - `createRepository(knex)`
206
293
  Local functions
207
294
  - `normalizeTargetSurfaceId(value = "")`
208
- - `normalizeWorkspaceId(value)`
209
- - `normalizeWorkspaceDbId(value)`
210
295
  - `buildScopeKey(targetSurfaceId, workspaceId = null)`
211
296
  - `mapConfigRow(row = {})`
212
297
  - `createDefaultRecord({ targetSurfaceId = "", workspaceId = null } = {})`
@@ -233,7 +318,6 @@ Exports
233
318
  - `applyWorkspaceScope(query, columnName, workspaceId)`
234
319
  - `normalizeDbWorkspaceId(value)`
235
320
  - `normalizeInputRecordId(value)`
236
- - `normalizeWorkspaceId(value)`
237
321
  - `parseJsonObject`
238
322
  - `stringifyJsonObject(value)`
239
323
  - `toIso(value)`
@@ -245,35 +329,44 @@ Exports
245
329
 
246
330
  ### `src/server/services/assistantConfigService.js`
247
331
  Exports
248
- - `createService({ assistantConfigRepository, consoleService = null, appConfig = {}, workspaceScopeSupport = null } = {})`
332
+ - `createService({ assistantConfigRepository, consoleService, appConfig, workspaceScopeSupport })`
333
+ - `type AssistantConfigRepository`
334
+ - `type WorkspaceScopeSupport`
249
335
 
250
336
  ### `src/server/services/chatService.js`
251
337
  Exports
252
- - `createChatService({ conversationRuntime, aiClientFactory, turnRequests, attachments, transcriptService, serviceToolCatalog, assistantConfigService, appConfig = {}, workspaceScopeSupport = null } = {})`
338
+ - `createChatService({ conversationRuntime, aiClientFactory, turnRequests, attachments, transcriptService, serviceToolCatalog, assistantConfigService, appConfig, workspaceScopeSupport })`
339
+ - `type AssistantAiClientFactory`
340
+ - `type AssistantAttachments`
341
+ - `type AssistantConfigService`
342
+ - `type ConversationRuntime`
343
+ - `type SurfaceAwareToolCatalog`
344
+ - `type TranscriptService`
345
+ - `type TurnRequestsRepository`
346
+ - `type WorkspaceScopeSupport`
253
347
  Local functions
254
- - `normalizeConversationId(value)`
255
- - `normalizeHistory(history = [])`
256
348
  - `normalizeStreamInput(payload = {})`
257
- - `hasStreamWriter(streamWriter)`
258
349
  - `savedMessageFields(error)`
259
350
  - `streamErrorMessageFields(error, aborted)`
260
351
  - `isAbortError(error)`
261
352
  - `toCompactJson(value, fallback = "{}")`
262
353
  - `buildToolContractLine(toolDescriptor = {})`
263
- - `buildSystemPrompt({ targetSurfaceId = "", toolDescriptors = [], workspaceSlug = "", customSystemPrompt = "" } = {})`
354
+ - `buildSystemPrompt({ targetSurfaceId = "", toolDescriptors, workspaceSlug = "", customSystemPrompt = "" })`
264
355
  - `buildAssistantActionContext(context = {}, assistantSurface = {})`
265
356
 
266
357
  ### `src/server/services/transcriptService.js`
267
358
  Exports
268
- - `createTranscriptService({ conversationsRepository, messagesRepository } = {})`
359
+ - `createTranscriptService({ conversationsRepository, messagesRepository })`
269
360
  - `deriveConversationTitleFromMessage(contentText)`
270
361
  - `isDefaultConversationTitle(value)`
362
+ - `type ConversationsRepository`
363
+ - `type MessagesRepository`
271
364
  Local functions
272
365
  - `resolveWorkspaceId(workspace, { required = false } = {})`
273
366
  - `resolveActorUserId(user, { required = false } = {})`
274
367
  - `normalizePagination(pagination = {}, { defaultPageSize = DEFAULT_PAGE_SIZE, maxPageSize = MAX_PAGE_SIZE } = {})`
275
368
  - `normalizeCursorPagination(query = {}, { defaultLimit = DEFAULT_PAGE_SIZE, maxLimit = MAX_PAGE_SIZE } = {})`
276
- - `requireAssistantSurface(assistantSurface = {})`
369
+ - `requireAssistantSurface(assistantSurface)`
277
370
 
278
371
  ### `src/server/sqlConversationStorage.js`
279
372
  Exports
@@ -303,7 +396,7 @@ Local functions
303
396
 
304
397
  ### `src/server/support/assistantServerConfig.js`
305
398
  Exports
306
- - `resolveAssistantServerConfigMap(appConfig = {})`
399
+ - `resolveAssistantServerConfigMap(appConfig)`
307
400
  - `resolveAssistantServerConfig(appConfig = {}, targetSurfaceId = "")`
308
401
  - `resolveAssistantAiConfig({ appConfig = {}, env = {} } = {}, targetSurfaceId = "")`
309
402
  Local functions
@@ -312,6 +405,7 @@ Local functions
312
405
  ### `src/server/support/assistantStreamWriter.js`
313
406
  Exports
314
407
  - `ASSISTANT_STREAM_WRITER_METHODS`
408
+ - `type AssistantStreamWriter`
315
409
 
316
410
  ### `src/server/support/assistantSurface.js`
317
411
  Exports
@@ -322,7 +416,26 @@ Exports
322
416
  - `createSurfaceAwareToolCatalog(actions, { appConfig = {}, createCatalog = createServiceToolCatalog } = {})`
323
417
  Local functions
324
418
  - `buildCatalogOptions(appConfig = {}, surfaceId = "")`
325
- - `requireContextSurfaceId(context = {})`
419
+ - `requireContextSurfaceId(context)`
420
+
421
+ ### `src/server/types.js`
422
+ Exports
423
+ - `type HostedAssistant`
424
+ - `type DatabaseAssistant`
425
+ - `type AssistantRuntime`
426
+ - `type ConversationRuntime`
427
+ - `type AssistantConfigService`
428
+ - `type ChatService`
429
+ - `type TranscriptService`
430
+ - `type AssistantAiClientFactory`
431
+ - `type SurfaceAwareToolCatalog`
432
+ - `type AssistantConfigRepository`
433
+ - `type ConversationsRepository`
434
+ - `type MessagesRepository`
435
+ - `type TurnRequestsRepository`
436
+ - `type WorkspaceScopeSupport`
437
+ - `type ConversationAccess`
438
+ - `type AssistantAttachments`
326
439
 
327
440
  ### `src/shared/assistantRuntimeConfig.js`
328
441
  Exports
@@ -335,8 +448,8 @@ Exports
335
448
  - `normalizeAssistantConfigScope(value = "")`
336
449
  - `resolveAssistantRuntimeRoute(surface, workspaceSlug = "")`
337
450
  - `resolveAssistantSurfaceConfig(appConfig = {}, targetSurfaceId = "")`
338
- - `resolveAssistantSurfacesConfig(appConfig = {})`
339
- - `resolveSurfaceDefinitions(appConfig = {})`
451
+ - `resolveAssistantSurfacesConfig(appConfig)`
452
+ - `resolveSurfaceDefinitions(appConfig)`
340
453
 
341
454
  ### `src/shared/conversationRealtime.js`
342
455
  Exports
@@ -401,10 +514,22 @@ Exports
401
514
  Exports
402
515
  - None
403
516
 
517
+ ### `migrations/assistant_transcripts_summary.cjs`
518
+ Exports
519
+ - None
520
+
404
521
  ### `migrations/assistant_turn_requests.cjs`
405
522
  Exports
406
523
  - None
407
524
 
525
+ ### `migrations/constraints/assistant_users_foreign_keys.cjs`
526
+ Exports
527
+ - None
528
+
529
+ ### `migrations/constraints/assistant_workspaces_foreign_keys.cjs`
530
+ Exports
531
+ - None
532
+
408
533
  ### patterns
409
534
 
410
535
  ### `patterns/assistant-surface/example/config/public.js`
@@ -37,11 +37,15 @@ Exports
37
37
  - `positiveActivePathCount(value, fallback = 16)`
38
38
  - `positiveThreadCount(value, fallback = 1)`
39
39
  - `runtimeValue(runtime, key)`
40
+ Local functions
41
+ - `ignoreRecognizedText()`
40
42
 
41
43
  ### `src/synthesisProcess.js`
42
44
  Exports
43
45
  - `createSynthesisProcess(configuration, { outputSampleRate, signal = null, workerUrl = new URL("./synthesisWorker.js", import.meta.url) } = {})`
44
46
  - `SYNTHESIS_REQUEST_TIMEOUT_MS`
47
+ Local functions
48
+ - `ignoreAudio()`
45
49
 
46
50
  ### `src/synthesisWorker.js`
47
51
  Exports
@@ -16,8 +16,21 @@ Use this on demand; do not load the full index at startup.
16
16
 
17
17
  ### `src/client/audioCapture.js`
18
18
  Exports
19
- - `createMicrophoneCapture({ onLevel, onPcm, targetSampleRate = 16_000 } = {})`
19
+ - `createMicrophoneCapture({ onLevel = ignoreLevel, onPcm = ignorePcm, targetSampleRate = 16_000 } = {})`
20
20
  - `float32ToPcm16ArrayBuffer(samples)`
21
+ Local functions
22
+ - `ignoreLevel()`
23
+ - `ignorePcm()`
24
+ - `noFlushPending()`
25
+
26
+ ### `src/client/browser.js`
27
+ Exports
28
+ - `audioContextConstructor()`
29
+ - `createVoiceTurnId(prefix)`
30
+ - `followMediaQuery(query, listener)`
31
+ - `listenToDocument(type, listener)`
32
+ - `listenToPage(type, listener)`
33
+ - `pageVisible()`
21
34
 
22
35
  ### `src/client/ConversationDialog.vue`
23
36
  Exports
@@ -57,9 +70,27 @@ Exports
57
70
  - `useVoiceAvatar`
58
71
  - `VoiceAvatar`
59
72
 
73
+ ### `src/client/types.js`
74
+ Exports
75
+ - `type VoiceConversationController`
76
+ - `type VoiceSession`
77
+ - `type VoiceTransport`
78
+ - `type VoiceSpeech`
79
+ - `type MicrophoneCapture`
80
+ - `type VoicePlaybackEvent`
81
+ - `type VoiceOutputPlayback`
82
+ - `type VoiceConversationMessage`
83
+ - `type VoiceConversationState`
84
+ - `type VoiceNarration`
85
+ - `type VoiceTranscript`
86
+ - `type VoiceConversationBinding`
87
+ - `type VoiceHeldRecording`
88
+
60
89
  ### `src/client/voiceAvatar.js`
61
90
  Exports
62
91
  - `useVoiceAvatar(props)`
92
+ Local functions
93
+ - `notFollowing()`
63
94
 
64
95
  ### `src/client/VoiceAvatar.vue`
65
96
  Exports
@@ -67,17 +98,18 @@ Exports
67
98
 
68
99
  ### `src/client/voiceController.js`
69
100
  Exports
70
- - `createVoiceConversationController({ connectSpeech, createSession = useVoiceConversation } = {})`
101
+ - `createVoiceConversationController({ connectSpeech, createSession = useVoiceConversation })`
71
102
 
72
103
  ### `src/client/voiceConversation.js`
73
104
  Exports
74
- - `useVoiceConversation(binding, { socketUrl, createTransport = useVoiceTransport } = {})`
105
+ - `useVoiceConversation(binding, { socketUrl, createTransport = useVoiceTransport })`
75
106
 
76
107
  ### `src/client/VoiceConversation.vue`
77
108
  Exports
78
109
  - None
79
110
  Local functions
80
111
  - `isAtBottom(element)`
112
+ - `followCaption(target, following)`
81
113
 
82
114
  ### `src/client/VoiceConversationControls.vue`
83
115
  Exports
@@ -98,7 +130,9 @@ Local functions
98
130
 
99
131
  ### `src/client/voiceLauncher.js`
100
132
  Exports
101
- - `useVoiceLauncher({ open, enabled = true, onTap = null, onError = () => {} })`
133
+ - `useVoiceLauncher({ open, enabled = true, onTap, onError = ignoreLauncherError })`
134
+ Local functions
135
+ - `ignoreLauncherError()`
102
136
 
103
137
  ### `src/client/voicePlayback.js`
104
138
  Exports
@@ -107,17 +141,25 @@ Exports
107
141
  - `pcm16ArrayBufferToFloat32(buffer)`
108
142
  - `visemeCueAtTime(segments = [], currentTime = 0)`
109
143
 
144
+ ### `src/client/voiceReplies.js`
145
+ Exports
146
+ - `useVoiceReplies({ binding, voice, readAloud, error, starting, capturing, speechActive, narrationPageVisible, hiddenNarrationPage, closed })`
147
+
110
148
  ### `src/client/VoiceSpeakingVoiceSelect.vue`
111
149
  Exports
112
150
  - None
113
151
  Local functions
114
152
  - `selectVoice(value)`
115
153
 
154
+ ### `src/client/voiceSpeech.js`
155
+ Exports
156
+ - `useVoiceSpeech({ connect, sendControl, isConnected, enabled, selectedVoice, onPlayback, fail })`
157
+
116
158
  ### `src/client/voiceTransport.js`
117
159
  Exports
118
- - `createVoiceTurnId(prefix = "turn")`
119
- - `useVoiceTransport({ socketUrl, speechEnabled = true, interruptSpeechOnListen = false, autoReconnect = false, voiceId = "", onPlayback } = {})`
160
+ - `useVoiceTransport({ socketUrl, speechEnabled = true, interruptSpeechOnListen = false, autoReconnect = false, voiceId = "", onPlayback = ignorePlayback })`
120
161
  Local functions
162
+ - `ignorePlayback()`
121
163
  - `resolveWebSocketUrl(value)`
122
164
 
123
165
  ### `src/server/index.js`
@@ -146,19 +188,23 @@ Local functions
146
188
  ### `src/server/voiceDaemon.js`
147
189
  Exports
148
190
  - `createBoundedSerialQueue({ maximumQueued = 4 } = {})`
149
- - `createVoiceDaemon({ accessKey, authorize = token => verifyVoiceAccessToken(token, { key: accessKey }), handleRequest = null, engine, host = "127.0.0.1", idleTimeoutMs = 90_000, logger = console, maximumConnections = 8, maximumConnectionsPerTenant = 2, maximumQueuedSpeech = 4, port = 3092 } = {})`
191
+ - `createVoiceDaemon({ accessKey, authorize = token => verifyVoiceAccessToken(token, { key: accessKey }), handleRequest = answerNoHostRoute, engine, host = "127.0.0.1", idleTimeoutMs = 90_000, logger = console, maximumConnections = 8, maximumConnectionsPerTenant = 2, maximumQueuedSpeech = 4, port = 3092 })`
150
192
  - `sendJson(socket, type, fields = {})`
151
193
  - `voiceDaemonError(error, fallback = { message: "Voice operation failed.", messageCode: "assistant.voice.daemon.operationFailed" })`
194
+ - `type VoiceRecognizer`
195
+ - `type VoiceSpeechEngine`
196
+ - `type VoicePrincipal`
152
197
  Local functions
153
198
  - `sendPcm(socket, audio = Buffer.alloc(0))`
154
199
  - `requestPathname(request = {})`
155
200
  - `writeJsonResponse(response, statusCode, payload)`
201
+ - `answerNoHostRoute()`
156
202
 
157
203
  ### `src/server/voiceProxy.js`
158
204
  Exports
159
205
  - `closeSocket(socket, code, reason)`
160
206
  - `readVoiceCatalogue(config, { fetchImpl = fetch } = {})`
161
- - `registerVoiceProxyRoute(fastify, { proxyConfig, route, authorize = null, WebSocketCtor = WebSocket } = {})`
207
+ - `registerVoiceProxyRoute(fastify, { proxyConfig, route, authorize, WebSocketCtor = WebSocket } = {})`
162
208
  Local functions
163
209
  - `proxyCloseCode(code)`
164
210
  - `proxyCloseReason(reason)`