@datalayer/agent-runtimes 1.3.82 โ†’ 1.3.83

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/lib/specs/apps.js CHANGED
@@ -66,7 +66,6 @@ export const ACCOUNTING_APP_0_0_1 = {
66
66
  ],
67
67
  commands: [],
68
68
  modes: [],
69
- settings: [],
70
69
  components: [],
71
70
  assistant: 'wizard',
72
71
  voice: {
@@ -132,6 +131,7 @@ export const ACCOUNTING_APP_0_0_1 = {
132
131
  memory: '',
133
132
  notifications: [],
134
133
  enabled: true,
134
+ unavailable_because: '',
135
135
  tags: ['example', 'accounting', 'finance', 'odoo', 'a2a', 'team'],
136
136
  icon: 'book',
137
137
  emoji: '๐Ÿงพ',
@@ -190,24 +190,24 @@ export const CUSTOMER_INTERVIEW_APP_0_0_1 = {
190
190
  ],
191
191
  commands: [],
192
192
  modes: [],
193
- settings: [
194
- {
195
- id: 'language',
196
- type: 'select',
197
- label: 'Language',
198
- options: ['English', 'French'],
199
- default: 'English',
200
- },
201
- {
202
- id: 'length',
203
- type: 'slider',
204
- label: 'Questions',
205
- options: [],
206
- default: 8.0,
207
- min: 3.0,
208
- max: 15.0,
193
+ settings: {
194
+ type: 'object',
195
+ properties: {
196
+ language: {
197
+ type: 'string',
198
+ title: 'Language',
199
+ enum: ['English', 'French'],
200
+ default: 'English',
201
+ },
202
+ length: {
203
+ type: 'integer',
204
+ title: 'Questions',
205
+ minimum: 3,
206
+ maximum: 15,
207
+ default: 8,
208
+ },
209
209
  },
210
- ],
210
+ },
211
211
  components: [],
212
212
  assistant: 'cat',
213
213
  voice: {
@@ -249,7 +249,7 @@ export const CUSTOMER_INTERVIEW_APP_0_0_1 = {
249
249
  "Its code runs in process in Datalayer's own tests with a scripted model: consent asked, a refusal honoured, a reply per message, an insight saved, the result recorded.",
250
250
  ],
251
251
  unverified: [
252
- 'Its agent is switched off in the catalogue: its code has not run with a real model, and its tests have not been run.',
252
+ 'Its code has not run with a real model: its agent was switched on in the catalogue on 2026-10-06, and its tests have not been run.',
253
253
  ],
254
254
  },
255
255
  },
@@ -274,13 +274,14 @@ export const CUSTOMER_INTERVIEW_APP_0_0_1 = {
274
274
  triggers: [],
275
275
  memory: '',
276
276
  notifications: [],
277
- enabled: false,
277
+ enabled: true,
278
+ unavailable_because: '',
278
279
  tags: ['example', 'research', 'python'],
279
280
  icon: 'comment-discussion',
280
281
  emoji: '๐ŸŽ™๏ธ',
281
282
  avatar: '',
282
283
  banner: '',
283
- setup: ["The agent 'cog-customer-interviewer:0.0.1' is not enabled."],
284
+ setup: [],
284
285
  };
285
286
  export const DATA_QUALITY_APP_0_0_1 = {
286
287
  schema: 'loop.app/v1',
@@ -315,7 +316,6 @@ export const DATA_QUALITY_APP_0_0_1 = {
315
316
  starters: [],
316
317
  commands: [],
317
318
  modes: [],
318
- settings: [],
319
319
  components: [
320
320
  'Card',
321
321
  'Column',
@@ -424,12 +424,13 @@ export const DATA_QUALITY_APP_0_0_1 = {
424
424
  decisionModel: 'cloudflare:gtw/typesafe/jev',
425
425
  },
426
426
  enabled: true,
427
+ unavailable_because: '',
427
428
  tags: ['example', 'decision', 'data-quality'],
428
429
  icon: 'filter',
429
430
  emoji: '๐Ÿงน',
430
431
  avatar: '',
431
432
  banner: '',
432
- setup: ["The agent 'jupyter-data-analyst:0.0.1' is not enabled."],
433
+ setup: [],
433
434
  };
434
435
  export const DECIDE_APP_0_0_1 = {
435
436
  schema: 'loop.app/v1',
@@ -483,7 +484,6 @@ export const DECIDE_APP_0_0_1 = {
483
484
  ],
484
485
  commands: [],
485
486
  modes: [],
486
- settings: [],
487
487
  components: [],
488
488
  assistant: 'wizard',
489
489
  voice: {
@@ -543,6 +543,7 @@ export const DECIDE_APP_0_0_1 = {
543
543
  memory: '',
544
544
  notifications: [],
545
545
  enabled: true,
546
+ unavailable_because: '',
546
547
  tags: ['example', 'decisions', 'jev'],
547
548
  icon: 'law',
548
549
  emoji: 'โš–๏ธ',
@@ -638,7 +639,6 @@ export const INBOX_TRIAGE_APP_0_0_1 = {
638
639
  ],
639
640
  commands: [],
640
641
  modes: [],
641
- settings: [],
642
642
  components: [],
643
643
  voice: {
644
644
  enabled: false,
@@ -680,7 +680,7 @@ export const INBOX_TRIAGE_APP_0_0_1 = {
680
680
  "Its page drawn in the Studio's Preview signed in (2026-10-04); no mail read.",
681
681
  ],
682
682
  recorded: [
683
- "Run end to end on a test mailbox of example mail, a scripted model in place of its agent's (agent-runtimes test_inbox_triage.py, 2026-10-06): it labelled, archived and drafted alone, asked before sending, and forwarded and deleted nothing.",
683
+ "Run end to end in Datalayer's own tests on a test mailbox of example mail, a scripted model in place of its agent's (2026-10-06): it labelled, archived and drafted alone, asked before sending, and forwarded and deleted nothing.",
684
684
  ],
685
685
  unverified: [
686
686
  'Its agent and the Google Workspace server are switched off in the catalogue: no real mail has been read, drafted or sent.',
@@ -727,6 +727,7 @@ export const INBOX_TRIAGE_APP_0_0_1 = {
727
727
  memory: 'mem0',
728
728
  notifications: ['email'],
729
729
  enabled: false,
730
+ unavailable_because: 'It reads and sorts your mail, and a mailbox cannot be connected yet: the Google Workspace connection is still being built.',
730
731
  tags: ['example', 'worker', 'mail'],
731
732
  icon: 'mail',
732
733
  emoji: '๐Ÿ“ฌ',
@@ -773,7 +774,6 @@ export const MODEL_CHOICE_APP_0_0_1 = {
773
774
  starters: [],
774
775
  commands: [],
775
776
  modes: [],
776
- settings: [],
777
777
  components: [
778
778
  'Card',
779
779
  'Column',
@@ -938,12 +938,13 @@ export const MODEL_CHOICE_APP_0_0_1 = {
938
938
  decisionModel: 'cloudflare:gtw/typesafe/jev',
939
939
  },
940
940
  enabled: true,
941
+ unavailable_because: '',
941
942
  tags: ['example', 'decision', 'benchmarks', 'models'],
942
943
  icon: 'cpu',
943
944
  emoji: '๐Ÿง ',
944
945
  avatar: '',
945
946
  banner: '',
946
- setup: ["The agent 'jupyter-data-analyst:0.0.1' is not enabled."],
947
+ setup: [],
947
948
  };
948
949
  export const PIPELINE_REPORT_APP_0_0_1 = {
949
950
  schema: 'loop.app/v1',
@@ -1003,7 +1004,6 @@ export const PIPELINE_REPORT_APP_0_0_1 = {
1003
1004
  ],
1004
1005
  commands: [],
1005
1006
  modes: [],
1006
- settings: [],
1007
1007
  components: [
1008
1008
  'Card',
1009
1009
  'Column',
@@ -1223,6 +1223,7 @@ export const PIPELINE_REPORT_APP_0_0_1 = {
1223
1223
  memory: '',
1224
1224
  notifications: ['email'],
1225
1225
  enabled: false,
1226
+ unavailable_because: 'Ten of the twelve checks it names before a report reaches the board cannot run yet, so no report it builds could pass them and be sent.',
1226
1227
  tags: ['example', 'worker', 'sales', 'reporting'],
1227
1228
  icon: 'graph',
1228
1229
  emoji: '๐Ÿ“ˆ',
@@ -1263,31 +1264,30 @@ export const QUOTE_CALCULATOR_APP_0_0_1 = {
1263
1264
  starters: [],
1264
1265
  commands: [],
1265
1266
  modes: [],
1266
- settings: [
1267
- {
1268
- id: 'seats',
1269
- type: 'slider',
1270
- label: 'Seats',
1271
- options: [],
1272
- default: 10.0,
1273
- min: 1.0,
1274
- max: 1000.0,
1275
- },
1276
- {
1277
- id: 'plan',
1278
- type: 'select',
1279
- label: 'Plan',
1280
- options: ['Team', 'Business', 'Enterprise'],
1281
- default: 'Team',
1282
- },
1283
- {
1284
- id: 'term',
1285
- type: 'select',
1286
- label: 'Term',
1287
- options: ['Monthly', 'Annual'],
1288
- default: 'Annual',
1267
+ settings: {
1268
+ type: 'object',
1269
+ properties: {
1270
+ seats: {
1271
+ type: 'integer',
1272
+ title: 'Seats',
1273
+ minimum: 1,
1274
+ maximum: 1000,
1275
+ default: 10,
1276
+ },
1277
+ plan: {
1278
+ type: 'string',
1279
+ title: 'Plan',
1280
+ enum: ['Team', 'Business', 'Enterprise'],
1281
+ default: 'Team',
1282
+ },
1283
+ term: {
1284
+ type: 'string',
1285
+ title: 'Term',
1286
+ enum: ['Monthly', 'Annual'],
1287
+ default: 'Annual',
1288
+ },
1289
1289
  },
1290
- ],
1290
+ },
1291
1291
  components: [
1292
1292
  'Card',
1293
1293
  'Column',
@@ -1447,7 +1447,7 @@ export const QUOTE_CALCULATOR_APP_0_0_1 = {
1447
1447
  ],
1448
1448
  recorded: [],
1449
1449
  unverified: [
1450
- 'Its agent is switched off in the catalogue: no quote has been computed live.',
1450
+ 'No quote has been computed live: its agent was switched on in the catalogue on 2026-10-06 and has not run it yet.',
1451
1451
  'Its tests have not been run.',
1452
1452
  ],
1453
1453
  },
@@ -1477,13 +1477,14 @@ export const QUOTE_CALCULATOR_APP_0_0_1 = {
1477
1477
  triggers: [],
1478
1478
  memory: '',
1479
1479
  notifications: [],
1480
- enabled: false,
1480
+ enabled: true,
1481
+ unavailable_because: '',
1481
1482
  tags: ['example', 'widget'],
1482
1483
  icon: 'number',
1483
1484
  emoji: '๐Ÿงฎ',
1484
1485
  avatar: '',
1485
1486
  banner: '',
1486
- setup: ["The agent 'jupyter-data-analyst:0.0.1' is not enabled."],
1487
+ setup: [],
1487
1488
  };
1488
1489
  export const REPORT_FROM_A_FILE_APP_0_0_1 = {
1489
1490
  schema: 'loop.app/v1',
@@ -1524,22 +1525,22 @@ export const REPORT_FROM_A_FILE_APP_0_0_1 = {
1524
1525
  starters: [],
1525
1526
  commands: [],
1526
1527
  modes: [],
1527
- settings: [
1528
- {
1529
- id: 'report',
1530
- type: 'select',
1531
- label: 'Report',
1532
- options: ['Summary', 'Full'],
1533
- default: 'Summary',
1534
- },
1535
- {
1536
- id: 'question',
1537
- type: 'text',
1538
- label: 'What to look at',
1539
- options: [],
1540
- default: '',
1528
+ settings: {
1529
+ type: 'object',
1530
+ properties: {
1531
+ report: {
1532
+ type: 'string',
1533
+ title: 'Report',
1534
+ enum: ['Summary', 'Full'],
1535
+ default: 'Summary',
1536
+ },
1537
+ question: {
1538
+ type: 'string',
1539
+ title: 'What to look at',
1540
+ default: '',
1541
+ },
1541
1542
  },
1542
- ],
1543
+ },
1543
1544
  components: [
1544
1545
  'Card',
1545
1546
  'Column',
@@ -1693,7 +1694,7 @@ export const REPORT_FROM_A_FILE_APP_0_0_1 = {
1693
1694
  "Its code runs in process in Datalayer's own tests with a scripted model: a CSV asked for and reported on, a PDF refused, a file given on its page answering what its code asks.",
1694
1695
  ],
1695
1696
  unverified: [
1696
- 'Its agent is switched off in the catalogue: no real model has written a report, and its tests have not been run.',
1697
+ 'No real model has written a report: its agent was switched on in the catalogue on 2026-10-06, and its tests have not been run.',
1697
1698
  'The report is kept in its record; no download link is drawn yet.',
1698
1699
  ],
1699
1700
  },
@@ -1723,13 +1724,14 @@ export const REPORT_FROM_A_FILE_APP_0_0_1 = {
1723
1724
  triggers: [],
1724
1725
  memory: '',
1725
1726
  notifications: [],
1726
- enabled: false,
1727
+ enabled: true,
1728
+ unavailable_because: '',
1727
1729
  tags: ['example', 'widget', 'python'],
1728
1730
  icon: 'file',
1729
1731
  emoji: '๐Ÿ“‘',
1730
1732
  avatar: '',
1731
1733
  banner: '',
1732
- setup: ["The agent 'jupyter-data-analyst:0.0.1' is not enabled."],
1734
+ setup: [],
1733
1735
  };
1734
1736
  export const SALES_APP_0_0_1 = {
1735
1737
  schema: 'loop.app/v1',
@@ -1777,7 +1779,6 @@ export const SALES_APP_0_0_1 = {
1777
1779
  ],
1778
1780
  commands: [],
1779
1781
  modes: [],
1780
- settings: [],
1781
1782
  components: [],
1782
1783
  assistant: 'paperclip',
1783
1784
  voice: {
@@ -1842,6 +1843,7 @@ export const SALES_APP_0_0_1 = {
1842
1843
  memory: '',
1843
1844
  notifications: [],
1844
1845
  enabled: true,
1846
+ unavailable_because: '',
1845
1847
  tags: ['example', 'sales', 'finance', 'a2a', 'team'],
1846
1848
  icon: 'briefcase',
1847
1849
  emoji: '๐Ÿ’ผ',
@@ -1884,7 +1886,6 @@ export const SHIP_OR_FIX_APP_0_0_1 = {
1884
1886
  starters: [],
1885
1887
  commands: [],
1886
1888
  modes: [],
1887
- settings: [],
1888
1889
  components: [
1889
1890
  'Card',
1890
1891
  'Column',
@@ -2022,12 +2023,13 @@ export const SHIP_OR_FIX_APP_0_0_1 = {
2022
2023
  decisionModel: 'cloudflare:gtw/typesafe/jev',
2023
2024
  },
2024
2025
  enabled: true,
2026
+ unavailable_because: '',
2025
2027
  tags: ['example', 'decision', 'benchmarks'],
2026
2028
  icon: 'checklist',
2027
2029
  emoji: '๐Ÿšข',
2028
2030
  avatar: '',
2029
2031
  banner: '',
2030
- setup: ["The agent 'jupyter-data-analyst:0.0.1' is not enabled."],
2032
+ setup: [],
2031
2033
  };
2032
2034
  export const SUPPLIER_COMPARISON_APP_0_0_1 = {
2033
2035
  schema: 'loop.app/v1',
@@ -2062,7 +2064,6 @@ export const SUPPLIER_COMPARISON_APP_0_0_1 = {
2062
2064
  starters: [],
2063
2065
  commands: [],
2064
2066
  modes: [],
2065
- settings: [],
2066
2067
  components: [
2067
2068
  'Card',
2068
2069
  'Column',
@@ -2187,12 +2188,13 @@ export const SUPPLIER_COMPARISON_APP_0_0_1 = {
2187
2188
  decisionModel: 'cloudflare:gtw/typesafe/jev',
2188
2189
  },
2189
2190
  enabled: true,
2191
+ unavailable_because: '',
2190
2192
  tags: ['example', 'decision', 'procurement'],
2191
2193
  icon: 'package',
2192
2194
  emoji: '๐Ÿšš',
2193
2195
  avatar: '',
2194
2196
  banner: '',
2195
- setup: ["The agent 'jupyter-data-analyst:0.0.1' is not enabled."],
2197
+ setup: [],
2196
2198
  };
2197
2199
  export const SUPPORT_DESK_APP_0_0_1 = {
2198
2200
  schema: 'loop.app/v1',
@@ -2240,15 +2242,17 @@ export const SUPPORT_DESK_APP_0_0_1 = {
2240
2242
  ],
2241
2243
  commands: [],
2242
2244
  modes: [],
2243
- settings: [
2244
- {
2245
- id: 'product',
2246
- type: 'select',
2247
- label: 'Product',
2248
- options: ['Cloud', 'Desktop'],
2249
- default: 'Cloud',
2245
+ settings: {
2246
+ type: 'object',
2247
+ properties: {
2248
+ product: {
2249
+ type: 'string',
2250
+ title: 'Product',
2251
+ enum: ['Cloud', 'Desktop'],
2252
+ default: 'Cloud',
2253
+ },
2250
2254
  },
2251
- ],
2255
+ },
2252
2256
  components: [
2253
2257
  'Card',
2254
2258
  'Column',
@@ -2406,7 +2410,7 @@ export const SUPPORT_DESK_APP_0_0_1 = {
2406
2410
  live: [],
2407
2411
  recorded: [],
2408
2412
  unverified: [
2409
- 'Its agent is switched off in the catalogue: no conversation has run.',
2413
+ 'No conversation has run: its agent was switched on in the catalogue on 2026-10-06 and has not answered yet.',
2410
2414
  'Its two documents are named, not given: a builder gives their own on What it knows.',
2411
2415
  'Its tests have not been run.',
2412
2416
  ],
@@ -2437,13 +2441,14 @@ export const SUPPORT_DESK_APP_0_0_1 = {
2437
2441
  triggers: [],
2438
2442
  memory: '',
2439
2443
  notifications: [],
2440
- enabled: false,
2444
+ enabled: true,
2445
+ unavailable_because: '',
2441
2446
  tags: ['example', 'support'],
2442
2447
  icon: 'question',
2443
2448
  emoji: '๐Ÿ›Ÿ',
2444
2449
  avatar: '',
2445
2450
  banner: '',
2446
- setup: ["The agent 'worker-document-qa:0.0.1' is not enabled."],
2451
+ setup: [],
2447
2452
  };
2448
2453
  export const WEB_RESEARCH_APP_0_0_1 = {
2449
2454
  schema: 'loop.app/v1',
@@ -2498,15 +2503,17 @@ export const WEB_RESEARCH_APP_0_0_1 = {
2498
2503
  ],
2499
2504
  commands: [],
2500
2505
  modes: [],
2501
- settings: [
2502
- {
2503
- id: 'depth',
2504
- type: 'select',
2505
- label: 'How far to look',
2506
- options: ['Quick', 'Thorough'],
2507
- default: 'Quick',
2506
+ settings: {
2507
+ type: 'object',
2508
+ properties: {
2509
+ depth: {
2510
+ type: 'string',
2511
+ title: 'How far to look',
2512
+ enum: ['Quick', 'Thorough'],
2513
+ default: 'Quick',
2514
+ },
2508
2515
  },
2509
- ],
2516
+ },
2510
2517
  components: [],
2511
2518
  voice: {
2512
2519
  enabled: false,
@@ -2568,6 +2575,7 @@ export const WEB_RESEARCH_APP_0_0_1 = {
2568
2575
  memory: '',
2569
2576
  notifications: [],
2570
2577
  enabled: true,
2578
+ unavailable_because: '',
2571
2579
  tags: ['example', 'research'],
2572
2580
  icon: 'search',
2573
2581
  emoji: '๐Ÿ”Ž',
@@ -2723,23 +2731,24 @@ export const APP_SOURCES = {
2723
2731
  message: 'Interview me about my first week with the product.',
2724
2732
  },
2725
2733
  ],
2726
- settings: [
2727
- {
2728
- id: 'language',
2729
- type: 'select',
2730
- label: 'Language',
2731
- options: ['English', 'French'],
2732
- default: 'English',
2733
- },
2734
- {
2735
- id: 'length',
2736
- type: 'slider',
2737
- label: 'Questions',
2738
- default: 8.0,
2739
- min: 3.0,
2740
- max: 15.0,
2734
+ settings: {
2735
+ type: 'object',
2736
+ properties: {
2737
+ language: {
2738
+ type: 'string',
2739
+ title: 'Language',
2740
+ enum: ['English', 'French'],
2741
+ default: 'English',
2742
+ },
2743
+ length: {
2744
+ type: 'integer',
2745
+ title: 'Questions',
2746
+ minimum: 3,
2747
+ maximum: 15,
2748
+ default: 8,
2749
+ },
2741
2750
  },
2742
- ],
2751
+ },
2743
2752
  assistant: 'cat',
2744
2753
  },
2745
2754
  tests: {
@@ -2769,7 +2778,7 @@ export const APP_SOURCES = {
2769
2778
  "Its code runs in process in Datalayer's own tests with a scripted model: consent asked, a refusal honoured, a reply per message, an insight saved, the result recorded.",
2770
2779
  ],
2771
2780
  unverified: [
2772
- 'Its agent is switched off in the catalogue: its code has not run with a real model, and its tests have not been run.',
2781
+ 'Its code has not run with a real model: its agent was switched on in the catalogue on 2026-10-06, and its tests have not been run.',
2773
2782
  ],
2774
2783
  },
2775
2784
  },
@@ -2779,7 +2788,6 @@ export const APP_SOURCES = {
2779
2788
  deployment: {
2780
2789
  hosted: {},
2781
2790
  },
2782
- enabled: false,
2783
2791
  tags: ['example', 'research', 'python'],
2784
2792
  icon: 'comment-discussion',
2785
2793
  emoji: '๐ŸŽ™๏ธ',
@@ -3026,7 +3034,7 @@ export const APP_SOURCES = {
3026
3034
  "Its page drawn in the Studio's Preview signed in (2026-10-04); no mail read.",
3027
3035
  ],
3028
3036
  recorded: [
3029
- "Run end to end on a test mailbox of example mail, a scripted model in place of its agent's (agent-runtimes test_inbox_triage.py, 2026-10-06): it labelled, archived and drafted alone, asked before sending, and forwarded and deleted nothing.",
3037
+ "Run end to end in Datalayer's own tests on a test mailbox of example mail, a scripted model in place of its agent's (2026-10-06): it labelled, archived and drafted alone, asked before sending, and forwarded and deleted nothing.",
3030
3038
  ],
3031
3039
  unverified: [
3032
3040
  'Its agent and the Google Workspace server are switched off in the catalogue: no real mail has been read, drafted or sent.',
@@ -3058,6 +3066,7 @@ export const APP_SOURCES = {
3058
3066
  memory: 'mem0',
3059
3067
  notifications: ['email'],
3060
3068
  enabled: false,
3069
+ unavailable_because: 'It reads and sorts your mail, and a mailbox cannot be connected yet: the Google Workspace connection is still being built.',
3061
3070
  tags: ['example', 'worker', 'mail'],
3062
3071
  icon: 'mail',
3063
3072
  emoji: '๐Ÿ“ฌ',
@@ -3437,6 +3446,7 @@ export const APP_SOURCES = {
3437
3446
  ],
3438
3447
  notifications: ['email'],
3439
3448
  enabled: false,
3449
+ unavailable_because: 'Ten of the twelve checks it names before a report reaches the board cannot run yet, so no report it builds could pass them and be sent.',
3440
3450
  tags: ['example', 'worker', 'sales', 'reporting'],
3441
3451
  icon: 'graph',
3442
3452
  emoji: '๐Ÿ“ˆ',
@@ -3453,30 +3463,30 @@ export const APP_SOURCES = {
3453
3463
  contents: ['Price list'],
3454
3464
  interface: {
3455
3465
  accent: 'sun',
3456
- settings: [
3457
- {
3458
- id: 'seats',
3459
- type: 'slider',
3460
- label: 'Seats',
3461
- default: 10.0,
3462
- min: 1.0,
3463
- max: 1000.0,
3464
- },
3465
- {
3466
- id: 'plan',
3467
- type: 'select',
3468
- label: 'Plan',
3469
- options: ['Team', 'Business', 'Enterprise'],
3470
- default: 'Team',
3471
- },
3472
- {
3473
- id: 'term',
3474
- type: 'select',
3475
- label: 'Term',
3476
- options: ['Monthly', 'Annual'],
3477
- default: 'Annual',
3466
+ settings: {
3467
+ type: 'object',
3468
+ properties: {
3469
+ seats: {
3470
+ type: 'integer',
3471
+ title: 'Seats',
3472
+ minimum: 1,
3473
+ maximum: 1000,
3474
+ default: 10,
3475
+ },
3476
+ plan: {
3477
+ type: 'string',
3478
+ title: 'Plan',
3479
+ enum: ['Team', 'Business', 'Enterprise'],
3480
+ default: 'Team',
3481
+ },
3482
+ term: {
3483
+ type: 'string',
3484
+ title: 'Term',
3485
+ enum: ['Monthly', 'Annual'],
3486
+ default: 'Annual',
3487
+ },
3478
3488
  },
3479
- ],
3489
+ },
3480
3490
  components: [
3481
3491
  'Card',
3482
3492
  'Column',
@@ -3623,7 +3633,7 @@ export const APP_SOURCES = {
3623
3633
  "Its page drawn in the Studio's Preview signed in (2026-10-04); no quote computed.",
3624
3634
  ],
3625
3635
  unverified: [
3626
- 'Its agent is switched off in the catalogue: no quote has been computed live.',
3636
+ 'No quote has been computed live: its agent was switched on in the catalogue on 2026-10-06 and has not run it yet.',
3627
3637
  'Its tests have not been run.',
3628
3638
  ],
3629
3639
  },
@@ -3636,7 +3646,6 @@ export const APP_SOURCES = {
3636
3646
  hosted: {},
3637
3647
  embedded: {},
3638
3648
  },
3639
- enabled: false,
3640
3649
  tags: ['example', 'widget'],
3641
3650
  icon: 'number',
3642
3651
  emoji: '๐Ÿงฎ',
@@ -3659,21 +3668,22 @@ export const APP_SOURCES = {
3659
3668
  ],
3660
3669
  interface: {
3661
3670
  accent: 'sky',
3662
- settings: [
3663
- {
3664
- id: 'report',
3665
- type: 'select',
3666
- label: 'Report',
3667
- options: ['Summary', 'Full'],
3668
- default: 'Summary',
3669
- },
3670
- {
3671
- id: 'question',
3672
- type: 'text',
3673
- label: 'What to look at',
3674
- default: '',
3671
+ settings: {
3672
+ type: 'object',
3673
+ properties: {
3674
+ report: {
3675
+ type: 'string',
3676
+ title: 'Report',
3677
+ enum: ['Summary', 'Full'],
3678
+ default: 'Summary',
3679
+ },
3680
+ question: {
3681
+ type: 'string',
3682
+ title: 'What to look at',
3683
+ default: '',
3684
+ },
3675
3685
  },
3676
- ],
3686
+ },
3677
3687
  components: [
3678
3688
  'Card',
3679
3689
  'Column',
@@ -3813,7 +3823,7 @@ export const APP_SOURCES = {
3813
3823
  "Its code runs in process in Datalayer's own tests with a scripted model: a CSV asked for and reported on, a PDF refused, a file given on its page answering what its code asks.",
3814
3824
  ],
3815
3825
  unverified: [
3816
- 'Its agent is switched off in the catalogue: no real model has written a report, and its tests have not been run.',
3826
+ 'No real model has written a report: its agent was switched on in the catalogue on 2026-10-06, and its tests have not been run.',
3817
3827
  'The report is kept in its record; no download link is drawn yet.',
3818
3828
  ],
3819
3829
  },
@@ -3826,7 +3836,6 @@ export const APP_SOURCES = {
3826
3836
  hosted: {},
3827
3837
  embedded: {},
3828
3838
  },
3829
- enabled: false,
3830
3839
  tags: ['example', 'widget', 'python'],
3831
3840
  icon: 'file',
3832
3841
  emoji: '๐Ÿ“‘',
@@ -4122,15 +4131,17 @@ export const APP_SOURCES = {
4122
4131
  message: 'What is the difference between the Team and the Business plan?',
4123
4132
  },
4124
4133
  ],
4125
- settings: [
4126
- {
4127
- id: 'product',
4128
- type: 'select',
4129
- label: 'Product',
4130
- options: ['Cloud', 'Desktop'],
4131
- default: 'Cloud',
4134
+ settings: {
4135
+ type: 'object',
4136
+ properties: {
4137
+ product: {
4138
+ type: 'string',
4139
+ title: 'Product',
4140
+ enum: ['Cloud', 'Desktop'],
4141
+ default: 'Cloud',
4142
+ },
4132
4143
  },
4133
- ],
4144
+ },
4134
4145
  components: [
4135
4146
  'Card',
4136
4147
  'Column',
@@ -4273,7 +4284,7 @@ export const APP_SOURCES = {
4273
4284
  ],
4274
4285
  verified: {
4275
4286
  unverified: [
4276
- 'Its agent is switched off in the catalogue: no conversation has run.',
4287
+ 'No conversation has run: its agent was switched on in the catalogue on 2026-10-06 and has not answered yet.',
4277
4288
  'Its two documents are named, not given: a builder gives their own on What it knows.',
4278
4289
  'Its tests have not been run.',
4279
4290
  ],
@@ -4288,7 +4299,6 @@ export const APP_SOURCES = {
4288
4299
  mode: 'bubble',
4289
4300
  },
4290
4301
  },
4291
- enabled: false,
4292
4302
  tags: ['example', 'support'],
4293
4303
  icon: 'question',
4294
4304
  emoji: '๐Ÿ›Ÿ',
@@ -4324,15 +4334,17 @@ export const APP_SOURCES = {
4324
4334
  message: 'Is it true that most data science projects never reach production? Find the primary source.',
4325
4335
  },
4326
4336
  ],
4327
- settings: [
4328
- {
4329
- id: 'depth',
4330
- type: 'select',
4331
- label: 'How far to look',
4332
- options: ['Quick', 'Thorough'],
4333
- default: 'Quick',
4337
+ settings: {
4338
+ type: 'object',
4339
+ properties: {
4340
+ depth: {
4341
+ type: 'string',
4342
+ title: 'How far to look',
4343
+ enum: ['Quick', 'Thorough'],
4344
+ default: 'Quick',
4345
+ },
4334
4346
  },
4335
- ],
4347
+ },
4336
4348
  },
4337
4349
  tests: {
4338
4350
  cases: [