@standards/schema 1.0.0-alpha.404 → 1.0.0-alpha.406

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 (95) hide show
  1. package/dist/{all-CJC6e6AY.d.ts → all-B85Wnp0r.d.ts} +10 -10
  2. package/dist/all-B8viW8TH.mjs +2 -0
  3. package/dist/all-BFPhXNTB.js +2 -0
  4. package/dist/{all-XirVn9fd.d.mts → all-Bqa1vVKw.d.mts} +10 -10
  5. package/dist/api/index.d.mts +897 -293
  6. package/dist/api/index.d.ts +897 -293
  7. package/dist/api/index.js +1 -1
  8. package/dist/api/index.mjs +1 -1
  9. package/dist/{attributes-BOIIZZpP.d.ts → attributes-Ck0gooEG.d.mts} +1 -2
  10. package/dist/{attributes-CAYOHQLt.d.mts → attributes-DW963WrS.d.ts} +1 -2
  11. package/dist/{checkbox-RJEhZTDu.d.mts → checkbox-BKYTSUqh.d.mts} +2 -2
  12. package/dist/{checkbox-UJEOyMLV.d.ts → checkbox-nWLlzMJ1.d.ts} +2 -2
  13. package/dist/config-BWgga8mu.js +2 -0
  14. package/dist/config-BwshhFai.mjs +2 -0
  15. package/dist/{date-jqgfgslv.d.mts → date-DaPijpKs.d.mts} +2 -2
  16. package/dist/{date-rwqgadEE.d.ts → date-duOYv4di.d.ts} +2 -2
  17. package/dist/{exceptions-RCZEE1uQ.d.mts → exceptions-DXqs9eEl.d.mts} +15 -10
  18. package/dist/{exceptions-RCZEE1uQ.d.ts → exceptions-DXqs9eEl.d.ts} +15 -10
  19. package/dist/exceptions.d.mts +1 -1
  20. package/dist/exceptions.d.ts +1 -1
  21. package/dist/exceptions.js +1 -1
  22. package/dist/exceptions.mjs +1 -1
  23. package/dist/{index-Bw0zjY3f.d.mts → index-C5uNsr5k.d.mts} +2 -22
  24. package/dist/{index-DMBl9Ahc.d.ts → index-D2VrYWdg.d.ts} +3 -3
  25. package/dist/{index-CiKELB3w.d.mts → index-D4QnVstw.d.mts} +1 -1
  26. package/dist/{index-DcEEDCAI.d.mts → index-DDYMnrrw.d.ts} +752 -290
  27. package/dist/{index-byI2fVEU.d.ts → index-DI3HCT5W.d.mts} +752 -290
  28. package/dist/{index-DXQ3f3MJ.d.ts → index-DOGNjgeo.d.ts} +2 -22
  29. package/dist/{index-CFXgKvOC.d.ts → index-DYUP0iFu.d.ts} +1 -1
  30. package/dist/{index-BC5mEVkb.d.mts → index-DdPx9mQV.d.mts} +3 -3
  31. package/dist/index.d.mts +10 -14
  32. package/dist/index.d.ts +10 -14
  33. package/dist/index.js +1 -1
  34. package/dist/index.mjs +1 -1
  35. package/dist/{number-DYkxcIqq.d.mts → number-D9YL-T2k.d.mts} +2 -2
  36. package/dist/{number-CfG_k0mZ.d.ts → number-wv170cGZ.d.ts} +2 -2
  37. package/dist/{objects-Dc4zYk9o.d.ts → objects-BaZWr4GU.d.ts} +21 -2
  38. package/dist/{objects-Dmn8ZIXZ.d.mts → objects-DHddGZu5.d.mts} +21 -2
  39. package/dist/record-aggregates-CkETp1q-.js +2 -0
  40. package/dist/record-aggregates-ynh52lNO.mjs +2 -0
  41. package/dist/record-operation-COFZLn3T.mjs +2 -0
  42. package/dist/record-operation-DeR-ykzG.js +2 -0
  43. package/dist/{text-DkZ-_8Qs.d.mts → text-CHRRi3X_.d.mts} +2 -2
  44. package/dist/{text-BkLwT1XH.d.ts → text-Dbo08j8D.d.ts} +2 -2
  45. package/dist/{utils-Brab7BhE.d.ts → utils-BUDoiMT0.d.ts} +1 -1
  46. package/dist/{utils-C8viP5ET.d.mts → utils-tn-_IHkr.d.mts} +1 -1
  47. package/dist/utils.d.mts +1 -1
  48. package/dist/utils.d.ts +1 -1
  49. package/dist/validation/all.d.mts +5 -5
  50. package/dist/validation/all.d.ts +5 -5
  51. package/dist/validation/all.js +1 -1
  52. package/dist/validation/all.mjs +1 -1
  53. package/dist/validation/complex/currency.d.mts +2 -2
  54. package/dist/validation/complex/currency.d.ts +2 -2
  55. package/dist/validation/complex/location.d.mts +2 -2
  56. package/dist/validation/complex/location.d.ts +2 -2
  57. package/dist/validation/complex/phone.d.mts +2 -2
  58. package/dist/validation/complex/phone.d.ts +2 -2
  59. package/dist/validation/complex/relation.d.mts +2 -2
  60. package/dist/validation/complex/relation.d.ts +2 -2
  61. package/dist/validation/complex/richtext.d.mts +2 -2
  62. package/dist/validation/complex/richtext.d.ts +2 -2
  63. package/dist/validation/complex/select.d.mts +2 -2
  64. package/dist/validation/complex/select.d.ts +2 -2
  65. package/dist/validation/complex/user.d.mts +2 -2
  66. package/dist/validation/complex/user.d.ts +2 -2
  67. package/dist/validation/computed/formula.d.mts +2 -2
  68. package/dist/validation/computed/formula.d.ts +2 -2
  69. package/dist/validation/computed/rollup.d.mts +2 -2
  70. package/dist/validation/computed/rollup.d.ts +2 -2
  71. package/dist/validation/config/index.d.mts +2 -2
  72. package/dist/validation/config/index.d.ts +2 -2
  73. package/dist/validation/config/index.js +1 -1
  74. package/dist/validation/config/index.mjs +1 -1
  75. package/dist/validation/core/index.d.mts +1 -1
  76. package/dist/validation/core/index.d.ts +1 -1
  77. package/dist/validation/object/index.d.mts +1 -1
  78. package/dist/validation/object/index.d.ts +1 -1
  79. package/dist/validation/primitives/checkbox.d.mts +1 -1
  80. package/dist/validation/primitives/checkbox.d.ts +1 -1
  81. package/dist/validation/primitives/date.d.mts +1 -1
  82. package/dist/validation/primitives/date.d.ts +1 -1
  83. package/dist/validation/primitives/number.d.mts +1 -1
  84. package/dist/validation/primitives/number.d.ts +1 -1
  85. package/dist/validation/primitives/text.d.mts +1 -1
  86. package/dist/validation/primitives/text.d.ts +1 -1
  87. package/package.json +2 -2
  88. package/dist/config-DqidiszP.mjs +0 -2
  89. package/dist/config-oKDg40Iz.js +0 -2
  90. package/dist/record-aggregates-DY8qLwuF.mjs +0 -2
  91. package/dist/record-aggregates-ayabJXQ0.js +0 -2
  92. package/dist/record-operation-BIBY_2rB.mjs +0 -2
  93. package/dist/record-operation-D40yG3EC.js +0 -2
  94. package/dist/view-config.schema-B9y7-OCJ.mjs +0 -2
  95. package/dist/view-config.schema-Cyl6PedI.js +0 -2
@@ -1,15 +1,15 @@
1
1
 
2
- import { SchemaError, SchemaErrorCode, ValidationError } from "./exceptions-RCZEE1uQ.mjs";
3
- import { TenantId, Uuid } from "./utils-C8viP5ET.mjs";
4
- import { DocumentLayout, ImageShape, ListViewTabVisibility, ObjectDefinition, ObjectImage, ObjectRecord, RecordAppearance, ResourceVisibility, Timestamps, ViewerAccess } from "./objects-Dmn8ZIXZ.mjs";
5
- import { Attribute, AttributeType, BilateralConfig, CheckboxAttribute, Currency, CurrencyAttribute, DateAttribute, DatePrecision, DateRangeValue, DocumentAttribute, FormulaAttribute, FormulaReturnType, Location, LocationAttribute, LocationGranularity, MultiRelationAttribute, MultiselectAttribute, NumberAttribute, Option, Phone, PhoneAttribute, PropertyAttribute, PropertySchema, RelationAttribute, RelationTarget, RichtextAttribute, RollupAttribute, RollupFunction, SelectAttribute, SingleRelationAttribute, StatusAttribute, TextAttribute, TimeFormat, UserAttribute, UserReferenceType } from "./attributes-CAYOHQLt.mjs";
6
- import { ActivityContentDefinition, BLOCK_PERIODS, BlockContext, BlockDefinition, BlockInput, BlockWidth, CollectionAction, CollectionContentDefinition, CollectionContentSource, ColumnReference, ContentConfiguration, ContentCreateMode, ContentField, ContentFieldGroup, ContentOpenMode, ContentViewContext, ContentViewDefinition, CustomContentDefinition, DocumentsContentDefinition, DynamicValue, Eager, EmailsContentDefinition, FilterOperator, FilterRule, FilterState, FilterValue, FormContentDefinition, FormDensity, FormsContentDefinition, GridPosition, GridViolation, HeightMode, InferAttributeValue, InferQualifiedProps, InputShape, LayoutTraits, ListableBlockInput, MeetingsContentDefinition, ObjectBuilderLike, ObjectViewContext, ObjectViewDefinition, PageContentDefinition, PageViewDefinition, QualifiedDocumentAttributeBuilder, QualifiedDocumentBrand, RecordMetadata, RecordQuery, RecordQueryDefinition, RelativeDateValue, RichtextContentDefinition, SortRule, ViewContentDefinition, WithCustomAttributes, WithCustomRecordAttributes, WithoutSystemFields } from "./all-XirVn9fd.mjs";
7
- import { UpdateObjectInput } from "./index-Bw0zjY3f.mjs";
2
+ import { SchemaError, SchemaErrorCode, ValidationError } from "./exceptions-DXqs9eEl.js";
3
+ import { TenantId, Uuid } from "./utils-BUDoiMT0.js";
4
+ import { DocumentLayout, ImageShape, ListViewTabVisibility, ObjectDefinition, ObjectImage, ObjectRecord, RecordAppearance, RecordListScope, ResourceVisibility, Timestamps, ViewerAccess } from "./objects-BaZWr4GU.js";
5
+ import { Attribute, AttributeType, BilateralConfig, CheckboxAttribute, Currency, CurrencyAttribute, DateAttribute, DatePrecision, DateRangeValue, DocumentAttribute, FormulaAttribute, FormulaReturnType, Location, LocationAttribute, LocationGranularity, MultiRelationAttribute, MultiselectAttribute, NumberAttribute, Option, Phone, PhoneAttribute, PropertyAttribute, PropertySchema, RelationAttribute, RelationTarget, RichtextAttribute, RollupAttribute, RollupFunction, SelectAttribute, SingleRelationAttribute, StatusAttribute, TextAttribute, TimeFormat, UserAttribute, UserReferenceType } from "./attributes-DW963WrS.js";
6
+ import { ActivityContentDefinition, BLOCK_PERIODS, BlockContext, BlockDefinition, BlockInput, BlockWidth, CollectionAction, CollectionContentDefinition, CollectionContentSource, ColumnReference, ContentConfiguration, ContentCreateMode, ContentField, ContentFieldGroup, ContentOpenMode, ContentViewContext, ContentViewDefinition, CustomContentDefinition, DocumentsContentDefinition, DynamicValue, Eager, EmailsContentDefinition, FilterOperator, FilterRule, FilterState, FilterValue, FormContentDefinition, FormDensity, FormsContentDefinition, GridPosition, GridViolation, HeightMode, InferAttributeValue, InferQualifiedProps, InputShape, LayoutTraits, ListableBlockInput, MeetingsContentDefinition, ObjectBuilderLike, ObjectViewContext, ObjectViewDefinition, PageContentDefinition, PageViewDefinition, QualifiedDocumentAttributeBuilder, QualifiedDocumentBrand, QueryState, RecordMetadata, RecordQuery, RecordQueryDefinition, RelativeDateValue, RichtextContentDefinition, SortRule, ViewContentDefinition, ViewRead, WithCustomAttributes, WithCustomRecordAttributes, WithoutSystemFields } from "./all-B85Wnp0r.js";
7
+ import { UpdateObjectInput } from "./index-DOGNjgeo.js";
8
8
  import * as z$2 from "zod";
9
9
  import z, { z as z$1 } from "zod";
10
10
  import { ColorId, CountryIso3, CurrencyCode, IconName, MimeType } from "@standards/constants";
11
- import "libphonenumber-js";
12
11
  import { StandardSchemaV1, StandardSchemaV1 as StandardSchemaV1$1 } from "@standard-schema/spec";
12
+ import "libphonenumber-js";
13
13
  //#region src/types/permissions.d.ts
14
14
  /**
15
15
  * Scope of a permission rule.
@@ -327,6 +327,13 @@ export declare const PERMISSION_CATALOG: readonly [{
327
327
  readonly id: "use";
328
328
  readonly add: readonly ["create"];
329
329
  }];
330
+ }, {
331
+ readonly id: "supervision";
332
+ readonly resources: readonly ["supervision"];
333
+ readonly levels: readonly [{
334
+ readonly id: "use";
335
+ readonly add: readonly ["create"];
336
+ }];
330
337
  }];
331
338
  }, {
332
339
  readonly id: "files";
@@ -570,6 +577,14 @@ export interface OperationDefinition {
570
577
  * would otherwise skip the actor-scoped checks.
571
578
  */
572
579
  actor?: "required";
580
+ /**
581
+ * `"session"`: refused 403 `SCHEMA_SESSION_REQUIRED` before its handler runs
582
+ * unless a person's own session authenticated the request — an API key or a
583
+ * delegated OAuth token never reaches it. For the routes that serve the
584
+ * platform UI: they carry no stability promise to an integration. A
585
+ * host-served operation's controller asserts it itself (`assertOperationCredential`).
586
+ */
587
+ credential?: "session";
573
588
  /** Multipart: the request carries files under `upload.field` (see `OperationUpload`). */
574
589
  upload?: OperationUpload;
575
590
  /**
@@ -1048,6 +1063,13 @@ export interface MeetingsListResponse {
1048
1063
  */
1049
1064
  totalIsExact?: boolean;
1050
1065
  }
1066
+ /** A record's meetings counted; `isExact: false` when `total` is a lower bound. */
1067
+ export interface RecordMeetingsCount {
1068
+ total: number;
1069
+ isExact: boolean;
1070
+ }
1071
+ /** A meetings answer's count as a tab states it; `null` when the server did not count. */
1072
+ export declare function recordMeetingsCount(answer: Pick<MeetingsListResponse, "total" | "totalIsExact">): RecordMeetingsCount | null;
1051
1073
  //#endregion
1052
1074
  //#region src/api/meetings.operations.d.ts
1053
1075
  /**
@@ -1386,103 +1408,166 @@ export interface ArtifactQuote {
1386
1408
  selectedText: string;
1387
1409
  }
1388
1410
  //#endregion
1389
- //#region src/types/notifications.d.ts
1390
- export declare const NOTIFICATION_KINDS: readonly ["fyi", "task", "question", "handoff", "system"];
1391
- export type NotificationKind = (typeof NOTIFICATION_KINDS)[number];
1392
- export declare const NOTIFICATION_PRIORITIES: readonly ["low", "normal", "high", "urgent"];
1393
- export type NotificationPriority = (typeof NOTIFICATION_PRIORITIES)[number];
1394
- /** Spec 2026-10-14 §7: priorities compare by rank, never as text ('high' < 'low' as text). */
1395
- export declare const NOTIFICATION_PRIORITY_RANK: Record<NotificationPriority, number>;
1396
- export declare const NOTIFICATION_SENSITIVITIES: readonly ["public", "internal", "sensitive"];
1397
- export type NotificationSensitivity = (typeof NOTIFICATION_SENSITIVITIES)[number];
1398
- export declare const NOTIFICATION_INBOX_STATES: readonly ["unread", "read", "archived", "snoozed"];
1399
- export type NotificationInboxState = (typeof NOTIFICATION_INBOX_STATES)[number];
1400
- export declare const NOTIFICATION_WORK_STATES: readonly ["none", "pending", "processing", "completed", "dismissed", "expired", "failed"];
1401
- export type NotificationWorkState = (typeof NOTIFICATION_WORK_STATES)[number];
1402
- export type NotificationType = string;
1403
- export declare const NOTIFICATION_TYPE_AGENT_SESSION_WAITING_HUMAN = "agent.session.waiting_human";
1404
- export declare const NOTIFICATION_TYPE_AGENT_TASK_ASSIGNED = "agent.task.assigned";
1405
- export declare const NOTIFICATION_TYPE_AGENT_QUESTION_REQUESTED = "agent.question.requested";
1406
- /** A routine run whose run status became `failed`; `payload.routineName` names the routine. */
1407
- export declare const NOTIFICATION_TYPE_AGENT_ROUTINE_RUN_FAILED = "agent.routine_run.failed";
1411
+ //#region src/types/decisions.d.ts
1412
+ /**
1413
+ * What a decision asks of its recipient (spec 2026-10-29 § 3): `question`,
1414
+ * `approval`, `review` and `handoff` await an answer; `report` (work a
1415
+ * routine did for you) and `fyi` are informational, shown under « Pour toi ».
1416
+ */
1417
+ export declare const DECISION_KINDS: readonly ["question", "approval", "review", "handoff", "report", "fyi"];
1418
+ export type DecisionKind = (typeof DECISION_KINDS)[number];
1419
+ export declare const DECISION_INBOX_STATES: readonly ["unread", "read", "archived"];
1420
+ export type DecisionInboxState = (typeof DECISION_INBOX_STATES)[number];
1421
+ /** `pending` open, `completed` answered, `dismissed` withdrawn, `expired` expired; `none` informational. */
1422
+ export declare const DECISION_WORK_STATES: readonly ["none", "pending", "completed", "dismissed", "expired"];
1423
+ export type DecisionWorkState = (typeof DECISION_WORK_STATES)[number];
1424
+ /** What `decisions.list` filters on (`state`); absent = everything not archived. */
1425
+ export declare const DECISION_LIST_STATES: readonly ["open", "snoozed", "closed", "answered", "withdrawn", "expired", "unread", "read", "archived"];
1426
+ export type DecisionListState = (typeof DECISION_LIST_STATES)[number];
1427
+ /** What a decision can be about (§ 3): its links' target types. */
1428
+ export declare const DECISION_LINK_TARGET_TYPES: readonly ["record", "session", "document", "agent", "routine", "page", "email_thread"];
1429
+ export type DecisionLinkTargetType = (typeof DECISION_LINK_TARGET_TYPES)[number];
1430
+ /** One thing a decision is about. `objectName` only on a `record` (its page is addressed by its object). */
1431
+ export interface DecisionLink {
1432
+ targetType: DecisionLinkTargetType;
1433
+ targetId: string;
1434
+ objectName?: string;
1435
+ /**
1436
+ * What the chip reads (a record's label, a document's title). Never
1437
+ * stored: `decisions.list` sets it for a viewer allowed to see the target,
1438
+ * and drops a link they may not see (spec § 5, A21).
1439
+ */
1440
+ label?: string;
1441
+ }
1442
+ /** `record:<object>:<id>`, or `<targetType>:<id>`: the `link` filter's and `thread_key`'s text form. */
1443
+ export declare function formatDecisionLink(link: DecisionLink): string;
1444
+ /** The inverse of {@link formatDecisionLink}; `null` for anything else (unknown type, a record without its object, an empty id). */
1445
+ export declare function parseDecisionLink(raw: string): DecisionLink | null;
1446
+ /** `decision:<id>`: the thread key of a person's first decision (§ 3c). */
1447
+ export declare function decisionThreadKey(decisionId: string): string;
1448
+ /** The longest title of a person's decision (« Nouvelle décision »). */
1449
+ export declare const DECISION_TITLE_MAX_LENGTH = 120;
1450
+ /** The longest `why` and `change` line (§ 3): enforced by the service and a database check. */
1451
+ export declare const DECISION_LINE_MAX_LENGTH = 200;
1452
+ /** The `ask_questions` batch (`{ questions: [...] }`), or an approval's tool summary. */
1453
+ export type DecisionQuestions = Readonly<Record<string, unknown>>;
1454
+ /** What the answerer chose, as stored: `{ kind: "answers", skipped, answers }` for a question batch. */
1455
+ export type DecisionAnswer = Readonly<Record<string, unknown>>;
1456
+ export type DecisionType = string;
1457
+ /**
1458
+ * An agent's `ask_questions` call, one decision per call (spec § 4.1). Its
1459
+ * payload is an {@link AgentDecisionPayload}; the session part stays the
1460
+ * source and every close of it projects onto the decision (D10).
1461
+ */
1462
+ export declare const DECISION_TYPE_AGENT_QUESTION = "agent.question";
1463
+ /** A tool call awaiting the session approver's approval (spec § 4.3); payload {@link AgentDecisionPayload}. */
1464
+ export declare const DECISION_TYPE_AGENT_APPROVAL = "agent.approval";
1465
+ /** A `request_design_review` gate awaiting the session approver (spec § 4.3); payload {@link AgentDecisionPayload}. */
1466
+ export declare const DECISION_TYPE_AGENT_REVIEW = "agent.review";
1467
+ /**
1468
+ * An agent's `request_setup` call (spec § 4.4), a `handoff`: `questions` is
1469
+ * the call's `{ items }`, what the connection card renders; payload an
1470
+ * {@link AgentDecisionPayload} whose `connector` names what to set up.
1471
+ */
1472
+ export declare const DECISION_TYPE_AGENT_SETUP = "agent.setup";
1473
+ /** A routine run whose run status became `failed`: one question to its owner, « relancer ou ignorer ? » (spec § 4.6); `payload.routineName` names the routine. */
1474
+ export declare const DECISION_TYPE_AGENT_ROUTINE_RUN_FAILED = "agent.routine_run.failed";
1408
1475
  /** A routine run's message to its authority, written by the `notify` tool (spec 2026-10-14 §6). */
1409
- export declare const NOTIFICATION_TYPE_AGENT_ROUTINE_RUN_NOTICE = "agent.routine_run.notice";
1476
+ export declare const DECISION_TYPE_AGENT_ROUTINE_RUN_NOTICE = "agent.routine_run.notice";
1410
1477
  /**
1411
1478
  * A connected account a sync pass moved to `reauth_required`: its owner must
1412
1479
  * sign in again. `payload.provider` and `payload.account` name it.
1413
1480
  */
1414
- export declare const NOTIFICATION_TYPE_CONNECTOR_CONNECTION_REAUTH_REQUIRED = "connector.connection.reauth_required";
1481
+ export declare const DECISION_TYPE_CONNECTOR_CONNECTION_REAUTH_REQUIRED = "connector.connection.reauth_required";
1415
1482
  /**
1416
1483
  * A connected account a sync pass moved to `error`: it keeps retrying, but
1417
1484
  * nothing has synced. `payload.provider` and `payload.account` name it.
1418
1485
  */
1419
- export declare const NOTIFICATION_TYPE_CONNECTOR_CONNECTION_ERROR = "connector.connection.error";
1486
+ export declare const DECISION_TYPE_CONNECTOR_CONNECTION_ERROR = "connector.connection.error";
1420
1487
  /**
1421
1488
  * A person added to a `user` attribute marked `.notifiesOnAssign()` (#5308).
1422
1489
  * The subject is the record when one write is announced; several assignments
1423
- * of one window by the same actor on one object are one notification with
1490
+ * of one window by the same actor on one object are one decision with
1424
1491
  * `payload.count`. `payload` carries `objectName`, `objectLabel`,
1425
1492
  * `objectPluralLabel`, `recordLabel`, `actorName` and `count`.
1426
1493
  */
1427
- export declare const NOTIFICATION_TYPE_RECORD_ASSIGNED = "record.assigned";
1494
+ export declare const DECISION_TYPE_RECORD_ASSIGNED = "record.assigned";
1428
1495
  /**
1429
1496
  * A person newly mentioned (`[@Name](stndrds:user/<id>)`) in a record's
1430
1497
  * richtext (#5828). Shaped like `record.assigned`: the subject is the record
1431
1498
  * when one is announced; the mentions of one window by the same actor on one
1432
- * object are one notification with `payload.count`. `payload` carries
1499
+ * object are one decision with `payload.count`. `payload` carries
1433
1500
  * `objectName`, `objectLabel`, `objectPluralLabel`, `recordLabel`,
1434
1501
  * `actorName` and `count`.
1435
1502
  */
1436
- export declare const NOTIFICATION_TYPE_RECORD_MENTIONED = "record.mentioned";
1503
+ export declare const DECISION_TYPE_RECORD_MENTIONED = "record.mentioned";
1437
1504
  /**
1438
1505
  * Someone gave the recipient access to an agent, a routine or a record, or
1439
1506
  * raised it (#5303). `payload.role` is the level granted, `payload.actorName`
1440
1507
  * who granted it and `payload.name` what was shared; a record notice also
1441
1508
  * carries `payload.objectName`.
1442
1509
  */
1443
- export declare const NOTIFICATION_TYPE_ACCESS_GRANTED = "access.granted";
1444
- 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"];
1445
- export type NotificationV1Type = (typeof NOTIFICATION_TYPES_V1)[number];
1446
- /** Kinds that ask the recipient to act: always delivered in-app (#5448). */
1447
- export declare const ACTIONABLE_NOTIFICATION_KINDS: readonly ["task", "question", "handoff"];
1448
- export declare function isActionableNotificationKind(kind: NotificationKind): boolean;
1449
- /** Where a type's delivery switches sit on the Account ▸ Notifications screen. */
1450
- export declare const NOTIFICATION_SETTINGS_AREAS: readonly ["agents", "connectors", "assignment", "mentions", "sharing"];
1451
- export type NotificationSettingsArea = (typeof NOTIFICATION_SETTINGS_AREAS)[number];
1452
- /**
1453
- * Every declared notification type, its kind and its settings area (#5448):
1454
- * the parameters `notifications.delivery` accepts, and whether a type may be
1510
+ export declare const DECISION_TYPE_ACCESS_GRANTED = "access.granted";
1511
+ /**
1512
+ * An automatic rebuild of the recipient's environment failed (environments
1513
+ * v2 §4); runs keep its last published machine. An `fyi`: no link (an
1514
+ * environment is not a link target); `payload.environmentId` and
1515
+ * `payload.environmentName` name it and `payload.step` says where the build
1516
+ * stopped.
1517
+ */
1518
+ export declare const DECISION_TYPE_ENVIRONMENT_BUILD_FAILED = "environment.build.failed";
1519
+ /**
1520
+ * A person's decision (spec § 4.5): raised from « Nouvelle décision » or
1521
+ * « Transformer en décision ». The decision row is its source; answering it
1522
+ * wakes no agent.
1523
+ */
1524
+ export declare const DECISION_TYPE_PERSON = "person.decision";
1525
+ export declare const DECISION_TYPES_V1: readonly ["agent.question", "agent.approval", "agent.review", "agent.setup", "agent.routine_run.failed", "agent.routine_run.notice", "connector.connection.reauth_required", "connector.connection.error", "record.assigned", "record.mentioned", "access.granted", "environment.build.failed", "person.decision"];
1526
+ export type DecisionV1Type = (typeof DECISION_TYPES_V1)[number];
1527
+ /** Kinds that await an answer: always delivered in-app (#5448), and the only ones « À trancher » lists. */
1528
+ export declare const ACTIONABLE_DECISION_KINDS: readonly ["question", "approval", "review", "handoff"];
1529
+ export declare function isActionableDecisionKind(kind: DecisionKind): boolean;
1530
+ /** Where a type's delivery switches sit on the Account ▸ Decisions screen. */
1531
+ export declare const DECISION_SETTINGS_AREAS: readonly ["agents", "connectors", "assignment", "mentions", "sharing"];
1532
+ export type DecisionSettingsArea = (typeof DECISION_SETTINGS_AREAS)[number];
1533
+ /**
1534
+ * Every declared decision type, its kind and its settings area (#5448):
1535
+ * the parameters `decisions.delivery` accepts, and whether a type may be
1455
1536
  * turned off in-app (an actionable kind never may). The Account ▸
1456
- * Notifications screen lists a type under its area; a type whose area is
1537
+ * Decisions screen lists a type under its area; a type whose area is
1457
1538
  * `null` is not sent by anything yet and gets no row (#5449).
1458
1539
  */
1459
- export declare const NOTIFICATION_TYPE_KINDS: {
1460
- readonly "agent.session.waiting_human": {
1540
+ export declare const DECISION_TYPE_KINDS: {
1541
+ readonly "agent.question": {
1461
1542
  readonly kind: "question";
1462
- readonly area: "agents";
1543
+ readonly area: null;
1463
1544
  };
1464
- readonly "agent.task.assigned": {
1465
- readonly kind: "task";
1545
+ readonly "agent.approval": {
1546
+ readonly kind: "approval";
1466
1547
  readonly area: null;
1467
1548
  };
1468
- readonly "agent.question.requested": {
1469
- readonly kind: "question";
1549
+ readonly "agent.review": {
1550
+ readonly kind: "review";
1551
+ readonly area: null;
1552
+ };
1553
+ readonly "agent.setup": {
1554
+ readonly kind: "handoff";
1470
1555
  readonly area: null;
1471
1556
  };
1472
1557
  readonly "agent.routine_run.failed": {
1473
- readonly kind: "system";
1558
+ readonly kind: "question";
1474
1559
  readonly area: "agents";
1475
1560
  };
1476
1561
  readonly "agent.routine_run.notice": {
1477
- readonly kind: "fyi";
1562
+ readonly kind: "report";
1478
1563
  readonly area: "agents";
1479
1564
  };
1480
1565
  readonly "connector.connection.reauth_required": {
1481
- readonly kind: "system";
1566
+ readonly kind: "handoff";
1482
1567
  readonly area: "connectors";
1483
1568
  };
1484
1569
  readonly "connector.connection.error": {
1485
- readonly kind: "system";
1570
+ readonly kind: "handoff";
1486
1571
  readonly area: "connectors";
1487
1572
  };
1488
1573
  readonly "record.assigned": {
@@ -1497,117 +1582,210 @@ export declare const NOTIFICATION_TYPE_KINDS: {
1497
1582
  readonly kind: "fyi";
1498
1583
  readonly area: "sharing";
1499
1584
  };
1585
+ readonly "environment.build.failed": {
1586
+ readonly kind: "fyi";
1587
+ readonly area: "agents";
1588
+ };
1589
+ readonly "person.decision": {
1590
+ readonly kind: "question";
1591
+ readonly area: null;
1592
+ };
1500
1593
  };
1501
- /** The types the Account ▸ Notifications screen lists: those with a settings area. */
1502
- export type NotificationSettingsType = { [Type in keyof typeof NOTIFICATION_TYPE_KINDS]: (typeof NOTIFICATION_TYPE_KINDS)[Type]["area"] extends null ? never : Type; }[keyof typeof NOTIFICATION_TYPE_KINDS];
1503
- /** How a person receives one notification type: `notifications.delivery`'s value. */
1504
- export interface NotificationDelivery {
1594
+ /** The types the Account ▸ Decisions screen lists: those with a settings area. */
1595
+ export type DecisionSettingsType = { [Type in keyof typeof DECISION_TYPE_KINDS]: (typeof DECISION_TYPE_KINDS)[Type]["area"] extends null ? never : Type; }[keyof typeof DECISION_TYPE_KINDS];
1596
+ /** How a person receives one decision type: `decisions.delivery`'s value (the email channel is deleted, § 3b). */
1597
+ export interface DecisionDelivery {
1505
1598
  inApp: boolean;
1506
- email: boolean;
1507
- }
1508
- /** The channels a notification can reach a person through, as `GET /notifications/channels` lists them. */
1509
- export declare const NOTIFICATION_CHANNELS: readonly ["in_app", "email"];
1510
- export type NotificationChannel = (typeof NOTIFICATION_CHANNELS)[number];
1511
- export interface NotificationSubject {
1512
- type: string;
1513
- id: string;
1514
1599
  }
1515
- /**
1516
- * The subject types a notice can be opened on (#5450). `record` also needs
1517
- * `payload.objectName`, since a record's page is addressed by its object.
1518
- */
1519
- export declare const NOTIFICATION_SUBJECT_TYPES: {
1520
- readonly agentSession: "agent_session";
1521
- readonly agent: "agent";
1522
- readonly routine: "routine";
1523
- readonly record: "record";
1524
- readonly page: "page";
1525
- };
1526
- export interface Notification {
1600
+ export interface Decision {
1527
1601
  id: Uuid;
1528
1602
  tenantId: string;
1529
1603
  senderActorId?: Uuid;
1530
1604
  rootActorId?: Uuid;
1531
1605
  triggeredByActorId?: Uuid;
1532
- kind: NotificationKind;
1533
- type: NotificationType;
1534
- subject?: NotificationSubject;
1606
+ kind: DecisionKind;
1607
+ type: DecisionType;
1535
1608
  title: string;
1536
1609
  summary?: string;
1610
+ /** Why it is asked, at most {@link DECISION_LINE_MAX_LENGTH} characters. */
1611
+ why?: string;
1612
+ /** What answering will make possible, in the future, at most {@link DECISION_LINE_MAX_LENGTH} characters. */
1613
+ change?: string;
1614
+ questions?: DecisionQuestions;
1615
+ /** Written once, with `answeredBy` and `effect`, when the decision is answered. */
1616
+ answer?: DecisionAnswer;
1617
+ answeredBy?: Uuid;
1618
+ /** What the answer did, e.g. `relaunched Exécuteur`. */
1619
+ effect?: string;
1620
+ /** In position order; the first is the primary link. */
1621
+ links: DecisionLink[];
1622
+ /** Who raised it, as `decisions.list` reads it; absent elsewhere and for a system decision. */
1623
+ sender?: DecisionSender;
1537
1624
  payload: Record<string, unknown>;
1538
- priority: NotificationPriority;
1539
- sensitivity: NotificationSensitivity;
1540
- threadKey?: string;
1625
+ /** Always set (§ 3c): its primary link's text form, or `decision:<id>`. */
1626
+ threadKey: string;
1541
1627
  idempotencyKey?: string;
1542
- expiresAt?: Date;
1543
1628
  createdAt: Date;
1544
1629
  updatedAt: Date;
1545
1630
  }
1546
- export interface NotificationRecipient {
1631
+ /** Who raised a decision: a person, an agent, or the system. */
1632
+ export type DecisionSenderKind = "person" | "agent" | "system";
1633
+ export interface DecisionSender {
1634
+ actorId: Uuid;
1635
+ kind: DecisionSenderKind;
1636
+ label: string;
1637
+ }
1638
+ /** One file of a document attached to a decision, as its recipients read it (`decisions.attachments`). */
1639
+ export interface DecisionAttachment {
1640
+ documentId: Uuid;
1641
+ fileId: Uuid;
1642
+ name: string;
1643
+ mimeType: string;
1644
+ size: number;
1645
+ /** A signed URL; without a storage adapter, the file's stored URL. */
1646
+ url: string;
1647
+ }
1648
+ export interface DecisionRecipient {
1547
1649
  id: Uuid;
1548
1650
  tenantId: string;
1549
- notificationId: Uuid;
1651
+ decisionId: Uuid;
1550
1652
  recipientActorId: Uuid;
1551
- inboxState: NotificationInboxState;
1552
- workState: NotificationWorkState;
1553
- lockedAt?: Date;
1554
- lockedByActorId?: Uuid;
1653
+ inboxState: DecisionInboxState;
1654
+ workState: DecisionWorkState;
1555
1655
  readAt?: Date;
1556
1656
  archivedAt?: Date;
1657
+ /** « Plus tard »: out of « À trancher » until then. */
1557
1658
  snoozedUntil?: Date;
1659
+ /** The answer time (§ 3). */
1558
1660
  completedAt?: Date;
1559
1661
  dismissedAt?: Date;
1560
1662
  createdAt: Date;
1561
1663
  updatedAt: Date;
1562
1664
  }
1563
- export interface NotificationWithRecipient {
1564
- notification: Notification;
1565
- recipient: NotificationRecipient;
1665
+ export interface DecisionWithRecipient {
1666
+ decision: Decision;
1667
+ recipient: DecisionRecipient;
1566
1668
  }
1567
- export interface NotificationListParams {
1568
- state?: NotificationInboxState;
1569
- kind?: NotificationKind;
1570
- /** Only notifications at or above this priority rank. */
1571
- minPriority?: NotificationPriority;
1572
- /** Only notifications created strictly after this instant (ISO). */
1669
+ export interface DecisionListParams {
1670
+ state?: DecisionListState;
1671
+ kind?: DecisionKind[];
1672
+ /** {@link formatDecisionLink} text: `record:<object>:<id>`, `session:<id>`, … */
1673
+ link?: string;
1674
+ /** Only decisions created strictly after this instant (ISO). */
1573
1675
  since?: string;
1574
1676
  limit?: number;
1575
1677
  cursor?: string;
1576
1678
  }
1577
- export interface NotificationListResult {
1578
- items: NotificationWithRecipient[];
1679
+ export interface DecisionListResult {
1680
+ items: DecisionWithRecipient[];
1579
1681
  nextCursor?: string;
1580
1682
  }
1581
- export interface NotificationCounts {
1683
+ /** A decision's state as an agent reads it, folded over its recipient rows. */
1684
+ export declare const DECISION_READ_STATES: readonly ["open", "answered", "withdrawn", "expired", "info"];
1685
+ export type DecisionReadState = (typeof DECISION_READ_STATES)[number];
1686
+ /** A decision as an agent reads it (spec § 8): one item per decision, not per recipient. */
1687
+ export interface DecisionView {
1688
+ id: Uuid;
1689
+ kind: DecisionKind;
1690
+ type: DecisionType;
1691
+ title: string;
1692
+ why?: string;
1693
+ change?: string;
1694
+ questions?: DecisionQuestions;
1695
+ answer?: DecisionAnswer;
1696
+ answeredBy?: Uuid;
1697
+ effect?: string;
1698
+ links: DecisionLink[];
1699
+ threadKey: string;
1700
+ /** `open` if any row is pending; else `answered`, `withdrawn`, `expired`; `info` when every row is informational. */
1701
+ state: DecisionReadState;
1702
+ /** The earliest `completedAt` among its rows: the answer time. */
1703
+ completedAt?: Date;
1704
+ createdAt: Date;
1705
+ }
1706
+ /** What an agent's `search` narrows the decisions it can see by. */
1707
+ export interface DecisionVisibleListParams {
1708
+ /** {@link formatDecisionLink} text. */
1709
+ link?: string;
1710
+ kind?: readonly DecisionKind[];
1711
+ state?: DecisionReadState;
1712
+ /** Free text over the title, why and change lines. */
1713
+ query?: string;
1714
+ limit: number;
1715
+ offset: number;
1716
+ }
1717
+ export interface DecisionVisibleListResult {
1718
+ items: DecisionView[];
1719
+ hasMore: boolean;
1720
+ }
1721
+ export interface DecisionCounts {
1722
+ /** Recipient rows `pending`, not archived, not snoozed: the sidebar number. */
1723
+ open: number;
1724
+ /**
1725
+ * Unread rows of a person reaching you (a mention, an assignment): the
1726
+ * sidebar dot, never the count (A33). A share or a report lights nothing.
1727
+ */
1582
1728
  unread: number;
1583
- pendingWork: number;
1584
- urgentUnread: number;
1585
1729
  }
1586
- export interface NotificationArchiveAllResult {
1730
+ export interface DecisionArchiveAllResult {
1587
1731
  archivedCount: number;
1588
1732
  }
1589
- export interface CreateNotificationRecipientInput {
1733
+ export interface CreateDecisionRecipientInput {
1590
1734
  recipientActorId: Uuid;
1591
- inboxState?: NotificationInboxState;
1592
- workState?: NotificationWorkState;
1735
+ inboxState?: DecisionInboxState;
1736
+ workState?: DecisionWorkState;
1593
1737
  snoozedUntil?: Date;
1594
1738
  }
1595
- export interface CreateNotificationInput {
1739
+ export interface CreateDecisionInput {
1596
1740
  senderActorId?: Uuid;
1597
1741
  rootActorId?: Uuid;
1598
1742
  triggeredByActorId?: Uuid;
1599
- kind: NotificationKind;
1600
- type: NotificationType;
1601
- subject?: NotificationSubject;
1743
+ kind: DecisionKind;
1744
+ type: DecisionType;
1602
1745
  title: string;
1603
1746
  summary?: string;
1604
- payload?: Record<string, unknown>;
1605
- priority?: NotificationPriority;
1606
- sensitivity?: NotificationSensitivity;
1747
+ why?: string;
1748
+ change?: string;
1749
+ questions?: DecisionQuestions;
1750
+ links?: DecisionLink[];
1751
+ /** Absent: `decision:<id of this decision>`. */
1607
1752
  threadKey?: string;
1753
+ payload?: Record<string, unknown>;
1608
1754
  idempotencyKey?: string;
1609
- expiresAt?: Date;
1610
- recipients: CreateNotificationRecipientInput[];
1755
+ recipients: CreateDecisionRecipientInput[];
1756
+ }
1757
+ /** The one conditional answer write (§ 3, Answer immutability). */
1758
+ export interface DecisionAnswerWrite {
1759
+ answer: DecisionAnswer;
1760
+ /** Absent only when the source recorded nobody (a part closed before answerers were stamped). */
1761
+ answeredBy?: Uuid;
1762
+ effect?: string;
1763
+ }
1764
+ /**
1765
+ * How a decision whose source is elsewhere (an agent's part, D10) closes:
1766
+ * answered, with what the part says was answered, or withdrawn, or expired.
1767
+ */
1768
+ export type DecisionSettlement = ({
1769
+ workState: "completed";
1770
+ } & DecisionAnswerWrite) | {
1771
+ workState: "dismissed" | "expired";
1772
+ };
1773
+ /** The payload every agent decision carries: what its answer routes back to. */
1774
+ export interface AgentDecisionPayload {
1775
+ sessionId: string;
1776
+ /** `humanRequestId(part)`: the tool call id for a question, else the approval id, else the tool call id. */
1777
+ requestId: string;
1778
+ toolCallId: string;
1779
+ toolName: string;
1780
+ definitionId?: string;
1781
+ /** `request_setup` only: the first item's name (catalog id, key, site or login name). */
1782
+ connector?: string;
1783
+ /**
1784
+ * `harness`: raised by a harness host tool (spec § 4.2). No session part
1785
+ * waits on it: the decision is the source, and its answer starts the next
1786
+ * harness turn.
1787
+ */
1788
+ lane?: "harness";
1611
1789
  }
1612
1790
  //#endregion
1613
1791
  //#region src/connectors/trigger-match.d.ts
@@ -1866,12 +2044,12 @@ export declare const githubTriggerMatchSchema: z$2.ZodPipe<z$2.ZodObject<{
1866
2044
  check: "check";
1867
2045
  push: "push";
1868
2046
  ref: "ref";
2047
+ review: "review";
1869
2048
  pull_request: "pull_request";
1870
2049
  release: "release";
1871
2050
  discussion: "discussion";
1872
2051
  repository: "repository";
1873
2052
  issue: "issue";
1874
- review: "review";
1875
2053
  comment: "comment";
1876
2054
  workflow: "workflow";
1877
2055
  project_item: "project_item";
@@ -2041,9 +2219,21 @@ export declare const githubTriggerMatchSchema: z$2.ZodPipe<z$2.ZodObject<{
2041
2219
  field: "refType";
2042
2220
  value: "tag" | "branch";
2043
2221
  })[];
2222
+ } | {
2223
+ family: "review";
2224
+ actions: ("edited" | "submitted" | "dismissed")[];
2225
+ repositories: string[];
2226
+ sender: GithubTriggerSender;
2227
+ conditions: ({
2228
+ field: "prAuthor";
2229
+ value: string;
2230
+ } | {
2231
+ field: "reviewState";
2232
+ value: "approved" | "commented" | "changes_requested";
2233
+ })[];
2044
2234
  } | {
2045
2235
  family: "pull_request";
2046
- actions: ("opened" | "edited" | "closed" | "reopened" | "labeled" | "assigned" | "ready_for_review" | "synchronize" | "review_requested" | "merged" | "converted_to_draft")[];
2236
+ actions: ("closed" | "opened" | "edited" | "reopened" | "labeled" | "assigned" | "ready_for_review" | "synchronize" | "review_requested" | "merged" | "converted_to_draft")[];
2047
2237
  repositories: string[];
2048
2238
  sender: GithubTriggerSender;
2049
2239
  conditions: ({
@@ -2080,7 +2270,7 @@ export declare const githubTriggerMatchSchema: z$2.ZodPipe<z$2.ZodObject<{
2080
2270
  })[];
2081
2271
  } | {
2082
2272
  family: "discussion";
2083
- actions: ("closed" | "labeled" | "created" | "commented" | "answered")[];
2273
+ actions: ("closed" | "answered" | "labeled" | "created" | "commented")[];
2084
2274
  repositories: string[];
2085
2275
  sender: GithubTriggerSender;
2086
2276
  conditions: ({
@@ -2103,7 +2293,7 @@ export declare const githubTriggerMatchSchema: z$2.ZodPipe<z$2.ZodObject<{
2103
2293
  conditions: never[];
2104
2294
  } | {
2105
2295
  family: "issue";
2106
- actions: ("opened" | "edited" | "closed" | "reopened" | "labeled" | "unlabeled" | "assigned" | "unassigned" | "milestoned" | "demilestoned" | "transferred" | "pinned")[];
2296
+ actions: ("closed" | "opened" | "edited" | "reopened" | "labeled" | "unlabeled" | "assigned" | "unassigned" | "milestoned" | "demilestoned" | "transferred" | "pinned")[];
2107
2297
  repositories: string[];
2108
2298
  sender: GithubTriggerSender;
2109
2299
  conditions: ({
@@ -2128,18 +2318,6 @@ export declare const githubTriggerMatchSchema: z$2.ZodPipe<z$2.ZodObject<{
2128
2318
  field: "issueType";
2129
2319
  value: string;
2130
2320
  })[];
2131
- } | {
2132
- family: "review";
2133
- actions: ("edited" | "submitted" | "dismissed")[];
2134
- repositories: string[];
2135
- sender: GithubTriggerSender;
2136
- conditions: ({
2137
- field: "prAuthor";
2138
- value: string;
2139
- } | {
2140
- field: "reviewState";
2141
- value: "approved" | "commented" | "changes_requested";
2142
- })[];
2143
2321
  } | {
2144
2322
  family: "comment";
2145
2323
  actions: ("deleted" | "edited" | "created")[];
@@ -2196,7 +2374,7 @@ export declare const githubTriggerMatchSchema: z$2.ZodPipe<z$2.ZodObject<{
2196
2374
  value: "draft" | "pull_request" | "issue";
2197
2375
  })[];
2198
2376
  }, {
2199
- family: "check" | "push" | "ref" | "pull_request" | "release" | "discussion" | "repository" | "issue" | "review" | "comment" | "workflow" | "project_item";
2377
+ family: "check" | "push" | "ref" | "review" | "pull_request" | "release" | "discussion" | "repository" | "issue" | "comment" | "workflow" | "project_item";
2200
2378
  actions: string[];
2201
2379
  repositories: string[];
2202
2380
  sender: "any" | "me" | "human" | {
@@ -2417,12 +2595,12 @@ export declare const connectorTriggerMatchSchema: z$2.ZodUnion<readonly [z$2.Zod
2417
2595
  check: "check";
2418
2596
  push: "push";
2419
2597
  ref: "ref";
2598
+ review: "review";
2420
2599
  pull_request: "pull_request";
2421
2600
  release: "release";
2422
2601
  discussion: "discussion";
2423
2602
  repository: "repository";
2424
2603
  issue: "issue";
2425
- review: "review";
2426
2604
  comment: "comment";
2427
2605
  workflow: "workflow";
2428
2606
  project_item: "project_item";
@@ -2592,9 +2770,21 @@ export declare const connectorTriggerMatchSchema: z$2.ZodUnion<readonly [z$2.Zod
2592
2770
  field: "refType";
2593
2771
  value: "tag" | "branch";
2594
2772
  })[];
2773
+ } | {
2774
+ family: "review";
2775
+ actions: ("edited" | "submitted" | "dismissed")[];
2776
+ repositories: string[];
2777
+ sender: GithubTriggerSender;
2778
+ conditions: ({
2779
+ field: "prAuthor";
2780
+ value: string;
2781
+ } | {
2782
+ field: "reviewState";
2783
+ value: "approved" | "commented" | "changes_requested";
2784
+ })[];
2595
2785
  } | {
2596
2786
  family: "pull_request";
2597
- actions: ("opened" | "edited" | "closed" | "reopened" | "labeled" | "assigned" | "ready_for_review" | "synchronize" | "review_requested" | "merged" | "converted_to_draft")[];
2787
+ actions: ("closed" | "opened" | "edited" | "reopened" | "labeled" | "assigned" | "ready_for_review" | "synchronize" | "review_requested" | "merged" | "converted_to_draft")[];
2598
2788
  repositories: string[];
2599
2789
  sender: GithubTriggerSender;
2600
2790
  conditions: ({
@@ -2631,7 +2821,7 @@ export declare const connectorTriggerMatchSchema: z$2.ZodUnion<readonly [z$2.Zod
2631
2821
  })[];
2632
2822
  } | {
2633
2823
  family: "discussion";
2634
- actions: ("closed" | "labeled" | "created" | "commented" | "answered")[];
2824
+ actions: ("closed" | "answered" | "labeled" | "created" | "commented")[];
2635
2825
  repositories: string[];
2636
2826
  sender: GithubTriggerSender;
2637
2827
  conditions: ({
@@ -2654,7 +2844,7 @@ export declare const connectorTriggerMatchSchema: z$2.ZodUnion<readonly [z$2.Zod
2654
2844
  conditions: never[];
2655
2845
  } | {
2656
2846
  family: "issue";
2657
- actions: ("opened" | "edited" | "closed" | "reopened" | "labeled" | "unlabeled" | "assigned" | "unassigned" | "milestoned" | "demilestoned" | "transferred" | "pinned")[];
2847
+ actions: ("closed" | "opened" | "edited" | "reopened" | "labeled" | "unlabeled" | "assigned" | "unassigned" | "milestoned" | "demilestoned" | "transferred" | "pinned")[];
2658
2848
  repositories: string[];
2659
2849
  sender: GithubTriggerSender;
2660
2850
  conditions: ({
@@ -2679,18 +2869,6 @@ export declare const connectorTriggerMatchSchema: z$2.ZodUnion<readonly [z$2.Zod
2679
2869
  field: "issueType";
2680
2870
  value: string;
2681
2871
  })[];
2682
- } | {
2683
- family: "review";
2684
- actions: ("edited" | "submitted" | "dismissed")[];
2685
- repositories: string[];
2686
- sender: GithubTriggerSender;
2687
- conditions: ({
2688
- field: "prAuthor";
2689
- value: string;
2690
- } | {
2691
- field: "reviewState";
2692
- value: "approved" | "commented" | "changes_requested";
2693
- })[];
2694
2872
  } | {
2695
2873
  family: "comment";
2696
2874
  actions: ("deleted" | "edited" | "created")[];
@@ -2747,7 +2925,7 @@ export declare const connectorTriggerMatchSchema: z$2.ZodUnion<readonly [z$2.Zod
2747
2925
  value: "draft" | "pull_request" | "issue";
2748
2926
  })[];
2749
2927
  }, {
2750
- family: "check" | "push" | "ref" | "pull_request" | "release" | "discussion" | "repository" | "issue" | "review" | "comment" | "workflow" | "project_item";
2928
+ family: "check" | "push" | "ref" | "review" | "pull_request" | "release" | "discussion" | "repository" | "issue" | "comment" | "workflow" | "project_item";
2751
2929
  actions: string[];
2752
2930
  repositories: string[];
2753
2931
  sender: "any" | "me" | "human" | {
@@ -3065,8 +3243,6 @@ export type NormalizedConnectorEvent = NormalizedGithubEvent | NormalizedSlackEv
3065
3243
  //#region src/constants/environment-harnesses.d.ts
3066
3244
  /** An environment name's longest accepted length, trimmed (environments spec §1.1). */
3067
3245
  export declare const ENVIRONMENT_NAME_MAX_CHARS = 100;
3068
- /** A setup script's longest accepted length (spec §2.2). */
3069
- export declare const SETUP_SCRIPT_MAX_CHARS = 64000;
3070
3246
  /**
3071
3247
  * The harness working directory, relative to the sandbox's default one
3072
3248
  * (`/vercel/sandbox`): the harness template joins it, and `~` is never used
@@ -3291,7 +3467,7 @@ export interface MemoryUpdateMetadata {
3291
3467
  * Typed agent references: `<kind>:<id>`. The one parser shared by the runtime
3292
3468
  * verbs and the UI tool views; it never guesses a kind from a bare id.
3293
3469
  */
3294
- export declare const REFERENCE_KINDS: readonly ["record", "document", "file", "email", "thread", "event", "memory", "skill", "schema", "user", "guide", "bundle", "draft"];
3470
+ export declare const REFERENCE_KINDS: readonly ["record", "document", "file", "email", "thread", "event", "memory", "skill", "schema", "user", "guide", "bundle", "draft", "decision"];
3295
3471
  export type ReferenceKind = (typeof REFERENCE_KINDS)[number];
3296
3472
  export type Reference = {
3297
3473
  kind: ReferenceKind;
@@ -3484,7 +3660,7 @@ export declare const NATIVE_TOOL_GROUP_CATALOG: {
3484
3660
  readonly icon: "globe";
3485
3661
  readonly tools: readonly ["browser_launch"];
3486
3662
  };
3487
- readonly notifications: {
3663
+ readonly decisions: {
3488
3664
  readonly icon: "bell";
3489
3665
  readonly tools: readonly ["notify"];
3490
3666
  };
@@ -3582,7 +3758,7 @@ export declare const GRANT_ENABLES: {
3582
3758
  readonly capabilities: readonly [];
3583
3759
  readonly tools: readonly ["browser_launch"];
3584
3760
  };
3585
- readonly notifications: {
3761
+ readonly decisions: {
3586
3762
  readonly kinds: readonly [];
3587
3763
  readonly capabilities: readonly [];
3588
3764
  readonly tools: readonly ["notify"];
@@ -3707,7 +3883,7 @@ export declare function canonicalToolGroups<T extends string>(grants: readonly T
3707
3883
  //#endregion
3708
3884
  //#region src/types/agent-tool-grants.d.ts
3709
3885
  /** Native tool groups an agent may be granted, in catalogue order. */
3710
- export declare const NATIVE_TOOL_GROUPS: readonly ["sandbox", "web", "image", "memory", "bulk", "activity", "orchestration", "host", "cloud-browser", "notifications"];
3886
+ export declare const NATIVE_TOOL_GROUPS: readonly ["sandbox", "web", "image", "memory", "bulk", "activity", "orchestration", "host", "cloud-browser", "decisions"];
3711
3887
  export type NativeToolGroup = (typeof NATIVE_TOOL_GROUPS)[number];
3712
3888
  /** The tool that starts the session's cloud browser — read by the runtime and the chat. */
3713
3889
  export declare const BROWSER_LAUNCH_TOOL_NAME = "browser_launch";
@@ -3901,6 +4077,14 @@ export type AgentSessionMode = "interactive" | "autonomous";
3901
4077
  */
3902
4078
  export declare const AGENT_SESSION_LIST_ORDERS: readonly ["createdAt", "lastActivity"];
3903
4079
  export type AgentSessionListOrder = (typeof AGENT_SESSION_LIST_ORDERS)[number];
4080
+ /**
4081
+ * Whose conversations a session list reads (spec 2026-10-27 §4.4). `mine` is
4082
+ * everyone's own history, the default and the access clause as ever. `shared`
4083
+ * is the root conversations shared with the caller. `team` is every root
4084
+ * conversation of the tenant, for a holder of `supervision` only (403 else).
4085
+ */
4086
+ export declare const AGENT_SESSION_PROVENANCES: readonly ["mine", "shared", "team"];
4087
+ export type AgentSessionProvenance = (typeof AGENT_SESSION_PROVENANCES)[number];
3904
4088
  /** Whether a class of tool call is confirmed by a human or executed straight away. */
3905
4089
  export type ApprovalMode = "ask" | "auto";
3906
4090
  /**
@@ -4107,6 +4291,26 @@ export interface AgentTriggerDefinition {
4107
4291
  createdAt: Date;
4108
4292
  updatedAt: Date;
4109
4293
  }
4294
+ /** Who a routine in audience mode runs for (spec 2026-10-27 §4.2). */
4295
+ export interface RoutineAudience {
4296
+ /** Every member of the workspace. */
4297
+ workspace: boolean;
4298
+ roleIds: string[];
4299
+ actorIds: string[];
4300
+ }
4301
+ /** Why a person is in a routine audience; the most specific reason wins: the armer, then a named person, a role, the whole workspace. */
4302
+ export type RoutineAudienceSource = "workspace" | `role:${string}` | "direct" | "armer";
4303
+ /** One person a supervised audience resolves to, with why. */
4304
+ export interface RoutineAudienceMember {
4305
+ actorId: string;
4306
+ source: RoutineAudienceSource;
4307
+ }
4308
+ /** `GET /agents/definitions/:id/audience/preview`: the audience resolved now (spec 2026-10-27 §5). */
4309
+ export interface RoutineAudiencePreview {
4310
+ people: Array<RoutineAudienceMember & {
4311
+ missingConnections: string[];
4312
+ }>;
4313
+ }
4110
4314
  export interface AgentSchedule {
4111
4315
  cron: string;
4112
4316
  timezone?: string;
@@ -4118,6 +4322,8 @@ export interface AgentSchedule {
4118
4322
  * routine. Writes that replace the schedule keep it when they omit it.
4119
4323
  */
4120
4324
  runFor?: "armer" | "audience";
4325
+ /** Read only when `runFor === "audience"`: absent keeps the people the routine is shared with. */
4326
+ audience?: RoutineAudience;
4121
4327
  /**
4122
4328
  * Whether an occurrence continues the conversation the last one opened
4123
4329
  * (#5719), under the guards of a threaded trigger fire (#4914): `true`
@@ -4283,6 +4489,12 @@ export interface AgentDefinition {
4283
4489
  scheduleNextRunAt?: Date;
4284
4490
  /** Read-only, computed for the reader by the query (spec 2026-10-08 §4.4). */
4285
4491
  viewerAccess?: ViewerAccess;
4492
+ /**
4493
+ * Read-only, computed for the reader by the query: one of their actors is a
4494
+ * person the supervised audience resolves to, its armer counted (spec
4495
+ * 2026-10-27 §4.2, the fan-out's own membership definition).
4496
+ */
4497
+ viewerInAudience?: boolean;
4286
4498
  /** Read-only: the number of manual grants on a private definition (0 on a workspace one). */
4287
4499
  sharedWithCount?: number;
4288
4500
  /** The harness that drives it; absent = the Standards engine (environments spec §1.4). */
@@ -4410,6 +4622,34 @@ export interface AgentSession {
4410
4622
  environmentId?: string;
4411
4623
  /** Server-managed resume state of the harness (its own session id and the like). */
4412
4624
  harnessState?: unknown;
4625
+ /**
4626
+ * Set only on a read that reached the conversation past its definition's
4627
+ * visibility (supervision, spec 2026-10-27 §4.4) and on every row of a
4628
+ * `shared` or `team` list: the definition's name and face, never its
4629
+ * configuration. Absent when the reader may open the conversation itself
4630
+ * (a `mine` list), or when the definition is gone.
4631
+ */
4632
+ definitionAppearance?: AgentSessionDefinitionAppearance;
4633
+ /**
4634
+ * Set when the reader reached another person's conversation through the
4635
+ * read clause (a share of its root, or supervision; spec 2026-10-27 §4.4),
4636
+ * on one session's read and on each such row of a `shared` or `team` list,
4637
+ * whatever its definition. A supervised read is audited, so a client reads
4638
+ * such a session once per open and never writes to it.
4639
+ */
4640
+ readThrough?: true;
4641
+ /**
4642
+ * Set only on the rows of a `lastActivity` list: this row's keyset position,
4643
+ * opaque. The last row's, passed back as `cursor`, reads the next page.
4644
+ */
4645
+ listCursor?: string;
4646
+ }
4647
+ /** What a conversation's reader learns of a definition it cannot see. */
4648
+ export interface AgentSessionDefinitionAppearance {
4649
+ name: string;
4650
+ kind: AgentDefinitionKind;
4651
+ label?: string;
4652
+ avatar?: AgentAvatar;
4413
4653
  }
4414
4654
  /**
4415
4655
  * Lifecycle of a persisted tool part. The three `approval-*` values are the
@@ -4725,6 +4965,12 @@ export interface AgentSessionHistoryPage {
4725
4965
  nextCursor: string | null;
4726
4966
  hasMore: boolean;
4727
4967
  committedSeq: number;
4968
+ /**
4969
+ * The session's state as of this page. A reader of another person's
4970
+ * conversation (spec 2026-10-27 §4.4) has no stream and reads the session
4971
+ * row once per open: this is how its view learns a turn started or ended.
4972
+ */
4973
+ sessionState?: SessionState;
4728
4974
  }
4729
4975
  /** Canonical persisted-message order: creation time ASC, then id ASC. */
4730
4976
  export declare function compareAgentSessionMessages(left: Pick<AgentSessionMessage, "createdAt" | "id">, right: Pick<AgentSessionMessage, "createdAt" | "id">): number;
@@ -7624,9 +7870,9 @@ export interface EnvVarScope {
7624
7870
  id: string;
7625
7871
  }
7626
7872
  /**
7627
- * Returned by list endpoints.
7628
- * The encrypted value is NEVER included — only metadata.
7629
- * `isSet: true` is the only indicator that a value exists.
7873
+ * Returned by list endpoints. The encrypted value is NEVER included.
7874
+ * `value` is the readable text of a non-sensitive variable, `null` for a
7875
+ * sensitive one; `isSet: true` says a value exists either way.
7630
7876
  */
7631
7877
  export interface EnvVarEntry {
7632
7878
  id: string;
@@ -7634,6 +7880,7 @@ export interface EnvVarEntry {
7634
7880
  key: string;
7635
7881
  isSensitive: boolean;
7636
7882
  isSet: true;
7883
+ value: string | null;
7637
7884
  scopeType: string;
7638
7885
  scopeId: string | null;
7639
7886
  /**
@@ -7679,6 +7926,42 @@ export interface EnvironmentRepositorySource {
7679
7926
  }
7680
7927
  /** Where the background build of an environment stands (environments spec §2.2). */
7681
7928
  export type EnvironmentBuildState = "idle" | "building" | "failed";
7929
+ /**
7930
+ * The image an environment's machine starts from (environments v2 §1):
7931
+ * `code` = `standards-code:default`, `documents` = `standards:default`. A
7932
+ * `standards` environment (no harness) is always `documents`.
7933
+ */
7934
+ export type EnvironmentImage = "code" | "documents";
7935
+ /** The machine's size, `ENVIRONMENT_SIZE_VCPUS` gives its vCPUs (environments v2 §1). */
7936
+ export type EnvironmentSize = "small" | "default" | "large";
7937
+ /**
7938
+ * What the agent's machine may reach (environments v2 §6). `trusted` adds the
7939
+ * package registries to the always-on hosts, `none` keeps only those, `custom`
7940
+ * adds `allow` (domains, an optional `*.` prefix), `full` is unbounded.
7941
+ */
7942
+ export type EnvironmentNetworkPolicy = {
7943
+ mode: "trusted";
7944
+ } | {
7945
+ mode: "full";
7946
+ } | {
7947
+ mode: "none";
7948
+ } | {
7949
+ mode: "custom";
7950
+ allow: string[];
7951
+ };
7952
+ /** A named command a build runs after setup; every one must exit 0 (environments v2 §2). */
7953
+ export interface EnvironmentCheck {
7954
+ name: string;
7955
+ command: string;
7956
+ }
7957
+ /** Where the last build failed (environments v2 §3); `interrupted` = its task stopped running. */
7958
+ export interface EnvironmentBuildFailure {
7959
+ step: "setup" | "bake" | "check" | "publish" | "interrupted";
7960
+ /** The failed check's name, `step: "check"` only. */
7961
+ check?: string;
7962
+ /** `124` when the step hit its time cap. */
7963
+ exitCode?: number;
7964
+ }
7682
7965
  /** An environment as every read returns it. No secret ever leaves the server. */
7683
7966
  export interface Environment {
7684
7967
  id: string;
@@ -7692,6 +7975,18 @@ export interface Environment {
7692
7975
  version: number;
7693
7976
  savedAt?: string;
7694
7977
  buildState: EnvironmentBuildState;
7978
+ /** `null` unless the last build failed. */
7979
+ buildFailure: EnvironmentBuildFailure | null;
7980
+ image: EnvironmentImage;
7981
+ size: EnvironmentSize;
7982
+ networkPolicy: EnvironmentNetworkPolicy;
7983
+ /**
7984
+ * What the machine is made of changed since its last v2 build: a rebuild is
7985
+ * due. Always `false` for a legacy row (`v2BuiltAt: null`).
7986
+ */
7987
+ stale: boolean;
7988
+ /** Last successful v2 build (ISO); `null` = a legacy row, never rebuilt automatically. */
7989
+ v2BuiltAt: string | null;
7695
7990
  /** Names of the captured login-shell variables; their values stay encrypted. */
7696
7991
  shellEnvNames: string[];
7697
7992
  /** Only with `?include=usedBy`. */
@@ -7700,9 +7995,12 @@ export interface Environment {
7700
7995
  conversations: number;
7701
7996
  };
7702
7997
  }
7703
- /** One environment with its setup script and last build log (`GET /environments/:id`). */
7998
+ /** One environment with its scripts, checks and last build log (`GET /environments/:id`). */
7704
7999
  export interface EnvironmentDetail extends Environment {
7705
8000
  setupScript: string;
8001
+ /** Runs every time a copy opens, new or resumed, before the harness. */
8002
+ maintenanceScript: string;
8003
+ checks: EnvironmentCheck[];
7706
8004
  repositories: EnvironmentRepositorySource[];
7707
8005
  buildLog: string;
7708
8006
  }
@@ -7725,12 +8023,12 @@ export interface EnvironmentList {
7725
8023
  /**
7726
8024
  * Type of resource that can be audited
7727
8025
  */
7728
- export declare const AUDIT_RESOURCE_TYPES: readonly ["record", "object", "attribute", "view", "user", "role", "settings", "file", "agent", "bundle", "tenant_invitation", "api_key"];
8026
+ export declare const AUDIT_RESOURCE_TYPES: readonly ["record", "object", "attribute", "view", "user", "role", "settings", "file", "agent", "bundle", "tenant_invitation", "api_key", "agent_session"];
7729
8027
  export type AuditResourceType = (typeof AUDIT_RESOURCE_TYPES)[number];
7730
8028
  /**
7731
8029
  * Actions that can be audited
7732
8030
  */
7733
- export declare const AUDIT_ACTIONS: readonly ["record.created", "record.updated", "record.deleted", "record.restored", "record.purged", "record.access_changed", "agent.access_changed", "object.created", "object.updated", "object.deleted", "attribute.created", "attribute.updated", "attribute.deleted", "view.created", "view.updated", "view.deleted", "bundle.synced", "bundle.removed", "bundle.added", "user.created", "user.invited", "user.updated", "user.deleted", "user.login", "user.logout", "tenant_invitation.created", "tenant_invitation.delivery_failed", "tenant_invitation.resent", "tenant_invitation.revoked", "tenant_invitation.accepted", "role.created", "role.updated", "role.deleted", "role.assigned", "role.revoked", "api_key.detached", "settings.updated", "file.uploaded", "file.updated", "file.deleted"];
8031
+ export declare const AUDIT_ACTIONS: readonly ["record.created", "record.updated", "record.deleted", "record.restored", "record.purged", "record.access_changed", "agent.access_changed", "agent_session.supervised_read", "object.created", "object.updated", "object.deleted", "attribute.created", "attribute.updated", "attribute.deleted", "view.created", "view.updated", "view.deleted", "bundle.synced", "bundle.removed", "bundle.added", "user.created", "user.invited", "user.updated", "user.deleted", "user.login", "user.logout", "tenant_invitation.created", "tenant_invitation.delivery_failed", "tenant_invitation.resent", "tenant_invitation.revoked", "tenant_invitation.accepted", "role.created", "role.updated", "role.deleted", "role.assigned", "role.revoked", "api_key.detached", "settings.updated", "file.uploaded", "file.updated", "file.deleted"];
7734
8032
  export type AuditAction = (typeof AUDIT_ACTIONS)[number];
7735
8033
  /**
7736
8034
  * Actor type - who performed the action
@@ -7937,6 +8235,10 @@ export declare const askQuestionsOutputSchema: z$2.ZodObject<{
7937
8235
  }, z$2.core.$strict>, z$2.ZodObject<{
7938
8236
  text: z$2.ZodString;
7939
8237
  }, z$2.core.$strict>]>>;
8238
+ answeredBy: z$2.ZodOptional<z$2.ZodObject<{
8239
+ id: z$2.ZodString;
8240
+ name: z$2.ZodString;
8241
+ }, z$2.core.$strip>>;
7940
8242
  }, z$2.core.$strip>;
7941
8243
  export type AskQuestionsAnswer = z$2.infer<typeof askQuestionsAnswerSchema>;
7942
8244
  export type AskQuestionsResult = z$2.infer<typeof askQuestionsOutputSchema>;
@@ -7946,13 +8248,23 @@ export type HumanRequestKind = "approval" | "question" | "review";
7946
8248
  /** The fields every tier's tool part carries (persisted part, browser `ToolPartData`). */
7947
8249
  export interface HumanRequestPart {
7948
8250
  name: string;
8251
+ args?: unknown;
7949
8252
  state: ToolPartState;
7950
8253
  approvalId?: string | null;
7951
8254
  approved?: boolean;
7952
8255
  result?: unknown;
7953
8256
  error?: unknown;
7954
8257
  }
7955
- /** The one ladder: an approval id wins, then the tool's family. */
8258
+ /**
8259
+ * A person is asked a question: `ask_questions`, `request_setup`, or a `send`
8260
+ * carrying `questions`. A `send` question is gated by an `approvalId` it never
8261
+ * answers to, so the question test comes before the approval one.
8262
+ */
8263
+ export declare function isQuestionPart(part: {
8264
+ name: string;
8265
+ args?: unknown;
8266
+ }): boolean;
8267
+ /** The one ladder: a question first, then an approval id, then the tool's family. */
7956
8268
  export declare function humanRequestKind(part: HumanRequestPart): HumanRequestKind | null;
7957
8269
  /** A person is being asked and has not decided: what the overview and the sticky zone show. */
7958
8270
  export declare function isAwaitingHuman(part: HumanRequestPart): boolean;
@@ -7962,7 +8274,10 @@ export declare function isAwaitingHuman(part: HumanRequestPart): boolean;
7962
8274
  * guards the refusal window: the decision write records `approved = false` before the closing write lands.
7963
8275
  */
7964
8276
  export declare function isBlocking(part: HumanRequestPart): boolean;
8277
+ /** A question is keyed by its call id, an approval by its approval id. */
7965
8278
  export declare function humanRequestId(part: {
8279
+ name: string;
8280
+ args?: unknown;
7966
8281
  approvalId?: string | null;
7967
8282
  toolCallId: string;
7968
8283
  }): string;
@@ -8669,12 +8984,86 @@ export type PageBlockData = {
8669
8984
  export interface PageData {
8670
8985
  blocks: Record<string, PageBlockData>;
8671
8986
  }
8672
- /** What `POST /pages/:id/data` is asked: the reader's timezone, the record a record page shows. */
8987
+ /** What `POST /screens/page/:id` is asked: the reader's timezone, the record a record page shows. */
8673
8988
  export interface PageDataInput {
8674
8989
  hostRecordId?: string;
8675
8990
  timezone: string;
8676
8991
  }
8677
8992
  //#endregion
8993
+ //#region src/types/screens.d.ts
8994
+ /** What a collection lists before anyone searches or filters it. */
8995
+ export interface CollectionScopeParams {
8996
+ q: string;
8997
+ filters?: FilterState;
8998
+ relationScope?: RelationScope;
8999
+ visibility?: RecordListScope;
9000
+ }
9001
+ /**
9002
+ * The search a collection's id list runs: its scope under the reader's query.
9003
+ * The engine's `collectionIdListRequest` derives it; `screens.collection`
9004
+ * answers it, so a client seeds the id-list cache entry its grid reads.
9005
+ */
9006
+ export interface CollectionIdListParams extends CollectionScopeParams {
9007
+ userFilters?: FilterState;
9008
+ sorts?: SortRule[];
9009
+ }
9010
+ /** One collection's id-list request: the object it lists and the search it runs. */
9011
+ export interface CollectionIdListRequest {
9012
+ object: string;
9013
+ params: CollectionIdListParams;
9014
+ }
9015
+ /** The reader's own query a list opens with: its search, filters and sorts. */
9016
+ export type CollectionScreenReader = Pick<QueryState, "search" | "filters" | "sorts">;
9017
+ /**
9018
+ * What `POST /screens/collection/:objectName` answers: the object, the view
9019
+ * the list opens, its entry tab and, when that tab is a non-kanban
9020
+ * collection, the id list it reads and its first page. A session UI loader:
9021
+ * it pre-fills what the list's own reads would fetch.
9022
+ */
9023
+ export interface CollectionScreen {
9024
+ object: ObjectDefinition;
9025
+ view: ViewRead;
9026
+ /** The entry tab: the main content the request names, else the view's first one. */
9027
+ tab: string;
9028
+ /** `null` when the entry tab is not a collection, or is a kanban. */
9029
+ idList: CollectionIdListRequest | null;
9030
+ /** The id list's first page; `null` exactly when `idList` is. */
9031
+ page: CollectionResponse<ObjectRecord> | null;
9032
+ }
9033
+ /**
9034
+ * What a record's tab strip counts, for the tabs the engine's
9035
+ * `recordTabCounts` names, when its `recordStripShown` draws the strip. A
9036
+ * count the server could not read is absent (`documents`, `meetings` are
9037
+ * `null`); the client then reads it itself.
9038
+ */
9039
+ export interface RecordScreenCounts {
9040
+ /** Each counted collection tab's total, zero included; a tab the reader cannot read is absent. */
9041
+ collections: Record<string, number>;
9042
+ /** The record's drive root items; `null` without a counted documents tab, `documents:read` or a read. */
9043
+ documents: number | null;
9044
+ /**
9045
+ * The record's linked meetings, one count every meetings tab states;
9046
+ * `null` without a meetings tab, a read, or for an archived record (the
9047
+ * meetings route answers it nothing).
9048
+ */
9049
+ meetings: RecordMeetingsCount | null;
9050
+ }
9051
+ /**
9052
+ * What `POST /screens/record/:objectName/:recordId` answers: the object, the
9053
+ * record (archived ones included), its default record view, the objects its
9054
+ * collection tabs read besides the host, and the counts its tab strip draws
9055
+ * (empty when the strip is not drawn). A session UI loader: it pre-fills
9056
+ * what the record page's own reads would fetch.
9057
+ */
9058
+ export interface RecordScreen {
9059
+ object: ObjectDefinition;
9060
+ record: ObjectRecord;
9061
+ view: ViewRead;
9062
+ /** Every distinct non-host object a main or aside collection reads. */
9063
+ targets: ObjectDefinition[];
9064
+ counts: RecordScreenCounts;
9065
+ }
9066
+ //#endregion
8678
9067
  //#region src/types/tenant-settings.d.ts
8679
9068
  /**
8680
9069
  * Tenant-level settings.
@@ -8803,6 +9192,8 @@ export declare const USER_WORK_POSTURES: readonly UserWorkPosture[];
8803
9192
  */
8804
9193
  export declare const CONVERSATION_SURFACES: readonly ["panel", "fullscreen"];
8805
9194
  export type ConversationSurface = (typeof CONVERSATION_SURFACES)[number];
9195
+ /** The most profiles one `POST /users/resolve` reads; a client batches above it in chunks. */
9196
+ export declare const USERS_RESOLVE_MAX_IDS = 200;
8806
9197
  /**
8807
9198
  * User Profile - Represents application user data (authorization)
8808
9199
  *
@@ -8918,7 +9309,7 @@ export interface UpdateUserProfile {
8918
9309
  //#endregion
8919
9310
  //#region src/types/ai-generation.d.ts
8920
9311
  /** Supported generator types in V1. */
8921
- export type AIGenerationType = "regex" | "formula" | "filter";
9312
+ export type AIGenerationType = "regex" | "formula" | "filter" | "sort";
8922
9313
  /** Request payload for a regex generation. */
8923
9314
  export interface RegexGenerationInput {
8924
9315
  /** Natural-language description of what to validate. */
@@ -8976,11 +9367,30 @@ export interface FilterGenerationInput {
8976
9367
  /** Attributes a rule may reference. */
8977
9368
  attributes: FilterGenerationAttribute[];
8978
9369
  }
9370
+ /** An attribute the sort generator may order by: one the view can sort on. */
9371
+ export interface SortGenerationAttribute {
9372
+ id: string;
9373
+ /** Technical name — what a sort rule references. */
9374
+ name: string;
9375
+ /** Human label — what the person's sentence is likely to use. */
9376
+ label: string;
9377
+ type: string;
9378
+ }
9379
+ /** Request payload for a sort generation (#6269). */
9380
+ export interface SortGenerationInput {
9381
+ /** Natural-language description of the order. */
9382
+ description: string;
9383
+ /** Label of the object being sorted, for context. */
9384
+ objectLabel: string;
9385
+ /** Attributes a sort rule may reference. */
9386
+ attributes: SortGenerationAttribute[];
9387
+ }
8979
9388
  /** Map from generator type to its input payload. */
8980
9389
  export interface AIGenerationInputMap {
8981
9390
  regex: RegexGenerationInput;
8982
9391
  formula: FormulaGenerationInput;
8983
9392
  filter: FilterGenerationInput;
9393
+ sort: SortGenerationInput;
8984
9394
  }
8985
9395
  /** Token usage returned to the caller (mirrors AI SDK usage). */
8986
9396
  export interface AIGenerationUsage {
@@ -9033,8 +9443,6 @@ export declare function declaredImageRequests<T>(model: {
9033
9443
  readonly formats: readonly ImageFormat[];
9034
9444
  readonly requests: Readonly<Partial<Record<ImageFormat, T>>>;
9035
9445
  }): Partial<Record<ImageFormat, T>>;
9036
- /** Image attempts carry the shared usage cost; kept as a name for existing callers. */
9037
- export type ImageCost = UsageCost;
9038
9446
  export interface GenerateImageInput {
9039
9447
  prompt: string;
9040
9448
  name: string;
@@ -9068,7 +9476,7 @@ export interface SessionImageUsage {
9068
9476
  requestedModelId: string;
9069
9477
  executedModelId: string | null;
9070
9478
  provider: string | null;
9071
- cost: ImageCost;
9479
+ cost: UsageCost;
9072
9480
  }[];
9073
9481
  }
9074
9482
  //#endregion
@@ -9438,6 +9846,30 @@ export declare function getSingleAttributeFromExpression(template: string): stri
9438
9846
  */
9439
9847
  export declare function getEditableLabelAttribute(labelExpression: string, attributes: Attribute[]): Attribute | null;
9440
9848
  //#endregion
9849
+ //#region src/constants/environments.d.ts
9850
+ /** Every image an environment can choose (environments v2 §1). */
9851
+ export declare const ENVIRONMENT_IMAGES: readonly ["code", "documents"];
9852
+ /** Every size an environment can choose (environments v2 §1). */
9853
+ export declare const ENVIRONMENT_SIZES: readonly ["small", "default", "large"];
9854
+ /** A size's vCPUs, the machine's `resources.vcpus` (environments v2 §1). */
9855
+ export declare const ENVIRONMENT_SIZE_VCPUS: Readonly<Record<EnvironmentSize, number>>;
9856
+ /** Memory per vCPU on the machine, in GB (environments v2 §1). */
9857
+ export declare const ENVIRONMENT_MEMORY_GB_PER_VCPU = 2;
9858
+ /** The prefix of a build log's step header line: `── setup`, `── check: lint`. */
9859
+ export declare const ENVIRONMENT_BUILD_LOG_STEP_PREFIX = "── ";
9860
+ /** A setup or maintenance script's largest accepted size, in UTF-8 bytes (environments v2 §2). */
9861
+ export declare const ENVIRONMENT_SCRIPT_MAX_BYTES = 65536;
9862
+ /** At most this many checks per environment (environments v2 §2). */
9863
+ export declare const ENVIRONMENT_CHECKS_MAX = 10;
9864
+ /** A check name's longest accepted length; names are unique per environment. */
9865
+ export declare const ENVIRONMENT_CHECK_NAME_MAX_CHARS = 40;
9866
+ /** A check command's longest accepted length. */
9867
+ export declare const ENVIRONMENT_CHECK_COMMAND_MAX_CHARS = 4096;
9868
+ /** At most this many domains in a `custom` network policy (environments v2 §6). */
9869
+ export declare const ENVIRONMENT_NETWORK_ALLOW_MAX = 100;
9870
+ /** A string's size in UTF-8 bytes, the unit of `ENVIRONMENT_SCRIPT_MAX_BYTES`. */
9871
+ export declare function utf8ByteLength(value: string): number;
9872
+ //#endregion
9441
9873
  //#region src/constants/email-categories.d.ts
9442
9874
  export type SystemEmailCategoryKey = "direct" | "transactional" | "notifications" | "newsletters" | "marketing";
9443
9875
  export interface SystemEmailCategory {
@@ -11530,13 +11962,14 @@ export declare const HEADING_BLOCK: BlockDefinition<"heading", import("zod").Zod
11530
11962
  readonly description: BlockInput<"text", import("zod").ZodString, true>;
11531
11963
  readonly icon: BlockInput<"text", import("zod").ZodString, true>;
11532
11964
  }>, import("zod/v4/core").$strip>>;
11533
- export declare const INBOX_BLOCK: BlockDefinition<"inbox", import("zod").ZodObject<InputShape<{
11965
+ export declare const DECISIONS_BLOCK: BlockDefinition<"decisions", import("zod").ZodObject<InputShape<{
11534
11966
  readonly kinds: BlockInput<"enum", import("zod").ZodArray<import("zod").ZodEnum<{
11535
- system: "system";
11536
11967
  question: "question";
11537
- fyi: "fyi";
11538
- task: "task";
11968
+ approval: "approval";
11969
+ review: "review";
11539
11970
  handoff: "handoff";
11971
+ report: "report";
11972
+ fyi: "fyi";
11540
11973
  }>>, true>;
11541
11974
  readonly limit: BlockInput<"number", import("zod").ZodNumber, true>;
11542
11975
  }>, import("zod/v4/core").$strip>>;
@@ -11957,13 +12390,14 @@ export declare const NATIVE_BLOCKS: readonly [BlockDefinition<"artifact_preview"
11957
12390
  readonly title: BlockInput<"text", import("zod").ZodString, false>;
11958
12391
  readonly description: BlockInput<"text", import("zod").ZodString, true>;
11959
12392
  readonly icon: BlockInput<"text", import("zod").ZodString, true>;
11960
- }>, import("zod/v4/core").$strip>>, BlockDefinition<"inbox", import("zod").ZodObject<InputShape<{
12393
+ }>, import("zod/v4/core").$strip>>, BlockDefinition<"decisions", import("zod").ZodObject<InputShape<{
11961
12394
  readonly kinds: BlockInput<"enum", import("zod").ZodArray<import("zod").ZodEnum<{
11962
- system: "system";
11963
12395
  question: "question";
11964
- fyi: "fyi";
11965
- task: "task";
12396
+ approval: "approval";
12397
+ review: "review";
11966
12398
  handoff: "handoff";
12399
+ report: "report";
12400
+ fyi: "fyi";
11967
12401
  }>>, true>;
11968
12402
  readonly limit: BlockInput<"number", import("zod").ZodNumber, true>;
11969
12403
  }>, import("zod/v4/core").$strip>>, BlockDefinition<"meetings_upcoming", import("zod").ZodObject<InputShape<{
@@ -12123,8 +12557,8 @@ export declare class CardBuilder<TB> extends BlockContentBuilder {
12123
12557
  /** Shows this record of the card's object instead of the host record. */
12124
12558
  record(id: string): this;
12125
12559
  }
12126
- export declare class InboxBuilder extends BlockContentBuilder {
12127
- kinds(...kinds: [NotificationKind, ...NotificationKind[]]): this;
12560
+ export declare class DecisionsBuilder extends BlockContentBuilder {
12561
+ kinds(...kinds: [DecisionKind, ...DecisionKind[]]): this;
12128
12562
  limit(count: number): this;
12129
12563
  }
12130
12564
  declare class MeetingsUpcomingBuilder extends BlockContentBuilder {
@@ -12149,7 +12583,7 @@ declare function card<TB extends ObjectBuilderLike>(object: TB): CardBuilder<TB>
12149
12583
  declare function card(object?: string): CardBuilder<unknown>;
12150
12584
  /** Markdown, without raw HTML or remote images, with `{{ me }}`, `{{ today }}` and `{{ record }}`. */
12151
12585
  declare function text(markdown: string): BlockContentBuilder;
12152
- declare function inbox(): InboxBuilder;
12586
+ declare function decisions(): DecisionsBuilder;
12153
12587
  declare function meetingsUpcoming(): MeetingsUpcomingBuilder;
12154
12588
  /** The viewer's email threads, newest first; every thread until a verb narrows them. */
12155
12589
  declare function mailbox(): MailboxBuilder;
@@ -12409,7 +12843,7 @@ export declare const content: {
12409
12843
  agenda: typeof agenda;
12410
12844
  card: typeof card;
12411
12845
  text: typeof text;
12412
- inbox: typeof inbox;
12846
+ decisions: typeof decisions;
12413
12847
  meetingsUpcoming: typeof meetingsUpcoming;
12414
12848
  mailbox: typeof mailbox;
12415
12849
  page: typeof page;
@@ -12585,6 +13019,8 @@ export type CollectionSourceAddress = {
12585
13019
  object: string;
12586
13020
  relation: string;
12587
13021
  };
13022
+ /** A content that lists records: a collection, whatever its layout. */
13023
+ export declare function isCollectionContent(content: ViewContentDefinition): content is CollectionContentDefinition;
12588
13024
  /**
12589
13025
  * The only reading of a collection source. Branching on `source.object !== undefined`
12590
13026
  * at a call site treats an inverse address as "every record of the object" — the whole
@@ -13920,6 +14356,27 @@ export type AgentSessionLink = {
13920
14356
  sessionId: string;
13921
14357
  };
13922
14358
  //#endregion
14359
+ //#region src/utils/agent-session-list-cursor.d.ts
14360
+ /**
14361
+ * The keyset position of a session in a `lastActivity` list (spec 2026-10-27
14362
+ * §4.4): its activity instant and its id, the list's two sort keys. The server
14363
+ * issues it on every row of such a list (`AgentSession.listCursor`); a client
14364
+ * passes the last row's back as `cursor` and never reads inside it.
14365
+ *
14366
+ * `at` keeps the store's own precision (Postgres stamps to the microsecond):
14367
+ * a cursor rebuilt from a JS `Date` would round it to the millisecond and skip
14368
+ * the rows written later in that millisecond.
14369
+ */
14370
+ export interface AgentSessionListPosition {
14371
+ /** ISO-8601 UTC instant, `Z`-suffixed, up to six fractional digits. */
14372
+ at: string;
14373
+ id: string;
14374
+ }
14375
+ /** ASCII only (an instant and a uuid), so `btoa` serves both Node and the browser. */
14376
+ export declare function encodeAgentSessionListCursor(position: AgentSessionListPosition): string;
14377
+ /** The position a cursor encodes, or `null` for anything the server never issued. */
14378
+ export declare function decodeAgentSessionListCursor(cursor: string): AgentSessionListPosition | null;
14379
+ //#endregion
13923
14380
  //#region src/validators/agent-message.schema.d.ts
13924
14381
  type AgentDataChunkOptions = {
13925
14382
  id?: string;
@@ -13945,10 +14402,10 @@ export declare const inferenceSpeedSchema: z$2.ZodEnum<{
13945
14402
  }>;
13946
14403
  export declare const inferenceReasoningSchema: z$2.ZodEnum<{
13947
14404
  none: "none";
13948
- low: "low";
13949
- high: "high";
13950
14405
  minimal: "minimal";
14406
+ low: "low";
13951
14407
  medium: "medium";
14408
+ high: "high";
13952
14409
  xhigh: "xhigh";
13953
14410
  }>;
13954
14411
  export declare const inferenceRoutingSchema: z$2.ZodEnum<{
@@ -13979,10 +14436,10 @@ export declare const agentInferencePreferencesSchema: z$2.ZodObject<{
13979
14436
  }>>;
13980
14437
  reasoning: z$2.ZodOptional<z$2.ZodEnum<{
13981
14438
  none: "none";
13982
- low: "low";
13983
- high: "high";
13984
14439
  minimal: "minimal";
14440
+ low: "low";
13985
14441
  medium: "medium";
14442
+ high: "high";
13986
14443
  xhigh: "xhigh";
13987
14444
  }>>;
13988
14445
  routing: z$2.ZodOptional<z$2.ZodEnum<{
@@ -14016,10 +14473,10 @@ export declare const agentSessionInferenceOverridesInputSchema: z$2.ZodObject<{
14016
14473
  }>>;
14017
14474
  reasoning: z$2.ZodOptional<z$2.ZodEnum<{
14018
14475
  none: "none";
14019
- low: "low";
14020
- high: "high";
14021
14476
  minimal: "minimal";
14477
+ low: "low";
14022
14478
  medium: "medium";
14479
+ high: "high";
14023
14480
  xhigh: "xhigh";
14024
14481
  }>>;
14025
14482
  imageModel: z$2.ZodOptional<z$2.ZodString>;
@@ -14052,10 +14509,10 @@ export declare const agentSessionInferenceOverridesSchema: z$2.ZodObject<{
14052
14509
  }>>;
14053
14510
  reasoning: z$2.ZodOptional<z$2.ZodEnum<{
14054
14511
  none: "none";
14055
- low: "low";
14056
- high: "high";
14057
14512
  minimal: "minimal";
14513
+ low: "low";
14058
14514
  medium: "medium";
14515
+ high: "high";
14059
14516
  xhigh: "xhigh";
14060
14517
  }>>;
14061
14518
  imageModel: z$2.ZodOptional<z$2.ZodString>;
@@ -14090,10 +14547,10 @@ export declare const sessionInferencePatchSchema: z$2.ZodObject<{
14090
14547
  }>>>;
14091
14548
  reasoning: z$2.ZodOptional<z$2.ZodNullable<z$2.ZodEnum<{
14092
14549
  none: "none";
14093
- low: "low";
14094
- high: "high";
14095
14550
  minimal: "minimal";
14551
+ low: "low";
14096
14552
  medium: "medium";
14553
+ high: "high";
14097
14554
  xhigh: "xhigh";
14098
14555
  }>>>;
14099
14556
  imageModel: z$2.ZodOptional<z$2.ZodNullable<z$2.ZodString>>;
@@ -15005,6 +15462,11 @@ export declare const agentScheduleSchema: z$2.ZodObject<{
15005
15462
  armer: "armer";
15006
15463
  audience: "audience";
15007
15464
  }>>;
15465
+ audience: z$2.ZodOptional<z$2.ZodObject<{
15466
+ workspace: z$2.ZodBoolean;
15467
+ roleIds: z$2.ZodArray<z$2.ZodUUID>;
15468
+ actorIds: z$2.ZodArray<z$2.ZodUUID>;
15469
+ }, z$2.core.$strip>>;
15008
15470
  continueConversation: z$2.ZodOptional<z$2.ZodBoolean>;
15009
15471
  }, z$2.core.$strip>;
15010
15472
  /** `event.thread_ts`: names joined by single dots, no empty segment (#4914). */
@@ -15042,12 +15504,12 @@ export declare const agentTriggerBaseSchema: z$2.ZodObject<{
15042
15504
  check: "check";
15043
15505
  push: "push";
15044
15506
  ref: "ref";
15507
+ review: "review";
15045
15508
  pull_request: "pull_request";
15046
15509
  release: "release";
15047
15510
  discussion: "discussion";
15048
15511
  repository: "repository";
15049
15512
  issue: "issue";
15050
- review: "review";
15051
15513
  comment: "comment";
15052
15514
  workflow: "workflow";
15053
15515
  project_item: "project_item";
@@ -15217,9 +15679,21 @@ export declare const agentTriggerBaseSchema: z$2.ZodObject<{
15217
15679
  field: "refType";
15218
15680
  value: "tag" | "branch";
15219
15681
  })[];
15682
+ } | {
15683
+ family: "review";
15684
+ actions: ("edited" | "submitted" | "dismissed")[];
15685
+ repositories: string[];
15686
+ sender: GithubTriggerSender;
15687
+ conditions: ({
15688
+ field: "prAuthor";
15689
+ value: string;
15690
+ } | {
15691
+ field: "reviewState";
15692
+ value: "approved" | "commented" | "changes_requested";
15693
+ })[];
15220
15694
  } | {
15221
15695
  family: "pull_request";
15222
- actions: ("opened" | "edited" | "closed" | "reopened" | "labeled" | "assigned" | "ready_for_review" | "synchronize" | "review_requested" | "merged" | "converted_to_draft")[];
15696
+ actions: ("closed" | "opened" | "edited" | "reopened" | "labeled" | "assigned" | "ready_for_review" | "synchronize" | "review_requested" | "merged" | "converted_to_draft")[];
15223
15697
  repositories: string[];
15224
15698
  sender: GithubTriggerSender;
15225
15699
  conditions: ({
@@ -15256,7 +15730,7 @@ export declare const agentTriggerBaseSchema: z$2.ZodObject<{
15256
15730
  })[];
15257
15731
  } | {
15258
15732
  family: "discussion";
15259
- actions: ("closed" | "labeled" | "created" | "commented" | "answered")[];
15733
+ actions: ("closed" | "answered" | "labeled" | "created" | "commented")[];
15260
15734
  repositories: string[];
15261
15735
  sender: GithubTriggerSender;
15262
15736
  conditions: ({
@@ -15279,7 +15753,7 @@ export declare const agentTriggerBaseSchema: z$2.ZodObject<{
15279
15753
  conditions: never[];
15280
15754
  } | {
15281
15755
  family: "issue";
15282
- actions: ("opened" | "edited" | "closed" | "reopened" | "labeled" | "unlabeled" | "assigned" | "unassigned" | "milestoned" | "demilestoned" | "transferred" | "pinned")[];
15756
+ actions: ("closed" | "opened" | "edited" | "reopened" | "labeled" | "unlabeled" | "assigned" | "unassigned" | "milestoned" | "demilestoned" | "transferred" | "pinned")[];
15283
15757
  repositories: string[];
15284
15758
  sender: GithubTriggerSender;
15285
15759
  conditions: ({
@@ -15304,18 +15778,6 @@ export declare const agentTriggerBaseSchema: z$2.ZodObject<{
15304
15778
  field: "issueType";
15305
15779
  value: string;
15306
15780
  })[];
15307
- } | {
15308
- family: "review";
15309
- actions: ("edited" | "submitted" | "dismissed")[];
15310
- repositories: string[];
15311
- sender: GithubTriggerSender;
15312
- conditions: ({
15313
- field: "prAuthor";
15314
- value: string;
15315
- } | {
15316
- field: "reviewState";
15317
- value: "approved" | "commented" | "changes_requested";
15318
- })[];
15319
15781
  } | {
15320
15782
  family: "comment";
15321
15783
  actions: ("deleted" | "edited" | "created")[];
@@ -15372,7 +15834,7 @@ export declare const agentTriggerBaseSchema: z$2.ZodObject<{
15372
15834
  value: "draft" | "pull_request" | "issue";
15373
15835
  })[];
15374
15836
  }, {
15375
- family: "check" | "push" | "ref" | "pull_request" | "release" | "discussion" | "repository" | "issue" | "review" | "comment" | "workflow" | "project_item";
15837
+ family: "check" | "push" | "ref" | "review" | "pull_request" | "release" | "discussion" | "repository" | "issue" | "comment" | "workflow" | "project_item";
15376
15838
  actions: string[];
15377
15839
  repositories: string[];
15378
15840
  sender: "any" | "me" | "human" | {
@@ -15655,9 +16117,21 @@ export declare const agentTriggerSchema: z$2.ZodPipe<z$2.ZodType<{
15655
16117
  field: "refType";
15656
16118
  value: "tag" | "branch";
15657
16119
  })[];
16120
+ } | {
16121
+ family: "review";
16122
+ actions: ("edited" | "submitted" | "dismissed")[];
16123
+ repositories: string[];
16124
+ sender: GithubTriggerSender;
16125
+ conditions: ({
16126
+ field: "prAuthor";
16127
+ value: string;
16128
+ } | {
16129
+ field: "reviewState";
16130
+ value: "approved" | "commented" | "changes_requested";
16131
+ })[];
15658
16132
  } | {
15659
16133
  family: "pull_request";
15660
- actions: ("opened" | "edited" | "closed" | "reopened" | "labeled" | "assigned" | "ready_for_review" | "synchronize" | "review_requested" | "merged" | "converted_to_draft")[];
16134
+ actions: ("closed" | "opened" | "edited" | "reopened" | "labeled" | "assigned" | "ready_for_review" | "synchronize" | "review_requested" | "merged" | "converted_to_draft")[];
15661
16135
  repositories: string[];
15662
16136
  sender: GithubTriggerSender;
15663
16137
  conditions: ({
@@ -15694,7 +16168,7 @@ export declare const agentTriggerSchema: z$2.ZodPipe<z$2.ZodType<{
15694
16168
  })[];
15695
16169
  } | {
15696
16170
  family: "discussion";
15697
- actions: ("closed" | "labeled" | "created" | "commented" | "answered")[];
16171
+ actions: ("closed" | "answered" | "labeled" | "created" | "commented")[];
15698
16172
  repositories: string[];
15699
16173
  sender: GithubTriggerSender;
15700
16174
  conditions: ({
@@ -15717,7 +16191,7 @@ export declare const agentTriggerSchema: z$2.ZodPipe<z$2.ZodType<{
15717
16191
  conditions: never[];
15718
16192
  } | {
15719
16193
  family: "issue";
15720
- actions: ("opened" | "edited" | "closed" | "reopened" | "labeled" | "unlabeled" | "assigned" | "unassigned" | "milestoned" | "demilestoned" | "transferred" | "pinned")[];
16194
+ actions: ("closed" | "opened" | "edited" | "reopened" | "labeled" | "unlabeled" | "assigned" | "unassigned" | "milestoned" | "demilestoned" | "transferred" | "pinned")[];
15721
16195
  repositories: string[];
15722
16196
  sender: GithubTriggerSender;
15723
16197
  conditions: ({
@@ -15742,18 +16216,6 @@ export declare const agentTriggerSchema: z$2.ZodPipe<z$2.ZodType<{
15742
16216
  field: "issueType";
15743
16217
  value: string;
15744
16218
  })[];
15745
- } | {
15746
- family: "review";
15747
- actions: ("edited" | "submitted" | "dismissed")[];
15748
- repositories: string[];
15749
- sender: GithubTriggerSender;
15750
- conditions: ({
15751
- field: "prAuthor";
15752
- value: string;
15753
- } | {
15754
- field: "reviewState";
15755
- value: "approved" | "commented" | "changes_requested";
15756
- })[];
15757
16219
  } | {
15758
16220
  family: "comment";
15759
16221
  actions: ("deleted" | "edited" | "created")[];
@@ -15933,9 +16395,21 @@ export declare const agentTriggerSchema: z$2.ZodPipe<z$2.ZodType<{
15933
16395
  field: "refType";
15934
16396
  value: "tag" | "branch";
15935
16397
  })[];
16398
+ } | {
16399
+ family: "review";
16400
+ actions: ("edited" | "submitted" | "dismissed")[];
16401
+ repositories: string[];
16402
+ sender: GithubTriggerSender;
16403
+ conditions: ({
16404
+ field: "prAuthor";
16405
+ value: string;
16406
+ } | {
16407
+ field: "reviewState";
16408
+ value: "approved" | "commented" | "changes_requested";
16409
+ })[];
15936
16410
  } | {
15937
16411
  family: "pull_request";
15938
- actions: ("opened" | "edited" | "closed" | "reopened" | "labeled" | "assigned" | "ready_for_review" | "synchronize" | "review_requested" | "merged" | "converted_to_draft")[];
16412
+ actions: ("closed" | "opened" | "edited" | "reopened" | "labeled" | "assigned" | "ready_for_review" | "synchronize" | "review_requested" | "merged" | "converted_to_draft")[];
15939
16413
  repositories: string[];
15940
16414
  sender: GithubTriggerSender;
15941
16415
  conditions: ({
@@ -15972,7 +16446,7 @@ export declare const agentTriggerSchema: z$2.ZodPipe<z$2.ZodType<{
15972
16446
  })[];
15973
16447
  } | {
15974
16448
  family: "discussion";
15975
- actions: ("closed" | "labeled" | "created" | "commented" | "answered")[];
16449
+ actions: ("closed" | "answered" | "labeled" | "created" | "commented")[];
15976
16450
  repositories: string[];
15977
16451
  sender: GithubTriggerSender;
15978
16452
  conditions: ({
@@ -15995,7 +16469,7 @@ export declare const agentTriggerSchema: z$2.ZodPipe<z$2.ZodType<{
15995
16469
  conditions: never[];
15996
16470
  } | {
15997
16471
  family: "issue";
15998
- actions: ("opened" | "edited" | "closed" | "reopened" | "labeled" | "unlabeled" | "assigned" | "unassigned" | "milestoned" | "demilestoned" | "transferred" | "pinned")[];
16472
+ actions: ("closed" | "opened" | "edited" | "reopened" | "labeled" | "unlabeled" | "assigned" | "unassigned" | "milestoned" | "demilestoned" | "transferred" | "pinned")[];
15999
16473
  repositories: string[];
16000
16474
  sender: GithubTriggerSender;
16001
16475
  conditions: ({
@@ -16020,18 +16494,6 @@ export declare const agentTriggerSchema: z$2.ZodPipe<z$2.ZodType<{
16020
16494
  field: "issueType";
16021
16495
  value: string;
16022
16496
  })[];
16023
- } | {
16024
- family: "review";
16025
- actions: ("edited" | "submitted" | "dismissed")[];
16026
- repositories: string[];
16027
- sender: GithubTriggerSender;
16028
- conditions: ({
16029
- field: "prAuthor";
16030
- value: string;
16031
- } | {
16032
- field: "reviewState";
16033
- value: "approved" | "commented" | "changes_requested";
16034
- })[];
16035
16497
  } | {
16036
16498
  family: "comment";
16037
16499
  actions: ("deleted" | "edited" | "created")[];
@@ -16212,9 +16674,21 @@ export declare const agentTriggerSchema: z$2.ZodPipe<z$2.ZodType<{
16212
16674
  field: "refType";
16213
16675
  value: "tag" | "branch";
16214
16676
  })[];
16677
+ } | {
16678
+ family: "review";
16679
+ actions: ("edited" | "submitted" | "dismissed")[];
16680
+ repositories: string[];
16681
+ sender: GithubTriggerSender;
16682
+ conditions: ({
16683
+ field: "prAuthor";
16684
+ value: string;
16685
+ } | {
16686
+ field: "reviewState";
16687
+ value: "approved" | "commented" | "changes_requested";
16688
+ })[];
16215
16689
  } | {
16216
16690
  family: "pull_request";
16217
- actions: ("opened" | "edited" | "closed" | "reopened" | "labeled" | "assigned" | "ready_for_review" | "synchronize" | "review_requested" | "merged" | "converted_to_draft")[];
16691
+ actions: ("closed" | "opened" | "edited" | "reopened" | "labeled" | "assigned" | "ready_for_review" | "synchronize" | "review_requested" | "merged" | "converted_to_draft")[];
16218
16692
  repositories: string[];
16219
16693
  sender: GithubTriggerSender;
16220
16694
  conditions: ({
@@ -16251,7 +16725,7 @@ export declare const agentTriggerSchema: z$2.ZodPipe<z$2.ZodType<{
16251
16725
  })[];
16252
16726
  } | {
16253
16727
  family: "discussion";
16254
- actions: ("closed" | "labeled" | "created" | "commented" | "answered")[];
16728
+ actions: ("closed" | "answered" | "labeled" | "created" | "commented")[];
16255
16729
  repositories: string[];
16256
16730
  sender: GithubTriggerSender;
16257
16731
  conditions: ({
@@ -16274,7 +16748,7 @@ export declare const agentTriggerSchema: z$2.ZodPipe<z$2.ZodType<{
16274
16748
  conditions: never[];
16275
16749
  } | {
16276
16750
  family: "issue";
16277
- actions: ("opened" | "edited" | "closed" | "reopened" | "labeled" | "unlabeled" | "assigned" | "unassigned" | "milestoned" | "demilestoned" | "transferred" | "pinned")[];
16751
+ actions: ("closed" | "opened" | "edited" | "reopened" | "labeled" | "unlabeled" | "assigned" | "unassigned" | "milestoned" | "demilestoned" | "transferred" | "pinned")[];
16278
16752
  repositories: string[];
16279
16753
  sender: GithubTriggerSender;
16280
16754
  conditions: ({
@@ -16299,18 +16773,6 @@ export declare const agentTriggerSchema: z$2.ZodPipe<z$2.ZodType<{
16299
16773
  field: "issueType";
16300
16774
  value: string;
16301
16775
  })[];
16302
- } | {
16303
- family: "review";
16304
- actions: ("edited" | "submitted" | "dismissed")[];
16305
- repositories: string[];
16306
- sender: GithubTriggerSender;
16307
- conditions: ({
16308
- field: "prAuthor";
16309
- value: string;
16310
- } | {
16311
- field: "reviewState";
16312
- value: "approved" | "commented" | "changes_requested";
16313
- })[];
16314
16776
  } | {
16315
16777
  family: "comment";
16316
16778
  actions: ("deleted" | "edited" | "created")[];
@@ -16489,9 +16951,21 @@ export declare const agentTriggerSchema: z$2.ZodPipe<z$2.ZodType<{
16489
16951
  field: "refType";
16490
16952
  value: "tag" | "branch";
16491
16953
  })[];
16954
+ } | {
16955
+ family: "review";
16956
+ actions: ("edited" | "submitted" | "dismissed")[];
16957
+ repositories: string[];
16958
+ sender: GithubTriggerSender;
16959
+ conditions: ({
16960
+ field: "prAuthor";
16961
+ value: string;
16962
+ } | {
16963
+ field: "reviewState";
16964
+ value: "approved" | "commented" | "changes_requested";
16965
+ })[];
16492
16966
  } | {
16493
16967
  family: "pull_request";
16494
- actions: ("opened" | "edited" | "closed" | "reopened" | "labeled" | "assigned" | "ready_for_review" | "synchronize" | "review_requested" | "merged" | "converted_to_draft")[];
16968
+ actions: ("closed" | "opened" | "edited" | "reopened" | "labeled" | "assigned" | "ready_for_review" | "synchronize" | "review_requested" | "merged" | "converted_to_draft")[];
16495
16969
  repositories: string[];
16496
16970
  sender: GithubTriggerSender;
16497
16971
  conditions: ({
@@ -16528,7 +17002,7 @@ export declare const agentTriggerSchema: z$2.ZodPipe<z$2.ZodType<{
16528
17002
  })[];
16529
17003
  } | {
16530
17004
  family: "discussion";
16531
- actions: ("closed" | "labeled" | "created" | "commented" | "answered")[];
17005
+ actions: ("closed" | "answered" | "labeled" | "created" | "commented")[];
16532
17006
  repositories: string[];
16533
17007
  sender: GithubTriggerSender;
16534
17008
  conditions: ({
@@ -16551,7 +17025,7 @@ export declare const agentTriggerSchema: z$2.ZodPipe<z$2.ZodType<{
16551
17025
  conditions: never[];
16552
17026
  } | {
16553
17027
  family: "issue";
16554
- actions: ("opened" | "edited" | "closed" | "reopened" | "labeled" | "unlabeled" | "assigned" | "unassigned" | "milestoned" | "demilestoned" | "transferred" | "pinned")[];
17028
+ actions: ("closed" | "opened" | "edited" | "reopened" | "labeled" | "unlabeled" | "assigned" | "unassigned" | "milestoned" | "demilestoned" | "transferred" | "pinned")[];
16555
17029
  repositories: string[];
16556
17030
  sender: GithubTriggerSender;
16557
17031
  conditions: ({
@@ -16576,18 +17050,6 @@ export declare const agentTriggerSchema: z$2.ZodPipe<z$2.ZodType<{
16576
17050
  field: "issueType";
16577
17051
  value: string;
16578
17052
  })[];
16579
- } | {
16580
- family: "review";
16581
- actions: ("edited" | "submitted" | "dismissed")[];
16582
- repositories: string[];
16583
- sender: GithubTriggerSender;
16584
- conditions: ({
16585
- field: "prAuthor";
16586
- value: string;
16587
- } | {
16588
- field: "reviewState";
16589
- value: "approved" | "commented" | "changes_requested";
16590
- })[];
16591
17053
  } | {
16592
17054
  family: "comment";
16593
17055
  actions: ("deleted" | "edited" | "created")[];
@@ -16739,12 +17201,12 @@ export declare const agentTriggerPatchSchema: z$2.ZodObject<{
16739
17201
  check: "check";
16740
17202
  push: "push";
16741
17203
  ref: "ref";
17204
+ review: "review";
16742
17205
  pull_request: "pull_request";
16743
17206
  release: "release";
16744
17207
  discussion: "discussion";
16745
17208
  repository: "repository";
16746
17209
  issue: "issue";
16747
- review: "review";
16748
17210
  comment: "comment";
16749
17211
  workflow: "workflow";
16750
17212
  project_item: "project_item";
@@ -16914,9 +17376,21 @@ export declare const agentTriggerPatchSchema: z$2.ZodObject<{
16914
17376
  field: "refType";
16915
17377
  value: "tag" | "branch";
16916
17378
  })[];
17379
+ } | {
17380
+ family: "review";
17381
+ actions: ("edited" | "submitted" | "dismissed")[];
17382
+ repositories: string[];
17383
+ sender: GithubTriggerSender;
17384
+ conditions: ({
17385
+ field: "prAuthor";
17386
+ value: string;
17387
+ } | {
17388
+ field: "reviewState";
17389
+ value: "approved" | "commented" | "changes_requested";
17390
+ })[];
16917
17391
  } | {
16918
17392
  family: "pull_request";
16919
- actions: ("opened" | "edited" | "closed" | "reopened" | "labeled" | "assigned" | "ready_for_review" | "synchronize" | "review_requested" | "merged" | "converted_to_draft")[];
17393
+ actions: ("closed" | "opened" | "edited" | "reopened" | "labeled" | "assigned" | "ready_for_review" | "synchronize" | "review_requested" | "merged" | "converted_to_draft")[];
16920
17394
  repositories: string[];
16921
17395
  sender: GithubTriggerSender;
16922
17396
  conditions: ({
@@ -16953,7 +17427,7 @@ export declare const agentTriggerPatchSchema: z$2.ZodObject<{
16953
17427
  })[];
16954
17428
  } | {
16955
17429
  family: "discussion";
16956
- actions: ("closed" | "labeled" | "created" | "commented" | "answered")[];
17430
+ actions: ("closed" | "answered" | "labeled" | "created" | "commented")[];
16957
17431
  repositories: string[];
16958
17432
  sender: GithubTriggerSender;
16959
17433
  conditions: ({
@@ -16976,7 +17450,7 @@ export declare const agentTriggerPatchSchema: z$2.ZodObject<{
16976
17450
  conditions: never[];
16977
17451
  } | {
16978
17452
  family: "issue";
16979
- actions: ("opened" | "edited" | "closed" | "reopened" | "labeled" | "unlabeled" | "assigned" | "unassigned" | "milestoned" | "demilestoned" | "transferred" | "pinned")[];
17453
+ actions: ("closed" | "opened" | "edited" | "reopened" | "labeled" | "unlabeled" | "assigned" | "unassigned" | "milestoned" | "demilestoned" | "transferred" | "pinned")[];
16980
17454
  repositories: string[];
16981
17455
  sender: GithubTriggerSender;
16982
17456
  conditions: ({
@@ -17001,18 +17475,6 @@ export declare const agentTriggerPatchSchema: z$2.ZodObject<{
17001
17475
  field: "issueType";
17002
17476
  value: string;
17003
17477
  })[];
17004
- } | {
17005
- family: "review";
17006
- actions: ("edited" | "submitted" | "dismissed")[];
17007
- repositories: string[];
17008
- sender: GithubTriggerSender;
17009
- conditions: ({
17010
- field: "prAuthor";
17011
- value: string;
17012
- } | {
17013
- field: "reviewState";
17014
- value: "approved" | "commented" | "changes_requested";
17015
- })[];
17016
17478
  } | {
17017
17479
  family: "comment";
17018
17480
  actions: ("deleted" | "edited" | "created")[];
@@ -17069,7 +17531,7 @@ export declare const agentTriggerPatchSchema: z$2.ZodObject<{
17069
17531
  value: "draft" | "pull_request" | "issue";
17070
17532
  })[];
17071
17533
  }, {
17072
- family: "check" | "push" | "ref" | "pull_request" | "release" | "discussion" | "repository" | "issue" | "review" | "comment" | "workflow" | "project_item";
17534
+ family: "check" | "push" | "ref" | "review" | "pull_request" | "release" | "discussion" | "repository" | "issue" | "comment" | "workflow" | "project_item";
17073
17535
  actions: string[];
17074
17536
  repositories: string[];
17075
17537
  sender: "any" | "me" | "human" | {
@@ -17502,7 +17964,7 @@ export declare const CORE_PREFERENCES: readonly [PreferenceDeclaration<"workPost
17502
17964
  model: string;
17503
17965
  } | undefined;
17504
17966
  routing?: "auto" | undefined;
17505
- }>, PreferenceDeclaration<"conversationSurface", "panel" | "fullscreen">, PreferenceDeclaration<"mailboxListMode", "threads" | "messages">, PreferenceDeclaration<"home", string | null>, PreferenceDeclaration<"memory.learnFromEmail", boolean>, PreferenceDeclaration<"memory.shareWithTeam", boolean>, PreferenceDeclaration<"notifications.briefingSeenAt", string | null>, PreferenceDeclaration<"notifications.delivery", NotificationDelivery>];
17967
+ }>, PreferenceDeclaration<"conversationSurface", "panel" | "fullscreen">, PreferenceDeclaration<"mailboxListMode", "threads" | "messages">, PreferenceDeclaration<"home", string | null>, PreferenceDeclaration<"memory.learnFromEmail", boolean>, PreferenceDeclaration<"memory.shareWithTeam", boolean>, PreferenceDeclaration<"decisions.seenAt", string | null>, PreferenceDeclaration<"decisions.delivery", DecisionDelivery>];
17506
17968
  export type CorePreference = (typeof CORE_PREFERENCES)[number];
17507
17969
  export type PreferenceKey = CorePreference["key"];
17508
17970
  export type PreferenceValue<Key extends PreferenceKey> = Extract<CorePreference, {