@standards/schema 1.0.0-alpha.387 → 1.0.0-alpha.388

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.
@@ -814,6 +814,9 @@ export interface LinkedRecordRef {
814
814
  export type MeetingStatus = "confirmed" | "tentative" | "cancelled";
815
815
  export type MeetingParticipantRole = "organizer" | "required" | "optional";
816
816
  export type MeetingResponseStatus = "accepted" | "declined" | "tentative" | "needs_action";
817
+ /** An invitation's answer; "needs_action" is no answer and is not sent. */
818
+ export declare const MEETING_RESPONSES: readonly ["accepted", "declined", "tentative"];
819
+ export type MeetingResponse = (typeof MEETING_RESPONSES)[number];
817
820
  /** Lifecycle of the recording bot's transcript for one meeting. */
818
821
  export type TranscriptStatus = "scheduled" | "recording" | "completed" | "failed";
819
822
  /** An explicit per-meeting choice that beats the workspace policy. */
@@ -1029,6 +1032,19 @@ export interface MeetingsListResponse {
1029
1032
  meetings: Meeting[];
1030
1033
  /** Offset to request next, absent when the page was the last one. */
1031
1034
  nextOffset?: number;
1035
+ /**
1036
+ * The calls a record's meetings tab lists — one per call however many of
1037
+ * its copies the viewer sees, and only meetings the viewer can see — not
1038
+ * the page. Present only when `meetings.forRecord` was asked a `countMode`:
1039
+ * `null` under `countMode: "none"`, which is "not counted" and never "zero".
1040
+ */
1041
+ total?: number | null;
1042
+ /**
1043
+ * False when `total` is a lower bound rather than the real count, as on the
1044
+ * records page: see `ContinuationPage.totalIsExact`. Present beside a
1045
+ * numeric `total`; derive it from the response, never from the mode asked.
1046
+ */
1047
+ totalIsExact?: boolean;
1032
1048
  }
1033
1049
  //#endregion
1034
1050
  //#region src/api/meetings.operations.d.ts
@@ -1059,7 +1075,7 @@ export declare const meetingsQuery: z$2.ZodDefault<z$2.ZodObject<{
1059
1075
  limit: z$2.ZodOptional<z$2.ZodNumber>;
1060
1076
  offset: z$2.ZodOptional<z$2.ZodNumber>;
1061
1077
  }, z$2.core.$strip>>;
1062
- /** `POST /meetings/records/:recordId` — the record's email attributes and the same query. */
1078
+ /** `POST /meetings/records/:recordId` — the record's email attributes, the same query and the count asked for. */
1063
1079
  export declare const recordMeetingsBody: z$2.ZodDefault<z$2.ZodObject<{
1064
1080
  emailAttributeIds: z$2.ZodOptional<z$2.ZodArray<z$2.ZodString>>;
1065
1081
  query: z$2.ZodOptional<z$2.ZodObject<{
@@ -1075,6 +1091,11 @@ export declare const recordMeetingsBody: z$2.ZodDefault<z$2.ZodObject<{
1075
1091
  limit: z$2.ZodOptional<z$2.ZodNumber>;
1076
1092
  offset: z$2.ZodOptional<z$2.ZodNumber>;
1077
1093
  }, z$2.core.$strip>>;
1094
+ countMode: z$2.ZodOptional<z$2.ZodEnum<{
1095
+ exact: "exact";
1096
+ none: "none";
1097
+ estimated: "estimated";
1098
+ }>>;
1078
1099
  }, z$2.core.$strip>>;
1079
1100
  export declare const meetingsOperations: {
1080
1101
  search: Operation<{
@@ -1227,6 +1248,11 @@ export declare const meetingsOperations: {
1227
1248
  limit: z$2.ZodOptional<z$2.ZodNumber>;
1228
1249
  offset: z$2.ZodOptional<z$2.ZodNumber>;
1229
1250
  }, z$2.core.$strip>>;
1251
+ countMode: z$2.ZodOptional<z$2.ZodEnum<{
1252
+ exact: "exact";
1253
+ none: "none";
1254
+ estimated: "estimated";
1255
+ }>>;
1230
1256
  }, z$2.core.$strip>;
1231
1257
  readonly output: OutputType<MeetingsListResponse>;
1232
1258
  }>;
@@ -1363,6 +1389,15 @@ export declare const NOTIFICATION_TYPE_CONNECTOR_CONNECTION_ERROR = "connector.c
1363
1389
  * `objectPluralLabel`, `recordLabel`, `actorName` and `count`.
1364
1390
  */
1365
1391
  export declare const NOTIFICATION_TYPE_RECORD_ASSIGNED = "record.assigned";
1392
+ /**
1393
+ * A person newly mentioned (`[@Name](stndrds:user/<id>)`) in a record's
1394
+ * richtext (#5828). Shaped like `record.assigned`: the subject is the record
1395
+ * when one is announced; the mentions of one window by the same actor on one
1396
+ * object are one notification with `payload.count`. `payload` carries
1397
+ * `objectName`, `objectLabel`, `objectPluralLabel`, `recordLabel`,
1398
+ * `actorName` and `count`.
1399
+ */
1400
+ export declare const NOTIFICATION_TYPE_RECORD_MENTIONED = "record.mentioned";
1366
1401
  /**
1367
1402
  * Someone gave the recipient access to an agent, a routine or a record, or
1368
1403
  * raised it (#5303). `payload.role` is the level granted, `payload.actorName`
@@ -1370,13 +1405,13 @@ export declare const NOTIFICATION_TYPE_RECORD_ASSIGNED = "record.assigned";
1370
1405
  * carries `payload.objectName`.
1371
1406
  */
1372
1407
  export declare const NOTIFICATION_TYPE_ACCESS_GRANTED = "access.granted";
1373
- export declare const NOTIFICATION_TYPES_V1: readonly ["agent.session.waiting_human", "agent.task.assigned", "agent.question.requested", "agent.routine_run.failed", "agent.routine_run.notice", "connector.connection.reauth_required", "connector.connection.error", "record.assigned", "access.granted"];
1408
+ export declare const NOTIFICATION_TYPES_V1: readonly ["agent.session.waiting_human", "agent.task.assigned", "agent.question.requested", "agent.routine_run.failed", "agent.routine_run.notice", "connector.connection.reauth_required", "connector.connection.error", "record.assigned", "record.mentioned", "access.granted"];
1374
1409
  export type NotificationV1Type = (typeof NOTIFICATION_TYPES_V1)[number];
1375
1410
  /** Kinds that ask the recipient to act: always delivered in-app (#5448). */
1376
1411
  export declare const ACTIONABLE_NOTIFICATION_KINDS: readonly ["task", "question", "handoff"];
1377
1412
  export declare function isActionableNotificationKind(kind: NotificationKind): boolean;
1378
1413
  /** Where a type's delivery switches sit on the Account ▸ Notifications screen. */
1379
- export declare const NOTIFICATION_SETTINGS_AREAS: readonly ["agents", "connectors", "assignment", "sharing"];
1414
+ export declare const NOTIFICATION_SETTINGS_AREAS: readonly ["agents", "connectors", "assignment", "mentions", "sharing"];
1380
1415
  export type NotificationSettingsArea = (typeof NOTIFICATION_SETTINGS_AREAS)[number];
1381
1416
  /**
1382
1417
  * Every declared notification type, its kind and its settings area (#5448):
@@ -1418,6 +1453,10 @@ export declare const NOTIFICATION_TYPE_KINDS: {
1418
1453
  readonly kind: "fyi";
1419
1454
  readonly area: "assignment";
1420
1455
  };
1456
+ readonly "record.mentioned": {
1457
+ readonly kind: "fyi";
1458
+ readonly area: "mentions";
1459
+ };
1421
1460
  readonly "access.granted": {
1422
1461
  readonly kind: "fyi";
1423
1462
  readonly area: "sharing";
@@ -3109,7 +3148,7 @@ export declare function harnessModelChoices(harness: EnvironmentHarnessId, model
3109
3148
  * Typed agent references: `<kind>:<id>`. The one parser shared by the runtime
3110
3149
  * verbs and the UI tool views; it never guesses a kind from a bare id.
3111
3150
  */
3112
- export declare const REFERENCE_KINDS: readonly ["record", "document", "file", "email", "thread", "event", "memory", "skill", "schema", "user", "guide", "draft"];
3151
+ export declare const REFERENCE_KINDS: readonly ["record", "document", "file", "email", "thread", "event", "memory", "skill", "schema", "user", "guide", "catalog", "draft"];
3113
3152
  export type ReferenceKind = (typeof REFERENCE_KINDS)[number];
3114
3153
  export type Reference = {
3115
3154
  kind: ReferenceKind;
@@ -3336,11 +3375,11 @@ export declare const RESOURCE_KIND_CATALOG: {
3336
3375
  };
3337
3376
  readonly browser: {
3338
3377
  readonly icon: "link";
3339
- readonly tools: readonly ["browser_autopilot", "browser_batch", "browser_computer", "browser_find", "browser_form_input", "browser_get_text", "browser_javascript", "browser_navigate", "browser_read_page", "browser_tabs"];
3378
+ readonly tools: readonly ["browser_autopilot", "browser_batch", "browser_computer", "browser_find", "browser_form_input", "browser_get_text", "browser_javascript", "browser_navigate", "browser_read_page", "browser_sign_in", "browser_tabs"];
3340
3379
  };
3341
3380
  readonly "browser-profile": {
3342
3381
  readonly icon: "globe";
3343
- readonly tools: readonly ["browser_launch", "browser_autopilot", "browser_batch", "browser_computer", "browser_find", "browser_form_input", "browser_get_text", "browser_javascript", "browser_navigate", "browser_read_page", "browser_tabs"];
3382
+ readonly tools: readonly ["browser_launch", "browser_autopilot", "browser_batch", "browser_computer", "browser_find", "browser_form_input", "browser_get_text", "browser_javascript", "browser_navigate", "browser_read_page", "browser_sign_in", "browser_tabs"];
3344
3383
  };
3345
3384
  readonly login: {
3346
3385
  readonly icon: "key";
@@ -3442,12 +3481,12 @@ export declare const GRANT_ENABLES: {
3442
3481
  readonly browser: {
3443
3482
  readonly kinds: readonly [];
3444
3483
  readonly capabilities: readonly [];
3445
- readonly tools: readonly ["browser_autopilot", "browser_batch", "browser_computer", "browser_find", "browser_form_input", "browser_get_text", "browser_javascript", "browser_navigate", "browser_read_page", "browser_tabs"];
3484
+ readonly tools: readonly ["browser_autopilot", "browser_batch", "browser_computer", "browser_find", "browser_form_input", "browser_get_text", "browser_javascript", "browser_navigate", "browser_read_page", "browser_sign_in", "browser_tabs"];
3446
3485
  };
3447
3486
  readonly "browser-profile": {
3448
3487
  readonly kinds: readonly [];
3449
3488
  readonly capabilities: readonly [];
3450
- readonly tools: readonly ["browser_launch", "browser_autopilot", "browser_batch", "browser_computer", "browser_find", "browser_form_input", "browser_get_text", "browser_javascript", "browser_navigate", "browser_read_page", "browser_tabs"];
3489
+ readonly tools: readonly ["browser_launch", "browser_autopilot", "browser_batch", "browser_computer", "browser_find", "browser_form_input", "browser_get_text", "browser_javascript", "browser_navigate", "browser_read_page", "browser_sign_in", "browser_tabs"];
3451
3490
  };
3452
3491
  readonly login: {
3453
3492
  readonly kinds: readonly [];
@@ -6016,6 +6055,84 @@ export interface BundleSyncResult {
6016
6055
  }>;
6017
6056
  }
6018
6057
  //#endregion
6058
+ //#region src/types/catalog.d.ts
6059
+ export type CatalogLocale = "fr" | "en";
6060
+ export type CatalogEntryKind = "object" | "view" | "agent";
6061
+ /** Where an installed piece came from; stamped on every draft operation it produces. */
6062
+ export interface OperationOrigin {
6063
+ entryId: string;
6064
+ version: number;
6065
+ packId?: string;
6066
+ /** The language the piece was compiled in; its install row records it. */
6067
+ locale: CatalogLocale;
6068
+ }
6069
+ export interface CatalogSummary {
6070
+ label: string;
6071
+ description: string;
6072
+ icon: IconName;
6073
+ category?: string;
6074
+ }
6075
+ export interface CatalogEntrySummary extends CatalogSummary {
6076
+ id: string;
6077
+ kind: CatalogEntryKind;
6078
+ version: number;
6079
+ requires: string[];
6080
+ installed: boolean;
6081
+ }
6082
+ export interface CatalogPackSummary extends CatalogSummary {
6083
+ id: string;
6084
+ version: number;
6085
+ entries: string[];
6086
+ hasSamples: boolean;
6087
+ installed: boolean;
6088
+ }
6089
+ /** A summary plus the ids it pulls in when installed. */
6090
+ export type CatalogEntryDetail = (CatalogEntrySummary | CatalogPackSummary) & {
6091
+ closure: string[];
6092
+ };
6093
+ export interface CatalogSelection {
6094
+ entries?: string[];
6095
+ packs?: string[];
6096
+ }
6097
+ export type CatalogDecision = "bind" | "skip" | {
6098
+ rename: string;
6099
+ };
6100
+ export interface CatalogPlanPiece {
6101
+ entryId: string;
6102
+ kind: CatalogEntryKind;
6103
+ status: "new" | "collides";
6104
+ existingName?: string;
6105
+ installable: boolean;
6106
+ reason?: string;
6107
+ inverseRelations?: {
6108
+ objectName: string;
6109
+ attributeName: string;
6110
+ }[];
6111
+ }
6112
+ export interface CatalogInstallPlan {
6113
+ pieces: CatalogPlanPiece[];
6114
+ fingerprint: string;
6115
+ }
6116
+ export interface CatalogInstallInput {
6117
+ selection: CatalogSelection;
6118
+ locale: CatalogLocale;
6119
+ withSamples: boolean;
6120
+ decisions: Record<string, CatalogDecision>;
6121
+ fingerprint: string;
6122
+ }
6123
+ export interface CatalogInstallResult {
6124
+ installed: {
6125
+ entryId: string;
6126
+ version: number;
6127
+ targetKind: CatalogEntryKind;
6128
+ targetId: string;
6129
+ }[];
6130
+ failed: {
6131
+ entryId: string;
6132
+ reason: string;
6133
+ }[];
6134
+ }
6135
+ //#endregion
6019
6136
  //#region src/types/schema-state.d.ts
6020
6137
  type Without<T, K extends PropertyKey> = T extends unknown ? Omit<T, K> : never;
6021
6138
  export type ViewSourceOwner = "core" | `bundle:${string}` | `source:${string}`;
@@ -10633,10 +10750,13 @@ export declare const RECORD_LINKS_BLOCK: BlockDefinition<"record_links", import(
10633
10750
  /** The chosen record's object; absent, the block centres on the host record. */
10634
10751
  readonly object: BlockInput<"object", import("zod").ZodString, true>;
10635
10752
  readonly record: BlockInput<"record", import("zod").ZodString, true>;
10636
- /** How many rings are expanded on open; two when absent. */
10753
+ /** How many rings are expanded on open, one to five; two when absent. */
10637
10754
  readonly depth: ListableBlockInput<"enum", import("zod").ZodEnum<{
10638
10755
  1: "1";
10639
10756
  2: "2";
10757
+ 3: "3";
10758
+ 4: "4";
10759
+ 5: "5";
10640
10760
  }>, true>;
10641
10761
  }>, import("zod/v4/core").$strip>>;
10642
10762
  /**
@@ -11027,10 +11147,13 @@ export declare const NATIVE_BLOCKS: readonly [BlockDefinition<"artifact_preview"
11027
11147
  /** The chosen record's object; absent, the block centres on the host record. */
11028
11148
  readonly object: BlockInput<"object", import("zod").ZodString, true>;
11029
11149
  readonly record: BlockInput<"record", import("zod").ZodString, true>;
11030
- /** How many rings are expanded on open; two when absent. */
11150
+ /** How many rings are expanded on open, one to five; two when absent. */
11031
11151
  readonly depth: ListableBlockInput<"enum", import("zod").ZodEnum<{
11032
11152
  1: "1";
11033
11153
  2: "2";
11154
+ 3: "3";
11155
+ 4: "4";
11156
+ 5: "5";
11034
11157
  }>, true>;
11035
11158
  }>, import("zod/v4/core").$strip>>];
11036
11159
  //#endregion
@@ -11811,6 +11934,20 @@ export declare function collectContentViewCatalogue(input: ContentViewCatalogueI
11811
11934
  * `rule` discriminator that carried it. A reader refuses every violation.
11812
11935
  */
11813
11936
  export declare function validateStoredViews(input: ContentViewCatalogueInput): void;
11937
+ /** The first rule a view breaks and where: `<message> (<path>)`, the path left out at the root. */
11938
+ export declare function describeViewIssue(issue: {
11939
+ message: string;
11940
+ path: readonly PropertyKey[];
11941
+ }): string;
11942
+ /**
11943
+ * Says which view was refused and the first rule it breaks: the bare "Invalid
11944
+ * content view" reached the person and the agent with nothing to fix (#5888).
11945
+ * The architect's publish blockers word the same refusal through it (#5932).
11946
+ */
11947
+ export declare function invalidViewMessage(raw: unknown, issue: {
11948
+ message: string;
11949
+ path: readonly PropertyKey[];
11950
+ } | undefined): string;
11814
11951
  /** Resolves names against a collected snapshot; it performs no writes or adoption. */
11815
11952
  export declare function validateContentViewCatalogue(input: ContentViewCatalogueInput): ContentViewCatalogueResult;
11816
11953
  //#endregion
@@ -12356,6 +12493,8 @@ export interface ArchitectChange {
12356
12493
  after: unknown;
12357
12494
  /** The agent's note on this operation, when it wrote one (D9). */
12358
12495
  note?: string;
12496
+ /** Set when the operation was produced by a catalog install. */
12497
+ origin?: OperationOrigin;
12359
12498
  }
12360
12499
  /** One operation of a draft as stored and sent: its shared fields plus its type's payload. */
12361
12500
  export type ViewOperation = BaseOperation & Record<string, unknown>;
@@ -12448,6 +12587,8 @@ export interface BaseOperation {
12448
12587
  type: string;
12449
12588
  /** The architect's own sentence — what it does and why; ≤ 160 chars. Persisted with the operation. */
12450
12589
  note?: string;
12590
+ /** Set on every operation a catalog install produced; the publish records it in `catalog_installs`. */
12591
+ origin?: OperationOrigin;
12451
12592
  }
12452
12593
  //#endregion
12453
12594
  //#region src/architect/proposal-types.d.ts
@@ -12489,6 +12630,45 @@ export declare const namedTargetSchema: z$2.ZodUnion<readonly [z$2.ZodObject<{
12489
12630
  }, z$2.core.$strict>]>;
12490
12631
  export type NamedTarget = z$2.infer<typeof namedTargetSchema>;
12491
12632
  export declare function parseNamedTarget(input: unknown): NamedTarget;
12633
+ /** How much a step deserves the person's eye: a new object is dwelt on, a rename flown past. */
12634
+ export type DraftStepPace = "major" | "normal" | "minor";
12635
+ /**
12636
+ * An operation's focus, resolved on the draft it was committed to: the ids the
12637
+ * draft minted, and what a route needs that the operation itself does not
12638
+ * name. A step routes from this alone, with no catalogue and no projection.
12639
+ */
12640
+ export interface DraftStepFocus extends DraftFocus {
12641
+ /** The focused view's id, the minted one for a view only the draft holds. */
12642
+ viewId?: string;
12643
+ /** The focused content's id within its view. */
12644
+ contentId?: string;
12645
+ /** How the focused object view is reached: its context, and whether it is its object's default. */
12646
+ viewRoute?: {
12647
+ context: "collection" | "record";
12648
+ default: boolean;
12649
+ };
12650
+ /**
12651
+ * How the focused page is reached: a record page through its object's record
12652
+ * view (on the tab rendering it, when one does), a standalone page by the key
12653
+ * its route carries.
12654
+ */
12655
+ pageRoute?: {
12656
+ objectName: string;
12657
+ tabName?: string;
12658
+ } | {
12659
+ key: string;
12660
+ };
12661
+ }
12662
+ /** One committed operation, as the follow shows it. */
12663
+ export interface DraftStep {
12664
+ /** The draft version the operation's commit produced. */
12665
+ version: number;
12666
+ operationId: string;
12667
+ focus: DraftStepFocus;
12668
+ pace: DraftStepPace;
12669
+ /** The agent's note on the operation, when it wrote one. */
12670
+ note?: string;
12671
+ }
12492
12672
  export interface MutationReceipt {
12493
12673
  operationIds: string[];
12494
12674
  revision: ProposalRevision;
@@ -12498,10 +12678,47 @@ export interface MutationReceipt {
12498
12678
  }>;
12499
12679
  /** Operation id → the agent's note, for the committed operations that carry one. Absent when none does. */
12500
12680
  notes?: Readonly<Record<string, string>>;
12681
+ /**
12682
+ * One step per operation this receipt committed, in order. Empty for a
12683
+ * receipt that commits none (a removal, a discard, a publication); absent
12684
+ * from a receipt sent before steps existed.
12685
+ */
12686
+ steps?: DraftStep[];
12687
+ }
12688
+ /**
12689
+ * What a publish refusal or a publish blocker names: an object, one of its
12690
+ * attributes or views, or a page (addressed by id). Its kind is the most
12691
+ * specific key present.
12692
+ */
12693
+ export interface PublishTarget {
12694
+ objectName?: string;
12695
+ attributeName?: string;
12696
+ viewName?: string;
12697
+ pageId?: string;
12698
+ }
12699
+ export type PublishTargetKind = "object" | "attribute" | "view" | "page";
12700
+ /** The target a publish refusal carries in its `details.target`. */
12701
+ export interface PublishRefusalTarget extends PublishTarget {
12702
+ kind: PublishTargetKind;
12703
+ }
12704
+ /**
12705
+ * The publish rules the append runs on the folded draft, beyond its own: what
12706
+ * no single operation breaks, so the append accepts it, and the publish then
12707
+ * refuses (#5932).
12708
+ */
12709
+ export type PublishBlockerRule = "computed-cycle" | "bilateral-pair" | "content-view";
12710
+ /** One thing the publish would refuse in the draft as it stands. */
12711
+ export interface PublishBlocker {
12712
+ rule: PublishBlockerRule;
12713
+ target: PublishTarget;
12714
+ /** The refusal the publish would raise, word for word. */
12715
+ message: string;
12501
12716
  }
12502
12717
  /** HTTP append result: enough to continue editing without a second guard request. */
12503
12718
  export interface DraftAppendReceipt extends MutationReceipt {
12504
12719
  commandGuard: DraftCommandGuard;
12720
+ /** What the publish would refuse in the draft after this append; empty when nothing. */
12721
+ publishBlockers: PublishBlocker[];
12505
12722
  }
12506
12723
  export interface DraftPublishCommand {
12507
12724
  revision: ProposalRevision;