@jskit-ai/jskit-catalog 0.1.32 → 0.1.34
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.
- package/catalog/packages.json +1121 -700
- package/package.json +1 -1
package/catalog/packages.json
CHANGED
|
@@ -6,14 +6,56 @@
|
|
|
6
6
|
"packages": [
|
|
7
7
|
{
|
|
8
8
|
"packageId": "@jskit-ai/assistant",
|
|
9
|
-
"version": "0.1.
|
|
9
|
+
"version": "0.1.35",
|
|
10
10
|
"descriptor": {
|
|
11
11
|
"packageVersion": 1,
|
|
12
12
|
"packageId": "@jskit-ai/assistant",
|
|
13
|
-
"version": "0.1.
|
|
14
|
-
"kind": "
|
|
15
|
-
"description": "
|
|
13
|
+
"version": "0.1.35",
|
|
14
|
+
"kind": "generator",
|
|
15
|
+
"description": "Generate an app-local assistant runtime and settings integration from explicit surface choices.",
|
|
16
16
|
"options": {
|
|
17
|
+
"runtime-surface": {
|
|
18
|
+
"required": true,
|
|
19
|
+
"inputType": "text",
|
|
20
|
+
"defaultValue": "",
|
|
21
|
+
"promptLabel": "Runtime surface",
|
|
22
|
+
"promptHint": "Enabled surface id where the assistant page will run."
|
|
23
|
+
},
|
|
24
|
+
"settings-surface": {
|
|
25
|
+
"required": true,
|
|
26
|
+
"inputType": "text",
|
|
27
|
+
"defaultValue": "",
|
|
28
|
+
"promptLabel": "Settings surface",
|
|
29
|
+
"promptHint": "Enabled surface id whose settings outlet will host the assistant settings form."
|
|
30
|
+
},
|
|
31
|
+
"config-scope": {
|
|
32
|
+
"required": true,
|
|
33
|
+
"inputType": "text",
|
|
34
|
+
"defaultValue": "global",
|
|
35
|
+
"promptLabel": "Config scope",
|
|
36
|
+
"promptHint": "global | workspace. Workspace scope requires both selected surfaces to requireWorkspace=true."
|
|
37
|
+
},
|
|
38
|
+
"placement": {
|
|
39
|
+
"required": false,
|
|
40
|
+
"inputType": "text",
|
|
41
|
+
"defaultValue": "",
|
|
42
|
+
"promptLabel": "Menu placement",
|
|
43
|
+
"promptHint": "Optional host:position target for the assistant page menu entry."
|
|
44
|
+
},
|
|
45
|
+
"placement-component-token": {
|
|
46
|
+
"required": false,
|
|
47
|
+
"inputType": "text",
|
|
48
|
+
"defaultValue": "users.web.shell.surface-aware-menu-link-item",
|
|
49
|
+
"promptLabel": "Placement component token",
|
|
50
|
+
"promptHint": "Menu placement component token for the assistant page entry."
|
|
51
|
+
},
|
|
52
|
+
"menu-label": {
|
|
53
|
+
"required": false,
|
|
54
|
+
"inputType": "text",
|
|
55
|
+
"defaultValue": "Assistant",
|
|
56
|
+
"promptLabel": "Menu label",
|
|
57
|
+
"promptHint": "Menu label for the assistant page entry."
|
|
58
|
+
},
|
|
17
59
|
"ai-provider": {
|
|
18
60
|
"required": true,
|
|
19
61
|
"defaultValue": "openai",
|
|
@@ -39,101 +81,121 @@
|
|
|
39
81
|
"defaultValue": "120000",
|
|
40
82
|
"promptLabel": "AI timeout (ms)",
|
|
41
83
|
"promptHint": "Abort AI requests after this many milliseconds."
|
|
42
|
-
},
|
|
43
|
-
"surfaces": {
|
|
44
|
-
"required": true,
|
|
45
|
-
"inputType": "text",
|
|
46
|
-
"defaultValue": "admin",
|
|
47
|
-
"promptLabel": "Target workspace surfaces",
|
|
48
|
-
"promptHint": "Comma-separated workspace surface ids for assistant page + menu placement (for example: admin,app)."
|
|
49
84
|
}
|
|
50
85
|
},
|
|
51
|
-
"dependsOn": [
|
|
52
|
-
"@jskit-ai/auth-core",
|
|
53
|
-
"@jskit-ai/database-runtime",
|
|
54
|
-
"@jskit-ai/http-runtime",
|
|
55
|
-
"@jskit-ai/realtime",
|
|
56
|
-
"@jskit-ai/users-core",
|
|
57
|
-
"@jskit-ai/users-web"
|
|
58
|
-
],
|
|
86
|
+
"dependsOn": [],
|
|
59
87
|
"capabilities": {
|
|
60
88
|
"provides": [
|
|
61
|
-
"assistant"
|
|
89
|
+
"assistant-generator"
|
|
62
90
|
],
|
|
63
|
-
"requires": [
|
|
64
|
-
"runtime.actions",
|
|
65
|
-
"runtime.database",
|
|
66
|
-
"auth.policy",
|
|
67
|
-
"users.core",
|
|
68
|
-
"users.web",
|
|
69
|
-
"runtime.realtime.client"
|
|
70
|
-
]
|
|
91
|
+
"requires": []
|
|
71
92
|
},
|
|
72
93
|
"runtime": {
|
|
73
94
|
"server": {
|
|
74
|
-
"providers": [
|
|
75
|
-
{
|
|
76
|
-
"entrypoint": "src/server/AssistantServiceProvider.js",
|
|
77
|
-
"export": "AssistantServiceProvider"
|
|
78
|
-
}
|
|
79
|
-
]
|
|
95
|
+
"providers": []
|
|
80
96
|
},
|
|
81
97
|
"client": {
|
|
82
|
-
"providers": [
|
|
83
|
-
{
|
|
84
|
-
"entrypoint": "src/client/providers/AssistantWebClientProvider.js",
|
|
85
|
-
"export": "AssistantWebClientProvider"
|
|
86
|
-
}
|
|
87
|
-
]
|
|
98
|
+
"providers": []
|
|
88
99
|
}
|
|
89
100
|
},
|
|
90
101
|
"metadata": {
|
|
102
|
+
"generatorPrimarySubcommand": "install",
|
|
103
|
+
"generatorSubcommands": {
|
|
104
|
+
"install": {
|
|
105
|
+
"description": "Generate and install an app-local assistant runtime from explicit surface choices.",
|
|
106
|
+
"examples": [
|
|
107
|
+
{
|
|
108
|
+
"label": "App runtime, console settings, global config",
|
|
109
|
+
"lines": [
|
|
110
|
+
"npx jskit generate @jskit-ai/assistant install \\",
|
|
111
|
+
" --runtime-surface app \\",
|
|
112
|
+
" --settings-surface console \\",
|
|
113
|
+
" --config-scope global \\",
|
|
114
|
+
" --placement shell-layout:primary-menu \\",
|
|
115
|
+
" --menu-label Assistant \\",
|
|
116
|
+
" --ai-provider openai \\",
|
|
117
|
+
" --ai-api-key \"$OPENAI_API_KEY\" \\",
|
|
118
|
+
" --ai-base-url \"\" \\",
|
|
119
|
+
" --ai-timeout-ms 120000 \\",
|
|
120
|
+
" --run-npm-install"
|
|
121
|
+
]
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"label": "App runtime, app settings, global config",
|
|
125
|
+
"lines": [
|
|
126
|
+
"npx jskit generate @jskit-ai/assistant install \\",
|
|
127
|
+
" --runtime-surface app \\",
|
|
128
|
+
" --settings-surface app \\",
|
|
129
|
+
" --config-scope global \\",
|
|
130
|
+
" --placement shell-layout:primary-menu \\",
|
|
131
|
+
" --menu-label Assistant \\",
|
|
132
|
+
" --ai-provider openai \\",
|
|
133
|
+
" --ai-api-key \"$OPENAI_API_KEY\" \\",
|
|
134
|
+
" --ai-base-url \"\" \\",
|
|
135
|
+
" --ai-timeout-ms 120000 \\",
|
|
136
|
+
" --run-npm-install"
|
|
137
|
+
]
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
"label": "Workspace runtime, console settings, global config",
|
|
141
|
+
"lines": [
|
|
142
|
+
"npx jskit generate @jskit-ai/assistant install \\",
|
|
143
|
+
" --runtime-surface admin \\",
|
|
144
|
+
" --settings-surface console \\",
|
|
145
|
+
" --config-scope global \\",
|
|
146
|
+
" --placement shell-layout:primary-menu \\",
|
|
147
|
+
" --menu-label Assistant \\",
|
|
148
|
+
" --ai-provider openai \\",
|
|
149
|
+
" --ai-api-key \"$OPENAI_API_KEY\" \\",
|
|
150
|
+
" --ai-base-url \"\" \\",
|
|
151
|
+
" --ai-timeout-ms 120000 \\",
|
|
152
|
+
" --run-npm-install"
|
|
153
|
+
]
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"label": "Workspace runtime, workspace settings, workspace config",
|
|
157
|
+
"lines": [
|
|
158
|
+
"npx jskit generate @jskit-ai/assistant install \\",
|
|
159
|
+
" --runtime-surface admin \\",
|
|
160
|
+
" --settings-surface admin \\",
|
|
161
|
+
" --config-scope workspace \\",
|
|
162
|
+
" --placement shell-layout:primary-menu \\",
|
|
163
|
+
" --menu-label Assistant \\",
|
|
164
|
+
" --ai-provider openai \\",
|
|
165
|
+
" --ai-api-key \"$OPENAI_API_KEY\" \\",
|
|
166
|
+
" --ai-base-url \"\" \\",
|
|
167
|
+
" --ai-timeout-ms 120000 \\",
|
|
168
|
+
" --run-npm-install"
|
|
169
|
+
]
|
|
170
|
+
}
|
|
171
|
+
]
|
|
172
|
+
}
|
|
173
|
+
},
|
|
91
174
|
"apiSummary": {
|
|
92
175
|
"surfaces": [
|
|
93
176
|
{
|
|
94
|
-
"subpath": "./server/
|
|
95
|
-
"summary": "
|
|
96
|
-
},
|
|
97
|
-
{
|
|
98
|
-
"subpath": "./client",
|
|
99
|
-
"summary": "Exports assistant workspace element and composables."
|
|
100
|
-
},
|
|
101
|
-
{
|
|
102
|
-
"subpath": "./shared",
|
|
103
|
-
"summary": "Exports assistant API paths, query keys, stream events, and resource validators."
|
|
177
|
+
"subpath": "./server/buildTemplateContext",
|
|
178
|
+
"summary": "Builds deterministic assistant generator template context values from app surface metadata."
|
|
104
179
|
}
|
|
105
180
|
],
|
|
106
181
|
"containerTokens": {
|
|
107
|
-
"server": [
|
|
108
|
-
|
|
109
|
-
"assistant.conversation.repository",
|
|
110
|
-
"assistant.message.repository",
|
|
111
|
-
"assistant.service.tool-catalog",
|
|
112
|
-
"assistant.settings.repository"
|
|
113
|
-
],
|
|
114
|
-
"client": [
|
|
115
|
-
"assistant.web.console-settings.element",
|
|
116
|
-
"assistant.web.workspace-settings.element"
|
|
117
|
-
]
|
|
182
|
+
"server": [],
|
|
183
|
+
"client": []
|
|
118
184
|
}
|
|
119
185
|
}
|
|
120
186
|
},
|
|
121
187
|
"mutations": {
|
|
122
188
|
"dependencies": {
|
|
123
189
|
"runtime": {
|
|
124
|
-
"@
|
|
125
|
-
"@jskit-ai/
|
|
126
|
-
"@jskit-ai/database-runtime": "0.1.
|
|
127
|
-
"@jskit-ai/http-runtime": "0.1.
|
|
128
|
-
"@jskit-ai/kernel": "0.1.
|
|
129
|
-
"@jskit-ai/
|
|
130
|
-
"@jskit-ai/users-core": "0.1.
|
|
131
|
-
"@jskit-ai/users-web": "0.1.
|
|
190
|
+
"@local/assistant": "file:packages/assistant",
|
|
191
|
+
"@jskit-ai/assistant-core": "0.1.2",
|
|
192
|
+
"@jskit-ai/database-runtime": "0.1.26",
|
|
193
|
+
"@jskit-ai/http-runtime": "0.1.25",
|
|
194
|
+
"@jskit-ai/kernel": "0.1.26",
|
|
195
|
+
"@jskit-ai/shell-web": "0.1.25",
|
|
196
|
+
"@jskit-ai/users-core": "0.1.36",
|
|
197
|
+
"@jskit-ai/users-web": "0.1.41",
|
|
132
198
|
"@tanstack/vue-query": "^5.90.5",
|
|
133
|
-
"dompurify": "^3.3.3",
|
|
134
|
-
"marked": "^17.0.4",
|
|
135
|
-
"openai": "^6.22.0",
|
|
136
|
-
"typebox": "^1.0.81",
|
|
137
199
|
"vuetify": "^4.0.0"
|
|
138
200
|
},
|
|
139
201
|
"dev": {}
|
|
@@ -145,118 +207,251 @@
|
|
|
145
207
|
"files": [
|
|
146
208
|
{
|
|
147
209
|
"op": "install-migration",
|
|
148
|
-
"from": "templates/migrations/
|
|
210
|
+
"from": "templates/migrations/assistant_config_initial.cjs",
|
|
149
211
|
"toDir": "migrations",
|
|
150
212
|
"extension": ".cjs",
|
|
151
|
-
"reason": "Install assistant
|
|
213
|
+
"reason": "Install assistant configuration schema migration.",
|
|
152
214
|
"category": "assistant",
|
|
153
|
-
"id": "assistant-
|
|
215
|
+
"id": "assistant-config-initial-schema",
|
|
216
|
+
"templateContext": {
|
|
217
|
+
"entrypoint": "src/server/buildTemplateContext.js",
|
|
218
|
+
"export": "buildTemplateContext"
|
|
219
|
+
}
|
|
154
220
|
},
|
|
155
221
|
{
|
|
156
222
|
"op": "install-migration",
|
|
157
|
-
"from": "templates/migrations/
|
|
223
|
+
"from": "templates/migrations/assistant_transcripts_initial.cjs",
|
|
158
224
|
"toDir": "migrations",
|
|
159
225
|
"extension": ".cjs",
|
|
160
|
-
"reason": "Install assistant
|
|
226
|
+
"reason": "Install assistant transcript schema migration.",
|
|
227
|
+
"category": "assistant",
|
|
228
|
+
"id": "assistant-transcripts-initial-schema",
|
|
229
|
+
"templateContext": {
|
|
230
|
+
"entrypoint": "src/server/buildTemplateContext.js",
|
|
231
|
+
"export": "buildTemplateContext"
|
|
232
|
+
}
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
"from": "templates/src/local-package/package.json",
|
|
236
|
+
"to": "packages/assistant/package.json",
|
|
237
|
+
"reason": "Install app-local assistant package manifest.",
|
|
161
238
|
"category": "assistant",
|
|
162
|
-
"id": "assistant-
|
|
239
|
+
"id": "assistant-local-package-json"
|
|
163
240
|
},
|
|
164
241
|
{
|
|
165
|
-
"from": "templates/src/
|
|
166
|
-
"
|
|
167
|
-
"
|
|
168
|
-
"reason": "Install assistant workspace page scaffold.",
|
|
242
|
+
"from": "templates/src/local-package/package.descriptor.mjs",
|
|
243
|
+
"to": "packages/assistant/package.descriptor.mjs",
|
|
244
|
+
"reason": "Install app-local assistant package descriptor.",
|
|
169
245
|
"category": "assistant",
|
|
170
|
-
"id": "assistant-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
246
|
+
"id": "assistant-local-package-descriptor"
|
|
247
|
+
},
|
|
248
|
+
{
|
|
249
|
+
"from": "templates/src/local-package/shared/assistantRuntimeConfig.js",
|
|
250
|
+
"to": "packages/assistant/src/shared/assistantRuntimeConfig.js",
|
|
251
|
+
"reason": "Install generated assistant runtime configuration.",
|
|
252
|
+
"category": "assistant",
|
|
253
|
+
"id": "assistant-local-runtime-config",
|
|
254
|
+
"templateContext": {
|
|
255
|
+
"entrypoint": "src/server/buildTemplateContext.js",
|
|
256
|
+
"export": "buildTemplateContext"
|
|
177
257
|
}
|
|
178
|
-
}
|
|
179
|
-
],
|
|
180
|
-
"text": [
|
|
258
|
+
},
|
|
181
259
|
{
|
|
182
|
-
"
|
|
183
|
-
"
|
|
184
|
-
"
|
|
185
|
-
"skipIfContains": "id: \"assistant.workspace.menu\"",
|
|
186
|
-
"value": "\n(() => {\n const assistantWorkspaceSurfaceIds = \"${option:surfaces|lower}\"\n .split(\",\")\n .map((entry) => String(entry || \"\").trim().toLowerCase())\n .filter(Boolean);\n\n addPlacement({\n id: \"assistant.workspace.menu\",\n host: \"shell-layout\",\n position: \"primary-menu\",\n surfaces: assistantWorkspaceSurfaceIds.length > 0 ? assistantWorkspaceSurfaceIds : [\"*\"],\n order: 310,\n componentToken: \"users.web.shell.surface-aware-menu-link-item\",\n props: {\n label: \"Assistant\",\n workspaceSuffix: \"/workspace/assistant\",\n nonWorkspaceSuffix: \"/workspace/assistant\"\n },\n when: ({ auth }) => Boolean(auth?.authenticated)\n });\n})();\n",
|
|
187
|
-
"reason": "Append assistant menu placement into app-owned placement registry.",
|
|
260
|
+
"from": "templates/src/local-package/shared/index.js",
|
|
261
|
+
"to": "packages/assistant/src/shared/index.js",
|
|
262
|
+
"reason": "Install generated assistant shared exports.",
|
|
188
263
|
"category": "assistant",
|
|
189
|
-
"id": "assistant-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
264
|
+
"id": "assistant-local-shared-index"
|
|
265
|
+
},
|
|
266
|
+
{
|
|
267
|
+
"from": "templates/src/local-package/client/index.js",
|
|
268
|
+
"to": "packages/assistant/src/client/index.js",
|
|
269
|
+
"reason": "Install generated assistant client exports.",
|
|
270
|
+
"category": "assistant",
|
|
271
|
+
"id": "assistant-local-client-index"
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
"from": "templates/src/local-package/client/components/AssistantSurfaceClientElement.vue",
|
|
275
|
+
"to": "packages/assistant/src/client/components/AssistantSurfaceClientElement.vue",
|
|
276
|
+
"reason": "Install generated assistant surface page component.",
|
|
277
|
+
"category": "assistant",
|
|
278
|
+
"id": "assistant-local-surface-client-element",
|
|
279
|
+
"templateContext": {
|
|
280
|
+
"entrypoint": "src/server/buildTemplateContext.js",
|
|
281
|
+
"export": "buildTemplateContext"
|
|
196
282
|
}
|
|
197
283
|
},
|
|
198
284
|
{
|
|
199
|
-
"
|
|
200
|
-
"
|
|
201
|
-
"
|
|
202
|
-
"skipIfContains": "id: \"assistant.workspace.settings.form\"",
|
|
203
|
-
"value": "\naddPlacement({\n id: \"assistant.workspace.settings.form\",\n host: \"workspace-settings\",\n position: \"forms\",\n surfaces: [\"*\"],\n order: 250,\n componentToken: \"assistant.web.workspace-settings.element\"\n});\n",
|
|
204
|
-
"reason": "Append assistant workspace settings form into app-owned settings placements.",
|
|
285
|
+
"from": "templates/src/local-package/client/components/AssistantSettingsClientElement.vue",
|
|
286
|
+
"to": "packages/assistant/src/client/components/AssistantSettingsClientElement.vue",
|
|
287
|
+
"reason": "Install generated assistant settings form component.",
|
|
205
288
|
"category": "assistant",
|
|
206
|
-
"id": "assistant-
|
|
207
|
-
"
|
|
208
|
-
"
|
|
209
|
-
"
|
|
210
|
-
"personal",
|
|
211
|
-
"workspaces"
|
|
212
|
-
]
|
|
289
|
+
"id": "assistant-local-settings-client-element",
|
|
290
|
+
"templateContext": {
|
|
291
|
+
"entrypoint": "src/server/buildTemplateContext.js",
|
|
292
|
+
"export": "buildTemplateContext"
|
|
213
293
|
}
|
|
214
294
|
},
|
|
215
295
|
{
|
|
216
|
-
"
|
|
217
|
-
"
|
|
218
|
-
"
|
|
219
|
-
"skipIfContains": "id: \"assistant.console.settings.form\"",
|
|
220
|
-
"value": "\naddPlacement({\n id: \"assistant.console.settings.form\",\n host: \"console-settings\",\n position: \"forms\",\n surfaces: [\"*\"],\n order: 250,\n componentToken: \"assistant.web.console-settings.element\",\n when: ({ auth }) => Boolean(auth?.authenticated)\n});\n",
|
|
221
|
-
"reason": "Append assistant console settings form into app-owned settings placements.",
|
|
296
|
+
"from": "templates/src/local-package/client/composables/useAssistantRuntime.js",
|
|
297
|
+
"to": "packages/assistant/src/client/composables/useAssistantRuntime.js",
|
|
298
|
+
"reason": "Install generated assistant runtime composable.",
|
|
222
299
|
"category": "assistant",
|
|
223
|
-
"id": "assistant-
|
|
300
|
+
"id": "assistant-local-runtime-composable",
|
|
301
|
+
"templateContext": {
|
|
302
|
+
"entrypoint": "src/server/buildTemplateContext.js",
|
|
303
|
+
"export": "buildTemplateContext"
|
|
304
|
+
}
|
|
224
305
|
},
|
|
225
306
|
{
|
|
226
|
-
"
|
|
227
|
-
"
|
|
228
|
-
"
|
|
229
|
-
"
|
|
230
|
-
"
|
|
231
|
-
|
|
307
|
+
"from": "templates/src/local-package/client/providers/AssistantClientProvider.js",
|
|
308
|
+
"to": "packages/assistant/src/client/providers/AssistantClientProvider.js",
|
|
309
|
+
"reason": "Install generated assistant client provider.",
|
|
310
|
+
"category": "assistant",
|
|
311
|
+
"id": "assistant-local-client-provider"
|
|
312
|
+
},
|
|
313
|
+
{
|
|
314
|
+
"from": "templates/src/local-package/server/AssistantProvider.js",
|
|
315
|
+
"to": "packages/assistant/src/server/AssistantProvider.js",
|
|
316
|
+
"reason": "Install generated assistant server provider.",
|
|
317
|
+
"category": "assistant",
|
|
318
|
+
"id": "assistant-local-server-provider",
|
|
319
|
+
"templateContext": {
|
|
320
|
+
"entrypoint": "src/server/buildTemplateContext.js",
|
|
321
|
+
"export": "buildTemplateContext"
|
|
322
|
+
}
|
|
323
|
+
},
|
|
324
|
+
{
|
|
325
|
+
"from": "templates/src/local-package/server/actionIds.js",
|
|
326
|
+
"to": "packages/assistant/src/server/actionIds.js",
|
|
327
|
+
"reason": "Install generated assistant action identifiers.",
|
|
328
|
+
"category": "assistant",
|
|
329
|
+
"id": "assistant-local-action-ids"
|
|
330
|
+
},
|
|
331
|
+
{
|
|
332
|
+
"from": "templates/src/local-package/server/actions.js",
|
|
333
|
+
"to": "packages/assistant/src/server/actions.js",
|
|
334
|
+
"reason": "Install generated assistant action definitions.",
|
|
335
|
+
"category": "assistant",
|
|
336
|
+
"id": "assistant-local-actions",
|
|
337
|
+
"templateContext": {
|
|
338
|
+
"entrypoint": "src/server/buildTemplateContext.js",
|
|
339
|
+
"export": "buildTemplateContext"
|
|
340
|
+
}
|
|
341
|
+
},
|
|
342
|
+
{
|
|
343
|
+
"from": "templates/src/local-package/server/registerRoutes.js",
|
|
344
|
+
"to": "packages/assistant/src/server/registerRoutes.js",
|
|
345
|
+
"reason": "Install generated assistant route registration.",
|
|
346
|
+
"category": "assistant",
|
|
347
|
+
"id": "assistant-local-register-routes",
|
|
348
|
+
"templateContext": {
|
|
349
|
+
"entrypoint": "src/server/buildTemplateContext.js",
|
|
350
|
+
"export": "buildTemplateContext"
|
|
351
|
+
}
|
|
352
|
+
},
|
|
353
|
+
{
|
|
354
|
+
"from": "templates/src/local-package/server/repositories/assistantConfigRepository.js",
|
|
355
|
+
"to": "packages/assistant/src/server/repositories/assistantConfigRepository.js",
|
|
356
|
+
"reason": "Install generated assistant config repository.",
|
|
357
|
+
"category": "assistant",
|
|
358
|
+
"id": "assistant-local-config-repository",
|
|
359
|
+
"templateContext": {
|
|
360
|
+
"entrypoint": "src/server/buildTemplateContext.js",
|
|
361
|
+
"export": "buildTemplateContext"
|
|
362
|
+
}
|
|
363
|
+
},
|
|
364
|
+
{
|
|
365
|
+
"from": "templates/src/local-package/server/repositories/conversationsRepository.js",
|
|
366
|
+
"to": "packages/assistant/src/server/repositories/conversationsRepository.js",
|
|
367
|
+
"reason": "Install generated assistant conversations repository.",
|
|
368
|
+
"category": "assistant",
|
|
369
|
+
"id": "assistant-local-conversations-repository",
|
|
370
|
+
"templateContext": {
|
|
371
|
+
"entrypoint": "src/server/buildTemplateContext.js",
|
|
372
|
+
"export": "buildTemplateContext"
|
|
373
|
+
}
|
|
374
|
+
},
|
|
375
|
+
{
|
|
376
|
+
"from": "templates/src/local-package/server/repositories/messagesRepository.js",
|
|
377
|
+
"to": "packages/assistant/src/server/repositories/messagesRepository.js",
|
|
378
|
+
"reason": "Install generated assistant messages repository.",
|
|
379
|
+
"category": "assistant",
|
|
380
|
+
"id": "assistant-local-messages-repository",
|
|
381
|
+
"templateContext": {
|
|
382
|
+
"entrypoint": "src/server/buildTemplateContext.js",
|
|
383
|
+
"export": "buildTemplateContext"
|
|
384
|
+
}
|
|
385
|
+
},
|
|
386
|
+
{
|
|
387
|
+
"from": "templates/src/local-package/server/services/assistantConfigService.js",
|
|
388
|
+
"to": "packages/assistant/src/server/services/assistantConfigService.js",
|
|
389
|
+
"reason": "Install generated assistant config service.",
|
|
390
|
+
"category": "assistant",
|
|
391
|
+
"id": "assistant-local-config-service",
|
|
392
|
+
"templateContext": {
|
|
393
|
+
"entrypoint": "src/server/buildTemplateContext.js",
|
|
394
|
+
"export": "buildTemplateContext"
|
|
395
|
+
}
|
|
396
|
+
},
|
|
397
|
+
{
|
|
398
|
+
"from": "templates/src/local-package/server/services/chatService.js",
|
|
399
|
+
"to": "packages/assistant/src/server/services/chatService.js",
|
|
400
|
+
"reason": "Install generated assistant chat service.",
|
|
401
|
+
"category": "assistant",
|
|
402
|
+
"id": "assistant-local-chat-service",
|
|
403
|
+
"templateContext": {
|
|
404
|
+
"entrypoint": "src/server/buildTemplateContext.js",
|
|
405
|
+
"export": "buildTemplateContext"
|
|
406
|
+
}
|
|
407
|
+
},
|
|
408
|
+
{
|
|
409
|
+
"from": "templates/src/local-package/server/services/transcriptService.js",
|
|
410
|
+
"to": "packages/assistant/src/server/services/transcriptService.js",
|
|
411
|
+
"reason": "Install generated assistant transcript service.",
|
|
232
412
|
"category": "assistant",
|
|
233
|
-
"id": "assistant-
|
|
413
|
+
"id": "assistant-local-transcript-service",
|
|
414
|
+
"templateContext": {
|
|
415
|
+
"entrypoint": "src/server/buildTemplateContext.js",
|
|
416
|
+
"export": "buildTemplateContext"
|
|
417
|
+
}
|
|
234
418
|
},
|
|
419
|
+
{
|
|
420
|
+
"from": "templates/src/pages/assistant/index.vue",
|
|
421
|
+
"toSurface": "${option:runtime-surface|lower}",
|
|
422
|
+
"toSurfacePath": "assistant/index.vue",
|
|
423
|
+
"reason": "Install generated assistant runtime page.",
|
|
424
|
+
"category": "assistant",
|
|
425
|
+
"id": "assistant-page-runtime"
|
|
426
|
+
}
|
|
427
|
+
],
|
|
428
|
+
"text": [
|
|
235
429
|
{
|
|
236
430
|
"op": "append-text",
|
|
237
|
-
"file": "
|
|
431
|
+
"file": "src/placement.js",
|
|
238
432
|
"position": "bottom",
|
|
239
|
-
"skipIfContains": "
|
|
240
|
-
"value": "\
|
|
241
|
-
"reason": "Append assistant
|
|
433
|
+
"skipIfContains": "id: \"assistant.generated.menu\"",
|
|
434
|
+
"value": "\naddPlacement({\n id: \"assistant.generated.menu\",\n host: \"__ASSISTANT_MENU_PLACEMENT_HOST__\",\n position: \"__ASSISTANT_MENU_PLACEMENT_POSITION__\",\n surfaces: [\"${option:runtime-surface|lower}\"],\n order: 310,\n componentToken: \"__ASSISTANT_MENU_COMPONENT_TOKEN__\",\n props: {\n label: \"__ASSISTANT_MENU_LABEL__\",\n surface: \"${option:runtime-surface|lower}\",\n workspaceSuffix: \"__ASSISTANT_MENU_WORKSPACE_SUFFIX__\",\n nonWorkspaceSuffix: \"__ASSISTANT_MENU_NON_WORKSPACE_SUFFIX__\"\n },\n when: ({ auth }) => Boolean(auth?.authenticated)\n});\n",
|
|
435
|
+
"reason": "Append generated assistant runtime menu placement into app-owned placement registry.",
|
|
242
436
|
"category": "assistant",
|
|
243
|
-
"id": "assistant-
|
|
437
|
+
"id": "assistant-placement-menu",
|
|
438
|
+
"templateContext": {
|
|
439
|
+
"entrypoint": "src/server/buildTemplateContext.js",
|
|
440
|
+
"export": "buildTemplateContext"
|
|
441
|
+
}
|
|
244
442
|
},
|
|
245
443
|
{
|
|
246
444
|
"op": "append-text",
|
|
247
|
-
"file": "
|
|
445
|
+
"file": "src/placement.js",
|
|
248
446
|
"position": "bottom",
|
|
249
|
-
"skipIfContains": "
|
|
250
|
-
"value": "\
|
|
251
|
-
"reason": "Append assistant
|
|
447
|
+
"skipIfContains": "id: \"assistant.generated.settings.form\"",
|
|
448
|
+
"value": "\naddPlacement({\n id: \"assistant.generated.settings.form\",\n host: \"__ASSISTANT_SETTINGS_HOST__\",\n position: \"forms\",\n surfaces: [\"${option:settings-surface|lower}\"],\n order: 250,\n componentToken: \"assistant.web.settings.element\",\n when: ({ auth }) => Boolean(auth?.authenticated)\n});\n",
|
|
449
|
+
"reason": "Append generated assistant settings form placement into app-owned settings placements.",
|
|
252
450
|
"category": "assistant",
|
|
253
|
-
"id": "assistant-
|
|
254
|
-
"
|
|
255
|
-
"
|
|
256
|
-
"
|
|
257
|
-
"personal",
|
|
258
|
-
"workspaces"
|
|
259
|
-
]
|
|
451
|
+
"id": "assistant-settings-form-placement",
|
|
452
|
+
"templateContext": {
|
|
453
|
+
"entrypoint": "src/server/buildTemplateContext.js",
|
|
454
|
+
"export": "buildTemplateContext"
|
|
260
455
|
}
|
|
261
456
|
},
|
|
262
457
|
{
|
|
@@ -273,7 +468,7 @@
|
|
|
273
468
|
"op": "upsert-env",
|
|
274
469
|
"key": "AI_API_KEY",
|
|
275
470
|
"value": "${option:ai-api-key}",
|
|
276
|
-
"reason": "Configure assistant
|
|
471
|
+
"reason": "Configure assistant AI API key.",
|
|
277
472
|
"category": "runtime-config",
|
|
278
473
|
"id": "assistant-ai-api-key"
|
|
279
474
|
},
|
|
@@ -282,7 +477,7 @@
|
|
|
282
477
|
"op": "upsert-env",
|
|
283
478
|
"key": "AI_BASE_URL",
|
|
284
479
|
"value": "${option:ai-base-url}",
|
|
285
|
-
"reason": "Configure
|
|
480
|
+
"reason": "Configure assistant AI base URL override.",
|
|
286
481
|
"category": "runtime-config",
|
|
287
482
|
"id": "assistant-ai-base-url"
|
|
288
483
|
},
|
|
@@ -291,7 +486,7 @@
|
|
|
291
486
|
"op": "upsert-env",
|
|
292
487
|
"key": "AI_TIMEOUT_MS",
|
|
293
488
|
"value": "${option:ai-timeout-ms}",
|
|
294
|
-
"reason": "Configure assistant
|
|
489
|
+
"reason": "Configure assistant AI timeout in milliseconds.",
|
|
295
490
|
"category": "runtime-config",
|
|
296
491
|
"id": "assistant-ai-timeout-ms"
|
|
297
492
|
}
|
|
@@ -300,15 +495,88 @@
|
|
|
300
495
|
}
|
|
301
496
|
},
|
|
302
497
|
{
|
|
303
|
-
"packageId": "@jskit-ai/
|
|
304
|
-
"version": "0.1.
|
|
498
|
+
"packageId": "@jskit-ai/assistant-core",
|
|
499
|
+
"version": "0.1.2",
|
|
305
500
|
"descriptor": {
|
|
306
501
|
"packageVersion": 1,
|
|
307
|
-
"packageId": "@jskit-ai/
|
|
308
|
-
"version": "0.1.
|
|
502
|
+
"packageId": "@jskit-ai/assistant-core",
|
|
503
|
+
"version": "0.1.2",
|
|
309
504
|
"kind": "runtime",
|
|
505
|
+
"description": "Reusable assistant client/server/shared primitives without surface-specific routes or settings ownership.",
|
|
310
506
|
"dependsOn": [
|
|
311
|
-
"@jskit-ai/
|
|
507
|
+
"@jskit-ai/http-runtime",
|
|
508
|
+
"@jskit-ai/users-core"
|
|
509
|
+
],
|
|
510
|
+
"capabilities": {
|
|
511
|
+
"provides": [
|
|
512
|
+
"assistant.core"
|
|
513
|
+
],
|
|
514
|
+
"requires": []
|
|
515
|
+
},
|
|
516
|
+
"runtime": {
|
|
517
|
+
"server": {
|
|
518
|
+
"providers": []
|
|
519
|
+
},
|
|
520
|
+
"client": {
|
|
521
|
+
"providers": []
|
|
522
|
+
}
|
|
523
|
+
},
|
|
524
|
+
"metadata": {
|
|
525
|
+
"apiSummary": {
|
|
526
|
+
"surfaces": [
|
|
527
|
+
{
|
|
528
|
+
"subpath": "./client",
|
|
529
|
+
"summary": "Exports reusable assistant UI primitives, HTTP helpers, and client API builders."
|
|
530
|
+
},
|
|
531
|
+
{
|
|
532
|
+
"subpath": "./server",
|
|
533
|
+
"summary": "Exports reusable assistant AI/provider helpers, NDJSON streaming helpers, and repository persistence helpers."
|
|
534
|
+
},
|
|
535
|
+
{
|
|
536
|
+
"subpath": "./shared",
|
|
537
|
+
"summary": "Exports reusable assistant validators, path helpers, query keys, and stream/settings events."
|
|
538
|
+
}
|
|
539
|
+
],
|
|
540
|
+
"containerTokens": {
|
|
541
|
+
"server": [],
|
|
542
|
+
"client": []
|
|
543
|
+
}
|
|
544
|
+
}
|
|
545
|
+
},
|
|
546
|
+
"mutations": {
|
|
547
|
+
"dependencies": {
|
|
548
|
+
"runtime": {
|
|
549
|
+
"@jskit-ai/http-runtime": "0.1.25",
|
|
550
|
+
"@jskit-ai/kernel": "0.1.26",
|
|
551
|
+
"@jskit-ai/users-core": "0.1.36",
|
|
552
|
+
"@tanstack/vue-query": "^5.90.5",
|
|
553
|
+
"dompurify": "^3.3.3",
|
|
554
|
+
"marked": "^17.0.4",
|
|
555
|
+
"openai": "^6.22.0",
|
|
556
|
+
"typebox": "^1.0.81",
|
|
557
|
+
"vuetify": "^4.0.0"
|
|
558
|
+
},
|
|
559
|
+
"dev": {}
|
|
560
|
+
},
|
|
561
|
+
"packageJson": {
|
|
562
|
+
"scripts": {}
|
|
563
|
+
},
|
|
564
|
+
"procfile": {},
|
|
565
|
+
"files": [],
|
|
566
|
+
"text": []
|
|
567
|
+
}
|
|
568
|
+
}
|
|
569
|
+
},
|
|
570
|
+
{
|
|
571
|
+
"packageId": "@jskit-ai/auth-core",
|
|
572
|
+
"version": "0.1.25",
|
|
573
|
+
"descriptor": {
|
|
574
|
+
"packageVersion": 1,
|
|
575
|
+
"packageId": "@jskit-ai/auth-core",
|
|
576
|
+
"version": "0.1.25",
|
|
577
|
+
"kind": "runtime",
|
|
578
|
+
"dependsOn": [
|
|
579
|
+
"@jskit-ai/value-app-config-shared"
|
|
312
580
|
],
|
|
313
581
|
"capabilities": {
|
|
314
582
|
"provides": [
|
|
@@ -373,7 +641,7 @@
|
|
|
373
641
|
"mutations": {
|
|
374
642
|
"dependencies": {
|
|
375
643
|
"runtime": {
|
|
376
|
-
"@jskit-ai/kernel": "0.1.
|
|
644
|
+
"@jskit-ai/kernel": "0.1.26",
|
|
377
645
|
"@fastify/cookie": "^11.0.2",
|
|
378
646
|
"@fastify/csrf-protection": "^7.1.0",
|
|
379
647
|
"@fastify/rate-limit": "^10.3.0"
|
|
@@ -391,11 +659,11 @@
|
|
|
391
659
|
},
|
|
392
660
|
{
|
|
393
661
|
"packageId": "@jskit-ai/auth-provider-supabase-core",
|
|
394
|
-
"version": "0.1.
|
|
662
|
+
"version": "0.1.25",
|
|
395
663
|
"descriptor": {
|
|
396
664
|
"packageVersion": 1,
|
|
397
665
|
"packageId": "@jskit-ai/auth-provider-supabase-core",
|
|
398
|
-
"version": "0.1.
|
|
666
|
+
"version": "0.1.25",
|
|
399
667
|
"kind": "runtime",
|
|
400
668
|
"options": {
|
|
401
669
|
"auth-supabase-url": {
|
|
@@ -477,8 +745,8 @@
|
|
|
477
745
|
"mutations": {
|
|
478
746
|
"dependencies": {
|
|
479
747
|
"runtime": {
|
|
480
|
-
"@jskit-ai/auth-core": "0.1.
|
|
481
|
-
"@jskit-ai/kernel": "0.1.
|
|
748
|
+
"@jskit-ai/auth-core": "0.1.25",
|
|
749
|
+
"@jskit-ai/kernel": "0.1.26",
|
|
482
750
|
"dotenv": "^16.4.5",
|
|
483
751
|
"@supabase/supabase-js": "^2.57.4",
|
|
484
752
|
"jose": "^6.1.0"
|
|
@@ -543,11 +811,11 @@
|
|
|
543
811
|
},
|
|
544
812
|
{
|
|
545
813
|
"packageId": "@jskit-ai/auth-web",
|
|
546
|
-
"version": "0.1.
|
|
814
|
+
"version": "0.1.27",
|
|
547
815
|
"descriptor": {
|
|
548
816
|
"packageVersion": 1,
|
|
549
817
|
"packageId": "@jskit-ai/auth-web",
|
|
550
|
-
"version": "0.1.
|
|
818
|
+
"version": "0.1.27",
|
|
551
819
|
"kind": "runtime",
|
|
552
820
|
"description": "Auth web module: Fastify auth routes plus web login/sign-out scaffolds.",
|
|
553
821
|
"dependsOn": [
|
|
@@ -777,10 +1045,10 @@
|
|
|
777
1045
|
"@tanstack/vue-query": "5.92.12",
|
|
778
1046
|
"@mdi/js": "^7.4.47",
|
|
779
1047
|
"@fastify/type-provider-typebox": "^6.1.0",
|
|
780
|
-
"@jskit-ai/auth-core": "0.1.
|
|
781
|
-
"@jskit-ai/http-runtime": "0.1.
|
|
782
|
-
"@jskit-ai/kernel": "0.1.
|
|
783
|
-
"@jskit-ai/shell-web": "0.1.
|
|
1048
|
+
"@jskit-ai/auth-core": "0.1.25",
|
|
1049
|
+
"@jskit-ai/http-runtime": "0.1.25",
|
|
1050
|
+
"@jskit-ai/kernel": "0.1.26",
|
|
1051
|
+
"@jskit-ai/shell-web": "0.1.25",
|
|
784
1052
|
"vuetify": "^4.0.0"
|
|
785
1053
|
},
|
|
786
1054
|
"dev": {}
|
|
@@ -850,11 +1118,11 @@
|
|
|
850
1118
|
},
|
|
851
1119
|
{
|
|
852
1120
|
"packageId": "@jskit-ai/crud-core",
|
|
853
|
-
"version": "0.1.
|
|
1121
|
+
"version": "0.1.34",
|
|
854
1122
|
"descriptor": {
|
|
855
1123
|
"packageVersion": 1,
|
|
856
1124
|
"packageId": "@jskit-ai/crud-core",
|
|
857
|
-
"version": "0.1.
|
|
1125
|
+
"version": "0.1.34",
|
|
858
1126
|
"kind": "runtime",
|
|
859
1127
|
"description": "Shared CRUD helpers used by CRUD modules.",
|
|
860
1128
|
"dependsOn": [
|
|
@@ -881,7 +1149,7 @@
|
|
|
881
1149
|
"mutations": {
|
|
882
1150
|
"dependencies": {
|
|
883
1151
|
"runtime": {
|
|
884
|
-
"@jskit-ai/crud-core": "0.1.
|
|
1152
|
+
"@jskit-ai/crud-core": "0.1.34"
|
|
885
1153
|
},
|
|
886
1154
|
"dev": {}
|
|
887
1155
|
},
|
|
@@ -895,11 +1163,11 @@
|
|
|
895
1163
|
},
|
|
896
1164
|
{
|
|
897
1165
|
"packageId": "@jskit-ai/crud-server-generator",
|
|
898
|
-
"version": "0.1.
|
|
1166
|
+
"version": "0.1.34",
|
|
899
1167
|
"descriptor": {
|
|
900
1168
|
"packageVersion": 1,
|
|
901
1169
|
"packageId": "@jskit-ai/crud-server-generator",
|
|
902
|
-
"version": "0.1.
|
|
1170
|
+
"version": "0.1.34",
|
|
903
1171
|
"kind": "generator",
|
|
904
1172
|
"description": "CRUD server generator with routes, actions, and persistence scaffolding.",
|
|
905
1173
|
"options": {
|
|
@@ -1034,13 +1302,13 @@
|
|
|
1034
1302
|
"mutations": {
|
|
1035
1303
|
"dependencies": {
|
|
1036
1304
|
"runtime": {
|
|
1037
|
-
"@jskit-ai/auth-core": "0.1.
|
|
1038
|
-
"@jskit-ai/crud-core": "0.1.
|
|
1039
|
-
"@jskit-ai/database-runtime": "0.1.
|
|
1040
|
-
"@jskit-ai/http-runtime": "0.1.
|
|
1041
|
-
"@jskit-ai/kernel": "0.1.
|
|
1042
|
-
"@jskit-ai/realtime": "0.1.
|
|
1043
|
-
"@jskit-ai/users-core": "0.1.
|
|
1305
|
+
"@jskit-ai/auth-core": "0.1.25",
|
|
1306
|
+
"@jskit-ai/crud-core": "0.1.34",
|
|
1307
|
+
"@jskit-ai/database-runtime": "0.1.26",
|
|
1308
|
+
"@jskit-ai/http-runtime": "0.1.25",
|
|
1309
|
+
"@jskit-ai/kernel": "0.1.26",
|
|
1310
|
+
"@jskit-ai/realtime": "0.1.25",
|
|
1311
|
+
"@jskit-ai/users-core": "0.1.36",
|
|
1044
1312
|
"@local/${option:namespace|kebab}": "file:packages/${option:namespace|kebab}",
|
|
1045
1313
|
"typebox": "^1.0.81"
|
|
1046
1314
|
},
|
|
@@ -1164,11 +1432,11 @@
|
|
|
1164
1432
|
},
|
|
1165
1433
|
{
|
|
1166
1434
|
"packageId": "@jskit-ai/crud-ui-generator",
|
|
1167
|
-
"version": "0.1.
|
|
1435
|
+
"version": "0.1.9",
|
|
1168
1436
|
"descriptor": {
|
|
1169
1437
|
"packageVersion": 1,
|
|
1170
1438
|
"packageId": "@jskit-ai/crud-ui-generator",
|
|
1171
|
-
"version": "0.1.
|
|
1439
|
+
"version": "0.1.9",
|
|
1172
1440
|
"kind": "generator",
|
|
1173
1441
|
"description": "Generate app-local CRUD UI scaffolds from resource validators.",
|
|
1174
1442
|
"options": {
|
|
@@ -1302,7 +1570,7 @@
|
|
|
1302
1570
|
"mutations": {
|
|
1303
1571
|
"dependencies": {
|
|
1304
1572
|
"runtime": {
|
|
1305
|
-
"@jskit-ai/users-web": "0.1.
|
|
1573
|
+
"@jskit-ai/users-web": "0.1.41"
|
|
1306
1574
|
},
|
|
1307
1575
|
"dev": {}
|
|
1308
1576
|
},
|
|
@@ -1575,11 +1843,11 @@
|
|
|
1575
1843
|
},
|
|
1576
1844
|
{
|
|
1577
1845
|
"packageId": "@jskit-ai/database-runtime",
|
|
1578
|
-
"version": "0.1.
|
|
1846
|
+
"version": "0.1.26",
|
|
1579
1847
|
"descriptor": {
|
|
1580
1848
|
"packageVersion": 1,
|
|
1581
1849
|
"packageId": "@jskit-ai/database-runtime",
|
|
1582
|
-
"version": "0.1.
|
|
1850
|
+
"version": "0.1.26",
|
|
1583
1851
|
"kind": "runtime",
|
|
1584
1852
|
"dependsOn": [
|
|
1585
1853
|
"@jskit-ai/kernel"
|
|
@@ -1636,7 +1904,7 @@
|
|
|
1636
1904
|
"mutations": {
|
|
1637
1905
|
"dependencies": {
|
|
1638
1906
|
"runtime": {
|
|
1639
|
-
"@jskit-ai/kernel": "0.1.
|
|
1907
|
+
"@jskit-ai/kernel": "0.1.26",
|
|
1640
1908
|
"dotenv": "^16.4.5",
|
|
1641
1909
|
"knex": "^3.1.0"
|
|
1642
1910
|
},
|
|
@@ -1671,11 +1939,11 @@
|
|
|
1671
1939
|
},
|
|
1672
1940
|
{
|
|
1673
1941
|
"packageId": "@jskit-ai/database-runtime-mysql",
|
|
1674
|
-
"version": "0.1.
|
|
1942
|
+
"version": "0.1.25",
|
|
1675
1943
|
"descriptor": {
|
|
1676
1944
|
"packageVersion": 1,
|
|
1677
1945
|
"packageId": "@jskit-ai/database-runtime-mysql",
|
|
1678
|
-
"version": "0.1.
|
|
1946
|
+
"version": "0.1.25",
|
|
1679
1947
|
"kind": "runtime",
|
|
1680
1948
|
"options": {
|
|
1681
1949
|
"db-host": {
|
|
@@ -1765,7 +2033,7 @@
|
|
|
1765
2033
|
"mutations": {
|
|
1766
2034
|
"dependencies": {
|
|
1767
2035
|
"runtime": {
|
|
1768
|
-
"@jskit-ai/database-runtime": "0.1.
|
|
2036
|
+
"@jskit-ai/database-runtime": "0.1.26",
|
|
1769
2037
|
"mysql2": "^3.11.2"
|
|
1770
2038
|
},
|
|
1771
2039
|
"dev": {}
|
|
@@ -1836,11 +2104,11 @@
|
|
|
1836
2104
|
},
|
|
1837
2105
|
{
|
|
1838
2106
|
"packageId": "@jskit-ai/database-runtime-postgres",
|
|
1839
|
-
"version": "0.1.
|
|
2107
|
+
"version": "0.1.25",
|
|
1840
2108
|
"descriptor": {
|
|
1841
2109
|
"packageVersion": 1,
|
|
1842
2110
|
"packageId": "@jskit-ai/database-runtime-postgres",
|
|
1843
|
-
"version": "0.1.
|
|
2111
|
+
"version": "0.1.25",
|
|
1844
2112
|
"kind": "runtime",
|
|
1845
2113
|
"options": {
|
|
1846
2114
|
"db-host": {
|
|
@@ -1930,7 +2198,7 @@
|
|
|
1930
2198
|
"mutations": {
|
|
1931
2199
|
"dependencies": {
|
|
1932
2200
|
"runtime": {
|
|
1933
|
-
"@jskit-ai/database-runtime": "0.1.
|
|
2201
|
+
"@jskit-ai/database-runtime": "0.1.26",
|
|
1934
2202
|
"pg": "^8.13.1"
|
|
1935
2203
|
},
|
|
1936
2204
|
"dev": {}
|
|
@@ -2001,11 +2269,11 @@
|
|
|
2001
2269
|
},
|
|
2002
2270
|
{
|
|
2003
2271
|
"packageId": "@jskit-ai/http-runtime",
|
|
2004
|
-
"version": "0.1.
|
|
2272
|
+
"version": "0.1.25",
|
|
2005
2273
|
"descriptor": {
|
|
2006
2274
|
"packageVersion": 1,
|
|
2007
2275
|
"packageId": "@jskit-ai/http-runtime",
|
|
2008
|
-
"version": "0.1.
|
|
2276
|
+
"version": "0.1.25",
|
|
2009
2277
|
"kind": "runtime",
|
|
2010
2278
|
"dependsOn": [],
|
|
2011
2279
|
"capabilities": {
|
|
@@ -2071,7 +2339,7 @@
|
|
|
2071
2339
|
"mutations": {
|
|
2072
2340
|
"dependencies": {
|
|
2073
2341
|
"runtime": {
|
|
2074
|
-
"@jskit-ai/kernel": "0.1.
|
|
2342
|
+
"@jskit-ai/kernel": "0.1.26",
|
|
2075
2343
|
"@fastify/type-provider-typebox": "^6.1.0",
|
|
2076
2344
|
"typebox": "^1.0.81"
|
|
2077
2345
|
},
|
|
@@ -2087,11 +2355,11 @@
|
|
|
2087
2355
|
},
|
|
2088
2356
|
{
|
|
2089
2357
|
"packageId": "@jskit-ai/realtime",
|
|
2090
|
-
"version": "0.1.
|
|
2358
|
+
"version": "0.1.25",
|
|
2091
2359
|
"descriptor": {
|
|
2092
2360
|
"packageVersion": 1,
|
|
2093
2361
|
"packageId": "@jskit-ai/realtime",
|
|
2094
|
-
"version": "0.1.
|
|
2362
|
+
"version": "0.1.25",
|
|
2095
2363
|
"kind": "runtime",
|
|
2096
2364
|
"description": "Thin, generic realtime runtime wrappers for socket.io server and client.",
|
|
2097
2365
|
"options": {
|
|
@@ -2187,7 +2455,7 @@
|
|
|
2187
2455
|
"mutations": {
|
|
2188
2456
|
"dependencies": {
|
|
2189
2457
|
"runtime": {
|
|
2190
|
-
"@jskit-ai/kernel": "0.1.
|
|
2458
|
+
"@jskit-ai/kernel": "0.1.26",
|
|
2191
2459
|
"@socket.io/redis-adapter": "^8.3.0",
|
|
2192
2460
|
"redis": "^5.8.2",
|
|
2193
2461
|
"socket.io": "^4.8.3",
|
|
@@ -2236,11 +2504,11 @@
|
|
|
2236
2504
|
},
|
|
2237
2505
|
{
|
|
2238
2506
|
"packageId": "@jskit-ai/shell-web",
|
|
2239
|
-
"version": "0.1.
|
|
2507
|
+
"version": "0.1.25",
|
|
2240
2508
|
"descriptor": {
|
|
2241
2509
|
"packageVersion": 1,
|
|
2242
2510
|
"packageId": "@jskit-ai/shell-web",
|
|
2243
|
-
"version": "0.1.
|
|
2511
|
+
"version": "0.1.25",
|
|
2244
2512
|
"kind": "runtime",
|
|
2245
2513
|
"description": "Web shell layout runtime with outlet-based placement contributions.",
|
|
2246
2514
|
"dependsOn": [],
|
|
@@ -2334,7 +2602,7 @@
|
|
|
2334
2602
|
"dependencies": {
|
|
2335
2603
|
"runtime": {
|
|
2336
2604
|
"@tanstack/vue-query": "^5.90.5",
|
|
2337
|
-
"@jskit-ai/kernel": "0.1.
|
|
2605
|
+
"@jskit-ai/kernel": "0.1.26",
|
|
2338
2606
|
"vuetify": "^4.0.0"
|
|
2339
2607
|
},
|
|
2340
2608
|
"dev": {}
|
|
@@ -2415,11 +2683,11 @@
|
|
|
2415
2683
|
},
|
|
2416
2684
|
{
|
|
2417
2685
|
"packageId": "@jskit-ai/storage-runtime",
|
|
2418
|
-
"version": "0.1.
|
|
2686
|
+
"version": "0.1.25",
|
|
2419
2687
|
"descriptor": {
|
|
2420
2688
|
"packageVersion": 1,
|
|
2421
2689
|
"packageId": "@jskit-ai/storage-runtime",
|
|
2422
|
-
"version": "0.1.
|
|
2690
|
+
"version": "0.1.25",
|
|
2423
2691
|
"kind": "runtime",
|
|
2424
2692
|
"dependsOn": [
|
|
2425
2693
|
"@jskit-ai/kernel"
|
|
@@ -2468,7 +2736,7 @@
|
|
|
2468
2736
|
"mutations": {
|
|
2469
2737
|
"dependencies": {
|
|
2470
2738
|
"runtime": {
|
|
2471
|
-
"@jskit-ai/kernel": "0.1.
|
|
2739
|
+
"@jskit-ai/kernel": "0.1.26",
|
|
2472
2740
|
"unstorage": "^1.17.3"
|
|
2473
2741
|
},
|
|
2474
2742
|
"dev": {}
|
|
@@ -2484,11 +2752,11 @@
|
|
|
2484
2752
|
},
|
|
2485
2753
|
{
|
|
2486
2754
|
"packageId": "@jskit-ai/ui-generator",
|
|
2487
|
-
"version": "0.1.
|
|
2755
|
+
"version": "0.1.9",
|
|
2488
2756
|
"descriptor": {
|
|
2489
2757
|
"packageVersion": 1,
|
|
2490
2758
|
"packageId": "@jskit-ai/ui-generator",
|
|
2491
|
-
"version": "0.1.
|
|
2759
|
+
"version": "0.1.9",
|
|
2492
2760
|
"kind": "generator",
|
|
2493
2761
|
"description": "Generate app-local non-CRUD UI pages and outlet elements.",
|
|
2494
2762
|
"options": {
|
|
@@ -2662,7 +2930,7 @@
|
|
|
2662
2930
|
"mutations": {
|
|
2663
2931
|
"dependencies": {
|
|
2664
2932
|
"runtime": {
|
|
2665
|
-
"@jskit-ai/users-web": "0.1.
|
|
2933
|
+
"@jskit-ai/users-web": "0.1.41"
|
|
2666
2934
|
},
|
|
2667
2935
|
"dev": {}
|
|
2668
2936
|
},
|
|
@@ -2701,11 +2969,11 @@
|
|
|
2701
2969
|
},
|
|
2702
2970
|
{
|
|
2703
2971
|
"packageId": "@jskit-ai/uploads-image-web",
|
|
2704
|
-
"version": "0.1.
|
|
2972
|
+
"version": "0.1.4",
|
|
2705
2973
|
"descriptor": {
|
|
2706
2974
|
"packageVersion": 1,
|
|
2707
2975
|
"packageId": "@jskit-ai/uploads-image-web",
|
|
2708
|
-
"version": "0.1.
|
|
2976
|
+
"version": "0.1.4",
|
|
2709
2977
|
"kind": "runtime",
|
|
2710
2978
|
"description": "Reusable client-side image upload runtime with pre-upload image editing.",
|
|
2711
2979
|
"dependsOn": [
|
|
@@ -2769,7 +3037,7 @@
|
|
|
2769
3037
|
"mutations": {
|
|
2770
3038
|
"dependencies": {
|
|
2771
3039
|
"runtime": {
|
|
2772
|
-
"@jskit-ai/uploads-runtime": "0.1.
|
|
3040
|
+
"@jskit-ai/uploads-runtime": "0.1.4",
|
|
2773
3041
|
"@uppy/compressor": "^3.1.0",
|
|
2774
3042
|
"@uppy/core": "^5.2.0",
|
|
2775
3043
|
"@uppy/dashboard": "^5.1.1",
|
|
@@ -2789,11 +3057,11 @@
|
|
|
2789
3057
|
},
|
|
2790
3058
|
{
|
|
2791
3059
|
"packageId": "@jskit-ai/uploads-runtime",
|
|
2792
|
-
"version": "0.1.
|
|
3060
|
+
"version": "0.1.4",
|
|
2793
3061
|
"descriptor": {
|
|
2794
3062
|
"packageVersion": 1,
|
|
2795
3063
|
"packageId": "@jskit-ai/uploads-runtime",
|
|
2796
|
-
"version": "0.1.
|
|
3064
|
+
"version": "0.1.4",
|
|
2797
3065
|
"kind": "runtime",
|
|
2798
3066
|
"description": "Reusable upload runtime primitives for multipart parsing, policy validation, and blob storage.",
|
|
2799
3067
|
"dependsOn": [
|
|
@@ -2857,61 +3125,588 @@
|
|
|
2857
3125
|
],
|
|
2858
3126
|
"client": []
|
|
2859
3127
|
}
|
|
2860
|
-
}
|
|
2861
|
-
},
|
|
2862
|
-
"mutations": {
|
|
2863
|
-
"dependencies": {
|
|
2864
|
-
"runtime": {
|
|
2865
|
-
"@fastify/multipart": "^9.4.0",
|
|
2866
|
-
"@jskit-ai/kernel": "0.1.
|
|
3128
|
+
}
|
|
3129
|
+
},
|
|
3130
|
+
"mutations": {
|
|
3131
|
+
"dependencies": {
|
|
3132
|
+
"runtime": {
|
|
3133
|
+
"@fastify/multipart": "^9.4.0",
|
|
3134
|
+
"@jskit-ai/kernel": "0.1.26"
|
|
3135
|
+
},
|
|
3136
|
+
"dev": {}
|
|
3137
|
+
},
|
|
3138
|
+
"packageJson": {
|
|
3139
|
+
"scripts": {}
|
|
3140
|
+
},
|
|
3141
|
+
"procfile": {},
|
|
3142
|
+
"files": [],
|
|
3143
|
+
"text": []
|
|
3144
|
+
}
|
|
3145
|
+
}
|
|
3146
|
+
},
|
|
3147
|
+
{
|
|
3148
|
+
"packageId": "@jskit-ai/users-core",
|
|
3149
|
+
"version": "0.1.36",
|
|
3150
|
+
"descriptor": {
|
|
3151
|
+
"packageVersion": 1,
|
|
3152
|
+
"packageId": "@jskit-ai/users-core",
|
|
3153
|
+
"version": "0.1.36",
|
|
3154
|
+
"kind": "runtime",
|
|
3155
|
+
"description": "Users/account runtime plus HTTP routes for account and console features.",
|
|
3156
|
+
"dependsOn": [
|
|
3157
|
+
"@jskit-ai/auth-core",
|
|
3158
|
+
"@jskit-ai/database-runtime",
|
|
3159
|
+
"@jskit-ai/http-runtime",
|
|
3160
|
+
"@jskit-ai/uploads-runtime",
|
|
3161
|
+
"@jskit-ai/storage-runtime"
|
|
3162
|
+
],
|
|
3163
|
+
"capabilities": {
|
|
3164
|
+
"provides": [
|
|
3165
|
+
"users.core",
|
|
3166
|
+
"users.server-routes"
|
|
3167
|
+
],
|
|
3168
|
+
"requires": [
|
|
3169
|
+
"runtime.actions",
|
|
3170
|
+
"runtime.database",
|
|
3171
|
+
"runtime.storage",
|
|
3172
|
+
"runtime.uploads",
|
|
3173
|
+
"auth.provider",
|
|
3174
|
+
"auth.policy"
|
|
3175
|
+
]
|
|
3176
|
+
},
|
|
3177
|
+
"runtime": {
|
|
3178
|
+
"server": {
|
|
3179
|
+
"providers": [
|
|
3180
|
+
{
|
|
3181
|
+
"entrypoint": "src/server/UsersCoreServiceProvider.js",
|
|
3182
|
+
"export": "UsersCoreServiceProvider"
|
|
3183
|
+
}
|
|
3184
|
+
]
|
|
3185
|
+
},
|
|
3186
|
+
"client": {
|
|
3187
|
+
"providers": []
|
|
3188
|
+
}
|
|
3189
|
+
},
|
|
3190
|
+
"metadata": {
|
|
3191
|
+
"apiSummary": {
|
|
3192
|
+
"surfaces": [
|
|
3193
|
+
{
|
|
3194
|
+
"subpath": "./server",
|
|
3195
|
+
"summary": "Exports UsersCoreServiceProvider, users/console repositories and services, account feature route registration modules, and action definitions."
|
|
3196
|
+
},
|
|
3197
|
+
{
|
|
3198
|
+
"subpath": "./shared",
|
|
3199
|
+
"summary": "Exports shared users settings and tenancy utilities."
|
|
3200
|
+
},
|
|
3201
|
+
{
|
|
3202
|
+
"subpath": "./client",
|
|
3203
|
+
"summary": "Exports no runtime API today (reserved client entrypoint)."
|
|
3204
|
+
}
|
|
3205
|
+
],
|
|
3206
|
+
"containerTokens": {
|
|
3207
|
+
"server": [],
|
|
3208
|
+
"client": []
|
|
3209
|
+
}
|
|
3210
|
+
},
|
|
3211
|
+
"server": {
|
|
3212
|
+
"routes": [
|
|
3213
|
+
{
|
|
3214
|
+
"method": "GET",
|
|
3215
|
+
"path": "/api/settings",
|
|
3216
|
+
"summary": "Get authenticated user settings."
|
|
3217
|
+
},
|
|
3218
|
+
{
|
|
3219
|
+
"method": "PATCH",
|
|
3220
|
+
"path": "/api/settings/profile",
|
|
3221
|
+
"summary": "Update profile settings."
|
|
3222
|
+
},
|
|
3223
|
+
{
|
|
3224
|
+
"method": "GET",
|
|
3225
|
+
"path": "/api/settings/profile/avatar",
|
|
3226
|
+
"summary": "Read authenticated user's uploaded avatar."
|
|
3227
|
+
},
|
|
3228
|
+
{
|
|
3229
|
+
"method": "POST",
|
|
3230
|
+
"path": "/api/settings/profile/avatar",
|
|
3231
|
+
"summary": "Upload profile avatar."
|
|
3232
|
+
},
|
|
3233
|
+
{
|
|
3234
|
+
"method": "DELETE",
|
|
3235
|
+
"path": "/api/settings/profile/avatar",
|
|
3236
|
+
"summary": "Delete profile avatar."
|
|
3237
|
+
},
|
|
3238
|
+
{
|
|
3239
|
+
"method": "PATCH",
|
|
3240
|
+
"path": "/api/settings/preferences",
|
|
3241
|
+
"summary": "Update user preferences."
|
|
3242
|
+
},
|
|
3243
|
+
{
|
|
3244
|
+
"method": "PATCH",
|
|
3245
|
+
"path": "/api/settings/notifications",
|
|
3246
|
+
"summary": "Update notification settings."
|
|
3247
|
+
},
|
|
3248
|
+
{
|
|
3249
|
+
"method": "POST",
|
|
3250
|
+
"path": "/api/settings/security/change-password",
|
|
3251
|
+
"summary": "Set or change password for authenticated user."
|
|
3252
|
+
},
|
|
3253
|
+
{
|
|
3254
|
+
"method": "PATCH",
|
|
3255
|
+
"path": "/api/settings/security/methods/password",
|
|
3256
|
+
"summary": "Enable or disable password sign-in method."
|
|
3257
|
+
},
|
|
3258
|
+
{
|
|
3259
|
+
"method": "GET",
|
|
3260
|
+
"path": "/api/settings/security/oauth/:provider/start",
|
|
3261
|
+
"summary": "Start linking an OAuth provider for authenticated user."
|
|
3262
|
+
},
|
|
3263
|
+
{
|
|
3264
|
+
"method": "DELETE",
|
|
3265
|
+
"path": "/api/settings/security/oauth/:provider",
|
|
3266
|
+
"summary": "Unlink an OAuth provider from authenticated account."
|
|
3267
|
+
},
|
|
3268
|
+
{
|
|
3269
|
+
"method": "POST",
|
|
3270
|
+
"path": "/api/settings/security/logout-others",
|
|
3271
|
+
"summary": "Sign out from other active sessions."
|
|
3272
|
+
},
|
|
3273
|
+
{
|
|
3274
|
+
"method": "GET",
|
|
3275
|
+
"path": "/api/console/settings",
|
|
3276
|
+
"summary": "Get console settings."
|
|
3277
|
+
},
|
|
3278
|
+
{
|
|
3279
|
+
"method": "PATCH",
|
|
3280
|
+
"path": "/api/console/settings",
|
|
3281
|
+
"summary": "Update console settings."
|
|
3282
|
+
}
|
|
3283
|
+
]
|
|
3284
|
+
}
|
|
3285
|
+
},
|
|
3286
|
+
"mutations": {
|
|
3287
|
+
"dependencies": {
|
|
3288
|
+
"runtime": {
|
|
3289
|
+
"@jskit-ai/auth-core": "0.1.25",
|
|
3290
|
+
"@jskit-ai/database-runtime": "0.1.26",
|
|
3291
|
+
"@jskit-ai/http-runtime": "0.1.25",
|
|
3292
|
+
"@jskit-ai/kernel": "0.1.26",
|
|
3293
|
+
"@jskit-ai/uploads-runtime": "0.1.4",
|
|
3294
|
+
"@fastify/type-provider-typebox": "^6.1.0",
|
|
3295
|
+
"typebox": "^1.0.81"
|
|
3296
|
+
},
|
|
3297
|
+
"dev": {}
|
|
3298
|
+
},
|
|
3299
|
+
"packageJson": {
|
|
3300
|
+
"scripts": {}
|
|
3301
|
+
},
|
|
3302
|
+
"procfile": {},
|
|
3303
|
+
"files": [
|
|
3304
|
+
{
|
|
3305
|
+
"op": "install-migration",
|
|
3306
|
+
"from": "templates/migrations/users_core_generic_initial.cjs",
|
|
3307
|
+
"toDir": "migrations",
|
|
3308
|
+
"extension": ".cjs",
|
|
3309
|
+
"reason": "Install users/account core schema migration.",
|
|
3310
|
+
"category": "migration",
|
|
3311
|
+
"id": "users-core-generic-initial-schema"
|
|
3312
|
+
},
|
|
3313
|
+
{
|
|
3314
|
+
"op": "install-migration",
|
|
3315
|
+
"from": "templates/migrations/users_core_profile_username.cjs",
|
|
3316
|
+
"toDir": "migrations",
|
|
3317
|
+
"extension": ".cjs",
|
|
3318
|
+
"reason": "Install users profile username migration.",
|
|
3319
|
+
"category": "migration",
|
|
3320
|
+
"id": "users-core-profile-username-schema"
|
|
3321
|
+
},
|
|
3322
|
+
{
|
|
3323
|
+
"op": "install-migration",
|
|
3324
|
+
"from": "templates/migrations/users_core_console_owner.cjs",
|
|
3325
|
+
"toDir": "migrations",
|
|
3326
|
+
"extension": ".cjs",
|
|
3327
|
+
"reason": "Install console owner migration.",
|
|
3328
|
+
"category": "migration",
|
|
3329
|
+
"id": "users-core-console-owner-schema"
|
|
3330
|
+
},
|
|
3331
|
+
{
|
|
3332
|
+
"from": "templates/packages/main/src/shared/resources/consoleSettingsFields.js",
|
|
3333
|
+
"to": "packages/main/src/shared/resources/consoleSettingsFields.js",
|
|
3334
|
+
"preserveOnRemove": true,
|
|
3335
|
+
"reason": "Install app-owned console settings field definitions.",
|
|
3336
|
+
"category": "users-core",
|
|
3337
|
+
"id": "users-core-app-owned-console-settings-fields"
|
|
3338
|
+
},
|
|
3339
|
+
{
|
|
3340
|
+
"from": "templates/packages/main/src/shared/resources/userSettingsFields.js",
|
|
3341
|
+
"to": "packages/main/src/shared/resources/userSettingsFields.js",
|
|
3342
|
+
"preserveOnRemove": true,
|
|
3343
|
+
"reason": "Install app-owned user settings field definitions.",
|
|
3344
|
+
"category": "users-core",
|
|
3345
|
+
"id": "users-core-app-owned-user-settings-fields"
|
|
3346
|
+
}
|
|
3347
|
+
],
|
|
3348
|
+
"text": [
|
|
3349
|
+
{
|
|
3350
|
+
"op": "upsert-env",
|
|
3351
|
+
"file": ".env",
|
|
3352
|
+
"key": "AUTH_PROFILE_MODE",
|
|
3353
|
+
"value": "users",
|
|
3354
|
+
"reason": "Enable users-backed auth profile sync when users-core is installed.",
|
|
3355
|
+
"category": "runtime-config",
|
|
3356
|
+
"id": "users-core-auth-profile-mode"
|
|
3357
|
+
},
|
|
3358
|
+
{
|
|
3359
|
+
"op": "append-text",
|
|
3360
|
+
"file": "packages/main/src/shared/index.js",
|
|
3361
|
+
"position": "top",
|
|
3362
|
+
"skipIfContains": "import \"./resources/consoleSettingsFields.js\";",
|
|
3363
|
+
"value": "import \"./resources/consoleSettingsFields.js\";\n",
|
|
3364
|
+
"reason": "Load app-owned console settings field definitions inside the main shared module.",
|
|
3365
|
+
"category": "users-core",
|
|
3366
|
+
"id": "users-core-main-shared-console-settings-field-import"
|
|
3367
|
+
},
|
|
3368
|
+
{
|
|
3369
|
+
"op": "append-text",
|
|
3370
|
+
"file": "packages/main/src/shared/index.js",
|
|
3371
|
+
"position": "top",
|
|
3372
|
+
"skipIfContains": "import \"./resources/userSettingsFields.js\";",
|
|
3373
|
+
"value": "import \"./resources/userSettingsFields.js\";\n",
|
|
3374
|
+
"reason": "Load app-owned user settings field definitions inside the main shared module.",
|
|
3375
|
+
"category": "users-core",
|
|
3376
|
+
"id": "users-core-main-shared-user-settings-field-import"
|
|
3377
|
+
},
|
|
3378
|
+
{
|
|
3379
|
+
"op": "append-text",
|
|
3380
|
+
"file": "src/main.js",
|
|
3381
|
+
"position": "top",
|
|
3382
|
+
"skipIfContains": "import \"@local/main/shared\";",
|
|
3383
|
+
"value": "import \"@local/main/shared\";\n",
|
|
3384
|
+
"reason": "Ensure client runtime loads app-owned shared settings field registration.",
|
|
3385
|
+
"category": "users-core",
|
|
3386
|
+
"id": "users-core-client-import-main-shared"
|
|
3387
|
+
},
|
|
3388
|
+
{
|
|
3389
|
+
"op": "append-text",
|
|
3390
|
+
"file": "server.js",
|
|
3391
|
+
"position": "top",
|
|
3392
|
+
"skipIfContains": "import \"@local/main/shared\";",
|
|
3393
|
+
"value": "import \"@local/main/shared\";\n",
|
|
3394
|
+
"reason": "Ensure server runtime loads app-owned shared settings field registration.",
|
|
3395
|
+
"category": "users-core",
|
|
3396
|
+
"id": "users-core-server-import-main-shared"
|
|
3397
|
+
}
|
|
3398
|
+
]
|
|
3399
|
+
}
|
|
3400
|
+
}
|
|
3401
|
+
},
|
|
3402
|
+
{
|
|
3403
|
+
"packageId": "@jskit-ai/users-web",
|
|
3404
|
+
"version": "0.1.41",
|
|
3405
|
+
"descriptor": {
|
|
3406
|
+
"packageVersion": 1,
|
|
3407
|
+
"packageId": "@jskit-ai/users-web",
|
|
3408
|
+
"version": "0.1.41",
|
|
3409
|
+
"kind": "runtime",
|
|
3410
|
+
"description": "Users web module: account/profile UI plus shared shell link components.",
|
|
3411
|
+
"dependsOn": [
|
|
3412
|
+
"@jskit-ai/http-runtime",
|
|
3413
|
+
"@jskit-ai/shell-web",
|
|
3414
|
+
"@jskit-ai/uploads-image-web",
|
|
3415
|
+
"@jskit-ai/users-core"
|
|
3416
|
+
],
|
|
3417
|
+
"capabilities": {
|
|
3418
|
+
"provides": [
|
|
3419
|
+
"users.web"
|
|
3420
|
+
],
|
|
3421
|
+
"requires": [
|
|
3422
|
+
"runtime.web-placement",
|
|
3423
|
+
"users.server-routes"
|
|
3424
|
+
]
|
|
3425
|
+
},
|
|
3426
|
+
"runtime": {
|
|
3427
|
+
"server": {
|
|
3428
|
+
"providers": []
|
|
3429
|
+
},
|
|
3430
|
+
"client": {
|
|
3431
|
+
"providers": [
|
|
3432
|
+
{
|
|
3433
|
+
"entrypoint": "src/client/providers/UsersWebClientProvider.js",
|
|
3434
|
+
"export": "UsersWebClientProvider"
|
|
3435
|
+
}
|
|
3436
|
+
]
|
|
3437
|
+
}
|
|
3438
|
+
},
|
|
3439
|
+
"metadata": {
|
|
3440
|
+
"apiSummary": {
|
|
3441
|
+
"surfaces": [
|
|
3442
|
+
{
|
|
3443
|
+
"subpath": "./client",
|
|
3444
|
+
"summary": "Exports users-web client provider registration surface."
|
|
3445
|
+
},
|
|
3446
|
+
{
|
|
3447
|
+
"subpath": "./client/providers/UsersWebClientProvider",
|
|
3448
|
+
"summary": "Exports users-web client provider class."
|
|
3449
|
+
},
|
|
3450
|
+
{
|
|
3451
|
+
"subpath": "./client/components/ProfileClientElement",
|
|
3452
|
+
"summary": "Exports profile settings client element scaffold component."
|
|
3453
|
+
},
|
|
3454
|
+
{
|
|
3455
|
+
"subpath": "./client/composables/useAddEdit",
|
|
3456
|
+
"summary": "Exports add/edit operation composable."
|
|
3457
|
+
},
|
|
3458
|
+
{
|
|
3459
|
+
"subpath": "./client/composables/useList",
|
|
3460
|
+
"summary": "Exports list operation composable."
|
|
3461
|
+
},
|
|
3462
|
+
{
|
|
3463
|
+
"subpath": "./client/composables/crudLookupFieldRuntime",
|
|
3464
|
+
"summary": "Exports CRUD lookup field runtime helpers for generated add/edit forms."
|
|
3465
|
+
},
|
|
3466
|
+
{
|
|
3467
|
+
"subpath": "./client/composables/useCommand",
|
|
3468
|
+
"summary": "Exports command operation composable."
|
|
3469
|
+
},
|
|
3470
|
+
{
|
|
3471
|
+
"subpath": "./client/composables/useView",
|
|
3472
|
+
"summary": "Exports read/view operation composable."
|
|
3473
|
+
},
|
|
3474
|
+
{
|
|
3475
|
+
"subpath": "./client/composables/usePagedCollection",
|
|
3476
|
+
"summary": "Exports paged collection query composable."
|
|
3477
|
+
},
|
|
3478
|
+
{
|
|
3479
|
+
"subpath": "./client/composables/usePaths",
|
|
3480
|
+
"summary": "Exports surface/workspace path resolver composable."
|
|
3481
|
+
},
|
|
3482
|
+
{
|
|
3483
|
+
"subpath": "./client/composables/useAccountSettingsRuntime",
|
|
3484
|
+
"summary": "Exports account settings runtime composable for app-owned settings UI."
|
|
3485
|
+
},
|
|
3486
|
+
{
|
|
3487
|
+
"subpath": "./client/composables/useWorkspaceRouteContext",
|
|
3488
|
+
"summary": "Exports workspace route context composable."
|
|
3489
|
+
}
|
|
3490
|
+
],
|
|
3491
|
+
"containerTokens": {
|
|
3492
|
+
"server": [],
|
|
3493
|
+
"client": [
|
|
3494
|
+
"users.web.shell.menu-link-item",
|
|
3495
|
+
"users.web.shell.surface-aware-menu-link-item",
|
|
3496
|
+
"users.web.profile.menu.surface-switch-item",
|
|
3497
|
+
"users.web.profile.element",
|
|
3498
|
+
"users.web.bootstrap-placement.runtime"
|
|
3499
|
+
]
|
|
3500
|
+
}
|
|
3501
|
+
},
|
|
3502
|
+
"ui": {
|
|
3503
|
+
"placements": {
|
|
3504
|
+
"outlets": [
|
|
3505
|
+
{
|
|
3506
|
+
"host": "console-settings",
|
|
3507
|
+
"position": "primary-menu",
|
|
3508
|
+
"surfaces": [
|
|
3509
|
+
"console"
|
|
3510
|
+
],
|
|
3511
|
+
"source": "templates/src/pages/console/settings/index.vue"
|
|
3512
|
+
},
|
|
3513
|
+
{
|
|
3514
|
+
"host": "console-settings",
|
|
3515
|
+
"position": "forms",
|
|
3516
|
+
"surfaces": [
|
|
3517
|
+
"console"
|
|
3518
|
+
],
|
|
3519
|
+
"source": "templates/src/pages/console/settings/index.vue"
|
|
3520
|
+
}
|
|
3521
|
+
],
|
|
3522
|
+
"contributions": [
|
|
3523
|
+
{
|
|
3524
|
+
"id": "users.profile.menu.surface-switch",
|
|
3525
|
+
"host": "auth-profile-menu",
|
|
3526
|
+
"position": "primary-menu",
|
|
3527
|
+
"surfaces": [
|
|
3528
|
+
"*"
|
|
3529
|
+
],
|
|
3530
|
+
"order": 100,
|
|
3531
|
+
"componentToken": "users.web.profile.menu.surface-switch-item",
|
|
3532
|
+
"when": "auth.authenticated === true",
|
|
3533
|
+
"source": "mutations.text#users-web-profile-surface-switch-placement"
|
|
3534
|
+
},
|
|
3535
|
+
{
|
|
3536
|
+
"id": "users.profile.menu.settings",
|
|
3537
|
+
"host": "auth-profile-menu",
|
|
3538
|
+
"position": "primary-menu",
|
|
3539
|
+
"surfaces": [
|
|
3540
|
+
"*"
|
|
3541
|
+
],
|
|
3542
|
+
"order": 500,
|
|
3543
|
+
"componentToken": "users.web.shell.menu-link-item",
|
|
3544
|
+
"when": "auth.authenticated === true",
|
|
3545
|
+
"source": "mutations.text#users-web-profile-settings-placement"
|
|
3546
|
+
},
|
|
3547
|
+
{
|
|
3548
|
+
"id": "users.console.menu.settings",
|
|
3549
|
+
"host": "shell-layout",
|
|
3550
|
+
"position": "primary-menu",
|
|
3551
|
+
"surfaces": [
|
|
3552
|
+
"console"
|
|
3553
|
+
],
|
|
3554
|
+
"order": 100,
|
|
3555
|
+
"componentToken": "users.web.shell.menu-link-item",
|
|
3556
|
+
"when": "auth.authenticated === true",
|
|
3557
|
+
"source": "mutations.text#users-web-console-settings-placement"
|
|
3558
|
+
}
|
|
3559
|
+
]
|
|
3560
|
+
}
|
|
3561
|
+
}
|
|
3562
|
+
},
|
|
3563
|
+
"mutations": {
|
|
3564
|
+
"dependencies": {
|
|
3565
|
+
"runtime": {
|
|
3566
|
+
"@tanstack/vue-query": "5.92.12",
|
|
3567
|
+
"@mdi/js": "^7.4.47",
|
|
3568
|
+
"@jskit-ai/http-runtime": "0.1.25",
|
|
3569
|
+
"@jskit-ai/realtime": "0.1.25",
|
|
3570
|
+
"@jskit-ai/kernel": "0.1.26",
|
|
3571
|
+
"@jskit-ai/shell-web": "0.1.25",
|
|
3572
|
+
"@jskit-ai/uploads-image-web": "0.1.4",
|
|
3573
|
+
"@jskit-ai/users-core": "0.1.36",
|
|
3574
|
+
"vuetify": "^4.0.0"
|
|
3575
|
+
},
|
|
3576
|
+
"dev": {}
|
|
3577
|
+
},
|
|
3578
|
+
"packageJson": {
|
|
3579
|
+
"scripts": {
|
|
3580
|
+
"server:account": "SERVER_SURFACE=account node ./bin/server.js",
|
|
3581
|
+
"dev:account": "VITE_SURFACE=account vite",
|
|
3582
|
+
"build:account": "VITE_SURFACE=account vite build"
|
|
3583
|
+
}
|
|
3584
|
+
},
|
|
3585
|
+
"procfile": {},
|
|
3586
|
+
"files": [
|
|
3587
|
+
{
|
|
3588
|
+
"from": "templates/src/pages/account/index.vue",
|
|
3589
|
+
"to": "src/pages/account/index.vue",
|
|
3590
|
+
"reason": "Install app-owned account surface root page scaffold.",
|
|
3591
|
+
"category": "users-web",
|
|
3592
|
+
"id": "users-web-page-account-root"
|
|
3593
|
+
},
|
|
3594
|
+
{
|
|
3595
|
+
"from": "templates/src/components/account/settings/AccountSettingsClientElement.vue",
|
|
3596
|
+
"to": "src/components/account/settings/AccountSettingsClientElement.vue",
|
|
3597
|
+
"reason": "Install app-owned account settings container component scaffold.",
|
|
3598
|
+
"category": "users-web",
|
|
3599
|
+
"id": "users-web-component-account-settings-root"
|
|
3600
|
+
},
|
|
3601
|
+
{
|
|
3602
|
+
"from": "templates/src/components/account/settings/AccountSettingsProfileSection.vue",
|
|
3603
|
+
"to": "src/components/account/settings/AccountSettingsProfileSection.vue",
|
|
3604
|
+
"reason": "Install app-owned account settings profile section scaffold.",
|
|
3605
|
+
"category": "users-web",
|
|
3606
|
+
"id": "users-web-component-account-settings-profile"
|
|
3607
|
+
},
|
|
3608
|
+
{
|
|
3609
|
+
"from": "templates/src/components/account/settings/AccountSettingsPreferencesSection.vue",
|
|
3610
|
+
"to": "src/components/account/settings/AccountSettingsPreferencesSection.vue",
|
|
3611
|
+
"reason": "Install app-owned account settings preferences section scaffold.",
|
|
3612
|
+
"category": "users-web",
|
|
3613
|
+
"id": "users-web-component-account-settings-preferences"
|
|
3614
|
+
},
|
|
3615
|
+
{
|
|
3616
|
+
"from": "templates/src/components/account/settings/AccountSettingsNotificationsSection.vue",
|
|
3617
|
+
"to": "src/components/account/settings/AccountSettingsNotificationsSection.vue",
|
|
3618
|
+
"reason": "Install app-owned account settings notifications section scaffold.",
|
|
3619
|
+
"category": "users-web",
|
|
3620
|
+
"id": "users-web-component-account-settings-notifications"
|
|
3621
|
+
},
|
|
3622
|
+
{
|
|
3623
|
+
"from": "templates/src/components/account/settings/AccountSettingsInvitesSection.vue",
|
|
3624
|
+
"to": "src/components/account/settings/AccountSettingsInvitesSection.vue",
|
|
3625
|
+
"reason": "Install app-owned account settings invites section scaffold.",
|
|
3626
|
+
"category": "users-web",
|
|
3627
|
+
"id": "users-web-component-account-settings-invites"
|
|
3628
|
+
},
|
|
3629
|
+
{
|
|
3630
|
+
"from": "templates/src/pages/console/settings/index.vue",
|
|
3631
|
+
"toSurface": "console",
|
|
3632
|
+
"toSurfacePath": "settings/index.vue",
|
|
3633
|
+
"reason": "Install console settings page scaffold for users-web console UI.",
|
|
3634
|
+
"category": "users-web",
|
|
3635
|
+
"id": "users-web-page-console-settings"
|
|
3636
|
+
}
|
|
3637
|
+
],
|
|
3638
|
+
"text": [
|
|
3639
|
+
{
|
|
3640
|
+
"op": "append-text",
|
|
3641
|
+
"file": "config/public.js",
|
|
3642
|
+
"position": "bottom",
|
|
3643
|
+
"skipIfContains": "config.surfaceDefinitions.account = {",
|
|
3644
|
+
"value": "\nconfig.surfaceDefinitions.account = {\n id: \"account\",\n label: \"Account\",\n pagesRoot: \"account\",\n enabled: true,\n requiresAuth: true,\n requiresWorkspace: false,\n origin: \"\"\n};\n",
|
|
3645
|
+
"reason": "Register account surface definition in public surface config.",
|
|
3646
|
+
"category": "users-web",
|
|
3647
|
+
"id": "users-web-surface-config-account"
|
|
2867
3648
|
},
|
|
2868
|
-
|
|
2869
|
-
|
|
2870
|
-
|
|
2871
|
-
|
|
2872
|
-
|
|
2873
|
-
|
|
2874
|
-
|
|
2875
|
-
|
|
3649
|
+
{
|
|
3650
|
+
"op": "append-text",
|
|
3651
|
+
"file": "src/placement.js",
|
|
3652
|
+
"position": "bottom",
|
|
3653
|
+
"skipIfContains": "id: \"users.profile.menu.surface-switch\"",
|
|
3654
|
+
"value": "\naddPlacement({\n id: \"users.profile.menu.surface-switch\",\n host: \"auth-profile-menu\",\n position: \"primary-menu\",\n surfaces: [\"*\"],\n order: 100,\n componentToken: \"users.web.profile.menu.surface-switch-item\",\n when: ({ auth }) => Boolean(auth?.authenticated)\n});\n",
|
|
3655
|
+
"reason": "Append users-web profile surface switch placement into app-owned placement registry.",
|
|
3656
|
+
"category": "users-web",
|
|
3657
|
+
"id": "users-web-profile-surface-switch-placement"
|
|
3658
|
+
},
|
|
3659
|
+
{
|
|
3660
|
+
"op": "append-text",
|
|
3661
|
+
"file": "src/placement.js",
|
|
3662
|
+
"position": "bottom",
|
|
3663
|
+
"skipIfContains": "id: \"users.profile.menu.settings\"",
|
|
3664
|
+
"value": "\naddPlacement({\n id: \"users.profile.menu.settings\",\n host: \"auth-profile-menu\",\n position: \"primary-menu\",\n surfaces: [\"*\"],\n order: 500,\n componentToken: \"users.web.shell.menu-link-item\",\n props: {\n label: \"Settings\",\n to: \"/account\"\n },\n when: ({ auth }) => Boolean(auth?.authenticated)\n});\n",
|
|
3665
|
+
"reason": "Append users-web profile settings menu placement into app-owned placement registry.",
|
|
3666
|
+
"category": "users-web",
|
|
3667
|
+
"id": "users-web-profile-settings-placement"
|
|
3668
|
+
},
|
|
3669
|
+
{
|
|
3670
|
+
"op": "append-text",
|
|
3671
|
+
"file": "src/placement.js",
|
|
3672
|
+
"position": "bottom",
|
|
3673
|
+
"skipIfContains": "id: \"users.console.menu.settings\"",
|
|
3674
|
+
"value": "\naddPlacement({\n id: \"users.console.menu.settings\",\n host: \"shell-layout\",\n position: \"primary-menu\",\n surfaces: [\"console\"],\n order: 100,\n componentToken: \"users.web.shell.menu-link-item\",\n props: {\n label: \"Settings\",\n to: \"/console/settings\",\n icon: \"mdi-cog-outline\"\n },\n when: ({ auth }) => Boolean(auth?.authenticated)\n});\n",
|
|
3675
|
+
"reason": "Append users-web console settings menu placement into app-owned placement registry.",
|
|
3676
|
+
"category": "users-web",
|
|
3677
|
+
"id": "users-web-console-settings-placement"
|
|
3678
|
+
}
|
|
3679
|
+
]
|
|
2876
3680
|
}
|
|
2877
3681
|
}
|
|
2878
3682
|
},
|
|
2879
3683
|
{
|
|
2880
|
-
"packageId": "@jskit-ai/
|
|
2881
|
-
"version": "0.1.
|
|
3684
|
+
"packageId": "@jskit-ai/workspaces-core",
|
|
3685
|
+
"version": "0.1.2",
|
|
2882
3686
|
"descriptor": {
|
|
2883
3687
|
"packageVersion": 1,
|
|
2884
|
-
"packageId": "@jskit-ai/
|
|
2885
|
-
"version": "0.1.
|
|
3688
|
+
"packageId": "@jskit-ai/workspaces-core",
|
|
3689
|
+
"version": "0.1.2",
|
|
2886
3690
|
"kind": "runtime",
|
|
2887
|
-
"description": "
|
|
3691
|
+
"description": "Workspace tenancy runtime plus HTTP routes, role catalog, and workspace config scaffolding.",
|
|
2888
3692
|
"dependsOn": [
|
|
2889
|
-
"@jskit-ai/
|
|
2890
|
-
"@jskit-ai/database-runtime",
|
|
2891
|
-
"@jskit-ai/http-runtime",
|
|
2892
|
-
"@jskit-ai/uploads-runtime",
|
|
2893
|
-
"@jskit-ai/storage-runtime"
|
|
3693
|
+
"@jskit-ai/users-core"
|
|
2894
3694
|
],
|
|
2895
3695
|
"capabilities": {
|
|
2896
3696
|
"provides": [
|
|
2897
|
-
"
|
|
2898
|
-
"
|
|
3697
|
+
"workspaces.core",
|
|
3698
|
+
"workspaces.server-routes"
|
|
2899
3699
|
],
|
|
2900
3700
|
"requires": [
|
|
2901
|
-
"
|
|
2902
|
-
"runtime.database",
|
|
2903
|
-
"runtime.storage",
|
|
2904
|
-
"runtime.uploads",
|
|
2905
|
-
"auth.provider",
|
|
2906
|
-
"auth.policy"
|
|
3701
|
+
"users.core"
|
|
2907
3702
|
]
|
|
2908
3703
|
},
|
|
2909
3704
|
"runtime": {
|
|
2910
3705
|
"server": {
|
|
2911
3706
|
"providers": [
|
|
2912
3707
|
{
|
|
2913
|
-
"entrypoint": "src/server/
|
|
2914
|
-
"export": "
|
|
3708
|
+
"entrypoint": "src/server/WorkspacesCoreServiceProvider.js",
|
|
3709
|
+
"export": "WorkspacesCoreServiceProvider"
|
|
2915
3710
|
}
|
|
2916
3711
|
]
|
|
2917
3712
|
},
|
|
@@ -2924,15 +3719,7 @@
|
|
|
2924
3719
|
"surfaces": [
|
|
2925
3720
|
{
|
|
2926
3721
|
"subpath": "./server",
|
|
2927
|
-
"summary": "Exports
|
|
2928
|
-
},
|
|
2929
|
-
{
|
|
2930
|
-
"subpath": "./shared",
|
|
2931
|
-
"summary": "Exports shared users/workspace role and settings utilities."
|
|
2932
|
-
},
|
|
2933
|
-
{
|
|
2934
|
-
"subpath": "./client",
|
|
2935
|
-
"summary": "Exports no runtime API today (reserved client entrypoint)."
|
|
3722
|
+
"summary": "Exports the workspace runtime provider and workspace route registration surface."
|
|
2936
3723
|
}
|
|
2937
3724
|
],
|
|
2938
3725
|
"containerTokens": {
|
|
@@ -3001,76 +3788,6 @@
|
|
|
3001
3788
|
"method": "DELETE",
|
|
3002
3789
|
"path": "/api/w/:workspaceSlug/invites/:inviteId",
|
|
3003
3790
|
"summary": "Revoke workspace invite by workspace slug."
|
|
3004
|
-
},
|
|
3005
|
-
{
|
|
3006
|
-
"method": "GET",
|
|
3007
|
-
"path": "/api/settings",
|
|
3008
|
-
"summary": "Get authenticated user settings."
|
|
3009
|
-
},
|
|
3010
|
-
{
|
|
3011
|
-
"method": "PATCH",
|
|
3012
|
-
"path": "/api/settings/profile",
|
|
3013
|
-
"summary": "Update profile settings."
|
|
3014
|
-
},
|
|
3015
|
-
{
|
|
3016
|
-
"method": "GET",
|
|
3017
|
-
"path": "/api/settings/profile/avatar",
|
|
3018
|
-
"summary": "Read authenticated user's uploaded avatar."
|
|
3019
|
-
},
|
|
3020
|
-
{
|
|
3021
|
-
"method": "POST",
|
|
3022
|
-
"path": "/api/settings/profile/avatar",
|
|
3023
|
-
"summary": "Upload profile avatar."
|
|
3024
|
-
},
|
|
3025
|
-
{
|
|
3026
|
-
"method": "DELETE",
|
|
3027
|
-
"path": "/api/settings/profile/avatar",
|
|
3028
|
-
"summary": "Delete profile avatar."
|
|
3029
|
-
},
|
|
3030
|
-
{
|
|
3031
|
-
"method": "PATCH",
|
|
3032
|
-
"path": "/api/settings/preferences",
|
|
3033
|
-
"summary": "Update user preferences."
|
|
3034
|
-
},
|
|
3035
|
-
{
|
|
3036
|
-
"method": "PATCH",
|
|
3037
|
-
"path": "/api/settings/notifications",
|
|
3038
|
-
"summary": "Update notification settings."
|
|
3039
|
-
},
|
|
3040
|
-
{
|
|
3041
|
-
"method": "POST",
|
|
3042
|
-
"path": "/api/settings/security/change-password",
|
|
3043
|
-
"summary": "Set or change password for authenticated user."
|
|
3044
|
-
},
|
|
3045
|
-
{
|
|
3046
|
-
"method": "PATCH",
|
|
3047
|
-
"path": "/api/settings/security/methods/password",
|
|
3048
|
-
"summary": "Enable or disable password sign-in method."
|
|
3049
|
-
},
|
|
3050
|
-
{
|
|
3051
|
-
"method": "GET",
|
|
3052
|
-
"path": "/api/settings/security/oauth/:provider/start",
|
|
3053
|
-
"summary": "Start linking an OAuth provider for authenticated user."
|
|
3054
|
-
},
|
|
3055
|
-
{
|
|
3056
|
-
"method": "DELETE",
|
|
3057
|
-
"path": "/api/settings/security/oauth/:provider",
|
|
3058
|
-
"summary": "Unlink an OAuth provider from authenticated account."
|
|
3059
|
-
},
|
|
3060
|
-
{
|
|
3061
|
-
"method": "POST",
|
|
3062
|
-
"path": "/api/settings/security/logout-others",
|
|
3063
|
-
"summary": "Sign out from other active sessions."
|
|
3064
|
-
},
|
|
3065
|
-
{
|
|
3066
|
-
"method": "GET",
|
|
3067
|
-
"path": "/api/console/settings",
|
|
3068
|
-
"summary": "Get console settings."
|
|
3069
|
-
},
|
|
3070
|
-
{
|
|
3071
|
-
"method": "PATCH",
|
|
3072
|
-
"path": "/api/console/settings",
|
|
3073
|
-
"summary": "Update console settings."
|
|
3074
3791
|
}
|
|
3075
3792
|
]
|
|
3076
3793
|
}
|
|
@@ -3078,58 +3795,30 @@
|
|
|
3078
3795
|
"mutations": {
|
|
3079
3796
|
"dependencies": {
|
|
3080
3797
|
"runtime": {
|
|
3081
|
-
"@jskit-ai/
|
|
3082
|
-
"@jskit-ai/database-runtime": "0.1.24",
|
|
3083
|
-
"@jskit-ai/http-runtime": "0.1.23",
|
|
3084
|
-
"@jskit-ai/kernel": "0.1.24",
|
|
3085
|
-
"@jskit-ai/uploads-runtime": "0.1.2",
|
|
3086
|
-
"@fastify/type-provider-typebox": "^6.1.0",
|
|
3087
|
-
"typebox": "^1.0.81"
|
|
3798
|
+
"@jskit-ai/users-core": "0.1.36"
|
|
3088
3799
|
},
|
|
3089
3800
|
"dev": {}
|
|
3090
3801
|
},
|
|
3091
3802
|
"packageJson": {
|
|
3092
3803
|
"scripts": {
|
|
3093
3804
|
"server:app": "SERVER_SURFACE=app node ./bin/server.js",
|
|
3094
|
-
"server:admin": "SERVER_SURFACE=admin node ./bin/server.js"
|
|
3095
|
-
"dev:app": "VITE_SURFACE=app vite",
|
|
3096
|
-
"dev:admin": "VITE_SURFACE=admin vite",
|
|
3097
|
-
"build:app": "VITE_SURFACE=app vite build",
|
|
3098
|
-
"build:admin": "VITE_SURFACE=admin vite build"
|
|
3805
|
+
"server:admin": "SERVER_SURFACE=admin node ./bin/server.js"
|
|
3099
3806
|
}
|
|
3100
3807
|
},
|
|
3101
3808
|
"procfile": {},
|
|
3102
3809
|
"files": [
|
|
3103
3810
|
{
|
|
3104
3811
|
"op": "install-migration",
|
|
3105
|
-
"from": "templates/migrations/
|
|
3106
|
-
"toDir": "migrations",
|
|
3107
|
-
"extension": ".cjs",
|
|
3108
|
-
"reason": "Install users/workspace core schema migration.",
|
|
3109
|
-
"category": "migration",
|
|
3110
|
-
"id": "users-core-initial-schema"
|
|
3111
|
-
},
|
|
3112
|
-
{
|
|
3113
|
-
"op": "install-migration",
|
|
3114
|
-
"from": "templates/migrations/users_core_profile_username.cjs",
|
|
3115
|
-
"toDir": "migrations",
|
|
3116
|
-
"extension": ".cjs",
|
|
3117
|
-
"reason": "Install users profile username migration.",
|
|
3118
|
-
"category": "migration",
|
|
3119
|
-
"id": "users-core-profile-username-schema"
|
|
3120
|
-
},
|
|
3121
|
-
{
|
|
3122
|
-
"op": "install-migration",
|
|
3123
|
-
"from": "templates/migrations/users_core_console_owner.cjs",
|
|
3812
|
+
"from": "templates/migrations/workspaces_core_initial.cjs",
|
|
3124
3813
|
"toDir": "migrations",
|
|
3125
3814
|
"extension": ".cjs",
|
|
3126
|
-
"reason": "Install
|
|
3815
|
+
"reason": "Install workspace tenancy schema migration.",
|
|
3127
3816
|
"category": "migration",
|
|
3128
|
-
"id": "
|
|
3817
|
+
"id": "workspaces-core-initial-schema"
|
|
3129
3818
|
},
|
|
3130
3819
|
{
|
|
3131
3820
|
"op": "install-migration",
|
|
3132
|
-
"from": "templates/migrations/
|
|
3821
|
+
"from": "templates/migrations/workspaces_core_workspace_settings_single_name_source.cjs",
|
|
3133
3822
|
"toDir": "migrations",
|
|
3134
3823
|
"extension": ".cjs",
|
|
3135
3824
|
"reason": "Remove workspace_settings name/avatar fields so workspace identity data comes from workspaces only.",
|
|
@@ -3138,7 +3827,7 @@
|
|
|
3138
3827
|
},
|
|
3139
3828
|
{
|
|
3140
3829
|
"op": "install-migration",
|
|
3141
|
-
"from": "templates/migrations/
|
|
3830
|
+
"from": "templates/migrations/workspaces_core_workspaces_drop_color.cjs",
|
|
3142
3831
|
"toDir": "migrations",
|
|
3143
3832
|
"extension": ".cjs",
|
|
3144
3833
|
"reason": "Drop legacy workspaces.color now that workspace theme colors live in workspace_settings.",
|
|
@@ -3150,93 +3839,28 @@
|
|
|
3150
3839
|
"to": "packages/main/src/shared/resources/workspaceSettingsFields.js",
|
|
3151
3840
|
"preserveOnRemove": true,
|
|
3152
3841
|
"reason": "Install app-owned workspace settings field definitions.",
|
|
3153
|
-
"category": "
|
|
3842
|
+
"category": "workspaces-core",
|
|
3154
3843
|
"id": "users-core-app-owned-workspace-settings-fields"
|
|
3155
3844
|
},
|
|
3156
|
-
{
|
|
3157
|
-
"from": "templates/packages/main/src/shared/resources/consoleSettingsFields.js",
|
|
3158
|
-
"to": "packages/main/src/shared/resources/consoleSettingsFields.js",
|
|
3159
|
-
"preserveOnRemove": true,
|
|
3160
|
-
"reason": "Install app-owned console settings field definitions.",
|
|
3161
|
-
"category": "users-core",
|
|
3162
|
-
"id": "users-core-app-owned-console-settings-fields"
|
|
3163
|
-
},
|
|
3164
|
-
{
|
|
3165
|
-
"from": "templates/packages/main/src/shared/resources/userSettingsFields.js",
|
|
3166
|
-
"to": "packages/main/src/shared/resources/userSettingsFields.js",
|
|
3167
|
-
"preserveOnRemove": true,
|
|
3168
|
-
"reason": "Install app-owned user settings field definitions.",
|
|
3169
|
-
"category": "users-core",
|
|
3170
|
-
"id": "users-core-app-owned-user-settings-fields"
|
|
3171
|
-
},
|
|
3172
3845
|
{
|
|
3173
3846
|
"from": "templates/config/roles.js",
|
|
3174
3847
|
"to": "config/roles.js",
|
|
3175
3848
|
"preserveOnRemove": true,
|
|
3176
3849
|
"reason": "Install app-owned role catalog in a dedicated config file.",
|
|
3177
|
-
"category": "
|
|
3850
|
+
"category": "workspaces-core",
|
|
3178
3851
|
"id": "users-core-app-owned-role-catalog-config"
|
|
3179
|
-
}
|
|
3180
|
-
],
|
|
3181
|
-
"text": [
|
|
3182
|
-
{
|
|
3183
|
-
"op": "upsert-env",
|
|
3184
|
-
"file": ".env",
|
|
3185
|
-
"key": "AUTH_PROFILE_MODE",
|
|
3186
|
-
"value": "users",
|
|
3187
|
-
"reason": "Enable users-backed auth profile sync when users-core is installed.",
|
|
3188
|
-
"category": "runtime-config",
|
|
3189
|
-
"id": "users-core-auth-profile-mode"
|
|
3190
|
-
},
|
|
3191
|
-
{
|
|
3192
|
-
"op": "append-text",
|
|
3193
|
-
"file": "packages/main/src/shared/index.js",
|
|
3194
|
-
"position": "top",
|
|
3195
|
-
"skipIfContains": "import \"./resources/workspaceSettingsFields.js\";",
|
|
3196
|
-
"value": "import \"./resources/workspaceSettingsFields.js\";\n",
|
|
3197
|
-
"reason": "Load app-owned workspace settings field definitions inside the main shared module.",
|
|
3198
|
-
"category": "users-core",
|
|
3199
|
-
"id": "users-core-main-shared-workspace-settings-field-import"
|
|
3200
|
-
},
|
|
3201
|
-
{
|
|
3202
|
-
"op": "append-text",
|
|
3203
|
-
"file": "packages/main/src/shared/index.js",
|
|
3204
|
-
"position": "top",
|
|
3205
|
-
"skipIfContains": "import \"./resources/consoleSettingsFields.js\";",
|
|
3206
|
-
"value": "import \"./resources/consoleSettingsFields.js\";\n",
|
|
3207
|
-
"reason": "Load app-owned console settings field definitions inside the main shared module.",
|
|
3208
|
-
"category": "users-core",
|
|
3209
|
-
"id": "users-core-main-shared-console-settings-field-import"
|
|
3210
|
-
},
|
|
3211
|
-
{
|
|
3212
|
-
"op": "append-text",
|
|
3213
|
-
"file": "packages/main/src/shared/index.js",
|
|
3214
|
-
"position": "top",
|
|
3215
|
-
"skipIfContains": "import \"./resources/userSettingsFields.js\";",
|
|
3216
|
-
"value": "import \"./resources/userSettingsFields.js\";\n",
|
|
3217
|
-
"reason": "Load app-owned user settings field definitions inside the main shared module.",
|
|
3218
|
-
"category": "users-core",
|
|
3219
|
-
"id": "users-core-main-shared-user-settings-field-import"
|
|
3220
|
-
},
|
|
3221
|
-
{
|
|
3222
|
-
"op": "append-text",
|
|
3223
|
-
"file": "src/main.js",
|
|
3224
|
-
"position": "top",
|
|
3225
|
-
"skipIfContains": "import \"@local/main/shared\";",
|
|
3226
|
-
"value": "import \"@local/main/shared\";\n",
|
|
3227
|
-
"reason": "Ensure client runtime loads app-owned shared settings field registration.",
|
|
3228
|
-
"category": "users-core",
|
|
3229
|
-
"id": "users-core-client-import-main-shared"
|
|
3230
|
-
},
|
|
3852
|
+
}
|
|
3853
|
+
],
|
|
3854
|
+
"text": [
|
|
3231
3855
|
{
|
|
3232
3856
|
"op": "append-text",
|
|
3233
|
-
"file": "
|
|
3857
|
+
"file": "packages/main/src/shared/index.js",
|
|
3234
3858
|
"position": "top",
|
|
3235
|
-
"skipIfContains": "import \"
|
|
3236
|
-
"value": "import \"
|
|
3237
|
-
"reason": "
|
|
3238
|
-
"category": "
|
|
3239
|
-
"id": "users-core-
|
|
3859
|
+
"skipIfContains": "import \"./resources/workspaceSettingsFields.js\";",
|
|
3860
|
+
"value": "import \"./resources/workspaceSettingsFields.js\";\n",
|
|
3861
|
+
"reason": "Load app-owned workspace settings field definitions inside the main shared module.",
|
|
3862
|
+
"category": "workspaces-core",
|
|
3863
|
+
"id": "users-core-main-shared-workspace-settings-field-import"
|
|
3240
3864
|
},
|
|
3241
3865
|
{
|
|
3242
3866
|
"op": "append-text",
|
|
@@ -3245,7 +3869,7 @@
|
|
|
3245
3869
|
"skipIfContains": "import { roleCatalog } from \"./roles.js\";",
|
|
3246
3870
|
"value": "import { roleCatalog } from \"./roles.js\";\n",
|
|
3247
3871
|
"reason": "Load app-owned role catalog from dedicated config file.",
|
|
3248
|
-
"category": "
|
|
3872
|
+
"category": "workspaces-core",
|
|
3249
3873
|
"id": "users-core-role-catalog-public-import"
|
|
3250
3874
|
},
|
|
3251
3875
|
{
|
|
@@ -3255,7 +3879,7 @@
|
|
|
3255
3879
|
"skipIfContains": "import { surfaceAccessPolicies } from \"./surfaceAccessPolicies.js\";",
|
|
3256
3880
|
"value": "import { surfaceAccessPolicies } from \"./surfaceAccessPolicies.js\";\n",
|
|
3257
3881
|
"reason": "Load app-owned surface access policy catalog from dedicated config file.",
|
|
3258
|
-
"category": "
|
|
3882
|
+
"category": "workspaces-core",
|
|
3259
3883
|
"id": "users-core-surface-access-policies-public-import"
|
|
3260
3884
|
},
|
|
3261
3885
|
{
|
|
@@ -3265,7 +3889,7 @@
|
|
|
3265
3889
|
"skipIfContains": "export const surfaceAccessPolicies = {};",
|
|
3266
3890
|
"value": "export const surfaceAccessPolicies = {};\n\n",
|
|
3267
3891
|
"reason": "Initialize app-owned surface access policy config if missing.",
|
|
3268
|
-
"category": "
|
|
3892
|
+
"category": "workspaces-core",
|
|
3269
3893
|
"id": "users-core-surface-access-policies-config-init"
|
|
3270
3894
|
},
|
|
3271
3895
|
{
|
|
@@ -3275,7 +3899,7 @@
|
|
|
3275
3899
|
"skipIfContains": "surfaceAccessPolicies.workspace_member = {",
|
|
3276
3900
|
"value": "\nsurfaceAccessPolicies.workspace_member = {\n requireAuth: true,\n requireWorkspaceMembership: true\n};\n",
|
|
3277
3901
|
"reason": "Register workspace-member surface access policy for workspace surfaces.",
|
|
3278
|
-
"category": "
|
|
3902
|
+
"category": "workspaces-core",
|
|
3279
3903
|
"id": "users-core-surface-access-policies-workspace-member"
|
|
3280
3904
|
},
|
|
3281
3905
|
{
|
|
@@ -3285,7 +3909,7 @@
|
|
|
3285
3909
|
"skipIfContains": "config.surfaceDefinitions.app = {",
|
|
3286
3910
|
"value": "\nconfig.surfaceDefinitions.app = {\n id: \"app\",\n label: \"App\",\n pagesRoot: \"w/[workspaceSlug]\",\n enabled: true,\n requiresAuth: true,\n requiresWorkspace: true,\n accessPolicyId: \"workspace_member\",\n origin: \"\"\n};\n\nconfig.surfaceDefinitions.admin = {\n id: \"admin\",\n label: \"Admin\",\n pagesRoot: \"w/[workspaceSlug]/admin\",\n enabled: true,\n requiresAuth: true,\n requiresWorkspace: true,\n accessPolicyId: \"workspace_member\",\n origin: \"\"\n};\n",
|
|
3287
3911
|
"reason": "Append workspace surface topology when tenancy enables workspace routing.",
|
|
3288
|
-
"category": "
|
|
3912
|
+
"category": "workspaces-core",
|
|
3289
3913
|
"id": "users-core-surface-config-workspace",
|
|
3290
3914
|
"when": {
|
|
3291
3915
|
"config": "tenancyMode",
|
|
@@ -3301,8 +3925,8 @@
|
|
|
3301
3925
|
"position": "bottom",
|
|
3302
3926
|
"skipIfContains": "config.workspaceSwitching =",
|
|
3303
3927
|
"value": "\nconfig.workspaceSwitching = true;\nconfig.workspaceInvitations = {\n enabled: true,\n allowInPersonalMode: true\n};\nconfig.assistantEnabled = false;\nconfig.assistantRequiredPermission = \"\";\nconfig.socialEnabled = false;\nconfig.socialFederationEnabled = false;\n",
|
|
3304
|
-
"reason": "Append default
|
|
3305
|
-
"category": "
|
|
3928
|
+
"reason": "Append default workspace feature toggles into app-owned config.",
|
|
3929
|
+
"category": "workspaces-core",
|
|
3306
3930
|
"id": "users-core-public-config"
|
|
3307
3931
|
},
|
|
3308
3932
|
{
|
|
@@ -3312,7 +3936,7 @@
|
|
|
3312
3936
|
"skipIfContains": "config.roleCatalog = roleCatalog;",
|
|
3313
3937
|
"value": "\nconfig.roleCatalog = roleCatalog;\n",
|
|
3314
3938
|
"reason": "Bind app-owned role catalog onto public config.",
|
|
3315
|
-
"category": "
|
|
3939
|
+
"category": "workspaces-core",
|
|
3316
3940
|
"id": "users-core-role-catalog-public-config"
|
|
3317
3941
|
},
|
|
3318
3942
|
{
|
|
@@ -3322,7 +3946,7 @@
|
|
|
3322
3946
|
"skipIfContains": "config.surfaceAccessPolicies = surfaceAccessPolicies;",
|
|
3323
3947
|
"value": "\nconfig.surfaceAccessPolicies = surfaceAccessPolicies;\n",
|
|
3324
3948
|
"reason": "Bind app-owned surface access policies onto public config.",
|
|
3325
|
-
"category": "
|
|
3949
|
+
"category": "workspaces-core",
|
|
3326
3950
|
"id": "users-core-surface-access-policies-public-config"
|
|
3327
3951
|
},
|
|
3328
3952
|
{
|
|
@@ -3331,8 +3955,8 @@
|
|
|
3331
3955
|
"position": "bottom",
|
|
3332
3956
|
"skipIfContains": "config.workspaceColor =",
|
|
3333
3957
|
"value": "\nconfig.workspaceColor = \"#1867C0\";\n",
|
|
3334
|
-
"reason": "Append default server
|
|
3335
|
-
"category": "
|
|
3958
|
+
"reason": "Append default workspace server settings into app-owned config.",
|
|
3959
|
+
"category": "workspaces-core",
|
|
3336
3960
|
"id": "users-core-server-config"
|
|
3337
3961
|
},
|
|
3338
3962
|
{
|
|
@@ -3342,7 +3966,7 @@
|
|
|
3342
3966
|
"skipIfContains": "config.workspaceSettings =",
|
|
3343
3967
|
"value": "\nconfig.workspaceSettings = {\n defaults: {\n invitesEnabled: true\n }\n};\n",
|
|
3344
3968
|
"reason": "Append app-owned workspace settings defaults into the server config.",
|
|
3345
|
-
"category": "
|
|
3969
|
+
"category": "workspaces-core",
|
|
3346
3970
|
"id": "users-core-workspace-settings-server-config"
|
|
3347
3971
|
},
|
|
3348
3972
|
{
|
|
@@ -3352,7 +3976,7 @@
|
|
|
3352
3976
|
"skipIfContains": "config.workspaceMembers =",
|
|
3353
3977
|
"value": "\nconfig.workspaceMembers = {\n defaults: {\n inviteExpiresInMs: 604800000\n }\n};\n",
|
|
3354
3978
|
"reason": "Append app-owned workspace member invite policy defaults into the server config.",
|
|
3355
|
-
"category": "
|
|
3979
|
+
"category": "workspaces-core",
|
|
3356
3980
|
"id": "users-core-workspace-members-server-config"
|
|
3357
3981
|
}
|
|
3358
3982
|
]
|
|
@@ -3360,27 +3984,25 @@
|
|
|
3360
3984
|
}
|
|
3361
3985
|
},
|
|
3362
3986
|
{
|
|
3363
|
-
"packageId": "@jskit-ai/
|
|
3364
|
-
"version": "0.1.
|
|
3987
|
+
"packageId": "@jskit-ai/workspaces-web",
|
|
3988
|
+
"version": "0.1.2",
|
|
3365
3989
|
"descriptor": {
|
|
3366
3990
|
"packageVersion": 1,
|
|
3367
|
-
"packageId": "@jskit-ai/
|
|
3368
|
-
"version": "0.1.
|
|
3991
|
+
"packageId": "@jskit-ai/workspaces-web",
|
|
3992
|
+
"version": "0.1.2",
|
|
3369
3993
|
"kind": "runtime",
|
|
3370
|
-
"description": "
|
|
3994
|
+
"description": "Workspace web module: workspace selector, tools widget, workspace surfaces, and members/settings UI.",
|
|
3371
3995
|
"dependsOn": [
|
|
3372
|
-
"@jskit-ai/
|
|
3373
|
-
"@jskit-ai/
|
|
3374
|
-
"@jskit-ai/uploads-image-web",
|
|
3375
|
-
"@jskit-ai/users-core"
|
|
3996
|
+
"@jskit-ai/workspaces-core",
|
|
3997
|
+
"@jskit-ai/users-web"
|
|
3376
3998
|
],
|
|
3377
3999
|
"capabilities": {
|
|
3378
4000
|
"provides": [
|
|
3379
|
-
"
|
|
4001
|
+
"workspaces.web"
|
|
3380
4002
|
],
|
|
3381
4003
|
"requires": [
|
|
3382
|
-
"
|
|
3383
|
-
"
|
|
4004
|
+
"users.web",
|
|
4005
|
+
"workspaces.core"
|
|
3384
4006
|
]
|
|
3385
4007
|
},
|
|
3386
4008
|
"runtime": {
|
|
@@ -3390,8 +4012,8 @@
|
|
|
3390
4012
|
"client": {
|
|
3391
4013
|
"providers": [
|
|
3392
4014
|
{
|
|
3393
|
-
"entrypoint": "src/client/providers/
|
|
3394
|
-
"export": "
|
|
4015
|
+
"entrypoint": "src/client/providers/WorkspacesWebClientProvider.js",
|
|
4016
|
+
"export": "WorkspacesWebClientProvider"
|
|
3395
4017
|
}
|
|
3396
4018
|
]
|
|
3397
4019
|
}
|
|
@@ -3400,64 +4022,8 @@
|
|
|
3400
4022
|
"apiSummary": {
|
|
3401
4023
|
"surfaces": [
|
|
3402
4024
|
{
|
|
3403
|
-
"subpath": "./client",
|
|
3404
|
-
"summary": "Exports
|
|
3405
|
-
},
|
|
3406
|
-
{
|
|
3407
|
-
"subpath": "./client/providers/UsersWebClientProvider",
|
|
3408
|
-
"summary": "Exports users-web client provider class."
|
|
3409
|
-
},
|
|
3410
|
-
{
|
|
3411
|
-
"subpath": "./client/components/ProfileClientElement",
|
|
3412
|
-
"summary": "Exports profile settings client element scaffold component."
|
|
3413
|
-
},
|
|
3414
|
-
{
|
|
3415
|
-
"subpath": "./client/components/WorkspacesClientElement",
|
|
3416
|
-
"summary": "Exports workspace chooser client element component."
|
|
3417
|
-
},
|
|
3418
|
-
{
|
|
3419
|
-
"subpath": "./client/components/WorkspaceMembersClientElement",
|
|
3420
|
-
"summary": "Exports workspace members admin client element component."
|
|
3421
|
-
},
|
|
3422
|
-
{
|
|
3423
|
-
"subpath": "./client/composables/useAddEdit",
|
|
3424
|
-
"summary": "Exports add/edit operation composable."
|
|
3425
|
-
},
|
|
3426
|
-
{
|
|
3427
|
-
"subpath": "./client/composables/useList",
|
|
3428
|
-
"summary": "Exports list operation composable."
|
|
3429
|
-
},
|
|
3430
|
-
{
|
|
3431
|
-
"subpath": "./client/composables/crudLookupFieldRuntime",
|
|
3432
|
-
"summary": "Exports CRUD lookup field runtime helpers for generated add/edit forms."
|
|
3433
|
-
},
|
|
3434
|
-
{
|
|
3435
|
-
"subpath": "./client/composables/useCommand",
|
|
3436
|
-
"summary": "Exports command operation composable."
|
|
3437
|
-
},
|
|
3438
|
-
{
|
|
3439
|
-
"subpath": "./client/composables/useView",
|
|
3440
|
-
"summary": "Exports read/view operation composable."
|
|
3441
|
-
},
|
|
3442
|
-
{
|
|
3443
|
-
"subpath": "./client/composables/usePagedCollection",
|
|
3444
|
-
"summary": "Exports paged collection query composable."
|
|
3445
|
-
},
|
|
3446
|
-
{
|
|
3447
|
-
"subpath": "./client/composables/usePaths",
|
|
3448
|
-
"summary": "Exports surface/workspace path resolver composable."
|
|
3449
|
-
},
|
|
3450
|
-
{
|
|
3451
|
-
"subpath": "./client/composables/useAccountSettingsRuntime",
|
|
3452
|
-
"summary": "Exports account settings runtime composable for app-owned settings UI."
|
|
3453
|
-
},
|
|
3454
|
-
{
|
|
3455
|
-
"subpath": "./client/composables/useWorkspaceRouteContext",
|
|
3456
|
-
"summary": "Exports workspace route context composable."
|
|
3457
|
-
},
|
|
3458
|
-
{
|
|
3459
|
-
"subpath": "./client/support/realtimeWorkspace",
|
|
3460
|
-
"summary": "Exports workspace realtime event helpers."
|
|
4025
|
+
"subpath": "./client/providers/WorkspacesWebClientProvider",
|
|
4026
|
+
"summary": "Exports workspaces-web client provider class."
|
|
3461
4027
|
}
|
|
3462
4028
|
],
|
|
3463
4029
|
"containerTokens": {
|
|
@@ -3465,15 +4031,10 @@
|
|
|
3465
4031
|
"client": [
|
|
3466
4032
|
"users.web.workspace.selector",
|
|
3467
4033
|
"users.web.workspace.tools.widget",
|
|
3468
|
-
"users.web.shell.menu-link-item",
|
|
3469
|
-
"users.web.shell.surface-aware-menu-link-item",
|
|
3470
|
-
"users.web.profile.menu.surface-switch-item",
|
|
3471
4034
|
"users.web.workspace-settings.menu-item",
|
|
3472
4035
|
"users.web.workspace-members.menu-item",
|
|
3473
|
-
"users.web.profile.element",
|
|
3474
4036
|
"users.web.members-admin.element",
|
|
3475
|
-
"users.web.workspace-settings.element"
|
|
3476
|
-
"users.web.bootstrap-placement.runtime"
|
|
4037
|
+
"users.web.workspace-settings.element"
|
|
3477
4038
|
]
|
|
3478
4039
|
}
|
|
3479
4040
|
},
|
|
@@ -3481,28 +4042,20 @@
|
|
|
3481
4042
|
"placements": {
|
|
3482
4043
|
"outlets": [
|
|
3483
4044
|
{
|
|
3484
|
-
"host": "
|
|
4045
|
+
"host": "admin-settings",
|
|
3485
4046
|
"position": "primary-menu",
|
|
3486
4047
|
"surfaces": [
|
|
3487
4048
|
"admin"
|
|
3488
4049
|
],
|
|
3489
|
-
"source": "src/
|
|
4050
|
+
"source": "templates/src/pages/admin/workspace/settings/index.vue"
|
|
3490
4051
|
},
|
|
3491
4052
|
{
|
|
3492
|
-
"host": "
|
|
4053
|
+
"host": "admin-settings",
|
|
3493
4054
|
"position": "forms",
|
|
3494
4055
|
"surfaces": [
|
|
3495
4056
|
"admin"
|
|
3496
4057
|
],
|
|
3497
4058
|
"source": "templates/src/pages/admin/workspace/settings/index.vue"
|
|
3498
|
-
},
|
|
3499
|
-
{
|
|
3500
|
-
"host": "console-settings",
|
|
3501
|
-
"position": "forms",
|
|
3502
|
-
"surfaces": [
|
|
3503
|
-
"console"
|
|
3504
|
-
],
|
|
3505
|
-
"source": "templates/src/pages/console/settings/index.vue"
|
|
3506
4059
|
}
|
|
3507
4060
|
],
|
|
3508
4061
|
"contributions": [
|
|
@@ -3530,30 +4083,6 @@
|
|
|
3530
4083
|
"when": "auth.authenticated === true",
|
|
3531
4084
|
"source": "mutations.text#users-web-placement-block"
|
|
3532
4085
|
},
|
|
3533
|
-
{
|
|
3534
|
-
"id": "users.profile.menu.surface-switch",
|
|
3535
|
-
"host": "auth-profile-menu",
|
|
3536
|
-
"position": "primary-menu",
|
|
3537
|
-
"surfaces": [
|
|
3538
|
-
"*"
|
|
3539
|
-
],
|
|
3540
|
-
"order": 100,
|
|
3541
|
-
"componentToken": "users.web.profile.menu.surface-switch-item",
|
|
3542
|
-
"when": "auth.authenticated === true",
|
|
3543
|
-
"source": "mutations.text#users-web-profile-surface-switch-placement"
|
|
3544
|
-
},
|
|
3545
|
-
{
|
|
3546
|
-
"id": "users.profile.menu.settings",
|
|
3547
|
-
"host": "auth-profile-menu",
|
|
3548
|
-
"position": "primary-menu",
|
|
3549
|
-
"surfaces": [
|
|
3550
|
-
"*"
|
|
3551
|
-
],
|
|
3552
|
-
"order": 500,
|
|
3553
|
-
"componentToken": "users.web.shell.menu-link-item",
|
|
3554
|
-
"when": "auth.authenticated === true",
|
|
3555
|
-
"source": "mutations.text#users-web-profile-settings-placement"
|
|
3556
|
-
},
|
|
3557
4086
|
{
|
|
3558
4087
|
"id": "users.workspace.tools.widget",
|
|
3559
4088
|
"host": "shell-layout",
|
|
@@ -3587,21 +4116,9 @@
|
|
|
3587
4116
|
"componentToken": "users.web.workspace-members.menu-item",
|
|
3588
4117
|
"source": "mutations.text#users-web-placement-block"
|
|
3589
4118
|
},
|
|
3590
|
-
{
|
|
3591
|
-
"id": "users.console.menu.settings",
|
|
3592
|
-
"host": "shell-layout",
|
|
3593
|
-
"position": "primary-menu",
|
|
3594
|
-
"surfaces": [
|
|
3595
|
-
"console"
|
|
3596
|
-
],
|
|
3597
|
-
"order": 100,
|
|
3598
|
-
"componentToken": "users.web.shell.menu-link-item",
|
|
3599
|
-
"when": "auth.authenticated === true",
|
|
3600
|
-
"source": "mutations.text#users-web-console-settings-placement"
|
|
3601
|
-
},
|
|
3602
4119
|
{
|
|
3603
4120
|
"id": "users.workspace.settings.form",
|
|
3604
|
-
"host": "
|
|
4121
|
+
"host": "admin-settings",
|
|
3605
4122
|
"position": "forms",
|
|
3606
4123
|
"surfaces": [
|
|
3607
4124
|
"admin"
|
|
@@ -3617,81 +4134,33 @@
|
|
|
3617
4134
|
"mutations": {
|
|
3618
4135
|
"dependencies": {
|
|
3619
4136
|
"runtime": {
|
|
3620
|
-
"@
|
|
3621
|
-
"@
|
|
3622
|
-
"@jskit-ai/http-runtime": "0.1.23",
|
|
3623
|
-
"@jskit-ai/realtime": "0.1.23",
|
|
3624
|
-
"@jskit-ai/kernel": "0.1.24",
|
|
3625
|
-
"@jskit-ai/shell-web": "0.1.23",
|
|
3626
|
-
"@jskit-ai/uploads-image-web": "0.1.2",
|
|
3627
|
-
"@jskit-ai/users-core": "0.1.33",
|
|
3628
|
-
"vuetify": "^4.0.0"
|
|
4137
|
+
"@jskit-ai/workspaces-core": "0.1.2",
|
|
4138
|
+
"@jskit-ai/users-web": "0.1.41"
|
|
3629
4139
|
},
|
|
3630
4140
|
"dev": {}
|
|
3631
4141
|
},
|
|
3632
4142
|
"packageJson": {
|
|
3633
4143
|
"scripts": {
|
|
3634
|
-
"
|
|
3635
|
-
"dev:
|
|
3636
|
-
"build:
|
|
4144
|
+
"dev:app": "VITE_SURFACE=app vite",
|
|
4145
|
+
"dev:admin": "VITE_SURFACE=admin vite",
|
|
4146
|
+
"build:app": "VITE_SURFACE=app vite build",
|
|
4147
|
+
"build:admin": "VITE_SURFACE=admin vite build"
|
|
3637
4148
|
}
|
|
3638
4149
|
},
|
|
3639
4150
|
"procfile": {},
|
|
3640
4151
|
"files": [
|
|
3641
|
-
{
|
|
3642
|
-
"from": "templates/src/pages/account/index.vue",
|
|
3643
|
-
"to": "src/pages/account/index.vue",
|
|
3644
|
-
"reason": "Install app-owned account surface root page scaffold.",
|
|
3645
|
-
"category": "users-web",
|
|
3646
|
-
"id": "users-web-page-account-root"
|
|
3647
|
-
},
|
|
3648
|
-
{
|
|
3649
|
-
"from": "templates/src/components/account/settings/AccountSettingsClientElement.vue",
|
|
3650
|
-
"to": "src/components/account/settings/AccountSettingsClientElement.vue",
|
|
3651
|
-
"reason": "Install app-owned account settings container component scaffold.",
|
|
3652
|
-
"category": "users-web",
|
|
3653
|
-
"id": "users-web-component-account-settings-root"
|
|
3654
|
-
},
|
|
3655
|
-
{
|
|
3656
|
-
"from": "templates/src/components/account/settings/AccountSettingsProfileSection.vue",
|
|
3657
|
-
"to": "src/components/account/settings/AccountSettingsProfileSection.vue",
|
|
3658
|
-
"reason": "Install app-owned account settings profile section scaffold.",
|
|
3659
|
-
"category": "users-web",
|
|
3660
|
-
"id": "users-web-component-account-settings-profile"
|
|
3661
|
-
},
|
|
3662
|
-
{
|
|
3663
|
-
"from": "templates/src/components/account/settings/AccountSettingsPreferencesSection.vue",
|
|
3664
|
-
"to": "src/components/account/settings/AccountSettingsPreferencesSection.vue",
|
|
3665
|
-
"reason": "Install app-owned account settings preferences section scaffold.",
|
|
3666
|
-
"category": "users-web",
|
|
3667
|
-
"id": "users-web-component-account-settings-preferences"
|
|
3668
|
-
},
|
|
3669
|
-
{
|
|
3670
|
-
"from": "templates/src/components/account/settings/AccountSettingsNotificationsSection.vue",
|
|
3671
|
-
"to": "src/components/account/settings/AccountSettingsNotificationsSection.vue",
|
|
3672
|
-
"reason": "Install app-owned account settings notifications section scaffold.",
|
|
3673
|
-
"category": "users-web",
|
|
3674
|
-
"id": "users-web-component-account-settings-notifications"
|
|
3675
|
-
},
|
|
3676
|
-
{
|
|
3677
|
-
"from": "templates/src/components/account/settings/AccountSettingsInvitesSection.vue",
|
|
3678
|
-
"to": "src/components/account/settings/AccountSettingsInvitesSection.vue",
|
|
3679
|
-
"reason": "Install app-owned account settings invites section scaffold.",
|
|
3680
|
-
"category": "users-web",
|
|
3681
|
-
"id": "users-web-component-account-settings-invites"
|
|
3682
|
-
},
|
|
3683
4152
|
{
|
|
3684
4153
|
"from": "templates/packages/main/src/client/components/AccountPendingInvitesCue.vue",
|
|
3685
4154
|
"to": "packages/main/src/client/components/AccountPendingInvitesCue.vue",
|
|
3686
4155
|
"reason": "Install app-owned account pending invites cue component scaffold.",
|
|
3687
|
-
"category": "
|
|
4156
|
+
"category": "workspaces-web",
|
|
3688
4157
|
"id": "users-web-main-component-account-pending-invites-cue"
|
|
3689
4158
|
},
|
|
3690
4159
|
{
|
|
3691
4160
|
"from": "templates/src/components/WorkspaceNotFoundCard.vue",
|
|
3692
4161
|
"to": "src/components/WorkspaceNotFoundCard.vue",
|
|
3693
4162
|
"reason": "Install app-owned workspace not-found card component used by workspace-dependent surfaces.",
|
|
3694
|
-
"category": "
|
|
4163
|
+
"category": "workspaces-web",
|
|
3695
4164
|
"id": "users-web-component-workspace-not-found-card",
|
|
3696
4165
|
"when": {
|
|
3697
4166
|
"config": "tenancyMode",
|
|
@@ -3705,7 +4174,7 @@
|
|
|
3705
4174
|
"from": "templates/src/composables/useWorkspaceNotFoundState.js",
|
|
3706
4175
|
"to": "src/composables/useWorkspaceNotFoundState.js",
|
|
3707
4176
|
"reason": "Install app-owned workspace bootstrap status composable for workspace-dependent surfaces.",
|
|
3708
|
-
"category": "
|
|
4177
|
+
"category": "workspaces-web",
|
|
3709
4178
|
"id": "users-web-composable-workspace-not-found-state",
|
|
3710
4179
|
"when": {
|
|
3711
4180
|
"config": "tenancyMode",
|
|
@@ -3719,8 +4188,8 @@
|
|
|
3719
4188
|
"from": "templates/src/surfaces/app/root.vue",
|
|
3720
4189
|
"toSurface": "app",
|
|
3721
4190
|
"toSurfaceRoot": true,
|
|
3722
|
-
"reason": "Install workspace app surface wrapper shell for
|
|
3723
|
-
"category": "
|
|
4191
|
+
"reason": "Install workspace app surface wrapper shell for workspaces-web.",
|
|
4192
|
+
"category": "workspaces-web",
|
|
3724
4193
|
"id": "users-web-page-app-wrapper",
|
|
3725
4194
|
"when": {
|
|
3726
4195
|
"config": "tenancyMode",
|
|
@@ -3734,8 +4203,8 @@
|
|
|
3734
4203
|
"from": "templates/src/surfaces/app/index.vue",
|
|
3735
4204
|
"toSurface": "app",
|
|
3736
4205
|
"toSurfacePath": "index.vue",
|
|
3737
|
-
"reason": "Install workspace app surface starter page scaffold for
|
|
3738
|
-
"category": "
|
|
4206
|
+
"reason": "Install workspace app surface starter page scaffold for workspaces-web.",
|
|
4207
|
+
"category": "workspaces-web",
|
|
3739
4208
|
"id": "users-web-page-app-index",
|
|
3740
4209
|
"when": {
|
|
3741
4210
|
"config": "tenancyMode",
|
|
@@ -3749,8 +4218,8 @@
|
|
|
3749
4218
|
"from": "templates/src/surfaces/admin/root.vue",
|
|
3750
4219
|
"toSurface": "admin",
|
|
3751
4220
|
"toSurfaceRoot": true,
|
|
3752
|
-
"reason": "Install workspace admin surface wrapper shell for
|
|
3753
|
-
"category": "
|
|
4221
|
+
"reason": "Install workspace admin surface wrapper shell for workspaces-web.",
|
|
4222
|
+
"category": "workspaces-web",
|
|
3754
4223
|
"id": "users-web-page-admin-wrapper",
|
|
3755
4224
|
"when": {
|
|
3756
4225
|
"config": "tenancyMode",
|
|
@@ -3764,8 +4233,8 @@
|
|
|
3764
4233
|
"from": "templates/src/surfaces/admin/index.vue",
|
|
3765
4234
|
"toSurface": "admin",
|
|
3766
4235
|
"toSurfacePath": "index.vue",
|
|
3767
|
-
"reason": "Install workspace admin surface starter page scaffold for
|
|
3768
|
-
"category": "
|
|
4236
|
+
"reason": "Install workspace admin surface starter page scaffold for workspaces-web.",
|
|
4237
|
+
"category": "workspaces-web",
|
|
3769
4238
|
"id": "users-web-page-admin-index",
|
|
3770
4239
|
"when": {
|
|
3771
4240
|
"config": "tenancyMode",
|
|
@@ -3779,8 +4248,8 @@
|
|
|
3779
4248
|
"from": "templates/src/pages/admin/members/index.vue",
|
|
3780
4249
|
"toSurface": "admin",
|
|
3781
4250
|
"toSurfacePath": "members/index.vue",
|
|
3782
|
-
"reason": "Install admin members starter page scaffold for
|
|
3783
|
-
"category": "
|
|
4251
|
+
"reason": "Install admin members starter page scaffold for workspaces-web members UI.",
|
|
4252
|
+
"category": "workspaces-web",
|
|
3784
4253
|
"id": "users-web-page-admin-members",
|
|
3785
4254
|
"when": {
|
|
3786
4255
|
"config": "tenancyMode",
|
|
@@ -3794,8 +4263,8 @@
|
|
|
3794
4263
|
"from": "templates/src/pages/admin/workspace/settings/index.vue",
|
|
3795
4264
|
"toSurface": "admin",
|
|
3796
4265
|
"toSurfacePath": "workspace/settings/index.vue",
|
|
3797
|
-
"reason": "Install workspace settings page scaffold for
|
|
3798
|
-
"category": "
|
|
4266
|
+
"reason": "Install workspace settings page scaffold for workspaces-web workspace admin UI.",
|
|
4267
|
+
"category": "workspaces-web",
|
|
3799
4268
|
"id": "users-web-page-admin-workspace-settings",
|
|
3800
4269
|
"when": {
|
|
3801
4270
|
"config": "tenancyMode",
|
|
@@ -3804,35 +4273,17 @@
|
|
|
3804
4273
|
"workspaces"
|
|
3805
4274
|
]
|
|
3806
4275
|
}
|
|
3807
|
-
},
|
|
3808
|
-
{
|
|
3809
|
-
"from": "templates/src/pages/console/settings/index.vue",
|
|
3810
|
-
"toSurface": "console",
|
|
3811
|
-
"toSurfacePath": "settings/index.vue",
|
|
3812
|
-
"reason": "Install console settings page scaffold for users-web console UI.",
|
|
3813
|
-
"category": "users-web",
|
|
3814
|
-
"id": "users-web-page-console-settings"
|
|
3815
4276
|
}
|
|
3816
4277
|
],
|
|
3817
4278
|
"text": [
|
|
3818
|
-
{
|
|
3819
|
-
"op": "append-text",
|
|
3820
|
-
"file": "config/public.js",
|
|
3821
|
-
"position": "bottom",
|
|
3822
|
-
"skipIfContains": "config.surfaceDefinitions.account = {",
|
|
3823
|
-
"value": "\nconfig.surfaceDefinitions.account = {\n id: \"account\",\n label: \"Account\",\n pagesRoot: \"account\",\n enabled: true,\n requiresAuth: true,\n requiresWorkspace: false,\n origin: \"\"\n};\n",
|
|
3824
|
-
"reason": "Register account surface definition in public surface config.",
|
|
3825
|
-
"category": "users-web",
|
|
3826
|
-
"id": "users-web-surface-config-account"
|
|
3827
|
-
},
|
|
3828
4279
|
{
|
|
3829
4280
|
"op": "append-text",
|
|
3830
4281
|
"file": "src/placement.js",
|
|
3831
4282
|
"position": "bottom",
|
|
3832
4283
|
"skipIfContains": "id: \"users.workspace.selector\"",
|
|
3833
4284
|
"value": "\naddPlacement({\n id: \"users.workspace.selector\",\n host: \"shell-layout\",\n position: \"top-left\",\n surfaces: [\"*\"],\n order: 200,\n componentToken: \"users.web.workspace.selector\",\n props: {\n allowOnNonWorkspaceSurface: true,\n targetSurfaceId: \"app\"\n },\n when: ({ auth }) => {\n return Boolean(auth?.authenticated);\n }\n});\n\naddPlacement({\n id: \"users.account.invites.cue\",\n host: \"shell-layout\",\n position: \"top-right\",\n surfaces: [\"*\"],\n order: 850,\n componentToken: \"local.main.account.pending-invites.cue\",\n when: ({ auth }) => Boolean(auth?.authenticated)\n});\n\naddPlacement({\n id: \"users.workspace.tools.widget\",\n host: \"shell-layout\",\n position: \"top-right\",\n surfaces: [\"admin\"],\n order: 900,\n componentToken: \"users.web.workspace.tools.widget\"\n});\n\naddPlacement({\n id: \"users.workspace.menu.workspace-settings\",\n host: \"workspace-tools\",\n position: \"primary-menu\",\n surfaces: [\"admin\"],\n order: 100,\n componentToken: \"users.web.workspace-settings.menu-item\"\n});\n\naddPlacement({\n id: \"users.workspace.menu.members\",\n host: \"workspace-tools\",\n position: \"primary-menu\",\n surfaces: [\"admin\"],\n order: 200,\n componentToken: \"users.web.workspace-members.menu-item\"\n});\n",
|
|
3834
|
-
"reason": "Append
|
|
3835
|
-
"category": "
|
|
4285
|
+
"reason": "Append workspace placement entries into app-owned placement registry.",
|
|
4286
|
+
"category": "workspaces-web",
|
|
3836
4287
|
"id": "users-web-placement-block",
|
|
3837
4288
|
"when": {
|
|
3838
4289
|
"config": "tenancyMode",
|
|
@@ -3849,7 +4300,7 @@
|
|
|
3849
4300
|
"skipIfContains": "import AccountPendingInvitesCue from \"../components/AccountPendingInvitesCue.vue\";",
|
|
3850
4301
|
"value": "import AccountPendingInvitesCue from \"../components/AccountPendingInvitesCue.vue\";\n",
|
|
3851
4302
|
"reason": "Bind app-owned account pending invites cue component into local main client provider imports.",
|
|
3852
|
-
"category": "
|
|
4303
|
+
"category": "workspaces-web",
|
|
3853
4304
|
"id": "users-web-main-client-provider-account-invites-import"
|
|
3854
4305
|
},
|
|
3855
4306
|
{
|
|
@@ -3859,47 +4310,17 @@
|
|
|
3859
4310
|
"skipIfContains": "registerMainClientComponent(\"local.main.account.pending-invites.cue\", () => AccountPendingInvitesCue);",
|
|
3860
4311
|
"value": "\nregisterMainClientComponent(\"local.main.account.pending-invites.cue\", () => AccountPendingInvitesCue);\n",
|
|
3861
4312
|
"reason": "Bind app-owned account pending invites cue component token into local main client provider registry.",
|
|
3862
|
-
"category": "
|
|
4313
|
+
"category": "workspaces-web",
|
|
3863
4314
|
"id": "users-web-main-client-provider-account-invites-register"
|
|
3864
4315
|
},
|
|
3865
|
-
{
|
|
3866
|
-
"op": "append-text",
|
|
3867
|
-
"file": "src/placement.js",
|
|
3868
|
-
"position": "bottom",
|
|
3869
|
-
"skipIfContains": "id: \"users.profile.menu.surface-switch\"",
|
|
3870
|
-
"value": "\naddPlacement({\n id: \"users.profile.menu.surface-switch\",\n host: \"auth-profile-menu\",\n position: \"primary-menu\",\n surfaces: [\"*\"],\n order: 100,\n componentToken: \"users.web.profile.menu.surface-switch-item\",\n when: ({ auth }) => Boolean(auth?.authenticated)\n});\n",
|
|
3871
|
-
"reason": "Append users-web profile surface switch placement into app-owned placement registry.",
|
|
3872
|
-
"category": "users-web",
|
|
3873
|
-
"id": "users-web-profile-surface-switch-placement"
|
|
3874
|
-
},
|
|
3875
|
-
{
|
|
3876
|
-
"op": "append-text",
|
|
3877
|
-
"file": "src/placement.js",
|
|
3878
|
-
"position": "bottom",
|
|
3879
|
-
"skipIfContains": "id: \"users.profile.menu.settings\"",
|
|
3880
|
-
"value": "\naddPlacement({\n id: \"users.profile.menu.settings\",\n host: \"auth-profile-menu\",\n position: \"primary-menu\",\n surfaces: [\"*\"],\n order: 500,\n componentToken: \"users.web.shell.menu-link-item\",\n props: {\n label: \"Settings\",\n to: \"/account\"\n },\n when: ({ auth }) => Boolean(auth?.authenticated)\n});\n",
|
|
3881
|
-
"reason": "Append users-web profile settings menu placement into app-owned placement registry.",
|
|
3882
|
-
"category": "users-web",
|
|
3883
|
-
"id": "users-web-profile-settings-placement"
|
|
3884
|
-
},
|
|
3885
|
-
{
|
|
3886
|
-
"op": "append-text",
|
|
3887
|
-
"file": "src/placement.js",
|
|
3888
|
-
"position": "bottom",
|
|
3889
|
-
"skipIfContains": "id: \"users.console.menu.settings\"",
|
|
3890
|
-
"value": "\naddPlacement({\n id: \"users.console.menu.settings\",\n host: \"shell-layout\",\n position: \"primary-menu\",\n surfaces: [\"console\"],\n order: 100,\n componentToken: \"users.web.shell.menu-link-item\",\n props: {\n label: \"Settings\",\n to: \"/console/settings\",\n icon: \"mdi-cog-outline\"\n },\n when: ({ auth }) => Boolean(auth?.authenticated)\n});\n",
|
|
3891
|
-
"reason": "Append users-web console settings menu placement into app-owned placement registry.",
|
|
3892
|
-
"category": "users-web",
|
|
3893
|
-
"id": "users-web-console-settings-placement"
|
|
3894
|
-
},
|
|
3895
4316
|
{
|
|
3896
4317
|
"op": "append-text",
|
|
3897
4318
|
"file": "src/placement.js",
|
|
3898
4319
|
"position": "bottom",
|
|
3899
4320
|
"skipIfContains": "id: \"users.workspace.settings.form\"",
|
|
3900
|
-
"value": "\naddPlacement({\n id: \"users.workspace.settings.form\",\n host: \"
|
|
3901
|
-
"reason": "Append
|
|
3902
|
-
"category": "
|
|
4321
|
+
"value": "\naddPlacement({\n id: \"users.workspace.settings.form\",\n host: \"admin-settings\",\n position: \"forms\",\n surfaces: [\"admin\"],\n order: 100,\n componentToken: \"users.web.workspace-settings.element\"\n});\n",
|
|
4322
|
+
"reason": "Append workspace settings form placement into app-owned placement registry.",
|
|
4323
|
+
"category": "workspaces-web",
|
|
3903
4324
|
"id": "users-web-workspace-settings-form-placement",
|
|
3904
4325
|
"when": {
|
|
3905
4326
|
"config": "tenancyMode",
|