@standards/schema 1.0.0-alpha.434 → 1.0.0-alpha.438

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.
@@ -917,8 +917,12 @@ export declare const DECISION_TITLE_MAX_LENGTH = 120;
917
917
  export declare const DECISION_LINE_MAX_LENGTH = 200;
918
918
  /** The `questions` batch of a `send` (`{ questions: [...] }`), or an approval's tool summary. */
919
919
  export type DecisionQuestions = Readonly<Record<string, unknown>>;
920
- /** Where an answer was given, when not in the app: a chat front's card (spec § 2). */
921
- export type DecisionAnswerOrigin = "slack";
920
+ /**
921
+ * Where an answer was given, when not in the app: a chat front's card (spec
922
+ * § 2), a Slack card or a WhatsApp card on the person's private front (spec
923
+ * 2026-11-09 § 5 "Cards").
924
+ */
925
+ export type DecisionAnswerOrigin = "slack" | "whatsapp";
922
926
  /**
923
927
  * What the answerer chose, as stored: `{ kind: "answers", skipped, answers }`
924
928
  * for a question batch. `via` names where it was given when not in the app;
@@ -3885,6 +3889,13 @@ export declare function isWildcard(ref: Reference): boolean;
3885
3889
  * the scopes differ and a user may connect one without the other. */
3886
3890
  export declare const CONNECTOR_PROVIDER_IDS: readonly ["gmail", "outlook", "google-calendar", "outlook-calendar", "github", "slack"];
3887
3891
  export type ConnectorProviderId = (typeof CONNECTOR_PROVIDER_IDS)[number];
3892
+ /**
3893
+ * Providers a person can chat with an agent on (private fronts): a
3894
+ * workspace's Slack app, and the one WhatsApp number of the Standards
3895
+ * instance, which is no connector.
3896
+ */
3897
+ export declare const CHAT_PROVIDERS: readonly ["slack", "whatsapp"];
3898
+ export type ChatProvider = (typeof CHAT_PROVIDERS)[number];
3888
3899
  /** Providers that sync a mailbox. */
3889
3900
  export type EmailConnectorProviderId = Extract<ConnectorProviderId, "gmail" | "outlook">;
3890
3901
  /** Providers that sync a calendar. */
@@ -4781,6 +4792,7 @@ export declare const agentSessionSchema: z$2.ZodObject<{
4781
4792
  execute: "execute";
4782
4793
  }>;
4783
4794
  focus: z$2.ZodBoolean;
4795
+ personConversation: z$2.ZodBoolean;
4784
4796
  workModeVersion: z$2.ZodNumber;
4785
4797
  version: z$2.ZodNumber;
4786
4798
  loadedToolsets: z$2.ZodArray<z$2.ZodString>;
@@ -4929,6 +4941,7 @@ export declare const setAgentSessionWorkPostureResultSchema: z$2.ZodDiscriminate
4929
4941
  execute: "execute";
4930
4942
  }>;
4931
4943
  focus: z$2.ZodBoolean;
4944
+ personConversation: z$2.ZodBoolean;
4932
4945
  workModeVersion: z$2.ZodNumber;
4933
4946
  version: z$2.ZodNumber;
4934
4947
  loadedToolsets: z$2.ZodArray<z$2.ZodString>;
@@ -5074,6 +5087,7 @@ export declare const setAgentSessionWorkPostureResultSchema: z$2.ZodDiscriminate
5074
5087
  execute: "execute";
5075
5088
  }>;
5076
5089
  focus: z$2.ZodBoolean;
5090
+ personConversation: z$2.ZodBoolean;
5077
5091
  workModeVersion: z$2.ZodNumber;
5078
5092
  version: z$2.ZodNumber;
5079
5093
  loadedToolsets: z$2.ZodArray<z$2.ZodString>;
@@ -6896,6 +6910,7 @@ export declare const agentDefinitionSchema: z$2.ZodObject<{
6896
6910
  maxRetries: z$2.ZodOptional<z$2.ZodNumber>;
6897
6911
  }, z$2.core.$strip>>;
6898
6912
  autoDecide: z$2.ZodOptional<z$2.ZodBoolean>;
6913
+ singleConversation: z$2.ZodOptional<z$2.ZodBoolean>;
6899
6914
  active: z$2.ZodOptional<z$2.ZodBoolean>;
6900
6915
  scheduleNextRunAt: z$2.ZodOptional<z$2.ZodCodec<z$2.ZodISODateTime, z$2.ZodDate>>;
6901
6916
  viewerAccess: z$2.ZodOptional<z$2.ZodEnum<{
@@ -7079,6 +7094,7 @@ export declare const agentSetupResponseSchema: z$2.ZodObject<{
7079
7094
  maxRetries: z$2.ZodOptional<z$2.ZodNumber>;
7080
7095
  }, z$2.core.$strip>>;
7081
7096
  autoDecide: z$2.ZodOptional<z$2.ZodBoolean>;
7097
+ singleConversation: z$2.ZodOptional<z$2.ZodBoolean>;
7082
7098
  active: z$2.ZodOptional<z$2.ZodBoolean>;
7083
7099
  scheduleNextRunAt: z$2.ZodOptional<z$2.ZodCodec<z$2.ZodISODateTime, z$2.ZodDate>>;
7084
7100
  viewerAccess: z$2.ZodOptional<z$2.ZodEnum<{
@@ -14153,6 +14169,12 @@ export interface AIBatchQuestionAnswer {
14153
14169
  * optional; only a chosen option's precision is kept.
14154
14170
  */
14155
14171
  notes?: Record<string, Record<string, string>>;
14172
+ /**
14173
+ * The files the person added on the card to go with the answer, each a
14174
+ * `file:<id>` or `document:<id>` ref; empty when none was. Files the
14175
+ * question itself attached are not among them.
14176
+ */
14177
+ addedFiles?: string[];
14156
14178
  }
14157
14179
  /**
14158
14180
  * Todo item status
@@ -15244,7 +15266,11 @@ export interface RecordAggregateGroup {
15244
15266
  /**
15245
15267
  * The measure over the group's records. With no value to measure, `count`
15246
15268
  * and `sum` read 0; `avg`, `min` and `max` read `null`. `null` too when
15247
- * the answer met several currencies: see `byCurrency`.
15269
+ * the answer met several currencies: see `byCurrency`. A `cumulative` sum
15270
+ * along a date grouping reads the running total of the group's series (its
15271
+ * other key) from the oldest bucket through this one; with no date grouping,
15272
+ * the plain sum. It adds only the groups returned: a `truncated` answer
15273
+ * grouped by a field first leaves the cut groups out of their series.
15248
15274
  */
15249
15275
  value: number | null;
15250
15276
  /**
@@ -15264,12 +15290,13 @@ export interface RecordAggregates {
15264
15290
  groups: RecordAggregateGroup[];
15265
15291
  /**
15266
15292
  * The measure over every matching record, the groups cut by the cap
15267
- * included; `null` as `value`, and `null` when several currencies were met.
15293
+ * included (for `cumulative`, their plain sum); `null` as `value`, and
15294
+ * `null` when several currencies were met.
15268
15295
  */
15269
15296
  total: number | null;
15270
15297
  /**
15271
15298
  * The total per currency, sorted by currency code, present only for a
15272
- * `sum | avg | min | max` over a currency attribute that met more than one
15299
+ * `sum | cumulative | avg | min | max` over a currency attribute that met more than one
15273
15300
  * currency (then `total` and `previous` are `null` and `currency` is absent).
15274
15301
  */
15275
15302
  byCurrency?: CurrencyValue[];
@@ -15287,7 +15314,7 @@ export interface RecordAggregates {
15287
15314
  appliedBucket2?: AggregateBucket;
15288
15315
  /**
15289
15316
  * The currency code (`"USD"`) the measure was taken in: present only for a
15290
- * `sum | avg | min | max` over a currency attribute that met at least one
15317
+ * `sum | cumulative | avg | min | max` over a currency attribute that met at least one
15291
15318
  * record, in the current or the previous period, all in that one currency:
15292
15319
  * write the amounts in it, not in the attribute's `defaultCurrency`. Absent
15293
15320
  * when several were met: the answer is then per currency (`byCurrency`).
@@ -15308,8 +15335,11 @@ export interface RecordAggregates {
15308
15335
  * `truncated` says so.
15309
15336
  */
15310
15337
  export declare const MAX_AGGREGATE_GROUPS = 100;
15311
- /** What an aggregate measures: the records, or a number / currency attribute's values. */
15312
- export declare const AGGREGATE_MEASURES: readonly ["count", "sum", "avg", "min", "max"];
15338
+ /**
15339
+ * What an aggregate measures: the records, or a number / currency attribute's
15340
+ * values. `cumulative` is a sum running along a date grouping, oldest first.
15341
+ */
15342
+ export declare const AGGREGATE_MEASURES: readonly ["count", "sum", "cumulative", "avg", "min", "max"];
15313
15343
  export type AggregateMeasure = (typeof AGGREGATE_MEASURES)[number];
15314
15344
  /** The date groupings, as {@link AggregateBucket} names them. */
15315
15345
  export declare const AGGREGATE_BUCKETS: readonly ["day", "week", "month", "quarter", "year"];
@@ -16862,6 +16892,10 @@ export declare const ASK_QUESTIONS_MAX_BATCH = 4;
16862
16892
  export declare const ASK_QUESTIONS_ANSWER_MAX_LENGTH = 2000;
16863
16893
  /** Most values one multi-select answer may carry: its options plus one "Other". */
16864
16894
  export declare const ASK_QUESTIONS_ANSWER_MAX_VALUES = 50;
16895
+ /** Most files a person may add to one answer: as many as one chat message carries. */
16896
+ export declare const ASK_QUESTIONS_MAX_ADDED_FILES = 10;
16897
+ /** A file a person added to an answer: a stored file or a document, by ref. */
16898
+ export declare const ASK_QUESTIONS_FILE_REF: RegExp;
16865
16899
  /**
16866
16900
  * One answer of an `ask_questions` result, written on the call by the server
16867
16901
  * (#5229). Each carries the option's value AND its label, so the model reads
@@ -16905,6 +16939,7 @@ export declare const askQuestionsOutputSchema: z$2.ZodObject<{
16905
16939
  id: z$2.ZodString;
16906
16940
  name: z$2.ZodString;
16907
16941
  }, z$2.core.$strip>>;
16942
+ addedFiles: z$2.ZodOptional<z$2.ZodArray<z$2.ZodString>>;
16908
16943
  }, z$2.core.$strip>;
16909
16944
  export type AskQuestionsAnswer = z$2.infer<typeof askQuestionsAnswerSchema>;
16910
16945
  export type AskQuestionsResult = z$2.infer<typeof askQuestionsOutputSchema>;
@@ -17271,6 +17306,7 @@ declare const resolvedRecentActivitySchema: z$2.ZodObject<{
17271
17306
  execute: "execute";
17272
17307
  }>;
17273
17308
  focus: z$2.ZodBoolean;
17309
+ personConversation: z$2.ZodBoolean;
17274
17310
  workModeVersion: z$2.ZodNumber;
17275
17311
  version: z$2.ZodNumber;
17276
17312
  loadedToolsets: z$2.ZodArray<z$2.ZodString>;
@@ -22034,6 +22070,7 @@ export declare const METRIC_BLOCK: BlockDefinition<"metric", import("zod").ZodOb
22034
22070
  readonly measure: ListableBlockInput<"enum", import("zod").ZodEnum<{
22035
22071
  avg: "avg";
22036
22072
  count: "count";
22073
+ cumulative: "cumulative";
22037
22074
  max: "max";
22038
22075
  min: "min";
22039
22076
  sum: "sum";
@@ -22153,6 +22190,7 @@ export declare const CHART_BLOCK: BlockDefinition<"chart", import("zod").ZodObje
22153
22190
  readonly measure: ListableBlockInput<"enum", import("zod").ZodEnum<{
22154
22191
  avg: "avg";
22155
22192
  count: "count";
22193
+ cumulative: "cumulative";
22156
22194
  max: "max";
22157
22195
  min: "min";
22158
22196
  sum: "sum";
@@ -22458,6 +22496,7 @@ export declare const NATIVE_BLOCKS: readonly [BlockDefinition<"artifact_preview"
22458
22496
  readonly measure: ListableBlockInput<"enum", import("zod").ZodEnum<{
22459
22497
  avg: "avg";
22460
22498
  count: "count";
22499
+ cumulative: "cumulative";
22461
22500
  max: "max";
22462
22501
  min: "min";
22463
22502
  sum: "sum";
@@ -22576,6 +22615,7 @@ export declare const NATIVE_BLOCKS: readonly [BlockDefinition<"artifact_preview"
22576
22615
  readonly measure: ListableBlockInput<"enum", import("zod").ZodEnum<{
22577
22616
  avg: "avg";
22578
22617
  count: "count";
22618
+ cumulative: "cumulative";
22579
22619
  max: "max";
22580
22620
  min: "min";
22581
22621
  sum: "sum";
@@ -22821,6 +22861,8 @@ declare abstract class Measures<TB, R> {
22821
22861
  protected abstract measured(measure: AggregateMeasure, attribute?: string): R;
22822
22862
  count(): R;
22823
22863
  sum(attribute: MeasurableAttribute<TB>): R;
22864
+ /** The sum running along a date grouping: each period reads the total through it. */
22865
+ cumulative(attribute: MeasurableAttribute<TB>): R;
22824
22866
  avg(attribute: MeasurableAttribute<TB>): R;
22825
22867
  min(attribute: MeasurableAttribute<TB>): R;
22826
22868
  max(attribute: MeasurableAttribute<TB>): R;
@@ -24484,11 +24526,13 @@ export declare const EMAIL_DIRECTIONS: readonly ["inbound", "outbound"];
24484
24526
  export type EmailDirection = (typeof EMAIL_DIRECTIONS)[number];
24485
24527
  export type MailboxReadState = "all" | "unread" | "read";
24486
24528
  /**
24487
- * Where the mailbox looks: the inbox, the drafts, or what the viewer archived
24488
- * or trashed. Read state is not a location: it stays the « Non lues » Filters
24489
- * condition (`readState`), combinable with any of them.
24529
+ * Where the mailbox looks: the inbox, the drafts, what the viewer sent, or
24530
+ * what they archived or trashed. `sent` is a filter, not a place mail is moved
24531
+ * into: the threads holding a message the viewer sent outside the trash,
24532
+ * wherever they sit. Read state is not a location: it stays the « Non lues »
24533
+ * Filters condition (`readState`), combinable with any of them.
24490
24534
  */
24491
- export type MailboxLocation = "inbox" | "drafts" | "archived" | "trash";
24535
+ export type MailboxLocation = "inbox" | "sent" | "drafts" | "archived" | "trash";
24492
24536
  export type ConnectionStatus = (typeof CONNECTION_STATUS_IDS)[number];
24493
24537
  /**
24494
24538
  * One triage gesture on mail (spec 2026-10-25 § 4): read state, or a move to
@@ -24676,6 +24720,12 @@ export type MailboxAccount = z$2.output<typeof mailboxAccountSchema>;
24676
24720
  /** How the mailbox lists mail: one row per conversation, or one row per message. */
24677
24721
  export declare const MAILBOX_LIST_MODES: readonly ["threads", "messages"];
24678
24722
  export type MailboxListMode = (typeof MAILBOX_LIST_MODES)[number];
24723
+ /**
24724
+ * Where an opened mail reads, as Gmail offers: in a `panel` beside the list,
24725
+ * or `fullscreen` in the list's place, walked with the arrow keys.
24726
+ */
24727
+ export declare const MAILBOX_READER_LAYOUTS: readonly ["panel", "fullscreen"];
24728
+ export type MailboxReaderLayout = (typeof MAILBOX_READER_LAYOUTS)[number];
24679
24729
  /** Narrows a wire or form value to a list mode without a cast at the call site. */
24680
24730
  export declare function isMailboxListMode(value: unknown): value is MailboxListMode;
24681
24731
  export declare const mailboxCursorSchema: z$2.ZodObject<{
@@ -29039,7 +29089,7 @@ export declare const CORE_PREFERENCES: readonly [PreferenceDeclaration<"workPost
29039
29089
  model: string;
29040
29090
  } | undefined;
29041
29091
  routing?: "auto" | undefined;
29042
- }>, PreferenceDeclaration<"conversationSurface", "fullscreen" | "panel">, PreferenceDeclaration<"mailboxListMode", "messages" | "threads">, PreferenceDeclaration<"home", string | null>, PreferenceDeclaration<"memory.learnFromEmail", boolean>, PreferenceDeclaration<"memory.shareWithTeam", boolean>, PreferenceDeclaration<"onboarding.completed", boolean>, PreferenceDeclaration<"decisions.seenAt", string | null>, PreferenceDeclaration<"decisions.delivery", DecisionDelivery>];
29092
+ }>, PreferenceDeclaration<"conversationSurface", "fullscreen" | "panel">, PreferenceDeclaration<"mailboxListMode", "messages" | "threads">, PreferenceDeclaration<"mailboxReaderLayout", "fullscreen" | "panel">, PreferenceDeclaration<"home", string | null>, PreferenceDeclaration<"memory.learnFromEmail", boolean>, PreferenceDeclaration<"memory.shareWithTeam", boolean>, PreferenceDeclaration<"onboarding.completed", boolean>, PreferenceDeclaration<"decisions.seenAt", string | null>, PreferenceDeclaration<"decisions.delivery", DecisionDelivery>];
29043
29093
  export type CorePreference = (typeof CORE_PREFERENCES)[number];
29044
29094
  export type PreferenceKey = CorePreference["key"];
29045
29095
  export type PreferenceValue<Key extends PreferenceKey> = Extract<CorePreference, {