@stndrds/schema 1.0.0-alpha.359 → 1.0.0-alpha.360
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.
- package/dist/capabilities.js +1 -1
- package/dist/capabilities.mjs +1 -1
- package/dist/index.d.mts +30 -33
- package/dist/index.d.ts +30 -33
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +2 -2
package/dist/capabilities.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! © 2025-2026 AND YOU CREATE SAS (RCS Paris 940 190 614). Proprietary — see LICENSE (Standards SDK License 1.0). */
|
|
2
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("zod");const t=`Object UUID, kebab-case name (e.g., 'contacts'), or display label (e.g., 'Personne physique'). All three are accepted; UUID is most precise.`,n=`Relevance ranking for a name or a phrase — matches tokens, not values. Exact criteria go in filters with NO query.`,r=` For large text content (> a few KB), write it to a sandbox file first and pass {"$fromSandboxFile": "/workspace/<file>"} as the attribute value — the server substitutes the file content.`,i=e.z.object({combinator:e.z.enum([`and`,`or`]).default(`and`),rules:e.z.array(e.z.object({attribute:e.z.string().describe(`Attribute name on the object being searched`),property:e.z.string().optional().describe(`Optional, and the only way to read one part of a compound value. On a relation / document / user attribute declared with .qualifyWith({...}) it names an EDGE property (not the linked record); on a location attribute it is one of city | postalCode | country, which is how a postal code or a city is filtered exactly. The operator must be valid for that property's type. See <filter_operators>.`),operator:e.z.string().describe(`Filter operator (canonical: is, is_not, contains, not_contains, starts_with, ends_with, less_than, greater_than, less_or_equal, greater_or_equal, is_within, on_day_month, any_of, none_of, is_empty, is_not_empty). Short codes (lt, gt, lte, gte, eq, neq, in) are accepted as input and auto-normalized to the canonical names. The valid set depends on the attribute type (or property type when 'property' is set) — see <filter_operators>.`),value:e.z.unknown().nullable().describe(`Value matching the attribute (or property) type: scalar for is/contains/less_than/etc (checkbox is: true|false); array (string[]) for any_of/none_of; null for is_empty/is_not_empty; { amount, unit, direction } for is_within; { day, month } for on_day_month.`)}))}),a=e.z.array(e.z.object({attribute:e.z.string().describe(`Attribute name`),direction:e.z.enum([`asc`,`desc`])})),o=e.z.object({recordId:e.z.string().describe(`Record UUID`),fields:e.z.array(e.z.string()).optional().describe(`Attribute names to return`)}),s=e.z.object({objectId:e.z.string().describe(t),_displayLabel:e.z.string().optional().describe(`Display label`),query:e.z.string().optional().describe(n),limit:e.z.number().optional().describe(`Max results per call: 1-1000 (default 20). Paginate via offset for more.`),offset:e.z.number().optional().describe(`Skip N records (default 0)`),fields:e.z.array(e.z.string()).optional().describe(`Attribute names to include in values`),filters:i.optional().describe(`Structured filter: { combinator: 'and'|'or', rules: [{attribute, operator, value, property?}] }. Operators are constrained per attribute type — see <filter_operators>. Use 'property' on a rule to filter on a qualified edge property.`),sorts:a.optional().describe(`Sorts: [{ attribute, direction: 'asc'|'desc' }]`)}),c=e.z.object({objectId:e.z.string().describe(t),_displayLabel:e.z.string().optional().describe(`Display label`),data:e.z.record(e.z.string(),e.z.unknown()).describe(`Record data.${r}`)}),l=e.z.object({recordId:e.z.string().describe(`Record UUID`),data:e.z.record(e.z.string(),e.z.unknown()).describe(`Fields to update.${r}`)}),u=e.z.object({recordId:e.z.string().describe(`Record UUID`)}),d={get_record:{name:`get_record`,kind:`read`,input:o},search_records:{name:`search_records`,kind:`read`,input:s},create_record:{name:`create_record`,kind:`create`,input:c},update_record:{name:`update_record`,kind:`update`,input:l},delete_record:{name:`delete_record`,kind:`delete`,input:u}};exports.OBJECT_ID_DESCRIPTION=t,exports.QUERY_DESCRIPTION=n,exports.RECORD_CAPABILITIES=d,exports.SANDBOX_FILE_DATA_HINT=r,exports.filtersSchema=i,exports.sortsSchema=a;
|
|
2
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("zod");const t=`Object UUID, kebab-case name (e.g., 'contacts'), or display label (e.g., 'Personne physique'). All three are accepted; UUID is most precise.`,n=`Relevance ranking for a name or a phrase — matches tokens, not values. Exact criteria go in filters with NO query.`,r=` For large text content (> a few KB), write it to a sandbox file first and pass {"$fromSandboxFile": "/workspace/<file>"} as the attribute value — the server substitutes the file content.`,i=e.z.object({combinator:e.z.enum([`and`,`or`]).default(`and`),rules:e.z.array(e.z.object({attribute:e.z.string().describe(`Attribute name on the object being searched`),property:e.z.string().optional().describe(`Optional, and the only way to read one part of a compound value. On a relation / document / user attribute declared with .qualifyWith({...}) it names an EDGE property (not the linked record); on a location attribute it is one of city | postalCode | country, which is how a postal code or a city is filtered exactly. The operator must be valid for that property's type. See <filter_operators>.`),operator:e.z.string().describe(`Filter operator (canonical: is, is_not, contains, not_contains, starts_with, ends_with, less_than, greater_than, less_or_equal, greater_or_equal, is_within, on_day_month, any_of, none_of, is_empty, is_not_empty). Short codes (lt, gt, lte, gte, eq, neq, in) are accepted as input and auto-normalized to the canonical names. The valid set depends on the attribute type (or property type when 'property' is set) — see <filter_operators>.`),value:e.z.unknown().nullable().describe(`Value matching the attribute (or property) type: scalar for is/contains/less_than/etc (checkbox is: true|false); array (string[]) for any_of/none_of; null for is_empty/is_not_empty; { amount, unit, direction } for is_within; { day, month } for on_day_month; on a user attribute (or createdBy / lastUpdatedBy), { dynamic: 'actor', ref: 'current' } (@me) is the person asking.`)}))}),a=e.z.array(e.z.object({attribute:e.z.string().describe(`Attribute name`),direction:e.z.enum([`asc`,`desc`])})),o=e.z.object({recordId:e.z.string().describe(`Record UUID`),fields:e.z.array(e.z.string()).optional().describe(`Attribute names to return`)}),s=e.z.object({objectId:e.z.string().describe(t),_displayLabel:e.z.string().optional().describe(`Display label`),query:e.z.string().optional().describe(n),limit:e.z.number().optional().describe(`Max results per call: 1-1000 (default 20). Paginate via offset for more.`),offset:e.z.number().optional().describe(`Skip N records (default 0)`),fields:e.z.array(e.z.string()).optional().describe(`Attribute names to include in values`),filters:i.optional().describe(`Structured filter: { combinator: 'and'|'or', rules: [{attribute, operator, value, property?}] }. Operators are constrained per attribute type — see <filter_operators>. Use 'property' on a rule to filter on a qualified edge property.`),sorts:a.optional().describe(`Sorts: [{ attribute, direction: 'asc'|'desc' }]`)}),c=e.z.object({objectId:e.z.string().describe(t),_displayLabel:e.z.string().optional().describe(`Display label`),data:e.z.record(e.z.string(),e.z.unknown()).describe(`Record data.${r}`)}),l=e.z.object({recordId:e.z.string().describe(`Record UUID`),data:e.z.record(e.z.string(),e.z.unknown()).describe(`Fields to update.${r}`)}),u=e.z.object({recordId:e.z.string().describe(`Record UUID`)}),d={get_record:{name:`get_record`,kind:`read`,input:o},search_records:{name:`search_records`,kind:`read`,input:s},create_record:{name:`create_record`,kind:`create`,input:c},update_record:{name:`update_record`,kind:`update`,input:l},delete_record:{name:`delete_record`,kind:`delete`,input:u}};exports.OBJECT_ID_DESCRIPTION=t,exports.QUERY_DESCRIPTION=n,exports.RECORD_CAPABILITIES=d,exports.SANDBOX_FILE_DATA_HINT=r,exports.filtersSchema=i,exports.sortsSchema=a;
|
package/dist/capabilities.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! © 2025-2026 AND YOU CREATE SAS (RCS Paris 940 190 614). Proprietary — see LICENSE (Standards SDK License 1.0). */
|
|
2
|
-
import{z as e}from"zod";const t=`Object UUID, kebab-case name (e.g., 'contacts'), or display label (e.g., 'Personne physique'). All three are accepted; UUID is most precise.`,n=`Relevance ranking for a name or a phrase — matches tokens, not values. Exact criteria go in filters with NO query.`,r=` For large text content (> a few KB), write it to a sandbox file first and pass {"$fromSandboxFile": "/workspace/<file>"} as the attribute value — the server substitutes the file content.`,i=e.object({combinator:e.enum([`and`,`or`]).default(`and`),rules:e.array(e.object({attribute:e.string().describe(`Attribute name on the object being searched`),property:e.string().optional().describe(`Optional, and the only way to read one part of a compound value. On a relation / document / user attribute declared with .qualifyWith({...}) it names an EDGE property (not the linked record); on a location attribute it is one of city | postalCode | country, which is how a postal code or a city is filtered exactly. The operator must be valid for that property's type. See <filter_operators>.`),operator:e.string().describe(`Filter operator (canonical: is, is_not, contains, not_contains, starts_with, ends_with, less_than, greater_than, less_or_equal, greater_or_equal, is_within, on_day_month, any_of, none_of, is_empty, is_not_empty). Short codes (lt, gt, lte, gte, eq, neq, in) are accepted as input and auto-normalized to the canonical names. The valid set depends on the attribute type (or property type when 'property' is set) — see <filter_operators>.`),value:e.unknown().nullable().describe(`Value matching the attribute (or property) type: scalar for is/contains/less_than/etc (checkbox is: true|false); array (string[]) for any_of/none_of; null for is_empty/is_not_empty; { amount, unit, direction } for is_within; { day, month } for on_day_month.`)}))}),a=e.array(e.object({attribute:e.string().describe(`Attribute name`),direction:e.enum([`asc`,`desc`])})),o=e.object({recordId:e.string().describe(`Record UUID`),fields:e.array(e.string()).optional().describe(`Attribute names to return`)}),s=e.object({objectId:e.string().describe(t),_displayLabel:e.string().optional().describe(`Display label`),query:e.string().optional().describe(n),limit:e.number().optional().describe(`Max results per call: 1-1000 (default 20). Paginate via offset for more.`),offset:e.number().optional().describe(`Skip N records (default 0)`),fields:e.array(e.string()).optional().describe(`Attribute names to include in values`),filters:i.optional().describe(`Structured filter: { combinator: 'and'|'or', rules: [{attribute, operator, value, property?}] }. Operators are constrained per attribute type — see <filter_operators>. Use 'property' on a rule to filter on a qualified edge property.`),sorts:a.optional().describe(`Sorts: [{ attribute, direction: 'asc'|'desc' }]`)}),c=e.object({objectId:e.string().describe(t),_displayLabel:e.string().optional().describe(`Display label`),data:e.record(e.string(),e.unknown()).describe(`Record data.${r}`)}),l=e.object({recordId:e.string().describe(`Record UUID`),data:e.record(e.string(),e.unknown()).describe(`Fields to update.${r}`)}),u=e.object({recordId:e.string().describe(`Record UUID`)}),d={get_record:{name:`get_record`,kind:`read`,input:o},search_records:{name:`search_records`,kind:`read`,input:s},create_record:{name:`create_record`,kind:`create`,input:c},update_record:{name:`update_record`,kind:`update`,input:l},delete_record:{name:`delete_record`,kind:`delete`,input:u}};export{t as OBJECT_ID_DESCRIPTION,n as QUERY_DESCRIPTION,d as RECORD_CAPABILITIES,r as SANDBOX_FILE_DATA_HINT,i as filtersSchema,a as sortsSchema};
|
|
2
|
+
import{z as e}from"zod";const t=`Object UUID, kebab-case name (e.g., 'contacts'), or display label (e.g., 'Personne physique'). All three are accepted; UUID is most precise.`,n=`Relevance ranking for a name or a phrase — matches tokens, not values. Exact criteria go in filters with NO query.`,r=` For large text content (> a few KB), write it to a sandbox file first and pass {"$fromSandboxFile": "/workspace/<file>"} as the attribute value — the server substitutes the file content.`,i=e.object({combinator:e.enum([`and`,`or`]).default(`and`),rules:e.array(e.object({attribute:e.string().describe(`Attribute name on the object being searched`),property:e.string().optional().describe(`Optional, and the only way to read one part of a compound value. On a relation / document / user attribute declared with .qualifyWith({...}) it names an EDGE property (not the linked record); on a location attribute it is one of city | postalCode | country, which is how a postal code or a city is filtered exactly. The operator must be valid for that property's type. See <filter_operators>.`),operator:e.string().describe(`Filter operator (canonical: is, is_not, contains, not_contains, starts_with, ends_with, less_than, greater_than, less_or_equal, greater_or_equal, is_within, on_day_month, any_of, none_of, is_empty, is_not_empty). Short codes (lt, gt, lte, gte, eq, neq, in) are accepted as input and auto-normalized to the canonical names. The valid set depends on the attribute type (or property type when 'property' is set) — see <filter_operators>.`),value:e.unknown().nullable().describe(`Value matching the attribute (or property) type: scalar for is/contains/less_than/etc (checkbox is: true|false); array (string[]) for any_of/none_of; null for is_empty/is_not_empty; { amount, unit, direction } for is_within; { day, month } for on_day_month; on a user attribute (or createdBy / lastUpdatedBy), { dynamic: 'actor', ref: 'current' } (@me) is the person asking.`)}))}),a=e.array(e.object({attribute:e.string().describe(`Attribute name`),direction:e.enum([`asc`,`desc`])})),o=e.object({recordId:e.string().describe(`Record UUID`),fields:e.array(e.string()).optional().describe(`Attribute names to return`)}),s=e.object({objectId:e.string().describe(t),_displayLabel:e.string().optional().describe(`Display label`),query:e.string().optional().describe(n),limit:e.number().optional().describe(`Max results per call: 1-1000 (default 20). Paginate via offset for more.`),offset:e.number().optional().describe(`Skip N records (default 0)`),fields:e.array(e.string()).optional().describe(`Attribute names to include in values`),filters:i.optional().describe(`Structured filter: { combinator: 'and'|'or', rules: [{attribute, operator, value, property?}] }. Operators are constrained per attribute type — see <filter_operators>. Use 'property' on a rule to filter on a qualified edge property.`),sorts:a.optional().describe(`Sorts: [{ attribute, direction: 'asc'|'desc' }]`)}),c=e.object({objectId:e.string().describe(t),_displayLabel:e.string().optional().describe(`Display label`),data:e.record(e.string(),e.unknown()).describe(`Record data.${r}`)}),l=e.object({recordId:e.string().describe(`Record UUID`),data:e.record(e.string(),e.unknown()).describe(`Fields to update.${r}`)}),u=e.object({recordId:e.string().describe(`Record UUID`)}),d={get_record:{name:`get_record`,kind:`read`,input:o},search_records:{name:`search_records`,kind:`read`,input:s},create_record:{name:`create_record`,kind:`create`,input:c},update_record:{name:`update_record`,kind:`update`,input:l},delete_record:{name:`delete_record`,kind:`delete`,input:u}};export{t as OBJECT_ID_DESCRIPTION,n as QUERY_DESCRIPTION,d as RECORD_CAPABILITIES,r as SANDBOX_FILE_DATA_HINT,i as filtersSchema,a as sortsSchema};
|
package/dist/index.d.mts
CHANGED
|
@@ -7451,6 +7451,24 @@ export interface AcceptTenantInvitationInput {
|
|
|
7451
7451
|
proof: string;
|
|
7452
7452
|
identity: AcceptTenantInvitationIdentity;
|
|
7453
7453
|
}
|
|
7454
|
+
/**
|
|
7455
|
+
* What the invitee may read about a still-usable invitation before joining —
|
|
7456
|
+
* fetched with the single-use proof, never with a session.
|
|
7457
|
+
*/
|
|
7458
|
+
export interface TenantInvitationPreview {
|
|
7459
|
+
invitationId: Uuid;
|
|
7460
|
+
email: string;
|
|
7461
|
+
expiresAt: Date;
|
|
7462
|
+
inviter: {
|
|
7463
|
+
name: string;
|
|
7464
|
+
};
|
|
7465
|
+
role: {
|
|
7466
|
+
name: string;
|
|
7467
|
+
};
|
|
7468
|
+
workspace?: {
|
|
7469
|
+
name: string;
|
|
7470
|
+
};
|
|
7471
|
+
}
|
|
7454
7472
|
//#endregion
|
|
7455
7473
|
//#region src/connectors/types.d.ts
|
|
7456
7474
|
/** Built-in external connector providers. Mirrors the runtime's
|
|
@@ -7895,12 +7913,6 @@ export interface UserProfile extends Timestamps {
|
|
|
7895
7913
|
* Last login timestamp (updated on each successful auth)
|
|
7896
7914
|
*/
|
|
7897
7915
|
lastLoginAt?: Date;
|
|
7898
|
-
/**
|
|
7899
|
-
* Whether the user is still pending their initial invitation (has never logged in).
|
|
7900
|
-
* Derived field — true when `lastLoginAt` is unset.
|
|
7901
|
-
* Used by the UI to gate "Resend invite" vs "Reset access" actions.
|
|
7902
|
-
*/
|
|
7903
|
-
invitePending: boolean;
|
|
7904
7916
|
}
|
|
7905
7917
|
/**
|
|
7906
7918
|
* A profile as the members screen (spec A1) needs it: the underlying user
|
|
@@ -7948,24 +7960,6 @@ export interface UpdateUserProfile {
|
|
|
7948
7960
|
/** Omit to preserve the preference; null clears it. */
|
|
7949
7961
|
defaultChatModel?: ModelReference | null;
|
|
7950
7962
|
}
|
|
7951
|
-
/**
|
|
7952
|
-
* Data for inviting a new user by email.
|
|
7953
|
-
* Creates an active user profile and sends an invitation email via Supabase Auth.
|
|
7954
|
-
* The role is resolved and checked BEFORE any provisioning (spec 3 A4); with no
|
|
7955
|
-
* `roleId`, the default `member` role is assigned automatically by the service.
|
|
7956
|
-
*/
|
|
7957
|
-
export interface InviteUserInput {
|
|
7958
|
-
/** Email address to invite */
|
|
7959
|
-
email: string;
|
|
7960
|
-
/** User's first name (stored in user_metadata) */
|
|
7961
|
-
firstName?: string;
|
|
7962
|
-
/** User's last name (stored in user_metadata) */
|
|
7963
|
-
lastName?: string;
|
|
7964
|
-
/** URL to redirect after accepting invitation */
|
|
7965
|
-
redirectTo?: string;
|
|
7966
|
-
/** Role to assign instead of the default `member`. Checked before provisioning. */
|
|
7967
|
-
roleId?: string;
|
|
7968
|
-
}
|
|
7969
7963
|
//#endregion
|
|
7970
7964
|
//#region src/types/schema-groups.d.ts
|
|
7971
7965
|
export type SchemaGroupKind = "bundle" | "source";
|
|
@@ -12870,6 +12864,8 @@ export type AgentUIMessageBatchItem<TChunk = unknown> = {
|
|
|
12870
12864
|
startOffset: number;
|
|
12871
12865
|
endOffset: number;
|
|
12872
12866
|
};
|
|
12867
|
+
/** Wall-clock time (epoch ms) at which the runtime enqueued the chunk. */
|
|
12868
|
+
emittedAtMs?: number;
|
|
12873
12869
|
chunk: TChunk;
|
|
12874
12870
|
};
|
|
12875
12871
|
export type AgentUIMessageBatch<TChunk = unknown> = {
|
|
@@ -13085,9 +13081,11 @@ export declare function filterTargetsOf(attributes: readonly Attribute[]): Filte
|
|
|
13085
13081
|
/** True when a filter value is a query-time dynamic token. */
|
|
13086
13082
|
export declare function isDynamicValue(value: unknown): value is DynamicValue;
|
|
13087
13083
|
/**
|
|
13088
|
-
* `@me` — resolves to the current identity
|
|
13089
|
-
*
|
|
13090
|
-
*
|
|
13084
|
+
* `@me` — resolves to the current identity: every id the read scope names
|
|
13085
|
+
* (the actor, and in an agent turn the person it runs for) plus the user
|
|
13086
|
+
* behind each, matched with `any_of`/`none_of`. Works on `user` attributes
|
|
13087
|
+
* (which store the user id) and on `createdBy`/`lastUpdatedBy` (which store
|
|
13088
|
+
* the actor id).
|
|
13091
13089
|
*/
|
|
13092
13090
|
export declare function currentActor(): DynamicValue;
|
|
13093
13091
|
/** `@today` — resolves to today's date (ctx timezone). Use on `date` attributes. */
|
|
@@ -13097,14 +13095,13 @@ export declare function now(): DynamicValue;
|
|
|
13097
13095
|
/** Execution context made available to dynamic-value resolvers. */
|
|
13098
13096
|
export interface ResolutionContext {
|
|
13099
13097
|
tenantId: TenantId;
|
|
13100
|
-
actorId?: Uuid;
|
|
13101
|
-
rootActorId?: Uuid;
|
|
13102
13098
|
/**
|
|
13103
|
-
*
|
|
13104
|
-
*
|
|
13105
|
-
*
|
|
13099
|
+
* The ids `@me` resolves to: the read scope's actor ids — the acting actor
|
|
13100
|
+
* and, when the context names one, the root human it works for (a chat
|
|
13101
|
+
* turn's asker, a scheduled run's creator; a trigger-fired run has none) —
|
|
13102
|
+
* plus the user behind each. Empty or absent drops the rule.
|
|
13106
13103
|
*/
|
|
13107
|
-
|
|
13104
|
+
currentIdentityIds?: readonly Uuid[];
|
|
13108
13105
|
now: Date;
|
|
13109
13106
|
/** IANA timezone used to resolve `@today`. Defaults to "UTC" when unknown. */
|
|
13110
13107
|
timezone: string;
|
package/dist/index.d.ts
CHANGED
|
@@ -7451,6 +7451,24 @@ export interface AcceptTenantInvitationInput {
|
|
|
7451
7451
|
proof: string;
|
|
7452
7452
|
identity: AcceptTenantInvitationIdentity;
|
|
7453
7453
|
}
|
|
7454
|
+
/**
|
|
7455
|
+
* What the invitee may read about a still-usable invitation before joining —
|
|
7456
|
+
* fetched with the single-use proof, never with a session.
|
|
7457
|
+
*/
|
|
7458
|
+
export interface TenantInvitationPreview {
|
|
7459
|
+
invitationId: Uuid;
|
|
7460
|
+
email: string;
|
|
7461
|
+
expiresAt: Date;
|
|
7462
|
+
inviter: {
|
|
7463
|
+
name: string;
|
|
7464
|
+
};
|
|
7465
|
+
role: {
|
|
7466
|
+
name: string;
|
|
7467
|
+
};
|
|
7468
|
+
workspace?: {
|
|
7469
|
+
name: string;
|
|
7470
|
+
};
|
|
7471
|
+
}
|
|
7454
7472
|
//#endregion
|
|
7455
7473
|
//#region src/connectors/types.d.ts
|
|
7456
7474
|
/** Built-in external connector providers. Mirrors the runtime's
|
|
@@ -7895,12 +7913,6 @@ export interface UserProfile extends Timestamps {
|
|
|
7895
7913
|
* Last login timestamp (updated on each successful auth)
|
|
7896
7914
|
*/
|
|
7897
7915
|
lastLoginAt?: Date;
|
|
7898
|
-
/**
|
|
7899
|
-
* Whether the user is still pending their initial invitation (has never logged in).
|
|
7900
|
-
* Derived field — true when `lastLoginAt` is unset.
|
|
7901
|
-
* Used by the UI to gate "Resend invite" vs "Reset access" actions.
|
|
7902
|
-
*/
|
|
7903
|
-
invitePending: boolean;
|
|
7904
7916
|
}
|
|
7905
7917
|
/**
|
|
7906
7918
|
* A profile as the members screen (spec A1) needs it: the underlying user
|
|
@@ -7948,24 +7960,6 @@ export interface UpdateUserProfile {
|
|
|
7948
7960
|
/** Omit to preserve the preference; null clears it. */
|
|
7949
7961
|
defaultChatModel?: ModelReference | null;
|
|
7950
7962
|
}
|
|
7951
|
-
/**
|
|
7952
|
-
* Data for inviting a new user by email.
|
|
7953
|
-
* Creates an active user profile and sends an invitation email via Supabase Auth.
|
|
7954
|
-
* The role is resolved and checked BEFORE any provisioning (spec 3 A4); with no
|
|
7955
|
-
* `roleId`, the default `member` role is assigned automatically by the service.
|
|
7956
|
-
*/
|
|
7957
|
-
export interface InviteUserInput {
|
|
7958
|
-
/** Email address to invite */
|
|
7959
|
-
email: string;
|
|
7960
|
-
/** User's first name (stored in user_metadata) */
|
|
7961
|
-
firstName?: string;
|
|
7962
|
-
/** User's last name (stored in user_metadata) */
|
|
7963
|
-
lastName?: string;
|
|
7964
|
-
/** URL to redirect after accepting invitation */
|
|
7965
|
-
redirectTo?: string;
|
|
7966
|
-
/** Role to assign instead of the default `member`. Checked before provisioning. */
|
|
7967
|
-
roleId?: string;
|
|
7968
|
-
}
|
|
7969
7963
|
//#endregion
|
|
7970
7964
|
//#region src/types/schema-groups.d.ts
|
|
7971
7965
|
export type SchemaGroupKind = "bundle" | "source";
|
|
@@ -12870,6 +12864,8 @@ export type AgentUIMessageBatchItem<TChunk = unknown> = {
|
|
|
12870
12864
|
startOffset: number;
|
|
12871
12865
|
endOffset: number;
|
|
12872
12866
|
};
|
|
12867
|
+
/** Wall-clock time (epoch ms) at which the runtime enqueued the chunk. */
|
|
12868
|
+
emittedAtMs?: number;
|
|
12873
12869
|
chunk: TChunk;
|
|
12874
12870
|
};
|
|
12875
12871
|
export type AgentUIMessageBatch<TChunk = unknown> = {
|
|
@@ -13085,9 +13081,11 @@ export declare function filterTargetsOf(attributes: readonly Attribute[]): Filte
|
|
|
13085
13081
|
/** True when a filter value is a query-time dynamic token. */
|
|
13086
13082
|
export declare function isDynamicValue(value: unknown): value is DynamicValue;
|
|
13087
13083
|
/**
|
|
13088
|
-
* `@me` — resolves to the current identity
|
|
13089
|
-
*
|
|
13090
|
-
*
|
|
13084
|
+
* `@me` — resolves to the current identity: every id the read scope names
|
|
13085
|
+
* (the actor, and in an agent turn the person it runs for) plus the user
|
|
13086
|
+
* behind each, matched with `any_of`/`none_of`. Works on `user` attributes
|
|
13087
|
+
* (which store the user id) and on `createdBy`/`lastUpdatedBy` (which store
|
|
13088
|
+
* the actor id).
|
|
13091
13089
|
*/
|
|
13092
13090
|
export declare function currentActor(): DynamicValue;
|
|
13093
13091
|
/** `@today` — resolves to today's date (ctx timezone). Use on `date` attributes. */
|
|
@@ -13097,14 +13095,13 @@ export declare function now(): DynamicValue;
|
|
|
13097
13095
|
/** Execution context made available to dynamic-value resolvers. */
|
|
13098
13096
|
export interface ResolutionContext {
|
|
13099
13097
|
tenantId: TenantId;
|
|
13100
|
-
actorId?: Uuid;
|
|
13101
|
-
rootActorId?: Uuid;
|
|
13102
13098
|
/**
|
|
13103
|
-
*
|
|
13104
|
-
*
|
|
13105
|
-
*
|
|
13099
|
+
* The ids `@me` resolves to: the read scope's actor ids — the acting actor
|
|
13100
|
+
* and, when the context names one, the root human it works for (a chat
|
|
13101
|
+
* turn's asker, a scheduled run's creator; a trigger-fired run has none) —
|
|
13102
|
+
* plus the user behind each. Empty or absent drops the rule.
|
|
13106
13103
|
*/
|
|
13107
|
-
|
|
13104
|
+
currentIdentityIds?: readonly Uuid[];
|
|
13108
13105
|
now: Date;
|
|
13109
13106
|
/** IANA timezone used to resolve `@today`. Defaults to "UTC" when unknown. */
|
|
13110
13107
|
timezone: string;
|