@linkt/sdk 0.2.0 → 0.4.0

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 (76) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/client.d.mts +7 -4
  3. package/client.d.mts.map +1 -1
  4. package/client.d.ts +7 -4
  5. package/client.d.ts.map +1 -1
  6. package/client.js +3 -0
  7. package/client.js.map +1 -1
  8. package/client.mjs +3 -0
  9. package/client.mjs.map +1 -1
  10. package/package.json +1 -1
  11. package/resources/entity.d.mts +392 -0
  12. package/resources/entity.d.mts.map +1 -0
  13. package/resources/entity.d.ts +392 -0
  14. package/resources/entity.d.ts.map +1 -0
  15. package/resources/entity.js +164 -0
  16. package/resources/entity.js.map +1 -0
  17. package/resources/entity.mjs +160 -0
  18. package/resources/entity.mjs.map +1 -0
  19. package/resources/icp.d.mts +56 -3
  20. package/resources/icp.d.mts.map +1 -1
  21. package/resources/icp.d.ts +56 -3
  22. package/resources/icp.d.ts.map +1 -1
  23. package/resources/icp.js +2 -2
  24. package/resources/icp.mjs +2 -2
  25. package/resources/index.d.mts +3 -2
  26. package/resources/index.d.mts.map +1 -1
  27. package/resources/index.d.ts +3 -2
  28. package/resources/index.d.ts.map +1 -1
  29. package/resources/index.js +3 -1
  30. package/resources/index.js.map +1 -1
  31. package/resources/index.mjs +1 -0
  32. package/resources/index.mjs.map +1 -1
  33. package/resources/run.d.mts +3 -3
  34. package/resources/run.d.ts +3 -3
  35. package/resources/sheet/index.d.mts +1 -2
  36. package/resources/sheet/index.d.mts.map +1 -1
  37. package/resources/sheet/index.d.ts +1 -2
  38. package/resources/sheet/index.d.ts.map +1 -1
  39. package/resources/sheet/index.js +1 -3
  40. package/resources/sheet/index.js.map +1 -1
  41. package/resources/sheet/index.mjs +0 -1
  42. package/resources/sheet/index.mjs.map +1 -1
  43. package/resources/sheet/sheet.d.mts +1 -90
  44. package/resources/sheet/sheet.d.mts.map +1 -1
  45. package/resources/sheet/sheet.d.ts +1 -90
  46. package/resources/sheet/sheet.d.ts.map +1 -1
  47. package/resources/sheet/sheet.js +0 -22
  48. package/resources/sheet/sheet.js.map +1 -1
  49. package/resources/sheet/sheet.mjs +0 -22
  50. package/resources/sheet/sheet.mjs.map +1 -1
  51. package/resources/task.d.mts +443 -288
  52. package/resources/task.d.mts.map +1 -1
  53. package/resources/task.d.ts +443 -288
  54. package/resources/task.d.ts.map +1 -1
  55. package/src/client.ts +57 -20
  56. package/src/resources/entity.ts +491 -0
  57. package/src/resources/icp.ts +59 -3
  58. package/src/resources/index.ts +27 -10
  59. package/src/resources/run.ts +3 -3
  60. package/src/resources/sheet/index.ts +0 -11
  61. package/src/resources/sheet/sheet.ts +0 -136
  62. package/src/resources/task.ts +530 -329
  63. package/src/version.ts +1 -1
  64. package/version.d.mts +1 -1
  65. package/version.d.ts +1 -1
  66. package/version.js +1 -1
  67. package/version.mjs +1 -1
  68. package/resources/sheet/entity.d.mts +0 -52
  69. package/resources/sheet/entity.d.mts.map +0 -1
  70. package/resources/sheet/entity.d.ts +0 -52
  71. package/resources/sheet/entity.d.ts.map +0 -1
  72. package/resources/sheet/entity.js +0 -45
  73. package/resources/sheet/entity.js.map +0 -1
  74. package/resources/sheet/entity.mjs +0 -41
  75. package/resources/sheet/entity.mjs.map +0 -1
  76. package/src/resources/sheet/entity.ts +0 -97
@@ -84,15 +84,40 @@ export declare class Task extends APIResource {
84
84
  execute(taskID: string, body: TaskExecuteParams, options?: RequestOptions): APIPromise<TaskExecuteResponse>;
85
85
  }
86
86
  /**
87
- * Configuration for one-time CSV enrichment tasks.
87
+ * Ingest prompt configuration in API responses.
88
88
  *
89
- * Used by ingest_csv workflows to enrich entities from uploaded CSV files. The
90
- * csv_entity_type tracks the entity type of rows IN THE CSV, which may differ from
91
- * the ICP hierarchy (e.g., CSV has people, but ICP has company→person).
89
+ * Response model for prompt-based ingest task configs that excludes
90
+ * backend-managed fields from the API surface. This is for simple prompt-based
91
+ * ingest workflows, distinct from IngestTaskConfigResponse which is for CSV
92
+ * enrichment tasks.
92
93
  *
93
- * Attributes: file_id: Reference to uploaded CSV file in S3 (via File document)
94
- * primary_column: Column containing entity names for matching csv_entity_type:
95
- * Entity type of rows in CSV (may differ from ICP hierarchy)
94
+ * Attributes: type: Config type discriminator (always "ingest-prompt"). prompt:
95
+ * Task prompt template. webhook_url: Webhook URL for completion notification.
96
+ */
97
+ export interface IngestPromptConfigResponse {
98
+ /**
99
+ * Task prompt template
100
+ */
101
+ prompt: string;
102
+ type?: 'ingest-prompt';
103
+ /**
104
+ * Webhook URL for completion notification
105
+ */
106
+ webhook_url?: string | null;
107
+ }
108
+ /**
109
+ * CSV enrichment task configuration.
110
+ *
111
+ * Enriches entities from an uploaded CSV file with additional data discovered by
112
+ * AI agents.
113
+ *
114
+ * Attributes: type: Config type discriminator (always "ingest"). file_id: ID of
115
+ * the uploaded CSV file to process. primary_column: Column containing entity names
116
+ * for matching. csv_entity_type: Entity type in the CSV (e.g., 'person',
117
+ * 'company'). webhook_url: Optional webhook URL for completion notification.
118
+ *
119
+ * Example: >>> config = IngestTaskConfigRequest( ... file_id="abc123", ...
120
+ * primary_column="company_name", ... csv_entity_type="company" ... )
96
121
  */
97
122
  export interface IngestTaskConfig {
98
123
  /**
@@ -100,139 +125,254 @@ export interface IngestTaskConfig {
100
125
  */
101
126
  csv_entity_type: string;
102
127
  /**
103
- * File ID referencing uploaded CSV in MongoDB
128
+ * ID of the uploaded CSV file to process
104
129
  */
105
130
  file_id: string;
106
131
  /**
107
- * Column containing entity names
132
+ * Column containing entity names for matching
108
133
  */
109
134
  primary_column: string;
110
135
  /**
111
- * Config type for ingest tasks
136
+ * Config type discriminator
112
137
  */
113
- config_type?: 'ingest-task';
114
- version?: 'v1.0';
138
+ type?: 'ingest';
115
139
  /**
116
- * Optional webhook URL to notify when workflow run completes
140
+ * Optional webhook URL to notify when workflow completes
117
141
  */
118
142
  webhook_url?: string | null;
119
143
  }
120
144
  /**
121
- * Search v2 dual-agent configuration.
145
+ * Ingest task configuration in API responses.
146
+ *
147
+ * Response model for CSV enrichment task configs that excludes backend-managed
148
+ * fields from the API surface.
149
+ *
150
+ * Attributes: type: Config type discriminator (always "ingest"). file_id: ID of
151
+ * the CSV file. primary_column: Column containing entity names. csv_entity_type:
152
+ * Entity type in CSV. webhook_url: Webhook URL for completion notification.
122
153
  */
123
- export interface SearchV2Config {
154
+ export interface IngestTaskConfigResponse {
155
+ /**
156
+ * Entity type in CSV
157
+ */
158
+ csv_entity_type: string;
159
+ /**
160
+ * ID of the CSV file
161
+ */
162
+ file_id: string;
124
163
  /**
125
- * Jinja2 analyst agent instructions
164
+ * Column containing entity names
126
165
  */
127
- analyst_prompt: string;
166
+ primary_column: string;
167
+ type?: 'ingest';
168
+ /**
169
+ * Webhook URL for completion notification
170
+ */
171
+ webhook_url?: string | null;
172
+ }
173
+ /**
174
+ * Profile prompt task configuration.
175
+ *
176
+ * Configures a profile workflow with a custom prompt template.
177
+ *
178
+ * Attributes: type: Config type discriminator (always "profile"). prompt: Jinja2
179
+ * template for task instructions. webhook_url: Optional webhook URL for completion
180
+ * notification.
181
+ *
182
+ * Example: >>> config = ProfilePromptConfigRequest( ... prompt="Analyze
183
+ * {{ company_name }} and extract key metrics." ... )
184
+ */
185
+ export interface ProfilePromptConfig {
128
186
  /**
129
- * Jinja2 discovery agent instructions
187
+ * Jinja2 template for task instructions
130
188
  */
131
- discovery_prompt: string;
189
+ prompt: string;
132
190
  /**
133
- * Config type (search-prompt for legacy, search-task for normalized)
191
+ * Config type discriminator
134
192
  */
135
- config_type?: 'search-prompt' | 'search-task';
136
- version?: 'v2.0';
193
+ type?: 'profile';
137
194
  /**
138
- * Optional webhook URL to notify when workflow run completes
195
+ * Optional webhook URL to notify when workflow completes
139
196
  */
140
197
  webhook_url?: string | null;
141
198
  }
142
199
  /**
143
- * Search v3.0 configuration with planning-driven approach.
200
+ * Profile prompt configuration in API responses.
144
201
  *
145
- * Key differences from v2.0:
202
+ * Response model for profile prompt task configs that excludes backend-managed
203
+ * fields from the API surface.
146
204
  *
147
- * - No hardcoded discovery_prompt or analyst_prompt
148
- * - desired_contact_count extracted from ICP builder session
149
- * - user_feedback field for append-only feedback accumulation
205
+ * Attributes: type: Config type discriminator (always "profile"). prompt: Task
206
+ * prompt template. webhook_url: Webhook URL for completion notification.
150
207
  */
151
- export interface SearchV3Config {
208
+ export interface ProfilePromptConfigResponse {
209
+ /**
210
+ * Task prompt template
211
+ */
212
+ prompt: string;
213
+ type?: 'profile';
152
214
  /**
153
- * Normalized config type for all search tasks
215
+ * Webhook URL for completion notification
154
216
  */
155
- config_type?: 'search-task';
217
+ webhook_url?: string | null;
218
+ }
219
+ /**
220
+ * Search task configuration for finding companies and contacts.
221
+ *
222
+ * Creates a v3.0 search workflow that uses AI agents to discover entities matching
223
+ * your ICP criteria.
224
+ *
225
+ * Attributes: type: Config type discriminator (always "search").
226
+ * desired_contact_count: Number of contacts to find per company (minimum: 1).
227
+ * user_feedback: Optional feedback to refine search behavior. webhook_url:
228
+ * Optional webhook URL for completion notification.
229
+ *
230
+ * Example: >>> config = SearchTaskConfigRequest(desired_contact_count=5) >>>
231
+ * mongo_config = config.to_mongo_config() >>> mongo_config.version 'v3.0'
232
+ */
233
+ export interface SearchTaskConfig {
156
234
  /**
157
- * Number of contacts to find per company (from ICP builder session)
235
+ * Number of contacts to find per company (minimum: 1)
158
236
  */
159
237
  desired_contact_count?: number;
160
238
  /**
161
- * Accumulated user feedback (append-only)
239
+ * Config type discriminator
240
+ */
241
+ type?: 'search';
242
+ /**
243
+ * Optional feedback to refine search behavior
162
244
  */
163
245
  user_feedback?: string;
164
- version?: 'v3.0';
165
246
  /**
166
- * Optional webhook URL to notify when workflow run completes
247
+ * Optional webhook URL to notify when workflow completes
248
+ */
249
+ webhook_url?: string | null;
250
+ }
251
+ /**
252
+ * Search task configuration in API responses.
253
+ *
254
+ * Response model for search task configs that excludes backend-managed fields
255
+ * (version, config_type) from the API surface.
256
+ *
257
+ * Attributes: type: Config type discriminator (always "search").
258
+ * desired_contact_count: Number of contacts to find per company. user_feedback:
259
+ * Feedback to refine search behavior. webhook_url: Webhook URL for completion
260
+ * notification.
261
+ */
262
+ export interface SearchTaskConfigResponse {
263
+ /**
264
+ * Number of contacts to find per company
265
+ */
266
+ desired_contact_count: number;
267
+ /**
268
+ * Feedback to refine search behavior
269
+ */
270
+ user_feedback: string;
271
+ type?: 'search';
272
+ /**
273
+ * Webhook URL for completion notification
167
274
  */
168
275
  webhook_url?: string | null;
169
276
  }
170
277
  /**
171
278
  * CSV-based signal monitoring configuration.
172
279
  *
173
- * Monitors signals for companies/people uploaded via CSV file.
280
+ * Monitors signals for entities uploaded via CSV file.
281
+ *
282
+ * Attributes: type: Config type discriminator (always "signal-csv"). file_id: ID
283
+ * of the uploaded CSV file. signal_types: Types of signals to monitor.
284
+ * entity_type: Type of entity being monitored (default: company). primary_column:
285
+ * Column containing entity names (default: "name"). monitoring_frequency: How
286
+ * often to check (daily/weekly/monthly). webhook_url: Optional webhook URL for
287
+ * completion notification.
174
288
  *
175
- * Attributes: version: Config version (always "v2.0") config_type: Config type
176
- * discriminator (always "signal-csv") entity_type: Type of entity being monitored
177
- * (company, person, etc.) file_id: ID of the uploaded CSV file primary_column:
178
- * Column containing entity names (defaults to "name") signal_types: Types of
179
- * signals to monitor for these entities monitoring_frequency: How often to check
180
- * for signals (daily/weekly/monthly) webhook_url: Optional webhook URL to notify
181
- * when signal run completes
289
+ * Example: >>> config = SignalCSVConfigRequest( ... file_id="abc123", ...
290
+ * signal_types=[SignalTypeConfig(type="hiring_surge", ...)] ... )
182
291
  */
183
- export interface SignalCsvConfigInput {
292
+ export interface SignalCsvConfig {
184
293
  /**
185
294
  * ID of the uploaded CSV file
186
295
  */
187
296
  file_id: string;
188
297
  /**
189
- * Types of signals to monitor for these entities
298
+ * Types of signals to monitor
190
299
  */
191
300
  signal_types: Array<SignalTypeConfig>;
192
301
  /**
193
- * Config type discriminator
194
- */
195
- config_type?: 'signal-csv';
196
- /**
197
- * Type of entity being monitored (company, school district, person, etc.)
302
+ * Type of entity being monitored
198
303
  */
199
304
  entity_type?: SheetAPI.EntityType;
200
305
  /**
201
- * How often to check for new signals (daily, weekly, monthly)
306
+ * How often to check for new signals
202
307
  */
203
308
  monitoring_frequency?: 'daily' | 'weekly' | 'monthly';
204
309
  /**
205
- * Column containing entity names. Defaults to 'name'. Used to extract entity names
206
- * from CSV rows during signal workflow.
310
+ * Column containing entity names
207
311
  */
208
312
  primary_column?: string;
209
313
  /**
210
- * Config version
314
+ * Config type discriminator
211
315
  */
212
- version?: 'v2.0';
316
+ type?: 'signal-csv';
213
317
  /**
214
- * Optional webhook URL to notify when signal run completes
318
+ * Optional webhook URL to notify when workflow completes
319
+ */
320
+ webhook_url?: string | null;
321
+ }
322
+ /**
323
+ * Signal CSV configuration in API responses.
324
+ *
325
+ * Response model for CSV-based signal monitoring configs.
326
+ *
327
+ * Attributes: type: Config type discriminator (always "signal-csv"). file_id: CSV
328
+ * file ID. signal_types: Types of signals to monitor. entity_type: Type of entity
329
+ * being monitored. primary_column: Primary column for entity names.
330
+ * monitoring_frequency: How often to check for signals. webhook_url: Webhook URL
331
+ * for completion notification.
332
+ */
333
+ export interface SignalCsvConfigResponse {
334
+ /**
335
+ * Entity type
336
+ */
337
+ entity_type: SheetAPI.EntityType;
338
+ /**
339
+ * CSV file ID
340
+ */
341
+ file_id: string;
342
+ /**
343
+ * Monitoring frequency
344
+ */
345
+ monitoring_frequency: 'daily' | 'weekly' | 'monthly';
346
+ /**
347
+ * Primary column
348
+ */
349
+ primary_column: string;
350
+ /**
351
+ * Signal types
352
+ */
353
+ signal_types: Array<SignalTypeConfig>;
354
+ type?: 'signal-csv';
355
+ /**
356
+ * Webhook URL for completion notification
215
357
  */
216
358
  webhook_url?: string | null;
217
359
  }
218
360
  /**
219
361
  * Sheet-based signal monitoring configuration.
220
362
  *
221
- * Monitors signals for entities from an existing discovery ICP's sheet. Unlike CSV
222
- * mode, signals are deterministically linked to source entities without requiring
223
- * analyst agent processing.
363
+ * Monitors signals for entities from an existing discovery ICP's sheet.
224
364
  *
225
- * UPDATED 2025-12-29: Removed source_sheet_id field. Sheets are uniquely
226
- * identified by (source_icp_id, entity_type), so source_sheet_id was redundant and
227
- * never used at runtime.
365
+ * Attributes: type: Config type discriminator (always "signal-sheet").
366
+ * source_icp_id: ID of the discovery ICP containing entities to monitor.
367
+ * signal_types: Types of signals to monitor. entity_type: Type of entity being
368
+ * monitored (default: company). entity_filters: Optional MongoDB query to filter
369
+ * entities. monitoring_frequency: How often to check (daily/weekly/monthly).
370
+ * webhook_url: Optional webhook URL for completion notification.
228
371
  *
229
- * Attributes: source_icp_id: ID of the discovery ICP containing entities to
230
- * monitor entity_type: Type of entity being monitored (selects which sheet)
231
- * entity_filters: Optional MongoDB query to filter entities signal_types: Types of
232
- * signals to monitor monitoring_frequency: How often to check for signals
233
- * webhook_url: Optional webhook URL to notify when signal run completes
372
+ * Example: >>> config = SignalSheetConfigRequest( ... source_icp_id="icp123", ...
373
+ * signal_types=[SignalTypeConfig(type="leadership_change", ...)] ... )
234
374
  */
235
- export interface SignalSheetConfigInput {
375
+ export interface SignalSheetConfig {
236
376
  /**
237
377
  * Types of signals to monitor
238
378
  */
@@ -242,17 +382,13 @@ export interface SignalSheetConfigInput {
242
382
  */
243
383
  source_icp_id: string;
244
384
  /**
245
- * Config type discriminator
246
- */
247
- config_type?: 'signal-sheet';
248
- /**
249
- * Optional MongoDB query to filter entities within the sheet
385
+ * Optional MongoDB query to filter entities
250
386
  */
251
387
  entity_filters?: {
252
388
  [key: string]: unknown;
253
389
  } | null;
254
390
  /**
255
- * Type of entity being monitored (company, person, school_district, etc.)
391
+ * Type of entity being monitored
256
392
  */
257
393
  entity_type?: SheetAPI.EntityType;
258
394
  /**
@@ -260,31 +396,77 @@ export interface SignalSheetConfigInput {
260
396
  */
261
397
  monitoring_frequency?: 'daily' | 'weekly' | 'monthly';
262
398
  /**
263
- * Config version
399
+ * Config type discriminator
264
400
  */
265
- version?: 'v2.0';
401
+ type?: 'signal-sheet';
266
402
  /**
267
- * Optional webhook URL to notify when signal run completes
403
+ * Optional webhook URL to notify when workflow completes
404
+ */
405
+ webhook_url?: string | null;
406
+ }
407
+ /**
408
+ * Signal sheet configuration in API responses.
409
+ *
410
+ * Response model for sheet-based signal monitoring configs.
411
+ *
412
+ * Attributes: type: Config type discriminator (always "signal-sheet").
413
+ * source_icp_id: Source ICP ID containing entities to monitor. signal_types: Types
414
+ * of signals to monitor. entity_type: Type of entity being monitored.
415
+ * entity_filters: Optional MongoDB query to filter entities. monitoring_frequency:
416
+ * How often to check for signals. webhook_url: Webhook URL for completion
417
+ * notification.
418
+ */
419
+ export interface SignalSheetConfigResponse {
420
+ /**
421
+ * Entity type
422
+ */
423
+ entity_type: SheetAPI.EntityType;
424
+ /**
425
+ * Monitoring frequency
426
+ */
427
+ monitoring_frequency: 'daily' | 'weekly' | 'monthly';
428
+ /**
429
+ * Signal types
430
+ */
431
+ signal_types: Array<SignalTypeConfig>;
432
+ /**
433
+ * Source ICP ID
434
+ */
435
+ source_icp_id: string;
436
+ /**
437
+ * Entity filters
438
+ */
439
+ entity_filters?: {
440
+ [key: string]: unknown;
441
+ } | null;
442
+ type?: 'signal-sheet';
443
+ /**
444
+ * Webhook URL for completion notification
268
445
  */
269
446
  webhook_url?: string | null;
270
447
  }
271
448
  /**
272
449
  * Topic-based signal monitoring configuration.
273
450
  *
274
- * Monitors signals based on criteria without requiring pre-existing entities.
451
+ * Monitors for signals based on topic criteria without requiring pre-existing
452
+ * entities.
453
+ *
454
+ * Attributes: type: Config type discriminator (always "signal-topic").
455
+ * topic_criteria: Natural language description of what to monitor. signal_types:
456
+ * Types of signals to monitor. entity_type: Type of entity being monitored
457
+ * (default: company). monitoring_frequency: How often to check
458
+ * (daily/weekly/monthly). geographic_filters: Optional geographic regions to focus
459
+ * on. industry_filters: Optional industries to focus on. company_size_filters:
460
+ * Optional company size criteria. webhook_url: Optional webhook URL for completion
461
+ * notification.
275
462
  *
276
- * Attributes: version: Config version (always "v2.0") config_type: Config type
277
- * discriminator (always "signal-topic") entity_type: Type of entity being
278
- * monitored (company, person, etc.) topic_criteria: Natural language description
279
- * of what to monitor signal_types: Types of signals to monitor for this topic
280
- * monitoring_frequency: How often to check for signals (daily/weekly/monthly)
281
- * geographic_filters: Optional geographic regions to focus on industry_filters:
282
- * Optional industries to focus on company_size_filters: Optional company size
283
- * criteria webhook_url: Optional webhook URL to notify when signal run completes
463
+ * Example: >>> config = SignalTopicConfigRequest( ... topic_criteria="AI startups
464
+ * raising Series A", ... signal_types=[SignalTypeConfig(type="funding", ...)] ...
465
+ * )
284
466
  */
285
- export interface SignalTopicConfigInput {
467
+ export interface SignalTopicConfig {
286
468
  /**
287
- * Types of signals to monitor for this topic
469
+ * Types of signals to monitor
288
470
  */
289
471
  signal_types: Array<SignalTypeConfig>;
290
472
  /**
@@ -292,15 +474,11 @@ export interface SignalTopicConfigInput {
292
474
  */
293
475
  topic_criteria: string;
294
476
  /**
295
- * Company size criteria (e.g., employee count ranges)
477
+ * Company size criteria
296
478
  */
297
479
  company_size_filters?: Array<string> | null;
298
480
  /**
299
- * Config type discriminator
300
- */
301
- config_type?: 'signal-topic';
302
- /**
303
- * Type of entity being monitored (company, school district, person, etc.)
481
+ * Type of entity being monitored
304
482
  */
305
483
  entity_type?: SheetAPI.EntityType;
306
484
  /**
@@ -312,15 +490,62 @@ export interface SignalTopicConfigInput {
312
490
  */
313
491
  industry_filters?: Array<string> | null;
314
492
  /**
315
- * How often to check for new signals (daily, weekly, monthly)
493
+ * How often to check for new signals
316
494
  */
317
495
  monitoring_frequency?: 'daily' | 'weekly' | 'monthly';
318
496
  /**
319
- * Config version
497
+ * Config type discriminator
320
498
  */
321
- version?: 'v2.0';
499
+ type?: 'signal-topic';
322
500
  /**
323
- * Optional webhook URL to notify when signal run completes
501
+ * Optional webhook URL to notify when workflow completes
502
+ */
503
+ webhook_url?: string | null;
504
+ }
505
+ /**
506
+ * Signal topic configuration in API responses.
507
+ *
508
+ * Response model for topic-based signal monitoring configs.
509
+ *
510
+ * Attributes: type: Config type discriminator (always "signal-topic").
511
+ * topic_criteria: Topic criteria for monitoring. signal_types: Types of signals to
512
+ * monitor. entity_type: Type of entity being monitored. monitoring_frequency: How
513
+ * often to check for signals. geographic_filters: Geographic regions to focus on.
514
+ * industry_filters: Industries to focus on. company_size_filters: Company size
515
+ * criteria. webhook_url: Webhook URL for completion notification.
516
+ */
517
+ export interface SignalTopicConfigResponse {
518
+ /**
519
+ * Entity type
520
+ */
521
+ entity_type: SheetAPI.EntityType;
522
+ /**
523
+ * Monitoring frequency
524
+ */
525
+ monitoring_frequency: 'daily' | 'weekly' | 'monthly';
526
+ /**
527
+ * Signal types
528
+ */
529
+ signal_types: Array<SignalTypeConfig>;
530
+ /**
531
+ * Topic criteria
532
+ */
533
+ topic_criteria: string;
534
+ /**
535
+ * Size filters
536
+ */
537
+ company_size_filters?: Array<string> | null;
538
+ /**
539
+ * Geographic filters
540
+ */
541
+ geographic_filters?: Array<string> | null;
542
+ /**
543
+ * Industry filters
544
+ */
545
+ industry_filters?: Array<string> | null;
546
+ type?: 'signal-topic';
547
+ /**
548
+ * Webhook URL for completion notification
324
549
  */
325
550
  webhook_url?: string | null;
326
551
  }
@@ -344,35 +569,118 @@ export interface SignalTypeConfig {
344
569
  type: 'funding' | 'leadership_change' | 'layoff' | 'product_launch' | 'partnership' | 'acquisition' | 'expansion' | 'award' | 'pivot' | 'regulatory' | 'rfp' | 'contract_renewal' | 'hiring_surge' | 'infrastructure' | 'compliance' | 'job_posting' | 'other';
345
570
  }
346
571
  /**
347
- * Standard single-prompt configuration for most flows. Used by: ingest, profile,
348
- * signal, and future single-prompt flows.
572
+ * Response model for task data.
573
+ *
574
+ * Uses TaskConfigResponse discriminated union for proper OpenAPI schema generation
575
+ * with type-based discrimination.
349
576
  *
350
- * NOTE: config_type should match flow_name (e.g., 'profile-prompt',
351
- * 'ingest-prompt'). This is enforced by Task model validator.
577
+ * Attributes: id: Task ID. name: Task name. description: Task description. icp_id:
578
+ * Task ICP ID. flow_name: Prefect flow name. deployment_name: Prefect deployment
579
+ * name. prompt: Template prompt for the task. task_config: Flow-specific task
580
+ * configuration. created_at: Creation timestamp. updated_at: Last update
581
+ * timestamp.
352
582
  */
353
- export interface StandardPromptConfig {
583
+ export interface TaskCreateResponse {
354
584
  /**
355
- * Config type (e.g., 'profile-prompt', 'ingest-prompt')
585
+ * Task ID
356
586
  */
357
- config_type: string;
587
+ id: string;
358
588
  /**
359
- * Jinja2 template for task instructions
589
+ * Creation timestamp
360
590
  */
361
- prompt: string;
362
- version?: 'v1.0';
591
+ created_at: string;
363
592
  /**
364
- * Optional webhook URL to notify when workflow run completes
593
+ * Prefect deployment name
365
594
  */
366
- webhook_url?: string | null;
595
+ deployment_name: string;
596
+ /**
597
+ * Task description
598
+ */
599
+ description: string;
600
+ /**
601
+ * Prefect flow name
602
+ */
603
+ flow_name: string;
604
+ /**
605
+ * Task name
606
+ */
607
+ name: string;
608
+ /**
609
+ * Last update timestamp
610
+ */
611
+ updated_at: string;
612
+ /**
613
+ * Task ICP ID
614
+ */
615
+ icp_id?: string | null;
616
+ /**
617
+ * Template prompt for the task. Can include placeholders for runtime parameters.
618
+ */
619
+ prompt?: string | null;
620
+ /**
621
+ * Flow-specific task configuration
622
+ */
623
+ task_config?: SearchTaskConfigResponse | IngestTaskConfigResponse | IngestPromptConfigResponse | ProfilePromptConfigResponse | SignalTopicConfigResponse | SignalCsvConfigResponse | SignalSheetConfigResponse | null;
624
+ }
625
+ /**
626
+ * Response model for task data.
627
+ *
628
+ * Uses TaskConfigResponse discriminated union for proper OpenAPI schema generation
629
+ * with type-based discrimination.
630
+ *
631
+ * Attributes: id: Task ID. name: Task name. description: Task description. icp_id:
632
+ * Task ICP ID. flow_name: Prefect flow name. deployment_name: Prefect deployment
633
+ * name. prompt: Template prompt for the task. task_config: Flow-specific task
634
+ * configuration. created_at: Creation timestamp. updated_at: Last update
635
+ * timestamp.
636
+ */
637
+ export interface TaskRetrieveResponse {
638
+ /**
639
+ * Task ID
640
+ */
641
+ id: string;
642
+ /**
643
+ * Creation timestamp
644
+ */
645
+ created_at: string;
646
+ /**
647
+ * Prefect deployment name
648
+ */
649
+ deployment_name: string;
650
+ /**
651
+ * Task description
652
+ */
653
+ description: string;
654
+ /**
655
+ * Prefect flow name
656
+ */
657
+ flow_name: string;
658
+ /**
659
+ * Task name
660
+ */
661
+ name: string;
662
+ /**
663
+ * Last update timestamp
664
+ */
665
+ updated_at: string;
666
+ /**
667
+ * Task ICP ID
668
+ */
669
+ icp_id?: string | null;
670
+ /**
671
+ * Template prompt for the task. Can include placeholders for runtime parameters.
672
+ */
673
+ prompt?: string | null;
674
+ /**
675
+ * Flow-specific task configuration
676
+ */
677
+ task_config?: SearchTaskConfigResponse | IngestTaskConfigResponse | IngestPromptConfigResponse | ProfilePromptConfigResponse | SignalTopicConfigResponse | SignalCsvConfigResponse | SignalSheetConfigResponse | null;
367
678
  }
368
- export type TaskCreateResponse = {
369
- [key: string]: unknown;
370
- };
371
- export type TaskRetrieveResponse = {
372
- [key: string]: unknown;
373
- };
374
679
  /**
375
680
  * Response model for paginated task list.
681
+ *
682
+ * Attributes: tasks: List of tasks. total: Total number of tasks matching filters.
683
+ * page: Current page number (1-based). page_size: Number of items per page.
376
684
  */
377
685
  export interface TaskListResponse {
378
686
  /**
@@ -395,6 +703,15 @@ export interface TaskListResponse {
395
703
  export declare namespace TaskListResponse {
396
704
  /**
397
705
  * Response model for task data.
706
+ *
707
+ * Uses TaskConfigResponse discriminated union for proper OpenAPI schema generation
708
+ * with type-based discrimination.
709
+ *
710
+ * Attributes: id: Task ID. name: Task name. description: Task description. icp_id:
711
+ * Task ICP ID. flow_name: Prefect flow name. deployment_name: Prefect deployment
712
+ * name. prompt: Template prompt for the task. task_config: Flow-specific task
713
+ * configuration. created_at: Creation timestamp. updated_at: Last update
714
+ * timestamp.
398
715
  */
399
716
  interface Task {
400
717
  /**
@@ -434,174 +751,16 @@ export declare namespace TaskListResponse {
434
751
  */
435
752
  prompt?: string | null;
436
753
  /**
437
- * Flow-specific task configuration with versioning
754
+ * Flow-specific task configuration
438
755
  */
439
- task_config?: {
440
- [key: string]: unknown;
441
- } | TaskAPI.StandardPromptConfig | TaskAPI.SearchV2Config | TaskAPI.SearchV3Config | TaskAPI.IngestTaskConfig | Task.SignalTopicConfigOutput | Task.SignalCsvConfigOutput | Task.SignalSheetConfigOutput | null;
442
- }
443
- namespace Task {
444
- /**
445
- * Topic-based signal monitoring configuration.
446
- *
447
- * Monitors signals based on criteria without requiring pre-existing entities.
448
- *
449
- * Attributes: version: Config version (always "v2.0") config_type: Config type
450
- * discriminator (always "signal-topic") entity_type: Type of entity being
451
- * monitored (company, person, etc.) topic_criteria: Natural language description
452
- * of what to monitor signal_types: Types of signals to monitor for this topic
453
- * monitoring_frequency: How often to check for signals (daily/weekly/monthly)
454
- * geographic_filters: Optional geographic regions to focus on industry_filters:
455
- * Optional industries to focus on company_size_filters: Optional company size
456
- * criteria webhook_url: Optional webhook URL to notify when signal run completes
457
- */
458
- interface SignalTopicConfigOutput {
459
- /**
460
- * Types of signals to monitor for this topic
461
- */
462
- signal_types: Array<TaskAPI.SignalTypeConfig>;
463
- /**
464
- * Natural language description of what to monitor
465
- */
466
- topic_criteria: string;
467
- /**
468
- * Company size criteria (e.g., employee count ranges)
469
- */
470
- company_size_filters?: Array<string> | null;
471
- /**
472
- * Config type discriminator
473
- */
474
- config_type?: 'signal-topic';
475
- /**
476
- * Type of entity being monitored (company, school district, person, etc.)
477
- */
478
- entity_type?: SheetAPI.EntityType;
479
- /**
480
- * Geographic regions to focus on
481
- */
482
- geographic_filters?: Array<string> | null;
483
- /**
484
- * Industries to focus on
485
- */
486
- industry_filters?: Array<string> | null;
487
- /**
488
- * How often to check for new signals (daily, weekly, monthly)
489
- */
490
- monitoring_frequency?: 'daily' | 'weekly' | 'monthly';
491
- /**
492
- * Config version
493
- */
494
- version?: 'v2.0';
495
- /**
496
- * Optional webhook URL to notify when signal run completes
497
- */
498
- webhook_url?: string | null;
499
- }
500
- /**
501
- * CSV-based signal monitoring configuration.
502
- *
503
- * Monitors signals for companies/people uploaded via CSV file.
504
- *
505
- * Attributes: version: Config version (always "v2.0") config_type: Config type
506
- * discriminator (always "signal-csv") entity_type: Type of entity being monitored
507
- * (company, person, etc.) file_id: ID of the uploaded CSV file primary_column:
508
- * Column containing entity names (defaults to "name") signal_types: Types of
509
- * signals to monitor for these entities monitoring_frequency: How often to check
510
- * for signals (daily/weekly/monthly) webhook_url: Optional webhook URL to notify
511
- * when signal run completes
512
- */
513
- interface SignalCsvConfigOutput {
514
- /**
515
- * ID of the uploaded CSV file
516
- */
517
- file_id: string;
518
- /**
519
- * Types of signals to monitor for these entities
520
- */
521
- signal_types: Array<TaskAPI.SignalTypeConfig>;
522
- /**
523
- * Config type discriminator
524
- */
525
- config_type?: 'signal-csv';
526
- /**
527
- * Type of entity being monitored (company, school district, person, etc.)
528
- */
529
- entity_type?: SheetAPI.EntityType;
530
- /**
531
- * How often to check for new signals (daily, weekly, monthly)
532
- */
533
- monitoring_frequency?: 'daily' | 'weekly' | 'monthly';
534
- /**
535
- * Column containing entity names. Defaults to 'name'. Used to extract entity names
536
- * from CSV rows during signal workflow.
537
- */
538
- primary_column?: string;
539
- /**
540
- * Config version
541
- */
542
- version?: 'v2.0';
543
- /**
544
- * Optional webhook URL to notify when signal run completes
545
- */
546
- webhook_url?: string | null;
547
- }
548
- /**
549
- * Sheet-based signal monitoring configuration.
550
- *
551
- * Monitors signals for entities from an existing discovery ICP's sheet. Unlike CSV
552
- * mode, signals are deterministically linked to source entities without requiring
553
- * analyst agent processing.
554
- *
555
- * UPDATED 2025-12-29: Removed source_sheet_id field. Sheets are uniquely
556
- * identified by (source_icp_id, entity_type), so source_sheet_id was redundant and
557
- * never used at runtime.
558
- *
559
- * Attributes: source_icp_id: ID of the discovery ICP containing entities to
560
- * monitor entity_type: Type of entity being monitored (selects which sheet)
561
- * entity_filters: Optional MongoDB query to filter entities signal_types: Types of
562
- * signals to monitor monitoring_frequency: How often to check for signals
563
- * webhook_url: Optional webhook URL to notify when signal run completes
564
- */
565
- interface SignalSheetConfigOutput {
566
- /**
567
- * Types of signals to monitor
568
- */
569
- signal_types: Array<TaskAPI.SignalTypeConfig>;
570
- /**
571
- * ID of the discovery ICP containing entities to monitor
572
- */
573
- source_icp_id: string;
574
- /**
575
- * Config type discriminator
576
- */
577
- config_type?: 'signal-sheet';
578
- /**
579
- * Optional MongoDB query to filter entities within the sheet
580
- */
581
- entity_filters?: {
582
- [key: string]: unknown;
583
- } | null;
584
- /**
585
- * Type of entity being monitored (company, person, school_district, etc.)
586
- */
587
- entity_type?: SheetAPI.EntityType;
588
- /**
589
- * How often to check for new signals
590
- */
591
- monitoring_frequency?: 'daily' | 'weekly' | 'monthly';
592
- /**
593
- * Config version
594
- */
595
- version?: 'v2.0';
596
- /**
597
- * Optional webhook URL to notify when signal run completes
598
- */
599
- webhook_url?: string | null;
600
- }
756
+ task_config?: TaskAPI.SearchTaskConfigResponse | TaskAPI.IngestTaskConfigResponse | TaskAPI.IngestPromptConfigResponse | TaskAPI.ProfilePromptConfigResponse | TaskAPI.SignalTopicConfigResponse | TaskAPI.SignalCsvConfigResponse | TaskAPI.SignalSheetConfigResponse | null;
601
757
  }
602
758
  }
603
759
  /**
604
760
  * Response model for task execution.
761
+ *
762
+ * Attributes: run_id: The ID of the created run. flow_run_id: The Prefect flow run
763
+ * ID. status: Initial status of the run.
605
764
  */
606
765
  export interface TaskExecuteResponse {
607
766
  /**
@@ -643,11 +802,9 @@ export interface TaskCreateParams {
643
802
  */
644
803
  prompt?: string | null;
645
804
  /**
646
- * Flow-specific task configuration with versioning
805
+ * Flow-specific task configuration with type discriminator
647
806
  */
648
- task_config?: {
649
- [key: string]: unknown;
650
- } | StandardPromptConfig | SearchV2Config | SearchV3Config | IngestTaskConfig | SignalTopicConfigInput | SignalCsvConfigInput | SignalSheetConfigInput | null;
807
+ task_config?: SearchTaskConfig | IngestTaskConfig | ProfilePromptConfig | SignalTopicConfig | SignalCsvConfig | SignalSheetConfig | null;
651
808
  }
652
809
  export interface TaskUpdateParams {
653
810
  /**
@@ -671,11 +828,9 @@ export interface TaskUpdateParams {
671
828
  */
672
829
  prompt?: string | null;
673
830
  /**
674
- * Updated flow-specific task configuration with versioning
831
+ * Updated flow-specific task configuration with type discriminator
675
832
  */
676
- task_config?: {
677
- [key: string]: unknown;
678
- } | StandardPromptConfig | SearchV2Config | SearchV3Config | IngestTaskConfig | SignalTopicConfigInput | SignalCsvConfigInput | SignalSheetConfigInput | null;
833
+ task_config?: SearchTaskConfig | IngestTaskConfig | ProfilePromptConfig | SignalTopicConfig | SignalCsvConfig | SignalSheetConfig | null;
679
834
  }
680
835
  export interface TaskListParams {
681
836
  /**
@@ -712,6 +867,6 @@ export interface TaskExecuteParams {
712
867
  };
713
868
  }
714
869
  export declare namespace Task {
715
- export { type IngestTaskConfig as IngestTaskConfig, type SearchV2Config as SearchV2Config, type SearchV3Config as SearchV3Config, type SignalCsvConfigInput as SignalCsvConfigInput, type SignalSheetConfigInput as SignalSheetConfigInput, type SignalTopicConfigInput as SignalTopicConfigInput, type SignalTypeConfig as SignalTypeConfig, type StandardPromptConfig as StandardPromptConfig, type TaskCreateResponse as TaskCreateResponse, type TaskRetrieveResponse as TaskRetrieveResponse, type TaskListResponse as TaskListResponse, type TaskExecuteResponse as TaskExecuteResponse, type TaskCreateParams as TaskCreateParams, type TaskUpdateParams as TaskUpdateParams, type TaskListParams as TaskListParams, type TaskExecuteParams as TaskExecuteParams, };
870
+ export { type IngestPromptConfigResponse as IngestPromptConfigResponse, type IngestTaskConfig as IngestTaskConfig, type IngestTaskConfigResponse as IngestTaskConfigResponse, type ProfilePromptConfig as ProfilePromptConfig, type ProfilePromptConfigResponse as ProfilePromptConfigResponse, type SearchTaskConfig as SearchTaskConfig, type SearchTaskConfigResponse as SearchTaskConfigResponse, type SignalCsvConfig as SignalCsvConfig, type SignalCsvConfigResponse as SignalCsvConfigResponse, type SignalSheetConfig as SignalSheetConfig, type SignalSheetConfigResponse as SignalSheetConfigResponse, type SignalTopicConfig as SignalTopicConfig, type SignalTopicConfigResponse as SignalTopicConfigResponse, type SignalTypeConfig as SignalTypeConfig, type TaskCreateResponse as TaskCreateResponse, type TaskRetrieveResponse as TaskRetrieveResponse, type TaskListResponse as TaskListResponse, type TaskExecuteResponse as TaskExecuteResponse, type TaskCreateParams as TaskCreateParams, type TaskUpdateParams as TaskUpdateParams, type TaskListParams as TaskListParams, type TaskExecuteParams as TaskExecuteParams, };
716
871
  }
717
872
  //# sourceMappingURL=task.d.ts.map