@adonis-agora/durable 1.0.0-rc.11 → 1.0.0-rc.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/assets/spa/assets/index-DkiDTtil.css +1 -0
  3. package/dist/assets/spa/assets/index-DlFfJoOc.js +16 -0
  4. package/dist/assets/spa/assets/index-DlFfJoOc.js.map +1 -0
  5. package/dist/assets/spa/index.html +2 -2
  6. package/dist/commands/agora_doctor.d.ts +23 -0
  7. package/dist/commands/agora_doctor.d.ts.map +1 -0
  8. package/dist/commands/agora_doctor.js +110 -0
  9. package/dist/commands/agora_doctor.js.map +1 -0
  10. package/dist/commands/durable_doctor.d.ts +8 -0
  11. package/dist/commands/durable_doctor.d.ts.map +1 -0
  12. package/dist/commands/durable_doctor.js +8 -0
  13. package/dist/commands/durable_doctor.js.map +1 -0
  14. package/dist/commands/main.d.ts +4 -3
  15. package/dist/commands/main.d.ts.map +1 -1
  16. package/dist/commands/main.js +5 -1
  17. package/dist/commands/main.js.map +1 -1
  18. package/dist/providers/dashboard_provider.d.ts +9 -0
  19. package/dist/providers/dashboard_provider.d.ts.map +1 -1
  20. package/dist/providers/dashboard_provider.js +128 -8
  21. package/dist/providers/dashboard_provider.js.map +1 -1
  22. package/dist/providers/durable_provider.d.ts.map +1 -1
  23. package/dist/providers/durable_provider.js +16 -3
  24. package/dist/providers/durable_provider.js.map +1 -1
  25. package/dist/src/config_types.d.ts +67 -14
  26. package/dist/src/config_types.d.ts.map +1 -1
  27. package/dist/src/dashboard/console_authorize.d.ts +16 -0
  28. package/dist/src/dashboard/console_authorize.d.ts.map +1 -1
  29. package/dist/src/dashboard/console_authorize.js +50 -0
  30. package/dist/src/dashboard/console_authorize.js.map +1 -1
  31. package/dist/src/dashboard/console_switcher.d.ts +121 -0
  32. package/dist/src/dashboard/console_switcher.d.ts.map +1 -0
  33. package/dist/src/dashboard/console_switcher.js +201 -0
  34. package/dist/src/dashboard/console_switcher.js.map +1 -0
  35. package/dist/src/dashboard/define_config.d.ts +4 -2
  36. package/dist/src/dashboard/define_config.d.ts.map +1 -1
  37. package/dist/src/dashboard/define_config.js.map +1 -1
  38. package/dist/src/dashboard/dev_tools.d.ts +99 -0
  39. package/dist/src/dashboard/dev_tools.d.ts.map +1 -0
  40. package/dist/src/dashboard/dev_tools.js +487 -0
  41. package/dist/src/dashboard/dev_tools.js.map +1 -0
  42. package/dist/src/dashboard/index.d.ts +6 -2
  43. package/dist/src/dashboard/index.d.ts.map +1 -1
  44. package/dist/src/dashboard/index.js +6 -2
  45. package/dist/src/dashboard/index.js.map +1 -1
  46. package/dist/src/dashboard/spa.d.ts +12 -1
  47. package/dist/src/dashboard/spa.d.ts.map +1 -1
  48. package/dist/src/dashboard/spa.js +6 -2
  49. package/dist/src/dashboard/spa.js.map +1 -1
  50. package/dist/src/doctor/agora_doctor.d.ts +116 -0
  51. package/dist/src/doctor/agora_doctor.d.ts.map +1 -0
  52. package/dist/src/doctor/agora_doctor.js +685 -0
  53. package/dist/src/doctor/agora_doctor.js.map +1 -0
  54. package/dist/src/doctor/checks.d.ts +22 -0
  55. package/dist/src/doctor/checks.d.ts.map +1 -0
  56. package/dist/src/doctor/checks.js +197 -0
  57. package/dist/src/doctor/checks.js.map +1 -0
  58. package/dist/src/doctor/index.d.ts +9 -0
  59. package/dist/src/doctor/index.d.ts.map +1 -0
  60. package/dist/src/doctor/index.js +16 -0
  61. package/dist/src/doctor/index.js.map +1 -0
  62. package/dist/src/index.d.ts +3 -3
  63. package/dist/src/index.d.ts.map +1 -1
  64. package/dist/src/index.js +2 -2
  65. package/dist/src/index.js.map +1 -1
  66. package/dist/src/run-gateway/proxy-run-gateway.d.ts +3 -1
  67. package/dist/src/run-gateway/proxy-run-gateway.d.ts.map +1 -1
  68. package/dist/src/run-gateway/proxy-run-gateway.js +17 -5
  69. package/dist/src/run-gateway/proxy-run-gateway.js.map +1 -1
  70. package/dist/src/run-gateway/run-request-responder.d.ts.map +1 -1
  71. package/dist/src/run-gateway/run-request-responder.js +3 -1
  72. package/dist/src/run-gateway/run-request-responder.js.map +1 -1
  73. package/dist/src/run-gateway/tenant-auth.d.ts +19 -1
  74. package/dist/src/run-gateway/tenant-auth.d.ts.map +1 -1
  75. package/dist/src/run-gateway/tenant-auth.js +133 -0
  76. package/dist/src/run-gateway/tenant-auth.js.map +1 -1
  77. package/package.json +12 -4
  78. package/skills/durable-cluster/SKILL.md +8 -1
  79. package/dist/assets/spa/assets/index-B2kIfzsc.css +0 -1
  80. package/dist/assets/spa/assets/index-Bgf_8IJ0.js +0 -16
  81. package/dist/assets/spa/assets/index-Bgf_8IJ0.js.map +0 -1
@@ -0,0 +1,487 @@
1
+ import { cancelRun, continueRun, getFanMembers, getRun, getRunEvent, health, listRuns, listSchedules, retryRun, runValues, scheduleAction, signalRun, workers, } from './handlers.js';
2
+ import { RUN_STATUSES } from './run-filter.js';
3
+ /*
4
+ * The dev-tools registration contract, version 1, declared here STRUCTURALLY: the hub is bound at
5
+ * `'agora.devTools'` by `@adonis-agora/agent/mcp_provider` when the app has it, and this package never
6
+ * imports the agent (it stays an optional, undeclared peer). Same shapes as `@adonis-agora/agent/dev-tools`.
7
+ */
8
+ /** The container binding the dev-tools hub lives at. */
9
+ export const DEV_TOOLS_BINDING = 'agora.devTools';
10
+ /** List tools default to this many rows. */
11
+ const DEFAULT_LIMIT = 20;
12
+ /** List tools return at most this many rows. */
13
+ const MAX_LIMIT = 100;
14
+ /** A blob field (run input/output/error, a step's input/output/error) is cut to this many bytes. */
15
+ export const DEV_TOOL_FIELD_BYTES = 4 * 1024;
16
+ const BLOB_FIELDS = ['input', 'output', 'error'];
17
+ /** Thrown from a tool to answer an MCP error result (the agent turns it into `isError`). */
18
+ class DevToolError extends Error {
19
+ }
20
+ /** Call a console handler with a synthetic request; any non-2xx answer becomes a tool error. */
21
+ async function call(handler, deps, req) {
22
+ const response = await handler(deps, { params: {}, query: {}, ...req });
23
+ if (response.status >= 200 && response.status < 300)
24
+ return response.body;
25
+ const body = response.body;
26
+ const message = typeof body?.error === 'string' ? body.error : `HTTP ${response.status}`;
27
+ throw new DevToolError(message);
28
+ }
29
+ function str(input, key) {
30
+ const value = input[key];
31
+ return typeof value === 'string' && value !== '' ? value : undefined;
32
+ }
33
+ function required(input, key) {
34
+ const value = str(input, key);
35
+ if (value === undefined)
36
+ throw new DevToolError(`${key} is required`);
37
+ return value;
38
+ }
39
+ function limitOf(input) {
40
+ const raw = input.limit;
41
+ const n = typeof raw === 'number' && Number.isFinite(raw) ? Math.trunc(raw) : DEFAULT_LIMIT;
42
+ return Math.min(Math.max(n, 1), MAX_LIMIT);
43
+ }
44
+ /** The run filters every listing tool shares, as the console's query string spells them. */
45
+ const RUN_FILTER_PROPERTIES = {
46
+ status: {
47
+ type: 'array',
48
+ items: { type: 'string' },
49
+ description: `Run statuses (any of): ${RUN_STATUSES.join(', ')}.`,
50
+ },
51
+ workflow: { type: 'string', description: 'Workflow name.' },
52
+ tag: { type: 'string', description: 'A tag the run carries.' },
53
+ namespace: { type: 'string', description: 'Worker namespace the run belongs to.' },
54
+ createdAfter: { type: 'string', description: 'Only runs created at or after (ISO date).' },
55
+ createdBefore: { type: 'string', description: 'Only runs created at or before (ISO date).' },
56
+ };
57
+ function runFilterQuery(input) {
58
+ const query = {};
59
+ for (const key of Object.keys(RUN_FILTER_PROPERTIES)) {
60
+ const value = input[key];
61
+ if (Array.isArray(value) ? value.length > 0 : value !== undefined && value !== '') {
62
+ query[key] = Array.isArray(value) ? value.map(String) : String(value);
63
+ }
64
+ }
65
+ return query;
66
+ }
67
+ /** Cut one value to {@link DEV_TOOL_FIELD_BYTES} of JSON, ending with `…(truncated, N bytes)`. */
68
+ export function truncateBlob(value, maxBytes = DEV_TOOL_FIELD_BYTES) {
69
+ if (value === undefined || value === null)
70
+ return value;
71
+ const text = typeof value === 'string' ? value : JSON.stringify(value);
72
+ if (text === undefined)
73
+ return value;
74
+ const size = Buffer.byteLength(text, 'utf8');
75
+ if (size <= maxBytes)
76
+ return value;
77
+ let cut = Buffer.from(text, 'utf8').subarray(0, maxBytes).toString('utf8');
78
+ // A cut through a multi-byte character leaves a replacement char: drop it.
79
+ if (cut.endsWith('�'))
80
+ cut = cut.slice(0, -1);
81
+ return `${cut}…(truncated, ${size} bytes)`;
82
+ }
83
+ function truncateBlobs(row) {
84
+ if (typeof row !== 'object' || row === null || Array.isArray(row))
85
+ return row;
86
+ const out = { ...row };
87
+ for (const key of BLOB_FIELDS)
88
+ if (key in out)
89
+ out[key] = truncateBlob(out[key]);
90
+ return out;
91
+ }
92
+ /** Read a dotted path (`run.input`, `timeline.2.output`) out of a run detail. */
93
+ function pick(body, path) {
94
+ let cursor = body;
95
+ for (const part of path.split('.')) {
96
+ if (cursor === null || typeof cursor !== 'object')
97
+ return undefined;
98
+ if (!Object.hasOwn(cursor, part))
99
+ return undefined;
100
+ cursor = cursor[part];
101
+ }
102
+ return cursor;
103
+ }
104
+ /** Whether the port answers `method` (capability, not access). Errors resolving it hide the tool. */
105
+ function supports(options, method) {
106
+ return async () => {
107
+ try {
108
+ const { engine } = await options.deps();
109
+ return typeof engine[method] === 'function';
110
+ }
111
+ catch {
112
+ return false;
113
+ }
114
+ };
115
+ }
116
+ function nextPage(page, returned, size) {
117
+ return returned >= size ? page + 1 : null;
118
+ }
119
+ /**
120
+ * The durable console's developer tools: the same handlers (and so the same `redact` hooks) the
121
+ * console's JSON API runs, under `durable_*` names. Reads are listed by default; the actions (retry,
122
+ * cancel, continue, signal, schedule control) only when the app opts in on the dev endpoint.
123
+ */
124
+ export function durableDevTools(options) {
125
+ const audited = (tool, target, caller) => {
126
+ try {
127
+ options.audit?.({ actor: `mcp:${caller.id}`, tool, target });
128
+ }
129
+ catch {
130
+ /* auditing must never break the action */
131
+ }
132
+ };
133
+ return [
134
+ {
135
+ name: 'durable_list_runs',
136
+ kind: 'read',
137
+ description: 'List workflow runs, newest first, as the durable console shows them: id, workflow, status, namespace, tags, created/updated times, recovery attempts and what a suspended run is waiting on. Filters: status, workflow, tag, namespace, created range. Paged: pass `next` back as `page`. Returns { items, next }.',
138
+ input: {
139
+ type: 'object',
140
+ properties: {
141
+ ...RUN_FILTER_PROPERTIES,
142
+ page: { type: 'integer', minimum: 1, description: '1-based page (default 1).' },
143
+ limit: {
144
+ type: 'integer',
145
+ minimum: 1,
146
+ maximum: MAX_LIMIT,
147
+ description: 'Rows (default 20).',
148
+ },
149
+ },
150
+ },
151
+ run: async (input) => {
152
+ const size = limitOf(input);
153
+ const page = typeof input.page === 'number' && input.page >= 1 ? Math.trunc(input.page) : 1;
154
+ const body = (await call(listRuns, await options.deps(), {
155
+ query: { ...runFilterQuery(input), page: String(page), size: String(size) },
156
+ }));
157
+ return { items: body.runs, next: nextPage(page, body.runs.length, size) };
158
+ },
159
+ },
160
+ {
161
+ name: 'durable_get_run',
162
+ kind: 'read',
163
+ description: "One run's detail: the run (input, output, error), its step timeline, children, summarized fans and lifecycle links. Input, output and error fields over 4 KB are cut; pass `field` (e.g. `run.input`, `timeline.3.output`) to read one in full. `full: true` lists every member of wide fans.",
164
+ input: {
165
+ type: 'object',
166
+ properties: {
167
+ id: { type: 'string', description: 'Run id.' },
168
+ full: { type: 'boolean', description: 'Every fan member instead of fan summaries.' },
169
+ field: {
170
+ type: 'string',
171
+ description: 'A dotted path to return in full instead of the detail, e.g. `run.output`.',
172
+ },
173
+ },
174
+ required: ['id'],
175
+ },
176
+ run: async (input) => {
177
+ const id = required(input, 'id');
178
+ const body = (await call(getRun, await options.deps(), {
179
+ params: { id },
180
+ query: input.full === true ? { full: 'true' } : {},
181
+ }));
182
+ const field = str(input, 'field');
183
+ if (field !== undefined) {
184
+ const value = pick(body, field);
185
+ if (value === undefined)
186
+ throw new DevToolError(`run ${id} has no field "${field}"`);
187
+ return { id, field, value };
188
+ }
189
+ const timeline = Array.isArray(body.timeline) ? body.timeline.map(truncateBlobs) : [];
190
+ const fans = Array.isArray(body.fans)
191
+ ? body.fans.map((fan) => ({
192
+ ...fan,
193
+ failures: Array.isArray(fan.failures) ? fan.failures.map(truncateBlobs) : [],
194
+ }))
195
+ : undefined;
196
+ return {
197
+ ...body,
198
+ run: truncateBlobs(body.run),
199
+ timeline,
200
+ ...(fans ? { fans } : {}),
201
+ };
202
+ },
203
+ },
204
+ {
205
+ name: 'durable_list_fan_members',
206
+ kind: 'read',
207
+ description: "One page of a wide fan's member steps (a fan `durable_get_run` summarized), in order. Paged by `offset`; returns { items, next, total }.",
208
+ input: {
209
+ type: 'object',
210
+ properties: {
211
+ id: { type: 'string', description: 'Run id.' },
212
+ group: { type: 'string', description: 'The fan group, from the run detail `fans`.' },
213
+ failed: { type: 'boolean', description: 'Only failed members.' },
214
+ offset: { type: 'integer', minimum: 0, description: 'Members to skip (default 0).' },
215
+ limit: {
216
+ type: 'integer',
217
+ minimum: 1,
218
+ maximum: MAX_LIMIT,
219
+ description: 'Rows (default 20).',
220
+ },
221
+ },
222
+ required: ['id', 'group'],
223
+ },
224
+ run: async (input) => {
225
+ const limit = limitOf(input);
226
+ const offset = typeof input.offset === 'number' && input.offset >= 0 ? Math.trunc(input.offset) : 0;
227
+ const body = (await call(getFanMembers, await options.deps(), {
228
+ params: { id: required(input, 'id'), group: required(input, 'group') },
229
+ query: {
230
+ offset: String(offset),
231
+ limit: String(limit),
232
+ ...(input.failed === true ? { failed: 'true' } : {}),
233
+ },
234
+ }));
235
+ const end = offset + body.items.length;
236
+ return {
237
+ items: body.items.map(truncateBlobs),
238
+ next: end < body.total ? end : null,
239
+ total: body.total,
240
+ };
241
+ },
242
+ },
243
+ {
244
+ name: 'durable_count_runs_by',
245
+ kind: 'read',
246
+ description: "Count runs by one field (status, workflow, namespace, tag, `attr` for search-attribute keys, `attr.<key>` for one key's values) over the runs matching the filters. Returns { field, values: [{ value, count }] }.",
247
+ input: {
248
+ type: 'object',
249
+ properties: {
250
+ field: {
251
+ type: 'string',
252
+ description: 'status | workflow | namespace | tag | attr | attr.<key>',
253
+ },
254
+ ...RUN_FILTER_PROPERTIES,
255
+ limit: {
256
+ type: 'integer',
257
+ minimum: 1,
258
+ maximum: MAX_LIMIT,
259
+ description: 'Values (default 20).',
260
+ },
261
+ },
262
+ required: ['field'],
263
+ },
264
+ run: async (input) => {
265
+ const field = required(input, 'field');
266
+ const values = await call(runValues, await options.deps(), {
267
+ query: { ...runFilterQuery(input), field, limit: String(limitOf(input)) },
268
+ });
269
+ return { field, values };
270
+ },
271
+ },
272
+ {
273
+ name: 'durable_get_health',
274
+ kind: 'read',
275
+ description: 'Fleet health: per worker group, the queue backlog and live workers (stalled = backlog with no worker), how many runs are pending, dead or blocked, and the protocol-compatibility panel when available.',
276
+ input: { type: 'object', properties: {} },
277
+ run: async () => {
278
+ const deps = await options.deps();
279
+ const groups = (await call(async (d) => health(d), deps, {}));
280
+ const counts = {};
281
+ if (deps.engine.countRuns) {
282
+ for (const status of ['pending', 'dead', 'blocked']) {
283
+ counts[status] = await deps.engine.countRuns({ status });
284
+ }
285
+ }
286
+ let compatBody;
287
+ if (options.compat) {
288
+ try {
289
+ compatBody = await options.compat();
290
+ }
291
+ catch {
292
+ compatBody = undefined;
293
+ }
294
+ }
295
+ return {
296
+ groups: groups.groups,
297
+ ...(Object.keys(counts).length > 0 ? { runs: counts } : {}),
298
+ ...(compatBody !== undefined ? { compat: compatBody } : {}),
299
+ };
300
+ },
301
+ },
302
+ {
303
+ name: 'durable_list_workers',
304
+ kind: 'read',
305
+ description: "Worker groups with every live worker's heartbeat (instance id, last beat, namespace) and the queue depth.",
306
+ input: { type: 'object', properties: {} },
307
+ run: async () => ({ items: await call(async (d) => workers(d), await options.deps(), {}) }),
308
+ },
309
+ {
310
+ name: 'durable_list_schedules',
311
+ kind: 'read',
312
+ description: 'Cron/interval schedules: key, workflow, cron or interval, paused (and whether by a runtime override), last and next fire, and the current window run status.',
313
+ input: { type: 'object', properties: {} },
314
+ available: supports(options, 'listSchedules'),
315
+ run: async () => {
316
+ const body = (await call(listSchedules, await options.deps(), {}));
317
+ return { items: body.schedules, next: null };
318
+ },
319
+ },
320
+ {
321
+ name: 'durable_get_run_event',
322
+ kind: 'read',
323
+ description: 'The latest value a run published for `key` with ctx.setEvent (a live query, no side effect). Cut to 4 KB.',
324
+ input: {
325
+ type: 'object',
326
+ properties: {
327
+ id: { type: 'string', description: 'Run id.' },
328
+ key: { type: 'string', description: 'The event key.' },
329
+ },
330
+ required: ['id', 'key'],
331
+ },
332
+ available: supports(options, 'getEvent'),
333
+ run: async (input) => {
334
+ const body = (await call(getRunEvent, await options.deps(), {
335
+ params: { id: required(input, 'id'), key: required(input, 'key') },
336
+ }));
337
+ return 'value' in body ? { ...body, value: truncateBlob(body.value) } : body;
338
+ },
339
+ },
340
+ {
341
+ name: 'durable_retry_run',
342
+ kind: 'action',
343
+ description: 'Re-enqueue a failed or stuck run: completed steps replay from their checkpoints. Returns the run status after enqueueing.',
344
+ input: {
345
+ type: 'object',
346
+ properties: { id: { type: 'string', description: 'Run id.' } },
347
+ required: ['id'],
348
+ },
349
+ run: async (input, ctx) => {
350
+ const id = required(input, 'id');
351
+ audited('durable_retry_run', id, ctx.caller);
352
+ return call(retryRun, await options.deps(), { params: { id } });
353
+ },
354
+ },
355
+ {
356
+ name: 'durable_cancel_run',
357
+ kind: 'action',
358
+ destructive: true,
359
+ description: 'Cancel a run. `compensate: true` also runs the saga undo of its completed steps. Returns the run status.',
360
+ input: {
361
+ type: 'object',
362
+ properties: {
363
+ id: { type: 'string', description: 'Run id.' },
364
+ compensate: { type: 'boolean', description: 'Run the compensations (saga undo).' },
365
+ },
366
+ required: ['id'],
367
+ },
368
+ run: async (input, ctx) => {
369
+ const id = required(input, 'id');
370
+ audited('durable_cancel_run', id, ctx.caller);
371
+ return call(cancelRun, await options.deps(), {
372
+ params: { id },
373
+ body: { compensate: input.compensate === true },
374
+ });
375
+ },
376
+ },
377
+ {
378
+ name: 'durable_continue_run',
379
+ kind: 'action',
380
+ description: 'Resume a run paused at a ctx.breakpoint(). Errors when it is not paused at one.',
381
+ input: {
382
+ type: 'object',
383
+ properties: { id: { type: 'string', description: 'Run id.' } },
384
+ required: ['id'],
385
+ },
386
+ run: async (input, ctx) => {
387
+ const id = required(input, 'id');
388
+ audited('durable_continue_run', id, ctx.caller);
389
+ return call(continueRun, await options.deps(), { params: { id } });
390
+ },
391
+ },
392
+ {
393
+ name: 'durable_signal_run',
394
+ kind: 'action',
395
+ description: 'Deliver a signal to a run waiting on `token` (ctx.waitForSignal). `payload` is a JSON string. Refused when the run is not waiting on that token, unless `force: true`; the error lists the tokens it waits on.',
396
+ input: {
397
+ type: 'object',
398
+ properties: {
399
+ id: { type: 'string', description: 'Run id.' },
400
+ token: { type: 'string', description: 'The signal token the run waits on.' },
401
+ payload: { type: 'string', description: 'The payload, as JSON (omit for none).' },
402
+ force: { type: 'boolean', description: 'Buffer it even if the run is not waiting yet.' },
403
+ },
404
+ required: ['id', 'token'],
405
+ },
406
+ available: supports(options, 'signal'),
407
+ run: async (input, ctx) => {
408
+ const id = required(input, 'id');
409
+ const token = required(input, 'token');
410
+ let payload;
411
+ const raw = str(input, 'payload');
412
+ if (raw !== undefined) {
413
+ try {
414
+ payload = JSON.parse(raw);
415
+ }
416
+ catch {
417
+ throw new DevToolError('payload must be valid JSON');
418
+ }
419
+ }
420
+ audited('durable_signal_run', id, ctx.caller);
421
+ return call(signalRun, await options.deps(), {
422
+ params: { id },
423
+ body: {
424
+ token,
425
+ ...(payload !== undefined ? { payload } : {}),
426
+ force: input.force === true,
427
+ },
428
+ });
429
+ },
430
+ },
431
+ {
432
+ name: 'durable_trigger_schedule',
433
+ kind: 'action',
434
+ description: "Fire a schedule's current window now (idempotent: the window's run id is fixed). Returns the run status.",
435
+ input: {
436
+ type: 'object',
437
+ properties: { key: { type: 'string', description: 'Schedule key.' } },
438
+ required: ['key'],
439
+ },
440
+ available: supports(options, 'triggerSchedule'),
441
+ run: async (input, ctx) => {
442
+ const key = required(input, 'key');
443
+ audited('durable_trigger_schedule', key, ctx.caller);
444
+ return call(scheduleAction, await options.deps(), { params: { key, action: 'trigger' } });
445
+ },
446
+ },
447
+ {
448
+ name: 'durable_pause_schedule',
449
+ kind: 'action',
450
+ description: 'Pause a schedule fleet-wide (`paused: false` resumes it). A runtime override: the next deploy goes back to the config.',
451
+ input: {
452
+ type: 'object',
453
+ properties: {
454
+ key: { type: 'string', description: 'Schedule key.' },
455
+ paused: { type: 'boolean', description: 'true pauses (default), false resumes.' },
456
+ },
457
+ required: ['key'],
458
+ },
459
+ available: supports(options, 'setSchedulePaused'),
460
+ run: async (input, ctx) => {
461
+ const key = required(input, 'key');
462
+ const action = input.paused === false ? 'resume' : 'pause';
463
+ audited('durable_pause_schedule', key, ctx.caller);
464
+ return call(scheduleAction, await options.deps(), { params: { key, action } });
465
+ },
466
+ },
467
+ ];
468
+ }
469
+ /**
470
+ * Register the durable console's tools into the app's dev-tools hub, when one is bound (the app
471
+ * registered `@adonis-agora/agent/mcp_provider`). Returns whether it registered.
472
+ */
473
+ export async function registerDurableDevTools(container, options) {
474
+ if (!container.hasBinding(DEV_TOOLS_BINDING))
475
+ return false;
476
+ const hub = (await container.make(DEV_TOOLS_BINDING));
477
+ if (hub?.version !== 1 || typeof hub.register !== 'function')
478
+ return false;
479
+ hub.register({
480
+ lib: 'durable',
481
+ title: 'Durable workflows',
482
+ authorize: options.authorize,
483
+ tools: durableDevTools(options),
484
+ });
485
+ return true;
486
+ }
487
+ //# sourceMappingURL=dev_tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev_tools.js","sourceRoot":"","sources":["../../../src/dashboard/dev_tools.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,18 @@
1
1
  /** Keep in sync with this package's `version` in package.json. */
2
- export declare const VERSION = "1.0.0-rc.11";
2
+ export declare const VERSION = "1.0.0-rc.13";
3
3
  export type { AccessDeniedInfo, AccessDeniedPageOptions, AccessDeniedReason, } from './access_denied_page.js';
4
4
  export { CONSOLE as ACCESS_DENIED_CONSOLE, escapeHtml, renderAccessDeniedPage, resolveAccessDeniedPage, } from './access_denied_page.js';
5
5
  export type { CompatSource, FleetGroup, FleetTransport } from './compat.js';
6
6
  export { compat, enumerateLiveFleet, mergeFleets } from './compat.js';
7
7
  export { formatProtocolRange, outcomeClass, outcomeLabel } from './compat-view.js';
8
8
  export type { AuthorizeByTokenOptions, ConsoleAuthorize, ConsoleAuthorizeGate, ConsoleAuthorizeResult, ConsoleAuthorizer, ConsoleAuthorizerClass, ConsoleDecision, } from './console_authorize.js';
9
- export { authorizeByToken, normalizeConsoleDecision, resolveConsoleAuthorize, } from './console_authorize.js';
9
+ export { anyAuthorize, authorizeByToken, normalizeConsoleDecision, resolveConsoleAuthorize, } from './console_authorize.js';
10
+ export type { AgoraConsoleEntry, AgoraConsoleIcon, AgoraConsoleRegistry, AgoraConsoleSearchHit, ConsoleSearchResults, VisibleConsole, VisibleConsoles, } from './console_switcher.js';
11
+ export { AGORA_CONSOLES_BINDING, listVisibleConsoles, registerAgoraConsole, searchConsoles, } from './console_switcher.js';
10
12
  export type { AccessDeniedOption, AccessDeniedRenderer, AuthorizeDecision, AuthorizeHook, AuthorizeResult, DurableDashboardConfig, ResolveConfigOptions, ResolvedDurableDashboardConfig, } from './define_config.js';
11
13
  export { defineConfig, NO_AUTHORIZE_WARNING, normalizeAuthorizeResult, resolveConfig, } from './define_config.js';
14
+ export type { DevTool, DevToolAuditEntry, DevToolCall, DevToolInputProperty, DevToolInputSchema, DevToolsCaller, DevToolsDecision, DevToolsHub, DevToolsLib, DurableDevToolsOptions, } from './dev_tools.js';
15
+ export { DEV_TOOLS_BINDING, durableDevTools, registerDurableDevTools } from './dev_tools.js';
12
16
  export type { EngineEventSource, RecordedBlock } from './diagnostics-recorder.js';
13
17
  export { BlockedDiagnosticsRecorder } from './diagnostics-recorder.js';
14
18
  export type { DashboardContainer } from './gateway-adapter.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dashboard/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,eAAO,MAAM,OAAO,gBAAgB,CAAC;AAErC,YAAY,EACV,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,OAAO,IAAI,qBAAqB,EAChC,UAAU,EACV,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE5E,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACnF,YAAY,EACV,uBAAuB,EACvB,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EACjB,sBAAsB,EACtB,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,8BAA8B,GAC/B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,wBAAwB,EACxB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAClF,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG/D,OAAO,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC1F,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACpF,OAAO,EACL,UAAU,EACV,SAAS,EACT,WAAW,EACX,cAAc,EACd,MAAM,EACN,WAAW,EACX,MAAM,EACN,QAAQ,EACR,WAAW,EACX,EAAE,EACF,oBAAoB,EACpB,qBAAqB,EACrB,QAAQ,EACR,iBAAiB,EACjB,SAAS,EACT,QAAQ,EACR,OAAO,EACP,iBAAiB,GAClB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dashboard/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,eAAO,MAAM,OAAO,gBAAgB,CAAC;AAErC,YAAY,EACV,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,OAAO,IAAI,qBAAqB,EAChC,UAAU,EACV,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE5E,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACnF,YAAY,EACV,uBAAuB,EACvB,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EACjB,sBAAsB,EACtB,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,EACd,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,GACf,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,8BAA8B,GAC/B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,wBAAwB,EACxB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,OAAO,EACP,iBAAiB,EACjB,WAAW,EACX,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAC7F,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAClF,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG/D,OAAO,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC1F,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACpF,OAAO,EACL,UAAU,EACV,SAAS,EACT,WAAW,EACX,cAAc,EACd,MAAM,EACN,WAAW,EACX,MAAM,EACN,QAAQ,EACR,WAAW,EACX,EAAE,EACF,oBAAoB,EACpB,qBAAqB,EACrB,QAAQ,EACR,iBAAiB,EACjB,SAAS,EACT,QAAQ,EACR,OAAO,EACP,iBAAiB,GAClB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
@@ -1,13 +1,17 @@
1
1
  /** Keep in sync with this package's `version` in package.json. */
2
- export const VERSION = '1.0.0-rc.11';
2
+ export const VERSION = '1.0.0-rc.13';
3
3
  // The built-in "access denied" page (what a browser sees on a refused page navigation).
4
4
  export { CONSOLE as ACCESS_DENIED_CONSOLE, escapeHtml, renderAccessDeniedPage, resolveAccessDeniedPage, } from './access_denied_page.js';
5
5
  // Fleet health / protocol-compatibility panel (design §7.6, §10).
6
6
  export { compat, enumerateLiveFleet, mergeFleets } from './compat.js';
7
7
  export { formatProtocolRange, outcomeClass, outcomeLabel } from './compat-view.js';
8
8
  // The shared console `authorize` contract (function, class, lazy import).
9
- export { authorizeByToken, normalizeConsoleDecision, resolveConsoleAuthorize, } from './console_authorize.js';
9
+ export { anyAuthorize, authorizeByToken, normalizeConsoleDecision, resolveConsoleAuthorize, } from './console_authorize.js';
10
+ // The cross-console switcher registry (`'agora.consoles'`) and global search.
11
+ export { AGORA_CONSOLES_BINDING, listVisibleConsoles, registerAgoraConsole, searchConsoles, } from './console_switcher.js';
10
12
  export { defineConfig, NO_AUTHORIZE_WARNING, normalizeAuthorizeResult, resolveConfig, } from './define_config.js';
13
+ // Developer tools for the app's dev MCP endpoint (`@adonis-agora/agent`), when it has one.
14
+ export { DEV_TOOLS_BINDING, durableDevTools, registerDurableDevTools } from './dev_tools.js';
11
15
  export { BlockedDiagnosticsRecorder } from './diagnostics-recorder.js';
12
16
  // Store-less `tenant` dashboard: adapt the RunGateway to the handlers' read/control port (design §8).
13
17
  export { dashboardEngineForTopology, gatewayDashboardEngine } from './gateway-adapter.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dashboard/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC;AAOrC,wFAAwF;AACxF,OAAO,EACL,OAAO,IAAI,qBAAqB,EAChC,UAAU,EACV,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAEjC,kEAAkE;AAClE,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAUnF,0EAA0E;AAC1E,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAWhC,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,wBAAwB,EACxB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAGvE,sGAAsG;AACtG,OAAO,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE1F,OAAO,EACL,UAAU,EACV,SAAS,EACT,WAAW,EACX,cAAc,EACd,MAAM,EACN,WAAW,EACX,MAAM,EACN,QAAQ,EACR,WAAW,EACX,EAAE,EACF,oBAAoB,EACpB,qBAAqB,EACrB,QAAQ,EACR,iBAAiB,EACjB,SAAS,EACT,QAAQ,EACR,OAAO,EACP,iBAAiB,GAClB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dashboard/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC;AAOrC,wFAAwF;AACxF,OAAO,EACL,OAAO,IAAI,qBAAqB,EAChC,UAAU,EACV,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAEjC,kEAAkE;AAClE,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAUnF,0EAA0E;AAC1E,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAUhC,8EAA8E;AAC9E,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,GACf,MAAM,uBAAuB,CAAC;AAW/B,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,wBAAwB,EACxB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAa5B,2FAA2F;AAC3F,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAE7F,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAGvE,sGAAsG;AACtG,OAAO,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE1F,OAAO,EACL,UAAU,EACV,SAAS,EACT,WAAW,EACX,cAAc,EACd,MAAM,EACN,WAAW,EACX,MAAM,EACN,QAAQ,EACR,WAAW,EACX,EAAE,EACF,oBAAoB,EACpB,qBAAqB,EACrB,QAAQ,EACR,iBAAiB,EACjB,SAAS,EACT,QAAQ,EACR,OAAO,EACP,iBAAiB,GAClB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
@@ -19,6 +19,15 @@ export interface InjectedConfig {
19
19
  base: string;
20
20
  /** JSON API base (`/durable/api`). */
21
21
  api: string;
22
+ /** The console switcher, present only when other Agora consoles are registered in the app. */
23
+ switcher?: SwitcherConfig;
24
+ }
25
+ /** Where the SPA asks which other consoles the viewer may open, and how many are registered. */
26
+ export interface SwitcherConfig {
27
+ /** `GET` it for the consoles the viewer may open; `<endpoint>/search?q=` searches them. */
28
+ endpoint: string;
29
+ /** Registered consoles other than this one (before any `authorize` runs). */
30
+ others: number;
22
31
  }
23
32
  /**
24
33
  * Rewrite the built `index.html` for serving: point Vite's placeholder base at the configured mount
@@ -35,5 +44,7 @@ export interface InjectedConfig {
35
44
  * failure looked like a routing bug rather than a policy one. The globals are still read by the
36
45
  * client as a fallback (tests, hand-embedding), but this is no longer how the provider speaks.
37
46
  */
38
- export declare function renderIndexHtml(html: string, basePath: string, apiBasePath: string): string;
47
+ export declare function renderIndexHtml(html: string, basePath: string, apiBasePath: string, extra?: {
48
+ switcher?: SwitcherConfig;
49
+ }): string;
39
50
  //# sourceMappingURL=spa.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"spa.d.ts","sourceRoot":"","sources":["../../../src/dashboard/spa.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;4GAC4G;AAC5G,eAAO,MAAM,gBAAgB,4BAA4B,CAAC;AAE1D,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAchD,CAAC;AAEF,4EAA4E;AAC5E,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED,sGAAsG;AACtG,eAAO,MAAM,iBAAiB,6BAA6B,CAAC;AAE5D,yEAAyE;AACzE,MAAM,WAAW,cAAc;IAC7B,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAQ3F"}
1
+ {"version":3,"file":"spa.d.ts","sourceRoot":"","sources":["../../../src/dashboard/spa.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;4GAC4G;AAC5G,eAAO,MAAM,gBAAgB,4BAA4B,CAAC;AAE1D,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAchD,CAAC;AAEF,4EAA4E;AAC5E,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED,sGAAsG;AACtG,eAAO,MAAM,iBAAiB,6BAA6B,CAAC;AAE5D,yEAAyE;AACzE,MAAM,WAAW,cAAc;IAC7B,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,8FAA8F;IAC9F,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,gGAAgG;AAChG,MAAM,WAAW,cAAc;IAC7B,2FAA2F;IAC3F,QAAQ,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,KAAK,GAAE;IAAE,QAAQ,CAAC,EAAE,cAAc,CAAA;CAAO,GACxC,MAAM,CAYR"}
@@ -45,9 +45,13 @@ export const CONFIG_ELEMENT_ID = 'durable-dashboard-config';
45
45
  * failure looked like a routing bug rather than a policy one. The globals are still read by the
46
46
  * client as a fallback (tests, hand-embedding), but this is no longer how the provider speaks.
47
47
  */
48
- export function renderIndexHtml(html, basePath, apiBasePath) {
48
+ export function renderIndexHtml(html, basePath, apiBasePath, extra = {}) {
49
49
  const based = html.split(BASE_PLACEHOLDER).join(`${basePath}/`);
50
- const config = { base: basePath, api: apiBasePath };
50
+ const config = {
51
+ base: basePath,
52
+ api: apiBasePath,
53
+ ...(extra.switcher && extra.switcher.others > 0 ? { switcher: extra.switcher } : {}),
54
+ };
51
55
  // `<` escaped as `\u003c` inside the JSON: a data block ends at the first `</script`, and a
52
56
  // config value must not be able to close it early. Valid JSON either way.
53
57
  const json = JSON.stringify(config).replace(/</g, '\\u003c');
@@ -1 +1 @@
1
- {"version":3,"file":"spa.js","sourceRoot":"","sources":["../../../src/dashboard/spa.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;4GAC4G;AAC5G,MAAM,CAAC,MAAM,gBAAgB,GAAG,yBAAyB,CAAC;AAE1D,MAAM,CAAC,MAAM,aAAa,GAA2B;IACnD,KAAK,EAAE,gCAAgC;IACvC,MAAM,EAAE,gCAAgC;IACxC,MAAM,EAAE,yBAAyB;IACjC,MAAM,EAAE,iCAAiC;IACzC,OAAO,EAAE,iCAAiC;IAC1C,MAAM,EAAE,eAAe;IACvB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,cAAc;IACtB,QAAQ,EAAE,YAAY;IACtB,OAAO,EAAE,WAAW;CACrB,CAAC;AAEF,4EAA4E;AAC5E,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9C,OAAO,aAAa,CAAC,GAAG,CAAC,IAAI,0BAA0B,CAAC;AAC1D,CAAC;AAED,sGAAsG;AACtG,MAAM,CAAC,MAAM,iBAAiB,GAAG,0BAA0B,CAAC;AAU5D;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,QAAgB,EAAE,WAAmB;IACjF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;IAChE,MAAM,MAAM,GAAmB,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC;IACpE,4FAA4F;IAC5F,0EAA0E;IAC1E,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,uCAAuC,iBAAiB,KAAK,IAAI,WAAW,CAAC;IAC5F,OAAO,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,MAAM,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;AACnG,CAAC"}
1
+ {"version":3,"file":"spa.js","sourceRoot":"","sources":["../../../src/dashboard/spa.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;4GAC4G;AAC5G,MAAM,CAAC,MAAM,gBAAgB,GAAG,yBAAyB,CAAC;AAE1D,MAAM,CAAC,MAAM,aAAa,GAA2B;IACnD,KAAK,EAAE,gCAAgC;IACvC,MAAM,EAAE,gCAAgC;IACxC,MAAM,EAAE,yBAAyB;IACjC,MAAM,EAAE,iCAAiC;IACzC,OAAO,EAAE,iCAAiC;IAC1C,MAAM,EAAE,eAAe;IACvB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,cAAc;IACtB,QAAQ,EAAE,YAAY;IACtB,OAAO,EAAE,WAAW;CACrB,CAAC;AAEF,4EAA4E;AAC5E,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9C,OAAO,aAAa,CAAC,GAAG,CAAC,IAAI,0BAA0B,CAAC;AAC1D,CAAC;AAED,sGAAsG;AACtG,MAAM,CAAC,MAAM,iBAAiB,GAAG,0BAA0B,CAAC;AAoB5D;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,eAAe,CAC7B,IAAY,EACZ,QAAgB,EAChB,WAAmB,EACnB,KAAK,GAAkC,EAAE;IAEzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;IAChE,MAAM,MAAM,GAAmB;QAC7B,IAAI,EAAE,QAAQ;QACd,GAAG,EAAE,WAAW;QAChB,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACrF,CAAC;IACF,4FAA4F;IAC5F,0EAA0E;IAC1E,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,uCAAuC,iBAAiB,KAAK,IAAI,WAAW,CAAC;IAC5F,OAAO,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,MAAM,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;AACnG,CAAC"}