@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.
@@ -339,12 +339,18 @@ export const APPSPEC_SCHEMA = {
339
339
  type: 'array',
340
340
  },
341
341
  settings: {
342
- description: 'What the user may set',
343
- items: {
344
- $ref: '#/$defs/AppSetting',
345
- },
342
+ anyOf: [
343
+ {
344
+ additionalProperties: true,
345
+ type: 'object',
346
+ },
347
+ {
348
+ type: 'null',
349
+ },
350
+ ],
351
+ default: null,
352
+ description: "What the user may set: the JSON Schema of a form, an object of named fields, each with its `title` and its `default` (LOOP C-16). Drawn with `@datalayer/primer-rjsf` beside the conversation and on a deployment's Ship card, its values go with every run and are checked by the runtime against the same schema. None when unsaid",
346
353
  title: 'Settings',
347
- type: 'array',
348
354
  },
349
355
  components: {
350
356
  description: "The components of the catalog the surface may use; the kind's own when empty",
@@ -609,82 +615,6 @@ export const APPSPEC_SCHEMA = {
609
615
  title: 'AppScenario',
610
616
  type: 'object',
611
617
  },
612
- AppSetting: {
613
- additionalProperties: false,
614
- description: 'Something the user may set for their session.',
615
- properties: {
616
- id: {
617
- description: 'The name the application reads it by',
618
- title: 'Id',
619
- type: 'string',
620
- },
621
- type: {
622
- $ref: '#/$defs/SettingType',
623
- description: '`select`, `text`, `toggle`, `slider` or `number`',
624
- },
625
- label: {
626
- description: 'What the user reads',
627
- title: 'Label',
628
- type: 'string',
629
- },
630
- options: {
631
- description: 'For a select: its options',
632
- items: {
633
- type: 'string',
634
- },
635
- title: 'Options',
636
- type: 'array',
637
- },
638
- default: {
639
- anyOf: [
640
- {
641
- type: 'string',
642
- },
643
- {
644
- type: 'boolean',
645
- },
646
- {
647
- type: 'number',
648
- },
649
- {
650
- type: 'null',
651
- },
652
- ],
653
- default: null,
654
- description: 'Its value at the start',
655
- title: 'Default',
656
- },
657
- min: {
658
- anyOf: [
659
- {
660
- type: 'number',
661
- },
662
- {
663
- type: 'null',
664
- },
665
- ],
666
- default: null,
667
- description: 'For a slider or a number: the least',
668
- title: 'Min',
669
- },
670
- max: {
671
- anyOf: [
672
- {
673
- type: 'number',
674
- },
675
- {
676
- type: 'null',
677
- },
678
- ],
679
- default: null,
680
- description: 'For a slider or a number: the most',
681
- title: 'Max',
682
- },
683
- },
684
- required: ['id', 'type', 'label'],
685
- title: 'AppSetting',
686
- type: 'object',
687
- },
688
618
  AppSpaceGrant: {
689
619
  additionalProperties: false,
690
620
  description: 'A Space the application may reach.',
@@ -1106,12 +1036,6 @@ export const APPSPEC_SCHEMA = {
1106
1036
  title: 'RecordItem',
1107
1037
  type: 'string',
1108
1038
  },
1109
- SettingType: {
1110
- description: 'What a setting is set with.',
1111
- enum: ['select', 'text', 'toggle', 'slider', 'number'],
1112
- title: 'SettingType',
1113
- type: 'string',
1114
- },
1115
1039
  ThemeMode: {
1116
1040
  description: 'The colour mode a theme is worn in: `auto` follows the device.',
1117
1041
  enum: ['light', 'dark', 'auto'],
@@ -1348,6 +1272,12 @@ export const APPSPEC_SCHEMA = {
1348
1272
  title: 'Enabled',
1349
1273
  type: 'boolean',
1350
1274
  },
1275
+ unavailable_because: {
1276
+ default: '',
1277
+ description: 'Why it is not offered today, in a sentence its page shows: said when `enabled` is false, and only then',
1278
+ title: 'Unavailable Because',
1279
+ type: 'string',
1280
+ },
1351
1281
  tags: {
1352
1282
  items: {
1353
1283
  type: 'string',
package/lib/specs/cogs.js CHANGED
@@ -242,8 +242,9 @@ const COG_CUSTOMER_INTERVIEWER_AGENTSPEC_0_0_1 = {
242
242
  description: `Conducts adaptive customer interviews under the Customer Research Frame: consent first, no leading question, and insights that each cite the interviewee's own words.`,
243
243
  tags: ['research', 'customer-support', 'analysis', 'cog'],
244
244
  domain: 'market-analyst',
245
- enabled: false,
245
+ enabled: true,
246
246
  model: 'bedrock:us.anthropic.claude-sonnet-4-6',
247
+ modelAdditionals: ['alibaba:qwen-max'],
247
248
  mcpServers: [],
248
249
  skills: [
249
250
  SKILL_MAP['text-summarizer:0.0.1']
@@ -625,7 +626,7 @@ export const COG_CUSTOMER_INTERVIEWER_0_0_1 = {
625
626
  frames: ['customer-research'],
626
627
  lineage: ['datalayer', 'customer-research'],
627
628
  kind: 'context',
628
- enabled: false,
629
+ enabled: true,
629
630
  guards: [
630
631
  {
631
632
  id: 'no-secrets',
@@ -485,15 +485,33 @@ export interface AppModeEffect {
485
485
  /** The model an option chosen names; the application's when unsaid. */
486
486
  model?: string;
487
487
  }
488
- export interface AppSettingSpec {
489
- id: string;
490
- type: 'select' | 'text' | 'toggle' | 'slider' | 'number';
491
- label: string;
492
- options: string[];
493
- default?: string | boolean | number;
494
- min?: number;
495
- max?: number;
496
- }
488
+ /**
489
+ * One field of a form (LOOP C-16): its JSON Schema — a `type`, the `title` a
490
+ * person reads, its `default`, and what it takes (`enum`, `minimum`,
491
+ * `maximum`…).
492
+ */
493
+ export type AppFormField = {
494
+ type?: string;
495
+ title?: string;
496
+ description?: string;
497
+ default?: unknown;
498
+ enum?: unknown[];
499
+ minimum?: number;
500
+ maximum?: number;
501
+ [keyword: string]: unknown;
502
+ };
503
+ /**
504
+ * The JSON Schema of a form (LOOP C-16): an object of named fields, drawn with
505
+ * `@datalayer/primer-rjsf` and checked by the runtime against the same schema.
506
+ * An application's settings are one (`interface.settings`), as a Form block's
507
+ * schema is.
508
+ */
509
+ export type AppFormSchema = {
510
+ type: 'object';
511
+ properties: Record<string, AppFormField>;
512
+ required?: string[];
513
+ [keyword: string]: unknown;
514
+ };
497
515
  /** The component tree a user meets, over the approved catalog (A2UI). */
498
516
  export interface AppSurfaceSpec {
499
517
  protocol: string;
@@ -532,7 +550,11 @@ export interface AppInterfaceSpec {
532
550
  commands: AppCommandSpec[];
533
551
  /** Mode switches in the composer, the option picked going with every run (P-19). */
534
552
  modes: AppModeSpec[];
535
- settings: AppSettingSpec[];
553
+ /**
554
+ * What a person may set: the JSON Schema of a form (C-16), drawn beside the
555
+ * conversation and on a deployment's Ship card; none when unsaid.
556
+ */
557
+ settings?: AppFormSchema;
536
558
  /** The components of the catalog the surface may use. */
537
559
  components: string[];
538
560
  surface?: AppSurfaceSpec;
@@ -710,6 +732,11 @@ export interface AppSpec {
710
732
  /** What it names that is not enabled today, in sentences. */
711
733
  setup: string[];
712
734
  enabled: boolean;
735
+ /**
736
+ * Why it is not offered today, in a sentence its page shows: said when
737
+ * `enabled` is false, and only then (empty otherwise).
738
+ */
739
+ unavailable_because: string;
713
740
  tags: string[];
714
741
  icon?: string;
715
742
  /** Its face: one emoji, shown wherever the application appears. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@datalayer/agent-runtimes",
3
- "version": "1.3.82",
3
+ "version": "1.3.83",
4
4
  "type": "module",
5
5
  "workspaces": [
6
6
  ".",
@@ -216,7 +216,6 @@ def generate_python_code(specs: list[dict[str, Any]], built: dict[str, str]) ->
216
216
  "",
217
217
  "from agent_runtimes.types import AppSpec",
218
218
  "",
219
- "",
220
219
  "# " + "=" * 76,
221
220
  "# Application Definitions",
222
221
  "# " + "=" * 76,