@jskit-ai/agent-docs 0.1.1

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 (73) hide show
  1. package/DISTR_AGENT.md +25 -0
  2. package/guide/agent/app-extras/assistant.md +636 -0
  3. package/guide/agent/app-extras/realtime.md +223 -0
  4. package/guide/agent/app-setup/a-more-interesting-shell.md +643 -0
  5. package/guide/agent/app-setup/authentication.md +948 -0
  6. package/guide/agent/app-setup/console.md +316 -0
  7. package/guide/agent/app-setup/database-layer.md +775 -0
  8. package/guide/agent/app-setup/initial-scaffolding.md +714 -0
  9. package/guide/agent/app-setup/multi-homing.md +655 -0
  10. package/guide/agent/app-setup/users.md +355 -0
  11. package/guide/agent/app-setup/working-with-the-jskit-cli.md +983 -0
  12. package/guide/agent/generators/advanced-cruds.md +923 -0
  13. package/guide/agent/generators/crud-generators.md +556 -0
  14. package/guide/agent/generators/intro.md +63 -0
  15. package/guide/agent/generators/ui-generators.md +648 -0
  16. package/guide/agent/index.md +39 -0
  17. package/guide/human/app-extras/assistant.md +695 -0
  18. package/guide/human/app-extras/realtime.md +270 -0
  19. package/guide/human/app-setup/a-more-interesting-shell.md +734 -0
  20. package/guide/human/app-setup/authentication.md +963 -0
  21. package/guide/human/app-setup/console.md +352 -0
  22. package/guide/human/app-setup/database-layer.md +822 -0
  23. package/guide/human/app-setup/initial-scaffolding.md +738 -0
  24. package/guide/human/app-setup/multi-homing.md +795 -0
  25. package/guide/human/app-setup/users.md +404 -0
  26. package/guide/human/app-setup/working-with-the-jskit-cli.md +997 -0
  27. package/guide/human/generators/advanced-cruds.md +923 -0
  28. package/guide/human/generators/crud-generators.md +556 -0
  29. package/guide/human/generators/intro.md +109 -0
  30. package/guide/human/generators/ui-generators.md +665 -0
  31. package/guide/human/index.md +39 -0
  32. package/package.json +28 -0
  33. package/reference/autogen/KERNEL_MAP.md +536 -0
  34. package/reference/autogen/README.md +44 -0
  35. package/reference/autogen/packages/agent-docs.md +13 -0
  36. package/reference/autogen/packages/assistant-core.md +310 -0
  37. package/reference/autogen/packages/assistant-runtime.md +219 -0
  38. package/reference/autogen/packages/assistant.md +73 -0
  39. package/reference/autogen/packages/auth-core.md +352 -0
  40. package/reference/autogen/packages/auth-provider-supabase-core.md +223 -0
  41. package/reference/autogen/packages/auth-web.md +267 -0
  42. package/reference/autogen/packages/console-core.md +116 -0
  43. package/reference/autogen/packages/console-web.md +37 -0
  44. package/reference/autogen/packages/crud-core.md +283 -0
  45. package/reference/autogen/packages/crud-server-generator.md +220 -0
  46. package/reference/autogen/packages/crud-ui-generator.md +154 -0
  47. package/reference/autogen/packages/database-runtime-mysql.md +61 -0
  48. package/reference/autogen/packages/database-runtime-postgres.md +39 -0
  49. package/reference/autogen/packages/database-runtime.md +216 -0
  50. package/reference/autogen/packages/http-runtime.md +213 -0
  51. package/reference/autogen/packages/kernel.md +1350 -0
  52. package/reference/autogen/packages/realtime.md +95 -0
  53. package/reference/autogen/packages/shell-web.md +349 -0
  54. package/reference/autogen/packages/storage-runtime.md +39 -0
  55. package/reference/autogen/packages/ui-generator.md +101 -0
  56. package/reference/autogen/packages/uploads-image-web.md +76 -0
  57. package/reference/autogen/packages/uploads-runtime.md +85 -0
  58. package/reference/autogen/packages/users-core.md +307 -0
  59. package/reference/autogen/packages/users-web.md +473 -0
  60. package/reference/autogen/packages/workspaces-core.md +415 -0
  61. package/reference/autogen/packages/workspaces-web.md +372 -0
  62. package/reference/autogen/tooling/config-eslint.md +52 -0
  63. package/reference/autogen/tooling/create-app.md +194 -0
  64. package/reference/autogen/tooling/jskit-catalog.md +27 -0
  65. package/reference/autogen/tooling/jskit-cli.md +624 -0
  66. package/reference/autogen/tooling/test-support.md +27 -0
  67. package/reference/autogen/tooling/testUtils.md +31 -0
  68. package/templates/APP_BLUEPRINT.md +57 -0
  69. package/workflow/app-state.md +33 -0
  70. package/workflow/bootstrap.md +24 -0
  71. package/workflow/feature-delivery.md +21 -0
  72. package/workflow/review.md +22 -0
  73. package/workflow/scoping.md +26 -0
@@ -0,0 +1,310 @@
1
+ # packages/assistant-core
2
+
3
+ Generated by `npm run agent-docs:build`.
4
+ Do not edit manually.
5
+
6
+ Generated inventory for `packages/assistant-core`.
7
+ Use this on demand; do not load the full index at startup.
8
+
9
+ ## Scope
10
+ - Source: `packages/assistant-core/**/*{.js,.mjs,.cjs,.vue}`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`
12
+
13
+ ## Sections
14
+
15
+ ### src
16
+
17
+ ### `src/client/components/AssistantClientElement.vue`
18
+ Exports
19
+ - None
20
+ Local functions
21
+ - `formatConversationStartedAt(value)`
22
+ - `normalizeConversationStatus(value)`
23
+ - `messageAuthorLabel(message)`
24
+ - `showAssistantTypingIndicator(message)`
25
+ - `isAssistantChatMessage(message)`
26
+ - `keepMessagesPanelPinnedToBottom({ behavior = "auto" } = {})`
27
+ - `renderAssistantMarkdownSnapshot()`
28
+ - `scheduleAssistantMarkdownRender({ immediate = false } = {})`
29
+ - `assistantMessageHtml(message)`
30
+ - `resolveConversationActorLabel(conversation)`
31
+ - `conversationSubtitle(conversation)`
32
+ - `conversationDisplayTitle(conversation)`
33
+ - `isActiveConversation(conversation)`
34
+ - `onSelectConversation(conversation)`
35
+ - `selectConversationFromPicker(conversation)`
36
+ - `onStartNewConversation()`
37
+ - `startNewConversationFromPicker()`
38
+ - `onLoadMoreConversations()`
39
+ - `onSendMessage()`
40
+ - `onConversationPickerOpen()`
41
+ - `onHandleInputKeydown(event)`
42
+ - `resolveComposerTextarea()`
43
+ - `focusComposer(selectText = false)`
44
+ - `focusComposerWithRetry(selectText = false)`
45
+ - `requestComposerFocus({ selectText = false } = {})`
46
+ - `onRootFocus(event)`
47
+ - `onRootPointerDown()`
48
+ - `normalizeScrollValue(value)`
49
+ - `distanceFromBottom(element)`
50
+ - `isScrolledToBottom(element)`
51
+ - `scrollMessagesToBottom({ behavior = "auto" } = {})`
52
+ - `handleMessagesPanelScroll()`
53
+ - `syncViewportHeight()`
54
+
55
+ ### `src/client/components/AssistantSettingsFormCard.vue`
56
+ Exports
57
+ - None
58
+
59
+ ### `src/client/index.js`
60
+ Exports
61
+ - `AssistantClientElement`
62
+ - `AssistantSettingsFormCard`
63
+ - `assistantHttpClient`
64
+ - `createAssistantApi`
65
+ - `buildStreamEventError`
66
+ - `renderMarkdownToSafeHtml`
67
+
68
+ ### `src/client/lib/assistantApi.js`
69
+ Exports
70
+ - `createAssistantApi({ request, requestStream, resolveBasePath, resolveSurfaceId = null } = {})`
71
+ - `buildStreamEventError(event)`
72
+ Local functions
73
+ - `appendQueryParam(params, key, value)`
74
+ - `normalizeSurfaceHeaderValue(value)`
75
+ - `resolveAssistantRequestHeaders(resolveSurfaceId)`
76
+ - `resolveRequiredBasePath(resolveBasePath)`
77
+
78
+ ### `src/client/lib/assistantHttpClient.js`
79
+ Exports
80
+ - `assistantHttpClient`
81
+
82
+ ### `src/client/lib/markdownRenderer.js`
83
+ Exports
84
+ - `renderMarkdownToSafeHtml(value = "")`
85
+ Local functions
86
+ - `normalizeMarkdownText(value)`
87
+
88
+ ### `src/server/index.js`
89
+ Exports
90
+ - `createAiClient`
91
+ - `SUPPORTED_AI_PROVIDERS`
92
+ - `DEFAULT_AI_PROVIDER`
93
+ - `DEFAULT_AI_TIMEOUT_MS`
94
+ - `normalizeOptionalHttpUrl`
95
+ - `normalizeTimeoutMs`
96
+ - `NDJSON_CONTENT_TYPE`
97
+ - `endNdjson`
98
+ - `mapStreamError`
99
+ - `setNdjsonHeaders`
100
+ - `writeNdjson`
101
+ - `resolveWorkspaceSlug`
102
+ - `createServiceToolCatalog`
103
+ - `parseJsonObject`
104
+ - `resolveInsertedId`
105
+ - `stringifyJsonObject`
106
+ - `toIso`
107
+
108
+ ### `src/server/lib/aiClient.js`
109
+ Exports
110
+ - `createAiClient(options = {})`
111
+ - `SUPPORTED_AI_PROVIDERS`
112
+ - `DEFAULT_AI_PROVIDER`
113
+
114
+ ### `src/server/lib/ndjson.js`
115
+ Exports
116
+ - `NDJSON_CONTENT_TYPE`
117
+ - `setNdjsonHeaders(reply)`
118
+ - `writeNdjson(reply, payload = {})`
119
+ - `endNdjson(reply)`
120
+ - `mapStreamError(error)`
121
+
122
+ ### `src/server/lib/providers/anthropicClient.js`
123
+ Exports
124
+ - `createAnthropicClient({ enabled = true, apiKey = "", baseUrl = "", model = "", timeoutMs = 120_000 } = {})`
125
+ - `DEFAULT_ANTHROPIC_MODEL`
126
+ - `DEFAULT_ANTHROPIC_BASE_URL`
127
+ Local functions
128
+ - `normalizeTemperature(value, fallback = 0.2)`
129
+ - `normalizeToolDescriptor(tool)`
130
+ - `toAnthropicTools(tools = [])`
131
+ - `toAnthropicSystemAndMessages(messages = [])`
132
+ - `mapAnthropicContentToOpenAiDelta(content = [])`
133
+ - `createSingleChunkStream(chunk)`
134
+ - `fetchAnthropicMessage({ apiKey, baseUrl, model, timeoutMs, system = "", messages, tools, temperature = 0.2, signal } = {})`
135
+
136
+ ### `src/server/lib/providers/common.js`
137
+ Exports
138
+ - `SUPPORTED_AI_PROVIDERS`
139
+ - `DEFAULT_AI_PROVIDER`
140
+ - `DEFAULT_AI_TIMEOUT_MS`
141
+ - `normalizeProvider(provider)`
142
+ - `normalizeTimeoutMs(value, fallback = DEFAULT_AI_TIMEOUT_MS)`
143
+ - `normalizeModel(value, fallback = "")`
144
+ - `normalizeOptionalHttpUrl(value, { context = "assistant baseUrl" } = {})`
145
+ - `createDisabledClient({ provider = DEFAULT_AI_PROVIDER, model = "" } = {})`
146
+ - `createProviderRequestError({ status = 500, code = "assistant_provider_failed", message = "" } = {})`
147
+ - `normalizeObject`
148
+ - `normalizeArray`
149
+ - `normalizeContentText(content)`
150
+ - `parseJsonObjectOrDefault(value, fallback = {})`
151
+
152
+ ### `src/server/lib/providers/deepSeekClient.js`
153
+ Exports
154
+ - `createDeepSeekClient(options = {})`
155
+ - `DEFAULT_DEEPSEEK_MODEL`
156
+ - `DEFAULT_DEEPSEEK_BASE_URL`
157
+
158
+ ### `src/server/lib/providers/openAiClient.js`
159
+ Exports
160
+ - `createOpenAiClient(options = {})`
161
+ - `DEFAULT_OPENAI_MODEL`
162
+
163
+ ### `src/server/lib/providers/openAiCompatibleClient.js`
164
+ Exports
165
+ - `createOpenAiCompatibleClient({ enabled = true, apiKey = "", baseUrl = "", model = "", defaultModel = "", provider = "openai", timeoutMs = 120_000 } = {})`
166
+
167
+ ### `src/server/lib/resolveWorkspaceSlug.js`
168
+ Exports
169
+ - `resolveWorkspaceSlug(context = {}, actionInput = null)`
170
+
171
+ ### `src/server/lib/serviceToolCatalog.js`
172
+ Exports
173
+ - `createServiceToolCatalog(scope, { barredActionIds = [], skipActionPrefixes = [] } = {})`
174
+ Local functions
175
+ - `normalizeAssistantExtension(value)`
176
+ - `normalizeAssistantActionExtension(action = {})`
177
+ - `normalizeBarredEntry(value)`
178
+ - `normalizeBarredActionSet(value)`
179
+ - `isActionBarred(barredRules, actionId)`
180
+ - `sanitizeToolName(value)`
181
+ - `resolveUniqueToolName(baseName, used)`
182
+ - `parseToolPayload(argumentsText)`
183
+ - `canInvokeMethod(permission, context)`
184
+ - `normalizePermissionSpec(permission)`
185
+ - `stripWorkspaceSlugFromSchema(schema, context = {})`
186
+ - `hasAutomationChannel(action = {})`
187
+ - `normalizeSurfaceList(value)`
188
+ - `canUseToolOnSurface(entry = {}, context = {})`
189
+ - `resolveActionBackedToolEntries(scope)`
190
+ - `resolveActionToolEntries(scope, { barredActionIds = [], skipActionPrefixes = [] } = {})`
191
+
192
+ ### `src/server/repositories/repositoryPersistenceUtils.js`
193
+ Exports
194
+ - `parseJsonObject`
195
+ - `stringifyJsonObject(value)`
196
+ - `toIso(value)`
197
+ - `resolveInsertedId(insertResult)`
198
+
199
+ ### `src/shared/assistantPaths.js`
200
+ Exports
201
+ - `ASSISTANT_API_RELATIVE_PATH`
202
+ - `ASSISTANT_SETTINGS_API_RELATIVE_PATH`
203
+ - `ASSISTANT_WORKSPACE_API_BASE_PATH_TEMPLATE`
204
+ - `ASSISTANT_PUBLIC_API_BASE_PATH`
205
+ - `ASSISTANT_WORKSPACE_SETTINGS_API_PATH_TEMPLATE`
206
+ - `ASSISTANT_PUBLIC_SETTINGS_API_PATH`
207
+ - `resolveAssistantApiBasePath({ requiresWorkspace = false } = {})`
208
+ - `resolveAssistantSettingsApiPath({ requiresWorkspace = false } = {})`
209
+ - `buildAssistantApiPath({ requiresWorkspace = false, workspaceSlug = "", suffix = "/" } = {})`
210
+ - `buildAssistantSettingsApiPath({ requiresWorkspace = false, workspaceSlug = "", surfaceId = "", suffix = "/" } = {})`
211
+ Local functions
212
+ - `materializeAssistantPath(basePath = "", { workspaceSlug = "", surfaceId = "", suffix = "/" } = {})`
213
+
214
+ ### `src/shared/assistantResource.js`
215
+ Exports
216
+ - `MAX_INPUT_CHARS`
217
+ - `MAX_HISTORY_MESSAGES`
218
+ - `assistantResource`
219
+ Local functions
220
+ - `normalizePaginationValue(value, fallback, max)`
221
+ - `normalizeChatStreamBody(payload = {})`
222
+ - `normalizeConversationsListQuery(payload = {})`
223
+ - `normalizeConversationMessagesQuery(payload = {})`
224
+ - `normalizeConversationMessagesParams(payload = {})`
225
+ - `createOptionalPositiveIntegerQuerySchema(max = null)`
226
+ - `normalizeConversationRecord(payload = {})`
227
+ - `normalizeConversationMessageRecord(payload = {})`
228
+
229
+ ### `src/shared/assistantSettingsResource.js`
230
+ Exports
231
+ - `MAX_SYSTEM_PROMPT_CHARS`
232
+ - `assistantConfigResource`
233
+ Local functions
234
+ - `normalizeConfigPatch(payload = {})`
235
+ - `normalizeConfigRecord(payload = {})`
236
+
237
+ ### `src/shared/index.js`
238
+ Exports
239
+ - `ASSISTANT_API_RELATIVE_PATH`
240
+ - `ASSISTANT_SETTINGS_API_RELATIVE_PATH`
241
+ - `ASSISTANT_WORKSPACE_API_BASE_PATH_TEMPLATE`
242
+ - `ASSISTANT_PUBLIC_API_BASE_PATH`
243
+ - `ASSISTANT_WORKSPACE_SETTINGS_API_PATH_TEMPLATE`
244
+ - `ASSISTANT_PUBLIC_SETTINGS_API_PATH`
245
+ - `resolveAssistantApiBasePath`
246
+ - `resolveAssistantSettingsApiPath`
247
+ - `buildAssistantApiPath`
248
+ - `buildAssistantSettingsApiPath`
249
+ - `ASSISTANT_QUERY_KEY_PREFIX`
250
+ - `assistantRootQueryKey`
251
+ - `assistantScopeQueryKey`
252
+ - `assistantSettingsQueryKey`
253
+ - `assistantConversationsListQueryKey`
254
+ - `assistantConversationMessagesQueryKey`
255
+ - `ASSISTANT_STREAM_EVENT_TYPES`
256
+ - `normalizeAssistantStreamEventType`
257
+ - `MAX_INPUT_CHARS`
258
+ - `MAX_HISTORY_MESSAGES`
259
+ - `assistantResource`
260
+ - `MAX_SYSTEM_PROMPT_CHARS`
261
+ - `assistantConfigResource`
262
+ - `assistantSettingsEvents`
263
+ - `ASSISTANT_CONVERSATION_STATUSES`
264
+ - `normalizeConversationStatus`
265
+ - `parseJsonObject`
266
+ - `toPositiveInteger`
267
+
268
+ ### `src/shared/queryKeys.js`
269
+ Exports
270
+ - `ASSISTANT_QUERY_KEY_PREFIX`
271
+ - `assistantRootQueryKey()`
272
+ - `assistantScopeQueryKey(scope = {})`
273
+ - `assistantSettingsQueryKey(scope = {})`
274
+ - `assistantConversationsListQueryKey(scope = {}, { limit = 20, status = "" } = {})`
275
+ - `assistantConversationMessagesQueryKey(scope = {}, conversationId, { page = 1, pageSize = 200 } = {})`
276
+ Local functions
277
+ - `normalizeSurfaceId(value)`
278
+ - `normalizeWorkspaceSlug(value)`
279
+ - `normalizePositiveInteger(value, fallback)`
280
+ - `normalizeScopeKey({ targetSurfaceId = "", workspaceSlug = "", workspaceId = null } = {})`
281
+ - `normalizeStatus(value)`
282
+ - `normalizeConversationId(value)`
283
+
284
+ ### `src/shared/settingsEvents.js`
285
+ Exports
286
+ - `assistantSettingsEvents`
287
+
288
+ ### `src/shared/streamEvents.js`
289
+ Exports
290
+ - `ASSISTANT_STREAM_EVENT_TYPES`
291
+ - `normalizeAssistantStreamEventType(value, fallback = "")`
292
+
293
+ ### `src/shared/support/conversationStatus.js`
294
+ Exports
295
+ - `ASSISTANT_CONVERSATION_STATUSES`
296
+ - `normalizeConversationStatus(value, { fallback = "" } = {})`
297
+
298
+ ### `src/shared/support/jsonObject.js`
299
+ Exports
300
+ - `parseJsonObject(value)`
301
+
302
+ ### `src/shared/support/positiveInteger.js`
303
+ Exports
304
+ - `toPositiveInteger(value, fallback = 0)`
305
+
306
+ ### root
307
+
308
+ ### `package.descriptor.mjs`
309
+ Exports
310
+ - None
@@ -0,0 +1,219 @@
1
+ # packages/assistant-runtime
2
+
3
+ Generated by `npm run agent-docs:build`.
4
+ Do not edit manually.
5
+
6
+ Generated inventory for `packages/assistant-runtime`.
7
+ Use this on demand; do not load the full index at startup.
8
+
9
+ ## Scope
10
+ - Source: `packages/assistant-runtime/**/*{.js,.mjs,.cjs,.vue}`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`
12
+
13
+ ## Sections
14
+
15
+ ### src
16
+
17
+ ### `src/client/components/AssistantSettingsClientElement.vue`
18
+ Exports
19
+ - None
20
+ Local functions
21
+ - `clearFieldErrors()`
22
+ - `reportAssistantSettingsError(message, dedupeKey)`
23
+ - `submit()`
24
+
25
+ ### `src/client/components/AssistantSurfaceClientElement.vue`
26
+ Exports
27
+ - None
28
+
29
+ ### `src/client/composables/useAssistantRuntime.js`
30
+ Exports
31
+ - `useAssistantRuntime({ api = null, surfaceId = "" } = {})`
32
+ Local functions
33
+ - `toNonNegativeInteger(value, fallback = 0)`
34
+ - `buildScopeStorageKey(scope = {})`
35
+ - `readStoredActiveConversationId(scope = {})`
36
+ - `writeStoredActiveConversationId(scope = {}, conversationId)`
37
+ - `buildId(prefix = "id")`
38
+ - `normalizeToolName(value)`
39
+ - `normalizeConversationStatus(value)`
40
+ - `formatConversationStartedAt(value)`
41
+ - `parseToolResultPayload(value)`
42
+ - `buildHistory(messages)`
43
+ - `mapTranscriptEntriesToAssistantState(entries)`
44
+ - `resolveRuntimePolicy()`
45
+ - `createRuntimeApi({ overrideApi = null, resolveBasePath, resolveSurfaceId = null } = {})`
46
+
47
+ ### `src/client/index.js`
48
+ Exports
49
+ - `AssistantSurfaceClientElement`
50
+ - `AssistantSettingsClientElement`
51
+ - `AssistantClientProvider`
52
+ - `useAssistantRuntime`
53
+
54
+ ### `src/client/providers/AssistantClientProvider.js`
55
+ Exports
56
+ - `AssistantClientProvider`
57
+
58
+ ### `src/server/actionIds.js`
59
+ Exports
60
+ - `actionIds`
61
+
62
+ ### `src/server/actions.js`
63
+ Exports
64
+ - `assistantActions`
65
+
66
+ ### `src/server/AssistantProvider.js`
67
+ Exports
68
+ - `AssistantProvider`
69
+ Local functions
70
+ - `resolveGlobalAssistantConfig(scope)`
71
+ - `createAssistantAiClientFactory(config = {})`
72
+
73
+ ### `src/server/inputValidators.js`
74
+ Exports
75
+ - `assistantSurfaceRouteParamsValidator`
76
+ - `assistantTargetSurfaceInputValidator`
77
+
78
+ ### `src/server/registerRoutes.js`
79
+ Exports
80
+ - `registerRoutes(app)`
81
+ Local functions
82
+ - `buildRouteParamsValidator(requiresWorkspace)`
83
+ - `buildConversationMessagesRouteParamsValidator(requiresWorkspace)`
84
+ - `readWorkspaceInput(request, requiresWorkspace)`
85
+ - `requireAssistantSurface(appConfig = {}, targetSurfaceId = "")`
86
+ - `requireHostSurfaceId(request)`
87
+ - `shouldExposeAppErrorDetails(errorCode = "")`
88
+ - `sendPreStreamErrorResponse(reply, error)`
89
+ - `resolveRouteRequestState(request, { resolveCurrentAppConfig = () => ({}), kind = "runtime", requiresWorkspace = false } = {})`
90
+ - `registerSettingsRoutes(router, resolveCurrentAppConfig, { requiresWorkspace = false } = {})`
91
+ - `registerRuntimeRoutes(router, resolveCurrentAppConfig, { requiresWorkspace = false } = {})`
92
+
93
+ ### `src/server/repositories/assistantConfigRepository.js`
94
+ Exports
95
+ - `createRepository(knex)`
96
+ Local functions
97
+ - `normalizeTargetSurfaceId(value = "")`
98
+ - `normalizeWorkspaceId(value)`
99
+ - `normalizeWorkspaceDbId(value)`
100
+ - `buildScopeKey(targetSurfaceId, workspaceId = null)`
101
+ - `mapConfigRow(row = {})`
102
+ - `createDefaultRecord({ targetSurfaceId = "", workspaceId = null } = {})`
103
+
104
+ ### `src/server/repositories/conversationsRepository.js`
105
+ Exports
106
+ - `createRepository(knex)`
107
+ Local functions
108
+ - `normalizeWorkspaceId(value)`
109
+ - `normalizeDbWorkspaceId(value)`
110
+ - `normalizeInputRecordId(value)`
111
+ - `normalizeRequiredSurfaceId(value)`
112
+ - `applyWorkspaceScope(query, columnName, workspaceId)`
113
+ - `mapConversationRow(row = {})`
114
+ - `normalizeCursorPagination(pagination = {}, { defaultLimit = 20, maxLimit = 200 } = {})`
115
+ - `createConversationBaseQuery(client)`
116
+
117
+ ### `src/server/repositories/messagesRepository.js`
118
+ Exports
119
+ - `createRepository(knex)`
120
+ Local functions
121
+ - `normalizeWorkspaceId(value)`
122
+ - `normalizeDbWorkspaceId(value)`
123
+ - `normalizeInputRecordId(value)`
124
+ - `applyWorkspaceScope(query, columnName, workspaceId)`
125
+ - `mapMessageRow(row = {})`
126
+ - `normalizePagination(pagination = {}, { defaultPage = 1, defaultPageSize = 200, maxPageSize = 500 } = {})`
127
+ - `resolveNextSequence(client, conversationId)`
128
+
129
+ ### `src/server/services/assistantConfigService.js`
130
+ Exports
131
+ - `createService({ assistantConfigRepository, consoleService = null, appConfig = {}, resolveAppConfig = null } = {})`
132
+
133
+ ### `src/server/services/chatService.js`
134
+ Exports
135
+ - `createChatService({ aiClientFactory, transcriptService, serviceToolCatalog, assistantConfigService, appConfig = {}, resolveAppConfig = null } = {})`
136
+ Local functions
137
+ - `normalizeConversationId(value)`
138
+ - `normalizeHistory(history = [])`
139
+ - `normalizeStreamInput(payload = {})`
140
+ - `hasStreamWriter(streamWriter)`
141
+ - `isAbortError(error)`
142
+ - `extractTextDelta(deltaContent)`
143
+ - `toCompactJson(value, fallback = "{}")`
144
+ - `buildToolContractLine(toolDescriptor = {})`
145
+ - `buildSystemPrompt({ targetSurfaceId = "", toolDescriptors = [], workspaceSlug = "", customSystemPrompt = "" } = {})`
146
+ - `buildRecoveryPrompt({ reason = "", toolFailures = [], toolSuccesses = [] } = {})`
147
+ - `buildRecoveryFallbackAnswer({ reason = "", toolFailures = [], toolSuccesses = [] } = {})`
148
+ - `toSafeToolResultText(value)`
149
+ - `buildToolOutcomeFallbackAnswer({ toolFailures = [], toolSuccesses = [] } = {})`
150
+ - `sanitizeAssistantMessageText(value)`
151
+ - `buildAssistantToolCallMessage({ assistantText = "", toolCalls = [] } = {})`
152
+ - `parseDsmlToolCallsFromText(value = "")`
153
+ - `createDsmlDeltaSanitizer()`
154
+ - `consumeCompletionStream({ stream, streamWriter, emitDeltas = true, deltaSanitizer = null } = {})`
155
+ - `mergeAssistantMessageText(streamedText = "", completionText = "")`
156
+ - `requireAssistantSurface(appConfig = {}, targetSurfaceId = "")`
157
+ - `buildAssistantActionContext(context = {}, assistantSurface = {})`
158
+
159
+ ### `src/server/services/transcriptService.js`
160
+ Exports
161
+ - `createTranscriptService({ conversationsRepository, messagesRepository } = {})`
162
+ Local functions
163
+ - `resolveWorkspaceId(workspace, { required = false } = {})`
164
+ - `resolveActorUserId(user, { required = false } = {})`
165
+ - `normalizePagination(pagination = {}, { defaultPageSize = DEFAULT_PAGE_SIZE, maxPageSize = MAX_PAGE_SIZE } = {})`
166
+ - `normalizeCursorPagination(query = {}, { defaultLimit = DEFAULT_PAGE_SIZE, maxLimit = MAX_PAGE_SIZE } = {})`
167
+ - `deriveConversationTitleFromMessage(contentText)`
168
+ - `isDefaultConversationTitle(value)`
169
+ - `requireAssistantSurface(assistantSurface = {})`
170
+
171
+ ### `src/server/support/assistantServerConfig.js`
172
+ Exports
173
+ - `resolveAssistantServerConfigMap(appConfig = {})`
174
+ - `resolveAssistantServerConfig(appConfig = {}, targetSurfaceId = "")`
175
+ - `resolveAssistantAiConfig({ appConfig = {}, env = {} } = {}, targetSurfaceId = "")`
176
+ Local functions
177
+ - `readPrefixedEnvValue(env = {}, prefix = "", key = "")`
178
+
179
+ ### `src/server/support/createSurfaceAwareToolCatalog.js`
180
+ Exports
181
+ - `createSurfaceAwareToolCatalog(scope, { appConfig = {}, resolveAppConfig = null, createCatalog = createServiceToolCatalog } = {})`
182
+ Local functions
183
+ - `buildCatalogOptions(appConfig = {}, surfaceId = "")`
184
+ - `requireContextSurfaceId(context = {})`
185
+
186
+ ### `src/shared/assistantRuntimeConfig.js`
187
+ Exports
188
+ - `assistantRuntimeConfig`
189
+
190
+ ### `src/shared/assistantSurfaces.js`
191
+ Exports
192
+ - `normalizeAssistantConfigScope(value = "")`
193
+ - `resolveAssistantSurfaceConfig(appConfig = {}, targetSurfaceId = "")`
194
+ - `resolveAssistantSurfacesConfig(appConfig = {})`
195
+ - `resolveSurfaceDefinitions(appConfig = {})`
196
+
197
+ ### `src/shared/index.js`
198
+ Exports
199
+ - `assistantRuntimeConfig`
200
+ - `normalizeAssistantConfigScope`
201
+ - `resolveAssistantSurfaceConfig`
202
+ - `resolveAssistantSurfacesConfig`
203
+ - `resolveSurfaceDefinitions`
204
+
205
+ ### templates
206
+
207
+ ### `templates/migrations/assistant_config_initial.cjs`
208
+ Exports
209
+ - None
210
+
211
+ ### `templates/migrations/assistant_transcripts_initial.cjs`
212
+ Exports
213
+ - None
214
+
215
+ ### root
216
+
217
+ ### `package.descriptor.mjs`
218
+ Exports
219
+ - None
@@ -0,0 +1,73 @@
1
+ # packages/assistant
2
+
3
+ Generated by `npm run agent-docs:build`.
4
+ Do not edit manually.
5
+
6
+ Generated inventory for `packages/assistant`.
7
+ Use this on demand; do not load the full index at startup.
8
+
9
+ ## Scope
10
+ - Source: `packages/assistant/**/*{.js,.mjs,.cjs,.vue}`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`
12
+
13
+ ## Sections
14
+
15
+ ### src
16
+
17
+ ### `src/server/buildTemplateContext.js`
18
+ Exports
19
+ - `buildTemplateContext({ appRoot, options } = {})`
20
+
21
+ ### `src/server/pageSupport.js`
22
+ Exports
23
+ - `readAssistantPageTemplateSource(kind = "page")`
24
+ - `renderAssistantPageSource(templateSource = "", surfaceId = "")`
25
+ - `resolveAssistantPageGenerationContext({ appRoot, targetFile = "", options = {}, context = "assistant page" } = {})`
26
+ - `renderAssistantPageLinkPlacementBlock({ marker = "", pageTarget = {}, generationContext = {} } = {})`
27
+ - `renderAssistantPageSummary(pageTarget = {}, { pageAlreadyExisted = false, pageOverwritten = false } = {})`
28
+ Local functions
29
+ - `resolveLinkToPropLine(linkTo = "")`
30
+ - `resolveTemplateFilePath(relativePath = "")`
31
+
32
+ ### `src/server/subcommands/page.js`
33
+ Exports
34
+ - `runGeneratorSubcommand({ appRoot, subcommand = "", args = [], options = {}, dryRun = false } = {})`
35
+
36
+ ### `src/server/subcommands/settingsPage.js`
37
+ Exports
38
+ - `runGeneratorSubcommand({ appRoot, subcommand = "", args = [], options = {}, dryRun = false } = {})`
39
+
40
+ ### `src/server/subcommands/support.js`
41
+ Exports
42
+ - `PLACEMENT_FILE`
43
+ - `requireSinglePositionalTargetFile(args = [], { context = "assistant" } = {})`
44
+ - `rejectUnexpectedOptions(options = {}, allowedOptionNames = [], { context = "assistant" } = {})`
45
+ - `resolvePathWithinApp(appRoot, targetPath, { context = "assistant" } = {})`
46
+ - `appendBlockIfMarkerMissing(source = "", marker = "", block = "")`
47
+ - `requireEmptyPageSource(existingSource = "", targetRelativePath = "", { context = "assistant", forceOverwrite = false } = {})`
48
+ Local functions
49
+ - `ensureTrailingNewline(value = "")`
50
+
51
+ ### `src/server/support.js`
52
+ Exports
53
+ - `normalizeConfigScope(value = "")`
54
+ - `loadAppConfig(appRoot = "")`
55
+ - `resolveSurfaceDefinition(appConfig = {}, surfaceId = "", optionName = "surface")`
56
+ - `assertAssistantSurfaceIsAvailable(appConfig = {}, surfaceId = "")`
57
+ - `resolveAiConfigPrefix(surfaceId = "", explicitPrefix = "")`
58
+
59
+ ### templates
60
+
61
+ ### `templates/src/pages/assistant/index.vue`
62
+ Exports
63
+ - None
64
+
65
+ ### `templates/src/pages/settings/assistant/index.vue`
66
+ Exports
67
+ - None
68
+
69
+ ### root
70
+
71
+ ### `package.descriptor.mjs`
72
+ Exports
73
+ - None