@d19n/youfibre-odin-sdk 2.0.339 → 2.0.341

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.
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ /**
3
+ * CreateAiRouteRequest Action DTO
4
+ *
5
+ * CreateAiRouteRequest
6
+ *
7
+ * @module SupportModule
8
+ * @entity AiRouteRequest
9
+ * @entityType DEFAULT
10
+ * @actionKey CreateAiRouteRequest
11
+ * @event k1.t-hEOJjsDb.SupportModule.AiRouteRequest.Create.CreateAiRouteRequest
12
+ *
13
+ * AUTO-GENERATED - DO NOT EDIT DIRECTLY
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.CreateAiRouteRequestDto = void 0;
17
+ const core_1 = require("@d19n/odin-types/dist/core");
18
+ /**
19
+ * CreateAiRouteRequest
20
+ *
21
+ * @actionType CREATE - Creates a new AiRouteRequest record
22
+ * @module SupportModule
23
+ * @entity AiRouteRequest
24
+ * @entityType DEFAULT (Default)
25
+ * @event k1.t-hEOJjsDb.SupportModule.AiRouteRequest.Create.CreateAiRouteRequest
26
+ * @permission schema.action.createairouterequest.trigger
27
+ * @benchmark This action is tracked for performance benchmarks
28
+ */
29
+ class CreateAiRouteRequestDto extends core_1.OdinRecordCreateDto {
30
+ constructor(properties, options) {
31
+ super({
32
+ entity: 'SupportModule:AiRouteRequest',
33
+ type: 'DEFAULT',
34
+ properties,
35
+ journeyId: options === null || options === void 0 ? void 0 : options.journeyId,
36
+ });
37
+ this.actionName = 'CreateAiRouteRequest';
38
+ this.schemaActionId = 'c1d7f43c-d918-4f4f-9465-123a54988fc4';
39
+ this.entity = 'SupportModule:AiRouteRequest';
40
+ }
41
+ }
42
+ exports.CreateAiRouteRequestDto = CreateAiRouteRequestDto;
43
+ /** Used by SDK generators to identify action type */
44
+ CreateAiRouteRequestDto.ACTION_TYPE = 'CREATE';
45
+ CreateAiRouteRequestDto.ACTION_KEY = 'CreateAiRouteRequest';
46
+ CreateAiRouteRequestDto.MODULE_NAME = 'SupportModule';
47
+ CreateAiRouteRequestDto.ENTITIES = ['AiRouteRequest'];
48
+ CreateAiRouteRequestDto.ENTITY_TYPE = 'DEFAULT';
49
+ CreateAiRouteRequestDto.EVENT_NAME = 'k1.t-hEOJjsDb.SupportModule.AiRouteRequest.Create.CreateAiRouteRequest';
50
+ CreateAiRouteRequestDto.PERMISSION = 'schema.action.createairouterequest.trigger';
51
+ /** Step metadata - entity this action targets */
52
+ CreateAiRouteRequestDto.STEP_ENTITY = 'SupportModule:AiRouteRequest';
53
+ CreateAiRouteRequestDto.STEP_SCHEMA_ID = '6e672d1d-d7c4-401d-8bcc-042b208664d6';
54
+ CreateAiRouteRequestDto.STEP_SCHEMA_ACTION_ID = 'c1d7f43c-d918-4f4f-9465-123a54988fc4';
55
+ CreateAiRouteRequestDto.STEP_SCHEMA_TYPE_ID = '9248c8dc-39e4-48d9-81ea-3816da8b7cf1';
56
+ CreateAiRouteRequestDto.STEP_TYPE = 'DEFAULT';
57
+ CreateAiRouteRequestDto.AUTO_LINK_PARENT = true;
@@ -23,7 +23,7 @@ export interface SendTlosNinjaCaseEmailMessage extends OdinRecordCreatedEvent<Se
23
23
  * Properties for SendTlosNinjaCaseEmail action
24
24
  *
25
25
  * @property Required fields: 1
26
- * @property Optional fields: 7
26
+ * @property Optional fields: 9
27
27
  */
28
28
  export interface SendTlosNinjaCaseEmailProperties {
29
29
  /**
@@ -85,6 +85,20 @@ export interface SendTlosNinjaCaseEmailProperties {
85
85
  * @type {TEXT}
86
86
  */
87
87
  MessageId?: string | null;
88
+ /**
89
+ * Title
90
+ *
91
+ * Used for title
92
+ * @type {TEXT}
93
+ */
94
+ Title?: string | null;
95
+ /**
96
+ * Subject
97
+ *
98
+ * Data field for Email records. Used by Communications team.
99
+ * @type {TEXT}
100
+ */
101
+ Subject?: string | null;
88
102
  }
89
103
  /**
90
104
  * SendTlosNinjaCaseEmail
@@ -0,0 +1,180 @@
1
+ /**
2
+ * AiRouteRequest DB Accessor
3
+ *
4
+ * Provides typed access to AiRouteRequest records via direct database access.
5
+ * For use in backend services with principal + dbService.
6
+ * Returns wrapped records with typed action methods.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * // Simple get
11
+ * const record = await accessor.get(id);
12
+ *
13
+ * // With related entities
14
+ * const record = await accessor.get(id, { entities: ["Contact", "Address"] });
15
+ *
16
+ * // With permissions bypass (separate options)
17
+ * const record = await accessor.get(id, {}, { omitPermissionsCheck: true });
18
+ *
19
+ * // Silent write (no RabbitMQ events)
20
+ * const result = await accessor.upsert([dto], { omitWriteEvents: true });
21
+ *
22
+ * // Constructor-level default (applies to all calls)
23
+ * const accessor = new AiRouteRequestDbAccessor(principal, dbService, { omitPermissionsCheck: true });
24
+ * ```
25
+ *
26
+ * AUTO-GENERATED - DO NOT EDIT DIRECTLY
27
+ */
28
+ import { OdinSearchV2 } from '@d19n/odin-types/dist/core';
29
+ import { DbProvider, DbProviderOptions, DbGetQueryOptions, DbExternalIdQueryOptions } from '@d19n/odin-sdk-generator/dist/db.provider';
30
+ import { QueryBuilder } from '@d19n/odin-sdk-generator/dist/query-builder';
31
+ import { AiRouteRequestProperties } from '../entities-v2/AiRouteRequest';
32
+ import { AiRouteRequestRecord } from '../records-v2/AiRouteRequestRecord';
33
+ /** Search response with wrapped records */
34
+ export interface AiRouteRequestDbSearchResponse {
35
+ records: AiRouteRequestRecord[];
36
+ totalRecords: number;
37
+ hasMore: boolean;
38
+ aggregations?: Record<string, any>;
39
+ }
40
+ export declare class AiRouteRequestDbAccessor {
41
+ private readonly _provider;
42
+ private readonly _moduleName;
43
+ private readonly _entityName;
44
+ private readonly _defaultOptions?;
45
+ /**
46
+ * Create a new AiRouteRequestDbAccessor
47
+ * @param principal - The authenticated principal
48
+ * @param dbService - The database service instance
49
+ * @param defaultOptions - Default provider options applied to all operations
50
+ */
51
+ constructor(principal: any, dbService: any, defaultOptions?: DbProviderOptions);
52
+ get moduleName(): string;
53
+ get entityName(): string;
54
+ /**
55
+ * Create a new empty AiRouteRequest record instance for create operations.
56
+ * Pre-generates an ID that can be referenced before the record is saved.
57
+ *
58
+ * @param id - Optional ID to use (auto-generated UUID if not provided)
59
+ * @returns A new record wrapper with pre-generated ID
60
+ *
61
+ * @example
62
+ * ```typescript
63
+ * // Auto-generated ID
64
+ * const note = odinDb.notes.new();
65
+ * console.log(note.id); // UUID available immediately
66
+ *
67
+ * // Custom ID
68
+ * const order = odinDb.orders.new("custom-id-123");
69
+ *
70
+ * // Reference ID before save
71
+ * const account = odinDb.accounts.new();
72
+ * const contact = odinDb.contacts.new();
73
+ * await contact
74
+ * .link({ id: account.id, entity: "CrmModule:Account" })
75
+ * .createContact({ FirstName: "John" });
76
+ * ```
77
+ */
78
+ new(id?: string): AiRouteRequestRecord;
79
+ /**
80
+ * Get a single AiRouteRequest record by ID
81
+ *
82
+ * @param id - The record ID
83
+ * @param queryOptions - Query options (WHAT to fetch: entities to include)
84
+ * @param providerOptions - Provider options (HOW to fetch: omitPermissionsCheck)
85
+ *
86
+ * @example
87
+ * ```typescript
88
+ * // Simple get
89
+ * const record = await accessor.get(id);
90
+ *
91
+ * // With related entities
92
+ * const record = await accessor.get(id, { entities: ["Contact", "Address"] });
93
+ *
94
+ * // With permissions bypass
95
+ * const record = await accessor.get(id, {}, { omitPermissionsCheck: true });
96
+ *
97
+ * // Both options
98
+ * const record = await accessor.get(id, { entities: ["Invoice"] }, { omitPermissionsCheck: true });
99
+ * ```
100
+ */
101
+ get(id: string, queryOptions?: DbGetQueryOptions, providerOptions?: DbProviderOptions): Promise<AiRouteRequestRecord>;
102
+ /**
103
+ * Get multiple AiRouteRequest records by IDs
104
+ *
105
+ * @param ids - Array of record IDs
106
+ * @param queryOptions - Query options (WHAT to fetch: entities to include)
107
+ * @param providerOptions - Provider options (HOW to fetch: omitPermissionsCheck)
108
+ */
109
+ getMany(ids: string[], queryOptions?: DbGetQueryOptions, providerOptions?: DbProviderOptions): Promise<AiRouteRequestRecord[]>;
110
+ /**
111
+ * Get AiRouteRequest records by the RECORD-LEVEL external id.
112
+ *
113
+ * Resolved server-side in Postgres against `record.external_id` - not a property
114
+ * search, and not reachable through `query()` (`externalId` is not a queryable
115
+ * column). Use this when an external system hands back its own identifier.
116
+ *
117
+ * Platform limits: max 5000 ids per call, each at most 36 characters. An unknown
118
+ * `type` is rejected with 400 `invalid type`.
119
+ *
120
+ * @param externalIds - The external ids to match (plural - the platform takes an array)
121
+ * @param queryOptions - Query options (WHAT to fetch: narrow by record type)
122
+ * @param providerOptions - Provider options (HOW to fetch: omitPermissionsCheck, withLinks)
123
+ *
124
+ * @example
125
+ * ```typescript
126
+ * // Correlate a provider webhook back to the record it wrote
127
+ * const [message] = await accessor.getManyByExternalId([body.SmsSid]);
128
+ *
129
+ * // Narrowed by record type
130
+ * const closures = await accessor.getManyByExternalId(refs, { type: 'CLOSURE' });
131
+ *
132
+ * // Background job, no link hydration
133
+ * const records = await accessor.getManyByExternalId(refs, undefined, {
134
+ * omitPermissionsCheck: true,
135
+ * withLinks: false,
136
+ * });
137
+ * ```
138
+ */
139
+ getManyByExternalId(externalIds: string[], queryOptions?: DbExternalIdQueryOptions, providerOptions?: DbProviderOptions): Promise<AiRouteRequestRecord[]>;
140
+ /**
141
+ * Search AiRouteRequest records
142
+ *
143
+ * @param params - Search parameters
144
+ * @param providerOptions - Provider options (HOW to fetch: omitPermissionsCheck)
145
+ */
146
+ search(params: Partial<OdinSearchV2>, providerOptions?: DbProviderOptions): Promise<AiRouteRequestDbSearchResponse>;
147
+ /**
148
+ * Search all AiRouteRequest records with automatic pagination
149
+ *
150
+ * @param params - Search parameters
151
+ * @param providerOptions - Provider options (HOW to fetch: omitPermissionsCheck)
152
+ */
153
+ searchAll(params: Partial<OdinSearchV2>, providerOptions?: DbProviderOptions): Promise<AiRouteRequestRecord[]>;
154
+ /**
155
+ * Async generator for paginating through all matching records.
156
+ * Yields batches of wrapped records.
157
+ *
158
+ * @param params - Search parameters
159
+ * @param providerOptions - Provider options (HOW to fetch: omitPermissionsCheck)
160
+ */
161
+ paginate(params: Partial<OdinSearchV2>, providerOptions?: DbProviderOptions): AsyncGenerator<AiRouteRequestRecord[]>;
162
+ /**
163
+ * Create a fluent query builder for AiRouteRequest records
164
+ *
165
+ * @example
166
+ * ```typescript
167
+ * const results = await accessor
168
+ * .query()
169
+ * .where('Status', 'in', ['Active', 'Pending'])
170
+ * .where('CreatedAt', 'gte', '2025-01-01')
171
+ * .select('id', 'title', 'properties.*')
172
+ * .sortBy('createdAt', 'desc')
173
+ * .limit(100)
174
+ * .execute();
175
+ * ```
176
+ */
177
+ query(): QueryBuilder<AiRouteRequestProperties, AiRouteRequestRecord>;
178
+ /** Access the underlying DbProvider */
179
+ get provider(): DbProvider;
180
+ }
@@ -0,0 +1,265 @@
1
+ "use strict";
2
+ /**
3
+ * AiRouteRequest DB Accessor
4
+ *
5
+ * Provides typed access to AiRouteRequest records via direct database access.
6
+ * For use in backend services with principal + dbService.
7
+ * Returns wrapped records with typed action methods.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * // Simple get
12
+ * const record = await accessor.get(id);
13
+ *
14
+ * // With related entities
15
+ * const record = await accessor.get(id, { entities: ["Contact", "Address"] });
16
+ *
17
+ * // With permissions bypass (separate options)
18
+ * const record = await accessor.get(id, {}, { omitPermissionsCheck: true });
19
+ *
20
+ * // Silent write (no RabbitMQ events)
21
+ * const result = await accessor.upsert([dto], { omitWriteEvents: true });
22
+ *
23
+ * // Constructor-level default (applies to all calls)
24
+ * const accessor = new AiRouteRequestDbAccessor(principal, dbService, { omitPermissionsCheck: true });
25
+ * ```
26
+ *
27
+ * AUTO-GENERATED - DO NOT EDIT DIRECTLY
28
+ */
29
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
30
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
31
+ return new (P || (P = Promise))(function (resolve, reject) {
32
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
33
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
34
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
35
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
36
+ });
37
+ };
38
+ var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
39
+ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
40
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
41
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
42
+ return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
43
+ function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
44
+ function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
45
+ function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
46
+ function fulfill(value) { resume("next", value); }
47
+ function reject(value) { resume("throw", value); }
48
+ function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
49
+ };
50
+ Object.defineProperty(exports, "__esModule", { value: true });
51
+ exports.AiRouteRequestDbAccessor = void 0;
52
+ const db_provider_1 = require("@d19n/odin-sdk-generator/dist/db.provider");
53
+ const query_builder_1 = require("@d19n/odin-sdk-generator/dist/query-builder");
54
+ const AiRouteRequestRecord_1 = require("../records-v2/AiRouteRequestRecord");
55
+ class AiRouteRequestDbAccessor {
56
+ /**
57
+ * Create a new AiRouteRequestDbAccessor
58
+ * @param principal - The authenticated principal
59
+ * @param dbService - The database service instance
60
+ * @param defaultOptions - Default provider options applied to all operations
61
+ */
62
+ constructor(principal, dbService, defaultOptions) {
63
+ this._moduleName = 'SupportModule';
64
+ this._entityName = 'AiRouteRequest';
65
+ this._provider = new db_provider_1.DbProvider(principal, dbService, defaultOptions);
66
+ this._defaultOptions = defaultOptions;
67
+ }
68
+ get moduleName() { return this._moduleName; }
69
+ get entityName() { return this._entityName; }
70
+ // ============================================
71
+ // RECORD CREATION
72
+ // ============================================
73
+ /**
74
+ * Create a new empty AiRouteRequest record instance for create operations.
75
+ * Pre-generates an ID that can be referenced before the record is saved.
76
+ *
77
+ * @param id - Optional ID to use (auto-generated UUID if not provided)
78
+ * @returns A new record wrapper with pre-generated ID
79
+ *
80
+ * @example
81
+ * ```typescript
82
+ * // Auto-generated ID
83
+ * const note = odinDb.notes.new();
84
+ * console.log(note.id); // UUID available immediately
85
+ *
86
+ * // Custom ID
87
+ * const order = odinDb.orders.new("custom-id-123");
88
+ *
89
+ * // Reference ID before save
90
+ * const account = odinDb.accounts.new();
91
+ * const contact = odinDb.contacts.new();
92
+ * await contact
93
+ * .link({ id: account.id, entity: "CrmModule:Account" })
94
+ * .createContact({ FirstName: "John" });
95
+ * ```
96
+ */
97
+ new(id) {
98
+ return new AiRouteRequestRecord_1.AiRouteRequestRecord(null, this._provider, id);
99
+ }
100
+ // ============================================
101
+ // RECORD RETRIEVAL
102
+ // ============================================
103
+ /**
104
+ * Get a single AiRouteRequest record by ID
105
+ *
106
+ * @param id - The record ID
107
+ * @param queryOptions - Query options (WHAT to fetch: entities to include)
108
+ * @param providerOptions - Provider options (HOW to fetch: omitPermissionsCheck)
109
+ *
110
+ * @example
111
+ * ```typescript
112
+ * // Simple get
113
+ * const record = await accessor.get(id);
114
+ *
115
+ * // With related entities
116
+ * const record = await accessor.get(id, { entities: ["Contact", "Address"] });
117
+ *
118
+ * // With permissions bypass
119
+ * const record = await accessor.get(id, {}, { omitPermissionsCheck: true });
120
+ *
121
+ * // Both options
122
+ * const record = await accessor.get(id, { entities: ["Invoice"] }, { omitPermissionsCheck: true });
123
+ * ```
124
+ */
125
+ get(id, queryOptions, providerOptions) {
126
+ return __awaiter(this, void 0, void 0, function* () {
127
+ const record = yield this._provider._getByPrimaryKey(this._moduleName, this._entityName, id, queryOptions, providerOptions);
128
+ return new AiRouteRequestRecord_1.AiRouteRequestRecord(record, this._provider);
129
+ });
130
+ }
131
+ /**
132
+ * Get multiple AiRouteRequest records by IDs
133
+ *
134
+ * @param ids - Array of record IDs
135
+ * @param queryOptions - Query options (WHAT to fetch: entities to include)
136
+ * @param providerOptions - Provider options (HOW to fetch: omitPermissionsCheck)
137
+ */
138
+ getMany(ids, queryOptions, providerOptions) {
139
+ return __awaiter(this, void 0, void 0, function* () {
140
+ if (ids.length === 0)
141
+ return [];
142
+ const records = yield this._provider._getManyByPrimaryKey(this._moduleName, this._entityName, ids, queryOptions, providerOptions);
143
+ return records.map((r) => new AiRouteRequestRecord_1.AiRouteRequestRecord(r, this._provider));
144
+ });
145
+ }
146
+ /**
147
+ * Get AiRouteRequest records by the RECORD-LEVEL external id.
148
+ *
149
+ * Resolved server-side in Postgres against `record.external_id` - not a property
150
+ * search, and not reachable through `query()` (`externalId` is not a queryable
151
+ * column). Use this when an external system hands back its own identifier.
152
+ *
153
+ * Platform limits: max 5000 ids per call, each at most 36 characters. An unknown
154
+ * `type` is rejected with 400 `invalid type`.
155
+ *
156
+ * @param externalIds - The external ids to match (plural - the platform takes an array)
157
+ * @param queryOptions - Query options (WHAT to fetch: narrow by record type)
158
+ * @param providerOptions - Provider options (HOW to fetch: omitPermissionsCheck, withLinks)
159
+ *
160
+ * @example
161
+ * ```typescript
162
+ * // Correlate a provider webhook back to the record it wrote
163
+ * const [message] = await accessor.getManyByExternalId([body.SmsSid]);
164
+ *
165
+ * // Narrowed by record type
166
+ * const closures = await accessor.getManyByExternalId(refs, { type: 'CLOSURE' });
167
+ *
168
+ * // Background job, no link hydration
169
+ * const records = await accessor.getManyByExternalId(refs, undefined, {
170
+ * omitPermissionsCheck: true,
171
+ * withLinks: false,
172
+ * });
173
+ * ```
174
+ */
175
+ getManyByExternalId(externalIds, queryOptions, providerOptions) {
176
+ return __awaiter(this, void 0, void 0, function* () {
177
+ if (externalIds.length === 0)
178
+ return [];
179
+ const records = yield this._provider._getManyByExternalId(this._moduleName, this._entityName, externalIds, queryOptions, providerOptions);
180
+ return records.map((r) => new AiRouteRequestRecord_1.AiRouteRequestRecord(r, this._provider));
181
+ });
182
+ }
183
+ // ============================================
184
+ // SEARCH OPERATIONS
185
+ // ============================================
186
+ /**
187
+ * Search AiRouteRequest records
188
+ *
189
+ * @param params - Search parameters
190
+ * @param providerOptions - Provider options (HOW to fetch: omitPermissionsCheck)
191
+ */
192
+ search(params, providerOptions) {
193
+ return __awaiter(this, void 0, void 0, function* () {
194
+ const result = yield this._provider._searchRecords(this._moduleName, this._entityName, params, providerOptions);
195
+ return {
196
+ records: result.records.map((r) => new AiRouteRequestRecord_1.AiRouteRequestRecord(r, this._provider)),
197
+ totalRecords: result.totalRecords,
198
+ hasMore: result.hasMore,
199
+ aggregations: result.aggregations,
200
+ };
201
+ });
202
+ }
203
+ /**
204
+ * Search all AiRouteRequest records with automatic pagination
205
+ *
206
+ * @param params - Search parameters
207
+ * @param providerOptions - Provider options (HOW to fetch: omitPermissionsCheck)
208
+ */
209
+ searchAll(params, providerOptions) {
210
+ return __awaiter(this, void 0, void 0, function* () {
211
+ const result = yield this._provider._searchAllRecordsAndPaginate(this._moduleName, this._entityName, params, 0, providerOptions);
212
+ return result.records.map((r) => new AiRouteRequestRecord_1.AiRouteRequestRecord(r, this._provider));
213
+ });
214
+ }
215
+ /**
216
+ * Async generator for paginating through all matching records.
217
+ * Yields batches of wrapped records.
218
+ *
219
+ * @param params - Search parameters
220
+ * @param providerOptions - Provider options (HOW to fetch: omitPermissionsCheck)
221
+ */
222
+ paginate(params, providerOptions) {
223
+ var _a;
224
+ return __asyncGenerator(this, arguments, function* paginate_1() {
225
+ let hasMore = true;
226
+ let searchAfter;
227
+ const query = Object.assign(Object.assign({}, params.query), { pageSize: ((_a = params.query) === null || _a === void 0 ? void 0 : _a.pageSize) || 500 });
228
+ while (hasMore) {
229
+ const result = yield __await(this._provider._searchRecords(this._moduleName, this._entityName, Object.assign(Object.assign({}, params), { query: Object.assign(Object.assign({}, query), { searchAfter }) }), providerOptions));
230
+ if (result.records.length > 0) {
231
+ yield yield __await(result.records.map((r) => new AiRouteRequestRecord_1.AiRouteRequestRecord(r, this._provider)));
232
+ const lastRecord = result.records[result.records.length - 1];
233
+ searchAfter = lastRecord === null || lastRecord === void 0 ? void 0 : lastRecord.sort;
234
+ }
235
+ hasMore = result.hasMore && result.records.length >= query.pageSize;
236
+ }
237
+ });
238
+ }
239
+ // ============================================
240
+ // QUERY BUILDER
241
+ // ============================================
242
+ /**
243
+ * Create a fluent query builder for AiRouteRequest records
244
+ *
245
+ * @example
246
+ * ```typescript
247
+ * const results = await accessor
248
+ * .query()
249
+ * .where('Status', 'in', ['Active', 'Pending'])
250
+ * .where('CreatedAt', 'gte', '2025-01-01')
251
+ * .select('id', 'title', 'properties.*')
252
+ * .sortBy('createdAt', 'desc')
253
+ * .limit(100)
254
+ * .execute();
255
+ * ```
256
+ */
257
+ query() {
258
+ return (0, query_builder_1.createQueryBuilder)(this);
259
+ }
260
+ /** Access the underlying DbProvider */
261
+ get provider() {
262
+ return this._provider;
263
+ }
264
+ }
265
+ exports.AiRouteRequestDbAccessor = AiRouteRequestDbAccessor;
@@ -15,6 +15,7 @@ export { AddressInteractionDbAccessor, AddressInteractionDbSearchResponse } from
15
15
  export { AddressDbAccessor, AddressDbSearchResponse } from './AddressDbAccessor';
16
16
  export { AffiliateCodeDbAccessor, AffiliateCodeDbSearchResponse } from './AffiliateCodeDbAccessor';
17
17
  export { AgentStatusDbAccessor, AgentStatusDbSearchResponse } from './AgentStatusDbAccessor';
18
+ export { AiRouteRequestDbAccessor, AiRouteRequestDbSearchResponse } from './AiRouteRequestDbAccessor';
18
19
  export { AppointmentDbAccessor, AppointmentDbSearchResponse } from './AppointmentDbAccessor';
19
20
  export { BillingAdjustmentDbAccessor, BillingAdjustmentDbSearchResponse } from './BillingAdjustmentDbAccessor';
20
21
  export { BillingRequestDbAccessor, BillingRequestDbSearchResponse } from './BillingRequestDbAccessor';
@@ -9,9 +9,9 @@
9
9
  * AUTO-GENERATED - DO NOT EDIT DIRECTLY
10
10
  */
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.NetworkDeviceDbAccessor = exports.ModifyServiceRequestDbAccessor = exports.MessageDbAccessor = exports.LeadDbAccessor = exports.KnowledgeArticleDbAccessor = exports.InvoiceDbAccessor = exports.InvoiceItemDbAccessor = exports.ImpersonationTrackerDbAccessor = exports.FileDbAccessor = exports.FieldServiceProductDbAccessor = exports.FieldServiceDispatchedProductDbAccessor = exports.ExchangeDbAccessor = exports.EmailTemplateDbAccessor = exports.EmailSenderDbAccessor = exports.EmailDbAccessor = exports.DiscountDbAccessor = exports.DataIssueDbAccessor = exports.CustomerPhonePortingDbAccessor = exports.CustomerDeviceRouterDbAccessor = exports.CustomerDeviceDbAccessor = exports.CustomerDeviceOntDbAccessor = exports.CustomerDeviceConfigurationDbAccessor = exports.CustomerDeviceAtaDbAccessor = exports.CrmDatasetDbAccessor = exports.CreditNoteDbAccessor = exports.ConversationSummaryFeedbackDbAccessor = exports.ConversationDbAccessor = exports.ContractBuyOutDbAccessor = exports.ContactDbAccessor = exports.ContactIdentityDbAccessor = exports.ConfigDbAccessor = exports.ChurnRequestDbAccessor = exports.ChangeReasonDbAccessor = exports.CaseDbAccessor = exports.CampaignDbAccessor = exports.CallDbAccessor = exports.CallLegDbAccessor = exports.BrskEntityMigrationErrorDbAccessor = exports.BngProvisionDbAccessor = exports.BillingRequestDbAccessor = exports.BillingAdjustmentDbAccessor = exports.AppointmentDbAccessor = exports.AgentStatusDbAccessor = exports.AffiliateCodeDbAccessor = exports.AddressDbAccessor = exports.AddressInteractionDbAccessor = exports.ActivityDbAccessor = exports.ActivityLogDbAccessor = exports.AccountDbAccessor = exports.AccountCreditDbAccessor = void 0;
13
- exports.SalesTerritoryDbAccessor = exports.RewardDbAccessor = exports.ReturnsDbAccessor = exports.RemediationRequiredReasonDbAccessor = exports.RemediationOutcomeFormDbAccessor = exports.RegionDbAccessor = exports.ReferralDbAccessor = exports.RecontractDbAccessor = exports.QaRubricSectionDbAccessor = exports.QaRubricDbAccessor = exports.QaRubricItemDbAccessor = exports.QaReportDbAccessor = exports.QaAutoFailDbAccessor = exports.PushNotificationDbAccessor = exports.ProductDbAccessor = exports.PriceBookDbAccessor = exports.PgWebhookDbAccessor = exports.PgWebhookAttemptDbAccessor = exports.PgVocalinkDbAccessor = exports.PgTransactionDbAccessor = exports.PgSortCodeSubstitutionDbAccessor = exports.PgReportEventDbAccessor = exports.PgPaymentMethodDbAccessor = exports.PgLogDbAccessor = exports.PgFileAllocationDbAccessor = exports.PgDisputeDbAccessor = exports.PgDirectDebitFileDbAccessor = exports.PgContactDbAccessor = exports.PgAccountValidationDbAccessor = exports.PermissionToFailDbAccessor = exports.PaymentDbAccessor = exports.PaymentMethodRefundDbAccessor = exports.PaymentMethodDbAccessor = exports.PICRequestDbAccessor = exports.OverlayRealA55DbAccessor = exports.OutboundDialSessionDbAccessor = exports.OutboundDialCampaignDbAccessor = exports.OutboundDialCampaignCaseDbAccessor = exports.OutageDbAccessor = exports.OrderDbAccessor = exports.OrderKciDbAccessor = exports.OrderItemDbAccessor = exports.OrderCheckDbAccessor = exports.OntReplacementApprovalDbAccessor = exports.OneTouchSwitchDbAccessor = exports.OhExternalAuditDbAccessor = exports.OfferTemplateDbAccessor = exports.OfferDbAccessor = exports.NotificationTemplateDbAccessor = exports.NoteDbAccessor = void 0;
14
- exports.YfWifiSurveyDbAccessor = exports.YfFieldVisitOutcomeFormDbAccessor = exports.YfAgentLocationDbAccessor = exports.WorkOrderStatusUpdateDbAccessor = exports.WorkOrderDbAccessor = exports.WayleaveAuditDbAccessor = exports.VoiceConfigurationDbAccessor = exports.VisitDbAccessor = exports.UserDbAccessor = exports.UgExternalAuditDbAccessor = exports.TwilioWorkerDbAccessor = exports.TwilioUserUpdateDbAccessor = exports.TwilioTaskQueueDbAccessor = exports.TwilioCallEventDbAccessor = exports.TwilioActivityDbAccessor = exports.TransactionDbAccessor = exports.TimeSlotDbAccessor = exports.TeamDbAccessor = exports.SmsTemplateDbAccessor = exports.SmsMessageDbAccessor = exports.SiteSpecificRiskAssessmentOutcomeFormDbAccessor = exports.ServiceDbAccessor = exports.ServiceAppointmentDbAccessor = exports.ServiceAppointmentConfigDbAccessor = exports.ScheduleSlotDbAccessor = void 0;
12
+ exports.ModifyServiceRequestDbAccessor = exports.MessageDbAccessor = exports.LeadDbAccessor = exports.KnowledgeArticleDbAccessor = exports.InvoiceDbAccessor = exports.InvoiceItemDbAccessor = exports.ImpersonationTrackerDbAccessor = exports.FileDbAccessor = exports.FieldServiceProductDbAccessor = exports.FieldServiceDispatchedProductDbAccessor = exports.ExchangeDbAccessor = exports.EmailTemplateDbAccessor = exports.EmailSenderDbAccessor = exports.EmailDbAccessor = exports.DiscountDbAccessor = exports.DataIssueDbAccessor = exports.CustomerPhonePortingDbAccessor = exports.CustomerDeviceRouterDbAccessor = exports.CustomerDeviceDbAccessor = exports.CustomerDeviceOntDbAccessor = exports.CustomerDeviceConfigurationDbAccessor = exports.CustomerDeviceAtaDbAccessor = exports.CrmDatasetDbAccessor = exports.CreditNoteDbAccessor = exports.ConversationSummaryFeedbackDbAccessor = exports.ConversationDbAccessor = exports.ContractBuyOutDbAccessor = exports.ContactDbAccessor = exports.ContactIdentityDbAccessor = exports.ConfigDbAccessor = exports.ChurnRequestDbAccessor = exports.ChangeReasonDbAccessor = exports.CaseDbAccessor = exports.CampaignDbAccessor = exports.CallDbAccessor = exports.CallLegDbAccessor = exports.BrskEntityMigrationErrorDbAccessor = exports.BngProvisionDbAccessor = exports.BillingRequestDbAccessor = exports.BillingAdjustmentDbAccessor = exports.AppointmentDbAccessor = exports.AiRouteRequestDbAccessor = exports.AgentStatusDbAccessor = exports.AffiliateCodeDbAccessor = exports.AddressDbAccessor = exports.AddressInteractionDbAccessor = exports.ActivityDbAccessor = exports.ActivityLogDbAccessor = exports.AccountDbAccessor = exports.AccountCreditDbAccessor = void 0;
13
+ exports.RewardDbAccessor = exports.ReturnsDbAccessor = exports.RemediationRequiredReasonDbAccessor = exports.RemediationOutcomeFormDbAccessor = exports.RegionDbAccessor = exports.ReferralDbAccessor = exports.RecontractDbAccessor = exports.QaRubricSectionDbAccessor = exports.QaRubricDbAccessor = exports.QaRubricItemDbAccessor = exports.QaReportDbAccessor = exports.QaAutoFailDbAccessor = exports.PushNotificationDbAccessor = exports.ProductDbAccessor = exports.PriceBookDbAccessor = exports.PgWebhookDbAccessor = exports.PgWebhookAttemptDbAccessor = exports.PgVocalinkDbAccessor = exports.PgTransactionDbAccessor = exports.PgSortCodeSubstitutionDbAccessor = exports.PgReportEventDbAccessor = exports.PgPaymentMethodDbAccessor = exports.PgLogDbAccessor = exports.PgFileAllocationDbAccessor = exports.PgDisputeDbAccessor = exports.PgDirectDebitFileDbAccessor = exports.PgContactDbAccessor = exports.PgAccountValidationDbAccessor = exports.PermissionToFailDbAccessor = exports.PaymentDbAccessor = exports.PaymentMethodRefundDbAccessor = exports.PaymentMethodDbAccessor = exports.PICRequestDbAccessor = exports.OverlayRealA55DbAccessor = exports.OutboundDialSessionDbAccessor = exports.OutboundDialCampaignDbAccessor = exports.OutboundDialCampaignCaseDbAccessor = exports.OutageDbAccessor = exports.OrderDbAccessor = exports.OrderKciDbAccessor = exports.OrderItemDbAccessor = exports.OrderCheckDbAccessor = exports.OntReplacementApprovalDbAccessor = exports.OneTouchSwitchDbAccessor = exports.OhExternalAuditDbAccessor = exports.OfferTemplateDbAccessor = exports.OfferDbAccessor = exports.NotificationTemplateDbAccessor = exports.NoteDbAccessor = exports.NetworkDeviceDbAccessor = void 0;
14
+ exports.YfWifiSurveyDbAccessor = exports.YfFieldVisitOutcomeFormDbAccessor = exports.YfAgentLocationDbAccessor = exports.WorkOrderStatusUpdateDbAccessor = exports.WorkOrderDbAccessor = exports.WayleaveAuditDbAccessor = exports.VoiceConfigurationDbAccessor = exports.VisitDbAccessor = exports.UserDbAccessor = exports.UgExternalAuditDbAccessor = exports.TwilioWorkerDbAccessor = exports.TwilioUserUpdateDbAccessor = exports.TwilioTaskQueueDbAccessor = exports.TwilioCallEventDbAccessor = exports.TwilioActivityDbAccessor = exports.TransactionDbAccessor = exports.TimeSlotDbAccessor = exports.TeamDbAccessor = exports.SmsTemplateDbAccessor = exports.SmsMessageDbAccessor = exports.SiteSpecificRiskAssessmentOutcomeFormDbAccessor = exports.ServiceDbAccessor = exports.ServiceAppointmentDbAccessor = exports.ServiceAppointmentConfigDbAccessor = exports.ScheduleSlotDbAccessor = exports.SalesTerritoryDbAccessor = void 0;
15
15
  var AccountCreditDbAccessor_1 = require("./AccountCreditDbAccessor");
16
16
  Object.defineProperty(exports, "AccountCreditDbAccessor", { enumerable: true, get: function () { return AccountCreditDbAccessor_1.AccountCreditDbAccessor; } });
17
17
  var AccountDbAccessor_1 = require("./AccountDbAccessor");
@@ -28,6 +28,8 @@ var AffiliateCodeDbAccessor_1 = require("./AffiliateCodeDbAccessor");
28
28
  Object.defineProperty(exports, "AffiliateCodeDbAccessor", { enumerable: true, get: function () { return AffiliateCodeDbAccessor_1.AffiliateCodeDbAccessor; } });
29
29
  var AgentStatusDbAccessor_1 = require("./AgentStatusDbAccessor");
30
30
  Object.defineProperty(exports, "AgentStatusDbAccessor", { enumerable: true, get: function () { return AgentStatusDbAccessor_1.AgentStatusDbAccessor; } });
31
+ var AiRouteRequestDbAccessor_1 = require("./AiRouteRequestDbAccessor");
32
+ Object.defineProperty(exports, "AiRouteRequestDbAccessor", { enumerable: true, get: function () { return AiRouteRequestDbAccessor_1.AiRouteRequestDbAccessor; } });
31
33
  var AppointmentDbAccessor_1 = require("./AppointmentDbAccessor");
32
34
  Object.defineProperty(exports, "AppointmentDbAccessor", { enumerable: true, get: function () { return AppointmentDbAccessor_1.AppointmentDbAccessor; } });
33
35
  var BillingAdjustmentDbAccessor_1 = require("./BillingAdjustmentDbAccessor");
@@ -355,9 +355,11 @@ export declare enum CaseProblem {
355
355
  * - `TLOS_APP` - TLOS App
356
356
  * - `TLOS_PORTAL` - TLOS Portal
357
357
  * - `TRUSTPILOT_SERVICE_REVIEW` - Trustpilot review
358
+ * - `TWITTER_X_DM` - Twitter/X DM
359
+ * - `TWITTER_X_MENTION` - Twitter/X Mention
358
360
  * - `WEB_CHAT` - Web chat
359
361
  * - `WEB_FORM_BUSINESS` - Web form - Business
360
- * - `WHATSAPP` - Whatsapp
362
+ * - ... and 1 more
361
363
  */
362
364
  export declare enum CaseChannel {
363
365
  CALL = "CALL",
@@ -371,6 +373,8 @@ export declare enum CaseChannel {
371
373
  TLOS_APP = "TLOS_APP",
372
374
  TLOS_PORTAL = "TLOS_PORTAL",
373
375
  TRUSTPILOT_REVIEW = "TRUSTPILOT_SERVICE_REVIEW",
376
+ TWITTER_X_DM = "TWITTER_X_DM",
377
+ TWITTER_X_MENTION = "TWITTER_X_MENTION",
374
378
  WEB_CHAT = "WEB_CHAT",
375
379
  WEB_FORM_BUSINESS = "WEB_FORM_BUSINESS",
376
380
  WHATSAPP = "WHATSAPP"
@@ -347,9 +347,11 @@ var CaseProblem;
347
347
  * - `TLOS_APP` - TLOS App
348
348
  * - `TLOS_PORTAL` - TLOS Portal
349
349
  * - `TRUSTPILOT_SERVICE_REVIEW` - Trustpilot review
350
+ * - `TWITTER_X_DM` - Twitter/X DM
351
+ * - `TWITTER_X_MENTION` - Twitter/X Mention
350
352
  * - `WEB_CHAT` - Web chat
351
353
  * - `WEB_FORM_BUSINESS` - Web form - Business
352
- * - `WHATSAPP` - Whatsapp
354
+ * - ... and 1 more
353
355
  */
354
356
  var CaseChannel;
355
357
  (function (CaseChannel) {
@@ -364,6 +366,8 @@ var CaseChannel;
364
366
  CaseChannel["TLOS_APP"] = "TLOS_APP";
365
367
  CaseChannel["TLOS_PORTAL"] = "TLOS_PORTAL";
366
368
  CaseChannel["TRUSTPILOT_REVIEW"] = "TRUSTPILOT_SERVICE_REVIEW";
369
+ CaseChannel["TWITTER_X_DM"] = "TWITTER_X_DM";
370
+ CaseChannel["TWITTER_X_MENTION"] = "TWITTER_X_MENTION";
367
371
  CaseChannel["WEB_CHAT"] = "WEB_CHAT";
368
372
  CaseChannel["WEB_FORM_BUSINESS"] = "WEB_FORM_BUSINESS";
369
373
  CaseChannel["WHATSAPP"] = "WHATSAPP";
@@ -130,6 +130,29 @@ exports.ORDER_PROCESS_PROJECTION = {
130
130
  {
131
131
  kind: 'related-record',
132
132
  id: 'supply-must-have-active-progressing-install',
133
+ /**
134
+ * NOT START ORDERS. A START order takes over a line that is already
135
+ * provisioned, so no engineer attends: the supplier cancels its INSTALL
136
+ * and says so with
137
+ * `NETOMNIA_INSTALL_WORK_ORDER_CANCELLED_ENGINEER_NOT_REQUIRED`. A
138
+ * Cancelled INSTALL is therefore the normal, correct state for these
139
+ * orders — they activate on the COMPLETED-OrderKci gate instead.
140
+ *
141
+ * Without this scope the dep fires BLOCKER on every healthy START order
142
+ * and the Cancelled-INSTALL clause below prescribes `cancel-parent`,
143
+ * which would deny a customer a service that is physically ready.
144
+ * Measured in production 2026-09-16: 98 of the 122 orders off-track on
145
+ * this dep were START, 58 of them with a COMPLETED confirmation.
146
+ *
147
+ * `notEq` is plain `!==` in the engine, so a NULL SupplierOrderType —
148
+ * the ordinary NEW-provide case — still matches and stays in scope.
149
+ *
150
+ * Ported from the BP, which has declared this since 2026-08-13:
151
+ * agent-os/knowledge/business-processes/order.ts:740
152
+ */
153
+ parentFilter: [
154
+ { column: 'SupplierOrderType', op: 'notEq', value: 'START' },
155
+ ],
133
156
  relation: {
134
157
  entity: 'FieldServiceModule:WorkOrder',
135
158
  filter: [