@vertesia/common 1.5.0-dev.20260717.131047Z → 1.5.0-dev.20260725.083715Z

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 (123) hide show
  1. package/lib/apps.d.ts +184 -48
  2. package/lib/apps.d.ts.map +1 -1
  3. package/lib/apps.js +21 -9
  4. package/lib/apps.js.map +1 -1
  5. package/lib/audit-trail.d.ts +61 -1
  6. package/lib/audit-trail.d.ts.map +1 -1
  7. package/lib/audit-trail.js +15 -0
  8. package/lib/audit-trail.js.map +1 -1
  9. package/lib/environment.d.ts +2 -0
  10. package/lib/environment.d.ts.map +1 -1
  11. package/lib/environment.js.map +1 -1
  12. package/lib/index.d.ts +7 -0
  13. package/lib/index.d.ts.map +1 -1
  14. package/lib/index.js +7 -0
  15. package/lib/index.js.map +1 -1
  16. package/lib/interaction.d.ts +77 -1
  17. package/lib/interaction.d.ts.map +1 -1
  18. package/lib/interaction.js +48 -0
  19. package/lib/interaction.js.map +1 -1
  20. package/lib/platform-event.d.ts +37 -3
  21. package/lib/platform-event.d.ts.map +1 -1
  22. package/lib/platform-event.js.map +1 -1
  23. package/lib/project.d.ts +119 -20
  24. package/lib/project.d.ts.map +1 -1
  25. package/lib/project.js +65 -0
  26. package/lib/project.js.map +1 -1
  27. package/lib/query.d.ts +6 -0
  28. package/lib/query.d.ts.map +1 -1
  29. package/lib/refs.d.ts +1 -0
  30. package/lib/refs.d.ts.map +1 -1
  31. package/lib/schema-for-extraction.d.ts +21 -0
  32. package/lib/schema-for-extraction.d.ts.map +1 -0
  33. package/lib/schema-for-extraction.js +205 -0
  34. package/lib/schema-for-extraction.js.map +1 -0
  35. package/lib/store/agent-run.d.ts +23 -1
  36. package/lib/store/agent-run.d.ts.map +1 -1
  37. package/lib/store/conversation-state.d.ts +3 -1
  38. package/lib/store/conversation-state.d.ts.map +1 -1
  39. package/lib/store/conversation-state.js.map +1 -1
  40. package/lib/store/doc-analyzer.d.ts +10 -67
  41. package/lib/store/doc-analyzer.d.ts.map +1 -1
  42. package/lib/store/dsl-workflow.d.ts +1 -0
  43. package/lib/store/dsl-workflow.d.ts.map +1 -1
  44. package/lib/store/dsl-workflow.js.map +1 -1
  45. package/lib/store/grounded-extraction.d.ts +146 -0
  46. package/lib/store/grounded-extraction.d.ts.map +1 -0
  47. package/lib/store/grounded-extraction.js +8 -0
  48. package/lib/store/grounded-extraction.js.map +1 -0
  49. package/lib/store/index.d.ts +1 -0
  50. package/lib/store/index.d.ts.map +1 -1
  51. package/lib/store/index.js +1 -0
  52. package/lib/store/index.js.map +1 -1
  53. package/lib/store/store.d.ts +314 -1
  54. package/lib/store/store.d.ts.map +1 -1
  55. package/lib/store/store.js +451 -0
  56. package/lib/store/store.js.map +1 -1
  57. package/lib/store/workflow.d.ts +8 -1
  58. package/lib/store/workflow.d.ts.map +1 -1
  59. package/lib/store/workflow.js +5 -0
  60. package/lib/store/workflow.js.map +1 -1
  61. package/lib/user.d.ts +14 -0
  62. package/lib/user.d.ts.map +1 -1
  63. package/lib/user.js +31 -0
  64. package/lib/user.js.map +1 -1
  65. package/lib/vertesia-common.js +2 -2
  66. package/lib/vertesia-common.js.map +1 -1
  67. package/lib/view-configuration-validation.d.ts +15 -0
  68. package/lib/view-configuration-validation.d.ts.map +1 -0
  69. package/lib/view-configuration-validation.js +63 -0
  70. package/lib/view-configuration-validation.js.map +1 -0
  71. package/lib/view-query-validation.d.ts +13 -0
  72. package/lib/view-query-validation.d.ts.map +1 -0
  73. package/lib/view-query-validation.js +266 -0
  74. package/lib/view-query-validation.js.map +1 -0
  75. package/lib/view-validation-helpers.d.ts +15 -0
  76. package/lib/view-validation-helpers.d.ts.map +1 -0
  77. package/lib/view-validation-helpers.js +25 -0
  78. package/lib/view-validation-helpers.js.map +1 -0
  79. package/lib/views-schema.d.ts +1992 -0
  80. package/lib/views-schema.d.ts.map +1 -0
  81. package/lib/views-schema.js +674 -0
  82. package/lib/views-schema.js.map +1 -0
  83. package/lib/views-validation.d.ts +21 -0
  84. package/lib/views-validation.d.ts.map +1 -0
  85. package/lib/views-validation.js +164 -0
  86. package/lib/views-validation.js.map +1 -0
  87. package/lib/views.d.ts +381 -0
  88. package/lib/views.d.ts.map +1 -0
  89. package/lib/views.js +41 -0
  90. package/lib/views.js.map +1 -0
  91. package/package.json +5 -5
  92. package/src/agent-resources.test.ts +100 -0
  93. package/src/apps.test.ts +9 -1
  94. package/src/apps.ts +220 -73
  95. package/src/audit-trail.ts +83 -0
  96. package/src/environment.ts +2 -0
  97. package/src/index.ts +12 -0
  98. package/src/interaction.ts +135 -1
  99. package/src/platform-event.ts +39 -2
  100. package/src/project.test.ts +44 -0
  101. package/src/project.ts +205 -22
  102. package/src/query.ts +6 -0
  103. package/src/refs.ts +1 -0
  104. package/src/schema-for-extraction.test.ts +191 -0
  105. package/src/schema-for-extraction.ts +231 -0
  106. package/src/store/agent-run.ts +29 -0
  107. package/src/store/content-type-editing.test.ts +17 -0
  108. package/src/store/conversation-state.ts +4 -1
  109. package/src/store/doc-analyzer.ts +10 -76
  110. package/src/store/dsl-workflow.ts +1 -0
  111. package/src/store/grounded-extraction.ts +154 -0
  112. package/src/store/index.ts +1 -0
  113. package/src/store/store.ts +800 -1
  114. package/src/store/workflow.ts +12 -0
  115. package/src/user.ts +46 -0
  116. package/src/view-configuration-validation.ts +74 -0
  117. package/src/view-query-validation.test.ts +21 -0
  118. package/src/view-query-validation.ts +319 -0
  119. package/src/view-validation-helpers.ts +28 -0
  120. package/src/views-schema.test.ts +364 -0
  121. package/src/views-schema.ts +689 -0
  122. package/src/views-validation.ts +234 -0
  123. package/src/views.ts +484 -0
package/src/apps.ts CHANGED
@@ -1,7 +1,13 @@
1
1
  import type { JSONObject, JSONSchema, ToolDefinition } from '@llumiverse/common';
2
2
  import type { AppDashboardDefinition } from './data-platform.js';
3
3
  import type { CatalogInteractionRef } from './interaction.js';
4
- import type { DSLActivityOptions, InCodeProcessDefinition, InCodeTypeDefinition } from './store/index.js';
4
+ import type {
5
+ AgentRunSearchHit,
6
+ DSLActivityOptions,
7
+ InCodeProcessDefinition,
8
+ InCodeTypeDefinition,
9
+ } from './store/index.js';
10
+ import type { InCodeViewDefinition } from './views.js';
5
11
 
6
12
  /** Allowed values for AppUINavItem.preferredSection */
7
13
  export const PREFERRED_SECTIONS = ['default', 'footer', 'settings'] as const;
@@ -383,27 +389,26 @@ export interface RemoteActivityDefinition {
383
389
  options?: DSLActivityOptions;
384
390
  }
385
391
 
386
- export type AppCapabilities = 'ui' | 'tools' | 'interactions' | 'types' | 'processes' | 'templates' | 'dashboards';
387
-
388
392
  /**
389
- * Canonical runtime list of {@link AppCapabilities} — the app capabilities Studio
390
- * renders/supports. Co-located with the type so TypeScript rejects any drift between
391
- * the two. Consumers (publish manifest derivation, etc.) must use this rather than
392
- * re-listing the values.
393
+ * Canonical app capabilities Studio renders/supports. The public type is derived from
394
+ * this list so runtime validation and TypeScript cannot drift.
393
395
  */
394
- export const APP_CAPABILITIES: readonly AppCapabilities[] = [
396
+ export const APP_CAPABILITIES = [
395
397
  'ui',
396
398
  'tools',
397
399
  'interactions',
398
400
  'types',
399
401
  'processes',
402
+ 'views',
400
403
  'templates',
401
404
  'dashboards',
402
- ];
405
+ ] as const;
406
+
407
+ export type AppCapabilities = (typeof APP_CAPABILITIES)[number];
403
408
 
404
409
  /**
405
410
  * Header carrying the app version a generated-app UI is running, so studio/zeno resolve app-owned
406
- * capability refs (`app:<app>:...`) against that version (candidate testing) instead of current.
411
+ * capability refs (`app:<app>:...`) against that exact version instead of the promoted version.
407
412
  * Resolution-time only; never persisted. Set by the generated app template via client.withAppVersion.
408
413
  */
409
414
  export const APP_VERSION_HEADER = 'x-vertesia-app-version';
@@ -414,26 +419,19 @@ export const APP_VERSION_HEADER = 'x-vertesia-app-version';
414
419
  * {@link AppCapabilities} folds together. Used by the App Solution Architect manifest and
415
420
  * the publish-time capability gate.
416
421
  */
417
- export type AppArtifactType =
418
- | 'interaction'
419
- | 'agent'
420
- | 'type'
421
- | 'process'
422
- | 'template'
423
- | 'dashboard'
424
- | 'activity'
425
- | 'tool';
426
-
427
- export const APP_ARTIFACT_TYPES: readonly AppArtifactType[] = [
422
+ export const APP_ARTIFACT_TYPES = [
428
423
  'interaction',
429
424
  'agent',
430
425
  'type',
431
426
  'process',
427
+ 'view',
432
428
  'template',
433
429
  'dashboard',
434
430
  'activity',
435
431
  'tool',
436
- ];
432
+ ] as const;
433
+
434
+ export type AppArtifactType = (typeof APP_ARTIFACT_TYPES)[number];
437
435
 
438
436
  /**
439
437
  * A single platform artifact the App Solution Architect requires the build to create.
@@ -473,8 +471,8 @@ export interface AppPlannedArtifact {
473
471
  /**
474
472
  * Structured result the App Solution Architect emits alongside its prose artifacts — the
475
473
  * machine-readable contract for the build. The implementation MUST create and successfully
476
- * exercise every required artifact before preview/publish. Persisted into the app repo as
477
- * {@link APP_CAPABILITY_MANIFEST_PATH} so it survives across runs and the publish-time
474
+ * exercise every required artifact before building a deployable version. Persisted into the app repo as
475
+ * {@link APP_CAPABILITY_MANIFEST_PATH} so it survives across runs and the version-build
478
476
  * capability gate can verify against it deterministically. If the builder finds the plan
479
477
  * wrong or insufficient, the orchestrator relaunches the architect to revise the manifest;
480
478
  * the gate always checks against the latest committed copy.
@@ -499,16 +497,14 @@ export interface AppCapabilityManifest {
499
497
  notes?: string;
500
498
  }
501
499
 
502
- /** Repo-relative path the capability manifest is committed to, read by the publish gate. */
500
+ /** Repo-relative path the capability manifest is committed to, read by version-build gates. */
503
501
  export const APP_CAPABILITY_MANIFEST_PATH = 'docs/app-capability-manifest.json';
504
-
505
502
  export type AppAvailableIn = 'app_portal' | 'composite_app';
506
503
 
507
- export type AppVersionKind = 'design' | 'preview' | 'published';
504
+ export type AppVersionKind = 'design' | 'version';
508
505
  export type AppVersionState = 'ready' | 'failed' | 'expired';
509
506
  export type AppVersionTarget = 'static' | 'service';
510
507
  export type AppVersionGitRefType = 'branch' | 'tag' | 'commit' | 'detached';
511
- export type AppBuildIntent = 'preview' | 'publish';
512
508
  export type AppBuildTrigger = 'ui' | 'git_push' | 'agent' | 'api';
513
509
 
514
510
  export interface AppVersionStorage {
@@ -527,8 +523,8 @@ export interface AppVersionGitSource {
527
523
  url?: string;
528
524
  remote?: string;
529
525
  /**
530
- * The source ref that should be used to reproduce this version. For immutable
531
- * app versions this is normally the tag created during preview/publish.
526
+ * The source ref that should be used to reproduce this version. Immutable
527
+ * app versions use the exact commit SHA rather than a mutable branch or tag.
532
528
  */
533
529
  ref?: string;
534
530
  ref_type?: AppVersionGitRefType;
@@ -558,13 +554,21 @@ export interface AppVersionRecord {
558
554
  version_id: string;
559
555
  kind: AppVersionKind;
560
556
  state: AppVersionState;
561
- active?: boolean;
557
+ promoted?: boolean;
562
558
  target?: AppVersionTarget;
563
559
  agent_run_id?: string;
560
+ /** Development task that produced this version, when built by the app assistant. */
561
+ development_task_id?: string;
562
+ /** Temporal workflow that produced this version. */
563
+ build_workflow_id?: string;
564
+ /** Temporal run that produced this version. */
565
+ build_workflow_run_id?: string;
564
566
  sandbox_id?: string;
565
567
  title?: string;
566
568
  description?: string;
567
569
  storage?: AppVersionStorage;
570
+ /** Exact Git commit used to build this immutable version. */
571
+ source_commit?: string;
568
572
  urls?: AppVersionUrls;
569
573
  manifest?: Record<string, unknown>;
570
574
  files?: string[];
@@ -575,25 +579,41 @@ export interface AppVersionRecord {
575
579
  created_by?: string;
576
580
  created_at: string;
577
581
  updated_at: string;
578
- published_at?: string;
582
+ built_at?: string;
579
583
  checked_at?: string;
580
584
  expires_at?: string;
581
585
  }
582
586
 
587
+ export interface DeleteAppVersionResponse {
588
+ id: string;
589
+ app_id: string;
590
+ version_id: string;
591
+ storage_prefix?: string;
592
+ deleted: boolean;
593
+ warnings: string[];
594
+ }
595
+
583
596
  export interface UpsertAppVersionRequest {
597
+ /** Existing version record to update in place, used by reproducible rebuilds. */
598
+ record_id?: string;
584
599
  app?: string;
585
600
  app_id: string;
586
601
  app_name?: string;
587
602
  version_id: string;
588
603
  kind: AppVersionKind;
589
604
  state?: AppVersionState;
590
- active?: boolean;
591
605
  target?: AppVersionTarget;
592
606
  agent_run_id?: string;
607
+ /** Development task that produced this version, when built by the app assistant. */
608
+ development_task_id?: string;
609
+ build_workflow_id?: string;
610
+ build_workflow_run_id?: string;
593
611
  sandbox_id?: string;
594
612
  title?: string;
595
613
  description?: string;
596
614
  storage?: AppVersionStorage;
615
+ /** Exact Git commit used to build this immutable version. */
616
+ source_commit?: string;
597
617
  urls?: AppVersionUrls;
598
618
  manifest?: Record<string, unknown>;
599
619
  files?: string[];
@@ -601,7 +621,7 @@ export interface UpsertAppVersionRequest {
601
621
  source_file_count?: number;
602
622
  screenshot_artifact?: string;
603
623
  checks?: string[];
604
- published_at?: string;
624
+ built_at?: string;
605
625
  checked_at?: string;
606
626
  expires_at?: string;
607
627
  }
@@ -613,7 +633,7 @@ export interface AppVersionListQuery {
613
633
  limit?: number;
614
634
  }
615
635
 
616
- export interface ActivateAppVersionResponse {
636
+ export interface PromoteAppVersionResponse {
617
637
  version: AppVersionRecord;
618
638
  app?: AppManifest;
619
639
  }
@@ -621,15 +641,12 @@ export interface ActivateAppVersionResponse {
621
641
  export interface StartAppBuildRequest {
622
642
  /**
623
643
  * Source branch, tag, or commit to build. When omitted, the app source
624
- * configuration chooses the dev branch for previews and production branch
625
- * for publishes.
644
+ * configuration chooses its default branch.
626
645
  */
627
646
  source_ref?: string;
628
647
  source_ref_type?: Extract<AppVersionGitRefType, 'branch' | 'tag' | 'commit'>;
629
- intent?: AppBuildIntent;
630
648
  trigger?: AppBuildTrigger;
631
649
  target?: AppVersionTarget;
632
- activate?: boolean;
633
650
  title?: string;
634
651
  description?: string;
635
652
  }
@@ -638,7 +655,8 @@ export interface StartAppBuildResponse {
638
655
  workflow_id: string;
639
656
  run_id: string;
640
657
  app_id: string;
641
- intent: AppBuildIntent;
658
+ version_id?: string;
659
+ rebuild_version_record_id?: string;
642
660
  source_ref?: string;
643
661
  source_ref_type?: Extract<AppVersionGitRefType, 'branch' | 'tag' | 'commit'>;
644
662
  }
@@ -646,6 +664,8 @@ export interface StartAppBuildResponse {
646
664
  export interface AppBuildWorkflowInput extends StartAppBuildRequest {
647
665
  app_id: string;
648
666
  app_record_id?: string;
667
+ /** Rebuild this persisted version record at its original commit and target. */
668
+ rebuild_version_record_id?: string;
649
669
  app_title?: string;
650
670
  app_description?: string;
651
671
  source_git_url?: string;
@@ -654,8 +674,9 @@ export interface AppBuildWorkflowInput extends StartAppBuildRequest {
654
674
  export interface AppBuildWorkflowResult {
655
675
  app_id: string;
656
676
  version_id: string;
657
- kind: Extract<AppVersionKind, 'preview' | 'published'>;
677
+ kind: Extract<AppVersionKind, 'version'>;
658
678
  state: AppVersionState;
679
+ source_commit: string;
659
680
  source_git?: AppVersionGitSource;
660
681
  urls?: AppVersionUrls;
661
682
  file_count?: number;
@@ -668,7 +689,6 @@ export interface AppBuildProgress {
668
689
  step: string;
669
690
  app_id?: string;
670
691
  version_id?: string;
671
- intent?: AppBuildIntent;
672
692
  source_ref?: string;
673
693
  source_ref_type?: Extract<AppVersionGitRefType, 'branch' | 'tag' | 'commit'>;
674
694
  source_commit?: string;
@@ -678,6 +698,68 @@ export interface AppBuildProgress {
678
698
  updated_at: string;
679
699
  }
680
700
 
701
+ export type AppScaffoldModule = 'service' | 'assistant' | 'content-app' | 'examples';
702
+
703
+ export interface StartAppScaffoldRequest {
704
+ /**
705
+ * App id / package name to create. It is normalized to the same slug rules
706
+ * used by @vertesia/create-plugin.
707
+ */
708
+ app_id: string;
709
+ title?: string;
710
+ description?: string;
711
+ modules?: AppScaffoldModule[];
712
+ /**
713
+ * Start an initial app version build after the source has been pushed.
714
+ * Defaults to true.
715
+ */
716
+ create_version?: boolean;
717
+ }
718
+
719
+ export interface StartAppScaffoldResponse {
720
+ workflow_id: string;
721
+ run_id: string;
722
+ app_id: string;
723
+ app_record_id?: string;
724
+ git_url?: string;
725
+ create_version: boolean;
726
+ }
727
+
728
+ export interface AppScaffoldWorkflowInput extends StartAppScaffoldRequest {}
729
+
730
+ export interface AppScaffoldWorkflowResult {
731
+ app_id: string;
732
+ app_record_id?: string;
733
+ installation_id?: string;
734
+ git_url?: string;
735
+ source_git?: AppVersionGitSource;
736
+ files?: number;
737
+ initial_version_build?: StartAppBuildResponse;
738
+ }
739
+
740
+ export type AppScaffoldProgressStatus =
741
+ | 'queued'
742
+ | 'reserving'
743
+ | 'scaffolding'
744
+ | 'pushing'
745
+ | 'building'
746
+ | 'completed'
747
+ | 'failed';
748
+
749
+ export interface AppScaffoldProgress {
750
+ status: AppScaffoldProgressStatus;
751
+ step: string;
752
+ app_id?: string;
753
+ app_record_id?: string;
754
+ installation_id?: string;
755
+ git_url?: string;
756
+ files?: number;
757
+ initial_version_build?: StartAppBuildResponse;
758
+ error?: string;
759
+ error_details?: string[];
760
+ updated_at: string;
761
+ }
762
+
681
763
  /**
682
764
  * Access control policy for an app installation.
683
765
  * Declares which access surfaces are gated by per-user ACEs.
@@ -832,8 +914,9 @@ export interface AppManifestData {
832
914
 
833
915
  /**
834
916
  * Source repository configuration for apps generated and maintained through
835
- * AppGen. Branches are mutable deployment lanes; immutable app versions
836
- * record their exact source tag/commit in AppVersionRecord.storage.source_git.
917
+ * AppGen. Branches are mutable development lanes; immutable app versions
918
+ * record their exact source commit in AppVersionRecord.source_commit and
919
+ * AppVersionRecord.storage.source_git.
837
920
  */
838
921
  source?: AppSourceConfig;
839
922
 
@@ -881,7 +964,7 @@ export interface Endpoints {
881
964
  ui?: string;
882
965
  /** The Smart HTTP app source git server base URL */
883
966
  git?: string;
884
- /** The appgen app-gateway base URL (serves published app bundles + their `/api` runtime). */
967
+ /** The appgen app-gateway base URL (serves promoted app bundles + their `/api` runtime). */
885
968
  gateway?: string;
886
969
  }
887
970
 
@@ -927,14 +1010,46 @@ export interface AppRepoTree {
927
1010
  entries: AppRepoTreeEntry[];
928
1011
  }
929
1012
 
930
- /** The content of a single file read from an app git repo at a given ref. */
931
- export interface AppRepoFile {
932
- /** Path relative to the repo root. */
933
- path: string;
934
- /** The ref the file was read at (empty/undefined = default branch / HEAD). */
1013
+ /** Browser-side limits mirrored by the app Git service document endpoint. */
1014
+ export const APP_REPO_DOCUMENT_UPLOAD_MAX_FILE_BYTES = 20 * 1024 * 1024;
1015
+ export const APP_REPO_DOCUMENT_UPLOAD_MAX_TOTAL_BYTES = 80 * 1024 * 1024;
1016
+ export const APP_REPO_DOCUMENT_UPLOAD_MAX_FILES = 20;
1017
+ export const APP_REPO_DOCUMENT_UPLOAD_PREFIX = 'docs/';
1018
+
1019
+ /** Result of committing one or more uploaded documents to an app repository. */
1020
+ export interface AppRepoDocumentCommit {
1021
+ /** Updated branch name. */
1022
+ ref: string;
1023
+ /** Branch HEAD before the commit. */
1024
+ previous_commit: string;
1025
+ /** Newly created commit SHA. */
1026
+ commit: string;
1027
+ /** Repository paths changed by the commit. */
1028
+ paths: string[];
1029
+ }
1030
+
1031
+ /** One commit that inserted or changed a file in an app git repository. */
1032
+ export interface AppRepoCommit {
1033
+ /** Full commit SHA. */
1034
+ commit: string;
1035
+ /** Complete commit message. */
1036
+ message: string;
1037
+ /** Commit author name, when available. */
1038
+ author?: string;
1039
+ /** Commit author date as an ISO-8601 string, when available. */
1040
+ date?: string;
1041
+ }
1042
+
1043
+ /** Commit history in an app git repository, optionally filtered to a file. */
1044
+ export interface AppRepoCommits {
1045
+ /** Ref from which history traversal started (empty/undefined = default branch / HEAD). */
935
1046
  ref?: string;
936
- /** UTF-8 file content. */
937
- content: string;
1047
+ /** File path relative to the repository root, when history was filtered to a file. */
1048
+ path?: string;
1049
+ /** Commits ordered newest first. */
1050
+ commits: AppRepoCommit[];
1051
+ /** Pass this cursor to retrieve the next page. Absent when history is exhausted. */
1052
+ next_cursor?: string;
938
1053
  }
939
1054
 
940
1055
  /** A branch or tag in an app git repo, resolved to its latest commit. */
@@ -959,37 +1074,64 @@ export interface AppRepoRefs {
959
1074
  tags: AppRepoRef[];
960
1075
  }
961
1076
 
962
- export type AppPackageScope =
963
- | 'ui'
964
- | 'tools'
965
- | 'interactions'
966
- | 'types'
967
- | 'processes'
968
- | 'templates'
969
- | 'dashboards'
970
- | 'settings'
971
- | 'widgets'
972
- | 'activities'
973
- | 'all';
1077
+ /** A mutable app development task represented by an `agent/*` Git branch. */
1078
+ export interface AppDevelopmentTask {
1079
+ /** Task slug derived from the branch name. */
1080
+ id: string;
1081
+ /** Complete Git branch name. */
1082
+ branch: string;
1083
+ /** Commit currently at the branch head. */
1084
+ source_commit: string;
1085
+ /** Branch-head commit date, when available. */
1086
+ commit_date?: string;
1087
+ }
1088
+
1089
+ /** Git-backed development tasks and the branch used for new tasks by default. */
1090
+ export interface AppDevelopmentTaskList {
1091
+ /** Repository default branch, when resolvable. */
1092
+ default_branch?: string;
1093
+ tasks: AppDevelopmentTask[];
1094
+ }
1095
+
1096
+ /** Development task details, including the latest parent assistant run when one exists. */
1097
+ export interface AppDevelopmentTaskDetails extends AppDevelopmentTask {
1098
+ /** Latest Studio Assistant run started for this task branch. */
1099
+ agent_run?: AgentRunSearchHit;
1100
+ }
1101
+
1102
+ /** Request to create a branch from an existing branch, tag, or commit. */
1103
+ export interface CreateAppRepoBranchRequest {
1104
+ name: string;
1105
+ source_ref: string;
1106
+ }
1107
+
1108
+ /** A newly created app repository branch. */
1109
+ export interface AppRepoBranch {
1110
+ name: string;
1111
+ commit: string;
1112
+ source_ref: string;
1113
+ }
974
1114
 
975
1115
  /**
976
- * Canonical runtime list of {@link AppPackageScope} — every package scope, including the
977
- * catch-all `'all'`. Co-located with the type so TypeScript rejects drift. Consumers (the
978
- * /package?scope= parser, the inspection report) must use this rather than re-listing.
1116
+ * Canonical package scopes, including the catch-all `all`. The public type is derived
1117
+ * from this list so request parsing and TypeScript cannot drift.
979
1118
  */
980
- export const APP_PACKAGE_SCOPES: readonly AppPackageScope[] = [
1119
+ export const APP_PACKAGE_SCOPES = [
981
1120
  'ui',
982
1121
  'tools',
983
1122
  'interactions',
984
1123
  'types',
985
1124
  'processes',
1125
+ 'views',
986
1126
  'templates',
987
1127
  'dashboards',
988
1128
  'settings',
989
1129
  'widgets',
990
1130
  'activities',
991
1131
  'all',
992
- ];
1132
+ ] as const;
1133
+
1134
+ export type AppPackageScope = (typeof APP_PACKAGE_SCOPES)[number];
993
1135
  export interface AppPackage {
994
1136
  /**
995
1137
  * The UI configuration of the app
@@ -1024,6 +1166,11 @@ export interface AppPackage {
1024
1166
  */
1025
1167
  processes?: InCodeProcessDefinition[];
1026
1168
 
1169
+ /**
1170
+ * View Experiences exposed by the app as in-code definitions.
1171
+ */
1172
+ views?: InCodeViewDefinition[];
1173
+
1027
1174
  /**
1028
1175
  * Templates provided by the app.
1029
1176
  */
@@ -1066,14 +1213,14 @@ export interface AppInspectionIssue {
1066
1213
  }
1067
1214
 
1068
1215
  /**
1069
- * Per-capability report of what an app's published package actually exposes,
1216
+ * Per-capability report of what an app's promoted package actually exposes,
1070
1217
  * compared against what its manifest declares.
1071
1218
  */
1072
1219
  export interface AppInspectionCapabilityReport {
1073
1220
  capability: AppPackageScope;
1074
1221
  /** True when the manifest's `capabilities` array declares this capability. */
1075
1222
  declared: boolean;
1076
- /** The local ids the published package actually serves for this capability. */
1223
+ /** The local ids the promoted package actually serves for this capability. */
1077
1224
  exposed_ids: string[];
1078
1225
  /** Convenience count of `exposed_ids`. */
1079
1226
  exposed_count: number;
@@ -1081,7 +1228,7 @@ export interface AppInspectionCapabilityReport {
1081
1228
 
1082
1229
  /**
1083
1230
  * Result of inspecting an app's registration: the resolved manifest state, what
1084
- * the published package actually exposes per capability, and diagnostics. This
1231
+ * the promoted package actually exposes per capability, and diagnostics. This
1085
1232
  * is the ground truth used by the `app_inspect_registration` agent tool and the
1086
1233
  * Build › App inspection UI to verify what is registered vs declared, instead of
1087
1234
  * inferring it from failed object/import calls.
@@ -1099,7 +1246,7 @@ export interface AppInspectionResult {
1099
1246
  access_control?: string;
1100
1247
  /** The capabilities declared on the manifest. */
1101
1248
  capabilities: AppPackageScope[];
1102
- /** What the published package exposes, per capability. */
1249
+ /** What the promoted package exposes, per capability. */
1103
1250
  package: AppInspectionCapabilityReport[];
1104
1251
  /** Diagnostics — errors and warnings about the registration state. */
1105
1252
  issues: AppInspectionIssue[];
@@ -19,6 +19,8 @@ export const AUDIT_ACTIONS = [
19
19
  'inference',
20
20
  'embedding',
21
21
  'image_generation',
22
+ // Content processing outcomes
23
+ 'document_processed',
22
24
  ] as const;
23
25
 
24
26
  export type KnownAuditAction = (typeof AUDIT_ACTIONS)[number];
@@ -113,3 +115,84 @@ export interface AuditTrailResponse {
113
115
  limit: number;
114
116
  offset: number;
115
117
  }
118
+
119
+ export const AUDIT_AGGREGATION_DIMENSIONS = [
120
+ 'time',
121
+ 'action',
122
+ 'resource_type',
123
+ 'event_category',
124
+ 'provider',
125
+ 'project_id',
126
+ 'details.pipeline',
127
+ 'details.verdict',
128
+ 'details.workflow_type',
129
+ 'details.rule_id',
130
+ 'model',
131
+ ] as const;
132
+
133
+ export type AuditAggregationDimension = (typeof AUDIT_AGGREGATION_DIMENSIONS)[number];
134
+ export type AuditAggregationResolution = 'hour' | 'day' | 'week' | 'month';
135
+ export type AuditAggregationDetailField = 'pipeline' | 'verdict' | 'workflow_type' | 'rule_id';
136
+ export type AuditAggregationOperation = 'count' | 'count_distinct' | 'sum_meter' | 'average_meter';
137
+ export type AuditAggregationDistinctField = 'resource_id' | 'request_id';
138
+
139
+ export interface AuditAggregationGroup {
140
+ dimension: AuditAggregationDimension;
141
+ /** Required for the time dimension; defaults to day. */
142
+ resolution?: AuditAggregationResolution;
143
+ }
144
+
145
+ export interface AuditAggregationMetric {
146
+ /** Stable key used in response rows. Must contain only letters, numbers, underscores, or hyphens. */
147
+ id: string;
148
+ operation: AuditAggregationOperation;
149
+ /** Required for count_distinct. */
150
+ field?: AuditAggregationDistinctField;
151
+ /** Required for meter operations. */
152
+ meterCategory?: string;
153
+ /** Required for meter operations. */
154
+ meterType?: string;
155
+ }
156
+
157
+ export interface AuditAggregationDetailFilter {
158
+ field: AuditAggregationDetailField;
159
+ values: string[];
160
+ }
161
+
162
+ export interface AuditAggregationFilter {
163
+ actions?: AuditAction[];
164
+ resourceTypes?: string[];
165
+ eventCategories?: EventCategory[];
166
+ providers?: string[];
167
+ success?: boolean;
168
+ details?: AuditAggregationDetailFilter[];
169
+ }
170
+
171
+ /**
172
+ * Safe audit aggregation query. The server always applies the authenticated account scope and,
173
+ * for project-scoped principals, replaces projectId with the authenticated project.
174
+ */
175
+ export interface AuditAggregationQuery {
176
+ /** Optional account-admin project filter. Ignored for project-scoped principals. */
177
+ projectId?: string;
178
+ /** Start time; defaults to 30 days before to. The server caps the range at 366 days. */
179
+ from?: string;
180
+ /** End time; defaults to the current time. */
181
+ to?: string;
182
+ filter?: AuditAggregationFilter;
183
+ groupBy?: AuditAggregationGroup[];
184
+ metrics: AuditAggregationMetric[];
185
+ /** Maximum groups returned (default 50, max 200). */
186
+ limit?: number;
187
+ }
188
+
189
+ export interface AuditAggregationRow {
190
+ dimensions: Partial<Record<AuditAggregationDimension, string | null>>;
191
+ metrics: Record<string, number>;
192
+ }
193
+
194
+ export interface AuditAggregationResponse {
195
+ rows: AuditAggregationRow[];
196
+ from: string;
197
+ to: string;
198
+ }
@@ -91,6 +91,8 @@ export interface TextFallbackOptions {
91
91
  export interface ExecutionEnvironmentSettings {
92
92
  [key: string]: unknown;
93
93
  bucket_access_principal?: string;
94
+ /** Custom HTTP headers sent by OpenAI-compatible environments. */
95
+ default_headers?: Record<string, string>;
94
96
  }
95
97
 
96
98
  /**
package/src/index.ts CHANGED
@@ -37,6 +37,7 @@ export * from './rate-limiter.js';
37
37
  export * from './refs.js';
38
38
  export * from './roles/types.js';
39
39
  export * from './runs.js';
40
+ export * from './schema-for-extraction.js';
40
41
  export * from './secrets.js';
41
42
  export * from './skill.js';
42
43
  export * from './store/index.js';
@@ -74,4 +75,15 @@ export * from './utils/auth.js';
74
75
  export * from './utils/schemas.js';
75
76
  export type * from './utils/type-helpers.js';
76
77
  export * from './versions.js';
78
+ export * from './view-configuration-validation.js';
79
+ export * from './view-query-validation.js';
80
+ export * from './view-validation-helpers.js';
81
+ export * from './views.js';
82
+ export * from './views-schema.js';
83
+ export {
84
+ type AppViewExperienceId,
85
+ parseAppViewExperienceId,
86
+ type ViewValidationIssue,
87
+ validateViewExperienceId,
88
+ } from './views-validation.js';
77
89
  export * from './workflow-analytics.js';