lumnisai 0.5.36 → 0.5.37

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/index.cjs CHANGED
@@ -3870,6 +3870,8 @@ class ResponsesResource {
3870
3870
  * The backend searches for the audience, collects their reaction history,
3871
3871
  * saves the normalized package, and produces grounded views from it. Pass
3872
3872
  * `reusePackageFrom` to re-cook a saved package without collecting again.
3873
+ * `companyContext` and `contentDirection` steer post ideas only; collection,
3874
+ * curation, and engagement analysis remain an unbiased read of the audience.
3873
3875
  *
3874
3876
  * @param query - Natural-language description of the audience. A nonblank
3875
3877
  * message is required even when reusing a package.
@@ -3888,6 +3890,10 @@ class ResponsesResource {
3888
3890
  params.postsEnableFiltering = options.postsEnableFiltering;
3889
3891
  if (options.exaResultsPerQuery !== void 0)
3890
3892
  params.exaResultsPerQuery = options.exaResultsPerQuery;
3893
+ if (options.companyContext !== void 0)
3894
+ params.companyContext = options.companyContext;
3895
+ if (options.contentDirection !== void 0)
3896
+ params.contentDirection = options.contentDirection;
3891
3897
  if (options.reusePackageFrom !== void 0)
3892
3898
  params.reusePackageFrom = options.reusePackageFrom;
3893
3899
  if (options.outputs !== void 0)
package/dist/index.d.cts CHANGED
@@ -1138,6 +1138,16 @@ interface ContentIntelligenceOptions {
1138
1138
  postsEnableFiltering?: boolean;
1139
1139
  /** Results requested from each Exa people-search query. The search lane defaults to 100. */
1140
1140
  exaResultsPerQuery?: number;
1141
+ /**
1142
+ * Company the post ideas are for. Used only to tailor post ideas; it does not
1143
+ * affect search, curation, engagement analysis, or grounding of neutral drafts.
1144
+ */
1145
+ companyContext?: string;
1146
+ /**
1147
+ * Requested content style, angle, format, or exclusions. Used only to tailor
1148
+ * post ideas so audience discovery and analysis remain unbiased.
1149
+ */
1150
+ contentDirection?: string;
1141
1151
  /** Re-cook the package stored on this response ID without collecting again. */
1142
1152
  reusePackageFrom?: string;
1143
1153
  /** Outputs to produce. Omit to use the backend's current default set. */
@@ -1148,6 +1158,8 @@ interface ContentIntelligenceResolvedParams {
1148
1158
  postsDateRange: PostsDateRange;
1149
1159
  postsEnableFiltering: boolean;
1150
1160
  exaResultsPerQuery?: number | null;
1161
+ companyContext?: string | null;
1162
+ contentDirection?: string | null;
1151
1163
  reusePackageFrom?: string | null;
1152
1164
  outputs: ContentIntelligenceOutputName[];
1153
1165
  }
@@ -1220,20 +1232,36 @@ interface PostIdea {
1220
1232
  url?: string | null;
1221
1233
  author?: string | null;
1222
1234
  }>;
1235
+ /** Neutral draft, with no company mention. */
1223
1236
  draft: string;
1237
+ /**
1238
+ * The same post rewritten with an honest company tie-in. Null when no
1239
+ * company context was supplied.
1240
+ */
1241
+ draftWithCompany?: string | null;
1224
1242
  probability: number;
1225
1243
  keysExist: number;
1226
1244
  keysCited: number;
1227
1245
  supported: boolean;
1228
1246
  groundingReason: string;
1247
+ /** Independent grounding verdict for `draftWithCompany`. */
1248
+ supportedWithCompany?: boolean;
1249
+ /** Why `draftWithCompany` did or did not pass its two-source grounding check. */
1250
+ groundingReasonWithCompany?: string;
1229
1251
  }
1230
1252
  interface PostIdeasOutput {
1231
1253
  artifact: 'post_ideas';
1232
1254
  n: number;
1233
1255
  ideas: PostIdea[];
1234
1256
  allSupported?: boolean;
1257
+ /** Number of ideas that include a company-tailored draft. */
1258
+ draftsWithCompany?: number;
1259
+ /** Number of company-tailored drafts that passed grounding. */
1260
+ companyDraftsSupported?: number;
1235
1261
  postsSeen?: number;
1236
1262
  chunks?: number;
1263
+ /** Request fields that actually steered the generated post ideas. */
1264
+ steeredBy?: Array<'company_context' | 'content_direction'>;
1237
1265
  note?: string;
1238
1266
  }
1239
1267
  interface ThemeStats {
@@ -2522,14 +2550,24 @@ interface SpecializedAgentParams {
2522
2550
  */
2523
2551
  competitors?: string[];
2524
2552
  /**
2525
- * Free-text summary of what the seed company does. Anchors competitor
2526
- * discovery so the ReAct doesn't misclassify ambiguous domains
2527
- * (e.g. "lumnis.ai" → academic AI vs sales automation).
2528
- * Used when `company` is provided (discovery mode).
2553
+ * Free-text summary of what a company does.
2554
+ *
2555
+ * For competitor_post_engagement, this describes the seed company and
2556
+ * anchors discovery when `company` is provided. For content_intelligence,
2557
+ * this describes the company the post ideas are for and steers only those
2558
+ * ideas; search, curation, and engagement analysis remain unsteered.
2529
2559
  *
2530
2560
  * @example 'AI-powered outbound automation for B2B sales — books meetings via LinkedIn + email on autopilot'
2531
2561
  */
2532
2562
  companyContext?: string;
2563
+ /**
2564
+ * Desired content type, angle, format, or exclusions for post ideas.
2565
+ * Used only by content_intelligence post-idea generation; it does not steer
2566
+ * search, curation, or engagement analysis.
2567
+ *
2568
+ * @example 'Practitioner how-tos, not hot takes; no hiring posts'
2569
+ */
2570
+ contentDirection?: string;
2533
2571
  /**
2534
2572
  * Optional list of known-good example competitors. The discovery ReAct
2535
2573
  * uses these as anchors and finds more in the same vertical.
@@ -4178,6 +4216,13 @@ interface EmailInboxItem {
4178
4216
  status: string;
4179
4217
  /** inboxkit | unipile | smtp */
4180
4218
  source: string;
4219
+ /**
4220
+ * Connection app code for BYO inboxes: GOOGLE | OUTLOOK | MAIL. Null for
4221
+ * managed (InboxKit) mailboxes, which have no Unipile connection. Prefer this
4222
+ * over guessing from the address domain — a Workspace/365 custom domain is
4223
+ * indistinguishable from a generic IMAP host by domain alone.
4224
+ */
4225
+ provider?: string | null;
4181
4226
  dailySendCap: number;
4182
4227
  sendsToday: number;
4183
4228
  organizationId: string;
@@ -6700,6 +6745,8 @@ declare class ResponsesResource {
6700
6745
  * The backend searches for the audience, collects their reaction history,
6701
6746
  * saves the normalized package, and produces grounded views from it. Pass
6702
6747
  * `reusePackageFrom` to re-cook a saved package without collecting again.
6748
+ * `companyContext` and `contentDirection` steer post ideas only; collection,
6749
+ * curation, and engagement analysis remain an unbiased read of the audience.
6703
6750
  *
6704
6751
  * @param query - Natural-language description of the audience. A nonblank
6705
6752
  * message is required even when reusing a package.
package/dist/index.d.mts CHANGED
@@ -1138,6 +1138,16 @@ interface ContentIntelligenceOptions {
1138
1138
  postsEnableFiltering?: boolean;
1139
1139
  /** Results requested from each Exa people-search query. The search lane defaults to 100. */
1140
1140
  exaResultsPerQuery?: number;
1141
+ /**
1142
+ * Company the post ideas are for. Used only to tailor post ideas; it does not
1143
+ * affect search, curation, engagement analysis, or grounding of neutral drafts.
1144
+ */
1145
+ companyContext?: string;
1146
+ /**
1147
+ * Requested content style, angle, format, or exclusions. Used only to tailor
1148
+ * post ideas so audience discovery and analysis remain unbiased.
1149
+ */
1150
+ contentDirection?: string;
1141
1151
  /** Re-cook the package stored on this response ID without collecting again. */
1142
1152
  reusePackageFrom?: string;
1143
1153
  /** Outputs to produce. Omit to use the backend's current default set. */
@@ -1148,6 +1158,8 @@ interface ContentIntelligenceResolvedParams {
1148
1158
  postsDateRange: PostsDateRange;
1149
1159
  postsEnableFiltering: boolean;
1150
1160
  exaResultsPerQuery?: number | null;
1161
+ companyContext?: string | null;
1162
+ contentDirection?: string | null;
1151
1163
  reusePackageFrom?: string | null;
1152
1164
  outputs: ContentIntelligenceOutputName[];
1153
1165
  }
@@ -1220,20 +1232,36 @@ interface PostIdea {
1220
1232
  url?: string | null;
1221
1233
  author?: string | null;
1222
1234
  }>;
1235
+ /** Neutral draft, with no company mention. */
1223
1236
  draft: string;
1237
+ /**
1238
+ * The same post rewritten with an honest company tie-in. Null when no
1239
+ * company context was supplied.
1240
+ */
1241
+ draftWithCompany?: string | null;
1224
1242
  probability: number;
1225
1243
  keysExist: number;
1226
1244
  keysCited: number;
1227
1245
  supported: boolean;
1228
1246
  groundingReason: string;
1247
+ /** Independent grounding verdict for `draftWithCompany`. */
1248
+ supportedWithCompany?: boolean;
1249
+ /** Why `draftWithCompany` did or did not pass its two-source grounding check. */
1250
+ groundingReasonWithCompany?: string;
1229
1251
  }
1230
1252
  interface PostIdeasOutput {
1231
1253
  artifact: 'post_ideas';
1232
1254
  n: number;
1233
1255
  ideas: PostIdea[];
1234
1256
  allSupported?: boolean;
1257
+ /** Number of ideas that include a company-tailored draft. */
1258
+ draftsWithCompany?: number;
1259
+ /** Number of company-tailored drafts that passed grounding. */
1260
+ companyDraftsSupported?: number;
1235
1261
  postsSeen?: number;
1236
1262
  chunks?: number;
1263
+ /** Request fields that actually steered the generated post ideas. */
1264
+ steeredBy?: Array<'company_context' | 'content_direction'>;
1237
1265
  note?: string;
1238
1266
  }
1239
1267
  interface ThemeStats {
@@ -2522,14 +2550,24 @@ interface SpecializedAgentParams {
2522
2550
  */
2523
2551
  competitors?: string[];
2524
2552
  /**
2525
- * Free-text summary of what the seed company does. Anchors competitor
2526
- * discovery so the ReAct doesn't misclassify ambiguous domains
2527
- * (e.g. "lumnis.ai" → academic AI vs sales automation).
2528
- * Used when `company` is provided (discovery mode).
2553
+ * Free-text summary of what a company does.
2554
+ *
2555
+ * For competitor_post_engagement, this describes the seed company and
2556
+ * anchors discovery when `company` is provided. For content_intelligence,
2557
+ * this describes the company the post ideas are for and steers only those
2558
+ * ideas; search, curation, and engagement analysis remain unsteered.
2529
2559
  *
2530
2560
  * @example 'AI-powered outbound automation for B2B sales — books meetings via LinkedIn + email on autopilot'
2531
2561
  */
2532
2562
  companyContext?: string;
2563
+ /**
2564
+ * Desired content type, angle, format, or exclusions for post ideas.
2565
+ * Used only by content_intelligence post-idea generation; it does not steer
2566
+ * search, curation, or engagement analysis.
2567
+ *
2568
+ * @example 'Practitioner how-tos, not hot takes; no hiring posts'
2569
+ */
2570
+ contentDirection?: string;
2533
2571
  /**
2534
2572
  * Optional list of known-good example competitors. The discovery ReAct
2535
2573
  * uses these as anchors and finds more in the same vertical.
@@ -4178,6 +4216,13 @@ interface EmailInboxItem {
4178
4216
  status: string;
4179
4217
  /** inboxkit | unipile | smtp */
4180
4218
  source: string;
4219
+ /**
4220
+ * Connection app code for BYO inboxes: GOOGLE | OUTLOOK | MAIL. Null for
4221
+ * managed (InboxKit) mailboxes, which have no Unipile connection. Prefer this
4222
+ * over guessing from the address domain — a Workspace/365 custom domain is
4223
+ * indistinguishable from a generic IMAP host by domain alone.
4224
+ */
4225
+ provider?: string | null;
4181
4226
  dailySendCap: number;
4182
4227
  sendsToday: number;
4183
4228
  organizationId: string;
@@ -6700,6 +6745,8 @@ declare class ResponsesResource {
6700
6745
  * The backend searches for the audience, collects their reaction history,
6701
6746
  * saves the normalized package, and produces grounded views from it. Pass
6702
6747
  * `reusePackageFrom` to re-cook a saved package without collecting again.
6748
+ * `companyContext` and `contentDirection` steer post ideas only; collection,
6749
+ * curation, and engagement analysis remain an unbiased read of the audience.
6703
6750
  *
6704
6751
  * @param query - Natural-language description of the audience. A nonblank
6705
6752
  * message is required even when reusing a package.
package/dist/index.d.ts CHANGED
@@ -1138,6 +1138,16 @@ interface ContentIntelligenceOptions {
1138
1138
  postsEnableFiltering?: boolean;
1139
1139
  /** Results requested from each Exa people-search query. The search lane defaults to 100. */
1140
1140
  exaResultsPerQuery?: number;
1141
+ /**
1142
+ * Company the post ideas are for. Used only to tailor post ideas; it does not
1143
+ * affect search, curation, engagement analysis, or grounding of neutral drafts.
1144
+ */
1145
+ companyContext?: string;
1146
+ /**
1147
+ * Requested content style, angle, format, or exclusions. Used only to tailor
1148
+ * post ideas so audience discovery and analysis remain unbiased.
1149
+ */
1150
+ contentDirection?: string;
1141
1151
  /** Re-cook the package stored on this response ID without collecting again. */
1142
1152
  reusePackageFrom?: string;
1143
1153
  /** Outputs to produce. Omit to use the backend's current default set. */
@@ -1148,6 +1158,8 @@ interface ContentIntelligenceResolvedParams {
1148
1158
  postsDateRange: PostsDateRange;
1149
1159
  postsEnableFiltering: boolean;
1150
1160
  exaResultsPerQuery?: number | null;
1161
+ companyContext?: string | null;
1162
+ contentDirection?: string | null;
1151
1163
  reusePackageFrom?: string | null;
1152
1164
  outputs: ContentIntelligenceOutputName[];
1153
1165
  }
@@ -1220,20 +1232,36 @@ interface PostIdea {
1220
1232
  url?: string | null;
1221
1233
  author?: string | null;
1222
1234
  }>;
1235
+ /** Neutral draft, with no company mention. */
1223
1236
  draft: string;
1237
+ /**
1238
+ * The same post rewritten with an honest company tie-in. Null when no
1239
+ * company context was supplied.
1240
+ */
1241
+ draftWithCompany?: string | null;
1224
1242
  probability: number;
1225
1243
  keysExist: number;
1226
1244
  keysCited: number;
1227
1245
  supported: boolean;
1228
1246
  groundingReason: string;
1247
+ /** Independent grounding verdict for `draftWithCompany`. */
1248
+ supportedWithCompany?: boolean;
1249
+ /** Why `draftWithCompany` did or did not pass its two-source grounding check. */
1250
+ groundingReasonWithCompany?: string;
1229
1251
  }
1230
1252
  interface PostIdeasOutput {
1231
1253
  artifact: 'post_ideas';
1232
1254
  n: number;
1233
1255
  ideas: PostIdea[];
1234
1256
  allSupported?: boolean;
1257
+ /** Number of ideas that include a company-tailored draft. */
1258
+ draftsWithCompany?: number;
1259
+ /** Number of company-tailored drafts that passed grounding. */
1260
+ companyDraftsSupported?: number;
1235
1261
  postsSeen?: number;
1236
1262
  chunks?: number;
1263
+ /** Request fields that actually steered the generated post ideas. */
1264
+ steeredBy?: Array<'company_context' | 'content_direction'>;
1237
1265
  note?: string;
1238
1266
  }
1239
1267
  interface ThemeStats {
@@ -2522,14 +2550,24 @@ interface SpecializedAgentParams {
2522
2550
  */
2523
2551
  competitors?: string[];
2524
2552
  /**
2525
- * Free-text summary of what the seed company does. Anchors competitor
2526
- * discovery so the ReAct doesn't misclassify ambiguous domains
2527
- * (e.g. "lumnis.ai" → academic AI vs sales automation).
2528
- * Used when `company` is provided (discovery mode).
2553
+ * Free-text summary of what a company does.
2554
+ *
2555
+ * For competitor_post_engagement, this describes the seed company and
2556
+ * anchors discovery when `company` is provided. For content_intelligence,
2557
+ * this describes the company the post ideas are for and steers only those
2558
+ * ideas; search, curation, and engagement analysis remain unsteered.
2529
2559
  *
2530
2560
  * @example 'AI-powered outbound automation for B2B sales — books meetings via LinkedIn + email on autopilot'
2531
2561
  */
2532
2562
  companyContext?: string;
2563
+ /**
2564
+ * Desired content type, angle, format, or exclusions for post ideas.
2565
+ * Used only by content_intelligence post-idea generation; it does not steer
2566
+ * search, curation, or engagement analysis.
2567
+ *
2568
+ * @example 'Practitioner how-tos, not hot takes; no hiring posts'
2569
+ */
2570
+ contentDirection?: string;
2533
2571
  /**
2534
2572
  * Optional list of known-good example competitors. The discovery ReAct
2535
2573
  * uses these as anchors and finds more in the same vertical.
@@ -4178,6 +4216,13 @@ interface EmailInboxItem {
4178
4216
  status: string;
4179
4217
  /** inboxkit | unipile | smtp */
4180
4218
  source: string;
4219
+ /**
4220
+ * Connection app code for BYO inboxes: GOOGLE | OUTLOOK | MAIL. Null for
4221
+ * managed (InboxKit) mailboxes, which have no Unipile connection. Prefer this
4222
+ * over guessing from the address domain — a Workspace/365 custom domain is
4223
+ * indistinguishable from a generic IMAP host by domain alone.
4224
+ */
4225
+ provider?: string | null;
4181
4226
  dailySendCap: number;
4182
4227
  sendsToday: number;
4183
4228
  organizationId: string;
@@ -6700,6 +6745,8 @@ declare class ResponsesResource {
6700
6745
  * The backend searches for the audience, collects their reaction history,
6701
6746
  * saves the normalized package, and produces grounded views from it. Pass
6702
6747
  * `reusePackageFrom` to re-cook a saved package without collecting again.
6748
+ * `companyContext` and `contentDirection` steer post ideas only; collection,
6749
+ * curation, and engagement analysis remain an unbiased read of the audience.
6703
6750
  *
6704
6751
  * @param query - Natural-language description of the audience. A nonblank
6705
6752
  * message is required even when reusing a package.
package/dist/index.mjs CHANGED
@@ -3864,6 +3864,8 @@ class ResponsesResource {
3864
3864
  * The backend searches for the audience, collects their reaction history,
3865
3865
  * saves the normalized package, and produces grounded views from it. Pass
3866
3866
  * `reusePackageFrom` to re-cook a saved package without collecting again.
3867
+ * `companyContext` and `contentDirection` steer post ideas only; collection,
3868
+ * curation, and engagement analysis remain an unbiased read of the audience.
3867
3869
  *
3868
3870
  * @param query - Natural-language description of the audience. A nonblank
3869
3871
  * message is required even when reusing a package.
@@ -3882,6 +3884,10 @@ class ResponsesResource {
3882
3884
  params.postsEnableFiltering = options.postsEnableFiltering;
3883
3885
  if (options.exaResultsPerQuery !== void 0)
3884
3886
  params.exaResultsPerQuery = options.exaResultsPerQuery;
3887
+ if (options.companyContext !== void 0)
3888
+ params.companyContext = options.companyContext;
3889
+ if (options.contentDirection !== void 0)
3890
+ params.contentDirection = options.contentDirection;
3885
3891
  if (options.reusePackageFrom !== void 0)
3886
3892
  params.reusePackageFrom = options.reusePackageFrom;
3887
3893
  if (options.outputs !== void 0)
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "lumnisai",
3
3
  "type": "module",
4
- "version": "0.5.36",
4
+ "version": "0.5.37",
5
5
  "description": "Official Node.js SDK for the Lumnis AI API",
6
6
  "author": "Lumnis AI",
7
7
  "license": "MIT",