@squadbase/connectors 0.0.9 → 0.0.11

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.
@@ -73,7 +73,21 @@ var parameters = {
73
73
  })
74
74
  };
75
75
 
76
+ // src/connectors/openai/parameters.ts
77
+ var parameters2 = {
78
+ apiKey: new ParameterDefinition({
79
+ slug: "api-key",
80
+ name: "OpenAI API Key",
81
+ description: "The OpenAI API key for authentication (starts with sk-).",
82
+ envVarBaseKey: "OPENAI_API_KEY",
83
+ type: "text",
84
+ secret: true,
85
+ required: true
86
+ })
87
+ };
88
+
76
89
  export {
77
90
  ParameterDefinition,
78
- parameters
91
+ parameters,
92
+ parameters2
79
93
  };
package/dist/index.d.ts CHANGED
@@ -470,6 +470,9 @@ declare const connectors: {
470
470
  error: string;
471
471
  }>;
472
472
  }>;
473
+ openai: ConnectorPlugin<{
474
+ apiKey: ParameterDefinition;
475
+ }, {}>;
473
476
  };
474
477
 
475
478
  declare const snowflakeConnector: ConnectorPlugin<{
@@ -802,4 +805,8 @@ declare const squadbaseDbConnector: ConnectorPlugin<{
802
805
  }>;
803
806
  }>;
804
807
 
805
- export { AUTH_TYPES, type ConnectionCheckResult, ConnectorPlugin, ConnectorSetup, ConnectorTool, type ConnectorToolsConfig, ParameterDefinition, type ProxyPolicy, type ProxyPolicyRule, type ReleaseFlag, type SetupLanguage, airtableConnector, awsAthenaConnector, bigqueryConnector, bigqueryOauthConnector, connectors, databricksConnector, dbtConnector, googleAnalyticsConnector, kintoneConnector, mysqlConnector, postgresqlConnector, redshiftConnector, snowflakeConnector, snowflakePatConnector, squadbaseDbConnector, wixStoreConnector };
808
+ declare const openaiConnector: ConnectorPlugin<{
809
+ apiKey: ParameterDefinition;
810
+ }, {}>;
811
+
812
+ export { AUTH_TYPES, type ConnectionCheckResult, ConnectorPlugin, ConnectorSetup, ConnectorTool, type ConnectorToolsConfig, ParameterDefinition, type ProxyPolicy, type ProxyPolicyRule, type ReleaseFlag, type SetupLanguage, airtableConnector, awsAthenaConnector, bigqueryConnector, bigqueryOauthConnector, connectors, databricksConnector, dbtConnector, googleAnalyticsConnector, kintoneConnector, mysqlConnector, openaiConnector, postgresqlConnector, redshiftConnector, snowflakeConnector, snowflakePatConnector, squadbaseDbConnector, wixStoreConnector };
package/dist/index.js CHANGED
@@ -1,7 +1,8 @@
1
1
  import {
2
2
  ParameterDefinition,
3
- parameters
4
- } from "./chunk-5YEHPSNW.js";
3
+ parameters,
4
+ parameters2
5
+ } from "./chunk-E5AVUXWJ.js";
5
6
 
6
7
  // src/connector-setup.ts
7
8
  var ConnectorSetup = class {
@@ -225,7 +226,7 @@ Follow these steps to set up the Snowflake connection.
225
226
  });
226
227
 
227
228
  // src/connectors/snowflake/parameters.ts
228
- var parameters2 = {
229
+ var parameters3 = {
229
230
  account: new ParameterDefinition({
230
231
  slug: "account",
231
232
  name: "Snowflake Account",
@@ -319,11 +320,11 @@ Avoid loading large amounts of data; always include LIMIT in queries.`,
319
320
  try {
320
321
  const snowflake = (await import("snowflake-sdk")).default;
321
322
  snowflake.configure({ logLevel: "ERROR" });
322
- const account = parameters2.account.getValue(connection);
323
- const user = parameters2.user.getValue(connection);
324
- const role = parameters2.role.getValue(connection);
325
- const warehouse = parameters2.warehouse.getValue(connection);
326
- const privateKeyBase64 = parameters2.privateKeyBase64.getValue(connection);
323
+ const account = parameters3.account.getValue(connection);
324
+ const user = parameters3.user.getValue(connection);
325
+ const role = parameters3.role.getValue(connection);
326
+ const warehouse = parameters3.warehouse.getValue(connection);
327
+ const privateKeyBase64 = parameters3.privateKeyBase64.getValue(connection);
327
328
  const privateKey = Buffer.from(privateKeyBase64, "base64").toString(
328
329
  "utf-8"
329
330
  );
@@ -390,7 +391,7 @@ var snowflakeConnector = new ConnectorPlugin({
390
391
  name: "Snowflake",
391
392
  description: "Connect to Snowflake for cloud data warehousing and analytics.",
392
393
  iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/6oyVtAcP3pMlXaOrts9unk/b7a9dc25d15c388b66e983041b855447/snowflake.svg",
393
- parameters: parameters2,
394
+ parameters: parameters3,
394
395
  releaseFlag: { dev1: true, dev2: true, prod: true },
395
396
  setup: snowflakeSetup,
396
397
  systemPrompt: `## Snowflake SQL Notes
@@ -407,14 +408,14 @@ var snowflakeConnector = new ConnectorPlugin({
407
408
  const snowflake = (await import("snowflake-sdk")).default;
408
409
  snowflake.configure({ logLevel: "ERROR" });
409
410
  const privateKey = Buffer.from(
410
- params[parameters2.privateKeyBase64.slug],
411
+ params[parameters3.privateKeyBase64.slug],
411
412
  "base64"
412
413
  ).toString("utf-8");
413
414
  const conn = snowflake.createConnection({
414
- account: params[parameters2.account.slug],
415
- username: params[parameters2.user.slug],
416
- role: params[parameters2.role.slug],
417
- warehouse: params[parameters2.warehouse.slug],
415
+ account: params[parameters3.account.slug],
416
+ username: params[parameters3.user.slug],
417
+ role: params[parameters3.role.slug],
418
+ warehouse: params[parameters3.warehouse.slug],
418
419
  authenticator: "SNOWFLAKE_JWT",
419
420
  privateKey
420
421
  });
@@ -446,14 +447,14 @@ var snowflakeConnector = new ConnectorPlugin({
446
447
  const snowflake = (await import("snowflake-sdk")).default;
447
448
  snowflake.configure({ logLevel: "ERROR" });
448
449
  const privateKey = Buffer.from(
449
- params[parameters2.privateKeyBase64.slug],
450
+ params[parameters3.privateKeyBase64.slug],
450
451
  "base64"
451
452
  ).toString("utf-8");
452
453
  const conn = snowflake.createConnection({
453
- account: params[parameters2.account.slug],
454
- username: params[parameters2.user.slug],
455
- role: params[parameters2.role.slug],
456
- warehouse: params[parameters2.warehouse.slug],
454
+ account: params[parameters3.account.slug],
455
+ username: params[parameters3.user.slug],
456
+ role: params[parameters3.role.slug],
457
+ warehouse: params[parameters3.warehouse.slug],
457
458
  authenticator: "SNOWFLAKE_JWT",
458
459
  privateKey
459
460
  });
@@ -482,7 +483,7 @@ var snowflakeConnector = new ConnectorPlugin({
482
483
  });
483
484
 
484
485
  // src/connectors/snowflake-pat/parameters.ts
485
- var parameters3 = {
486
+ var parameters4 = {
486
487
  account: new ParameterDefinition({
487
488
  slug: "account",
488
489
  name: "Snowflake Account",
@@ -576,11 +577,11 @@ Avoid loading large amounts of data; always include LIMIT in queries.`,
576
577
  try {
577
578
  const snowflake = (await import("snowflake-sdk")).default;
578
579
  snowflake.configure({ logLevel: "ERROR" });
579
- const account = parameters3.account.getValue(connection);
580
- const user = parameters3.user.getValue(connection);
581
- const role = parameters3.role.getValue(connection);
582
- const warehouse = parameters3.warehouse.getValue(connection);
583
- const password = parameters3.pat.getValue(connection);
580
+ const account = parameters4.account.getValue(connection);
581
+ const user = parameters4.user.getValue(connection);
582
+ const role = parameters4.role.getValue(connection);
583
+ const warehouse = parameters4.warehouse.getValue(connection);
584
+ const password = parameters4.pat.getValue(connection);
584
585
  const conn = snowflake.createConnection({
585
586
  account,
586
587
  username: user,
@@ -643,7 +644,7 @@ var snowflakePatConnector = new ConnectorPlugin({
643
644
  name: "Snowflake (PAT)",
644
645
  description: "Connect to Snowflake using a Personal Access Token (PAT).",
645
646
  iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/6oyVtAcP3pMlXaOrts9unk/b7a9dc25d15c388b66e983041b855447/snowflake.svg",
646
- parameters: parameters3,
647
+ parameters: parameters4,
647
648
  releaseFlag: { dev1: true, dev2: false, prod: false },
648
649
  setup: snowflakeSetup,
649
650
  systemPrompt: `## Snowflake SQL Notes
@@ -660,11 +661,11 @@ var snowflakePatConnector = new ConnectorPlugin({
660
661
  const snowflake = (await import("snowflake-sdk")).default;
661
662
  snowflake.configure({ logLevel: "ERROR" });
662
663
  const conn = snowflake.createConnection({
663
- account: params[parameters3.account.slug],
664
- username: params[parameters3.user.slug],
665
- role: params[parameters3.role.slug],
666
- warehouse: params[parameters3.warehouse.slug],
667
- password: params[parameters3.pat.slug]
664
+ account: params[parameters4.account.slug],
665
+ username: params[parameters4.user.slug],
666
+ role: params[parameters4.role.slug],
667
+ warehouse: params[parameters4.warehouse.slug],
668
+ password: params[parameters4.pat.slug]
668
669
  });
669
670
  await new Promise((resolve, reject) => {
670
671
  conn.connect((err) => {
@@ -699,11 +700,11 @@ var snowflakePatConnector = new ConnectorPlugin({
699
700
  const snowflake = (await import("snowflake-sdk")).default;
700
701
  snowflake.configure({ logLevel: "ERROR" });
701
702
  const conn = snowflake.createConnection({
702
- account: params[parameters3.account.slug],
703
- username: params[parameters3.user.slug],
704
- role: params[parameters3.role.slug],
705
- warehouse: params[parameters3.warehouse.slug],
706
- password: params[parameters3.pat.slug]
703
+ account: params[parameters4.account.slug],
704
+ username: params[parameters4.user.slug],
705
+ role: params[parameters4.role.slug],
706
+ warehouse: params[parameters4.warehouse.slug],
707
+ password: params[parameters4.pat.slug]
707
708
  });
708
709
  await new Promise((resolve, reject) => {
709
710
  conn.connect((err) => {
@@ -735,7 +736,7 @@ var snowflakePatConnector = new ConnectorPlugin({
735
736
  });
736
737
 
737
738
  // src/connectors/postgresql/parameters.ts
738
- var parameters4 = {
739
+ var parameters5 = {
739
740
  connectionUrl: new ParameterDefinition({
740
741
  slug: "connection-url",
741
742
  name: "PostgreSQL Connection URL",
@@ -792,7 +793,7 @@ Avoid loading large amounts of data; always include LIMIT in queries.`,
792
793
  let connectionUrl;
793
794
  try {
794
795
  const { Pool } = await import("pg");
795
- connectionUrl = parameters4.connectionUrl.getValue(connection);
796
+ connectionUrl = parameters5.connectionUrl.getValue(connection);
796
797
  const pool = new Pool({
797
798
  connectionString: connectionUrl,
798
799
  ssl: { rejectUnauthorized: false },
@@ -830,7 +831,7 @@ var postgresqlConnector = new ConnectorPlugin({
830
831
  name: "PostgreSQL",
831
832
  description: "Connect to PostgreSQL databases for relational data storage and querying.",
832
833
  iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/42AHi2uqteUn65MyqdN6V7/a0f68f12af6aac96bbcda5980f43de07/elephant.png",
833
- parameters: parameters4,
834
+ parameters: parameters5,
834
835
  releaseFlag: { dev1: true, dev2: true, prod: true },
835
836
  systemPrompt: `## PostgreSQL SQL Notes
836
837
  - Schema exploration:
@@ -841,7 +842,7 @@ var postgresqlConnector = new ConnectorPlugin({
841
842
  async checkConnection(params, _config) {
842
843
  const { Pool } = await import("pg");
843
844
  const pool = new Pool({
844
- connectionString: params[parameters4.connectionUrl.slug],
845
+ connectionString: params[parameters5.connectionUrl.slug],
845
846
  ssl: { rejectUnauthorized: false },
846
847
  connectionTimeoutMillis: 1e4
847
848
  });
@@ -858,7 +859,7 @@ var postgresqlConnector = new ConnectorPlugin({
858
859
  const { Pool } = await import("pg");
859
860
  const { text, values } = buildPositionalParams(sql, namedParams);
860
861
  const pool = new Pool({
861
- connectionString: params[parameters4.connectionUrl.slug],
862
+ connectionString: params[parameters5.connectionUrl.slug],
862
863
  ssl: { rejectUnauthorized: false },
863
864
  connectionTimeoutMillis: 1e4,
864
865
  statement_timeout: 6e4
@@ -873,7 +874,7 @@ var postgresqlConnector = new ConnectorPlugin({
873
874
  });
874
875
 
875
876
  // src/connectors/mysql/parameters.ts
876
- var parameters5 = {
877
+ var parameters6 = {
877
878
  connectionUrl: new ParameterDefinition({
878
879
  slug: "connection-url",
879
880
  name: "MySQL Connection URL",
@@ -930,7 +931,7 @@ Avoid loading large amounts of data; always include LIMIT in queries.`,
930
931
  let connectionUrl;
931
932
  try {
932
933
  const mysql = await import("mysql2/promise");
933
- connectionUrl = parameters5.connectionUrl.getValue(connection);
934
+ connectionUrl = parameters6.connectionUrl.getValue(connection);
934
935
  const pool = mysql.createPool({
935
936
  uri: connectionUrl,
936
937
  connectTimeout: CONNECT_TIMEOUT_MS2
@@ -970,7 +971,7 @@ var mysqlConnector = new ConnectorPlugin({
970
971
  name: "MySQL",
971
972
  description: "Connect to MySQL databases for relational data storage and querying.",
972
973
  iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/6ghPFeGgl7uBs5NHH1a4L/512c9433beec5b595caa41f04921c1f9/logo-mysql-170x115.png",
973
- parameters: parameters5,
974
+ parameters: parameters6,
974
975
  releaseFlag: { dev1: true, dev2: true, prod: true },
975
976
  systemPrompt: `## MySQL SQL Notes
976
977
  - Schema exploration:
@@ -981,7 +982,7 @@ var mysqlConnector = new ConnectorPlugin({
981
982
  async checkConnection(params, _config) {
982
983
  const mysql = await import("mysql2/promise");
983
984
  const pool = mysql.createPool({
984
- uri: params[parameters5.connectionUrl.slug],
985
+ uri: params[parameters6.connectionUrl.slug],
985
986
  connectTimeout: 1e4
986
987
  });
987
988
  try {
@@ -997,7 +998,7 @@ var mysqlConnector = new ConnectorPlugin({
997
998
  const mysql = await import("mysql2/promise");
998
999
  const { text, values } = buildQuestionmarkParams(sql, namedParams);
999
1000
  const pool = mysql.createPool({
1000
- uri: params[parameters5.connectionUrl.slug],
1001
+ uri: params[parameters6.connectionUrl.slug],
1001
1002
  connectTimeout: 1e4
1002
1003
  });
1003
1004
  try {
@@ -1018,7 +1019,7 @@ var mysqlConnector = new ConnectorPlugin({
1018
1019
  import { z as z5 } from "zod";
1019
1020
 
1020
1021
  // src/connectors/bigquery/parameters.ts
1021
- var parameters6 = {
1022
+ var parameters7 = {
1022
1023
  serviceAccountKeyJsonBase64: new ParameterDefinition({
1023
1024
  slug: "service-account-key-json-base64",
1024
1025
  name: "Google Cloud Service Account JSON",
@@ -1075,7 +1076,7 @@ var listProjectsTool = new ConnectorTool({
1075
1076
  };
1076
1077
  }
1077
1078
  try {
1078
- const serviceAccountJsonBase64 = parameters6.serviceAccountKeyJsonBase64.getValue(connection);
1079
+ const serviceAccountJsonBase64 = parameters7.serviceAccountKeyJsonBase64.getValue(connection);
1079
1080
  const credentials = JSON.parse(
1080
1081
  Buffer.from(serviceAccountJsonBase64, "base64").toString("utf-8")
1081
1082
  );
@@ -1223,8 +1224,8 @@ Avoid loading large amounts of data; always include LIMIT in queries.`,
1223
1224
  );
1224
1225
  try {
1225
1226
  const { BigQuery } = await import("@google-cloud/bigquery");
1226
- const projectId = parameters6.projectId.getValue(connection);
1227
- const serviceAccountJsonBase64 = parameters6.serviceAccountKeyJsonBase64.getValue(connection);
1227
+ const projectId = parameters7.projectId.getValue(connection);
1228
+ const serviceAccountJsonBase64 = parameters7.serviceAccountKeyJsonBase64.getValue(connection);
1228
1229
  const credentials = JSON.parse(
1229
1230
  Buffer.from(serviceAccountJsonBase64, "base64").toString("utf-8")
1230
1231
  );
@@ -1254,7 +1255,7 @@ var bigqueryConnector = new ConnectorPlugin({
1254
1255
  name: "BigQuery",
1255
1256
  description: "Connect to Google BigQuery for data warehouse and analytics.",
1256
1257
  iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/6nlehQyOmdbktG5hOYkYMr/6ca559140d5ddc7dadc5eac88858a563/bigquery.svg",
1257
- parameters: parameters6,
1258
+ parameters: parameters7,
1258
1259
  releaseFlag: { dev1: true, dev2: true, prod: true },
1259
1260
  setup: bigquerySetup,
1260
1261
  systemPrompt: `## BigQuery SQL Notes
@@ -1268,10 +1269,10 @@ var bigqueryConnector = new ConnectorPlugin({
1268
1269
  async checkConnection(params, _config) {
1269
1270
  const { BigQuery } = await import("@google-cloud/bigquery");
1270
1271
  const credentials = JSON.parse(
1271
- Buffer.from(params[parameters6.serviceAccountKeyJsonBase64.slug], "base64").toString("utf-8")
1272
+ Buffer.from(params[parameters7.serviceAccountKeyJsonBase64.slug], "base64").toString("utf-8")
1272
1273
  );
1273
1274
  const bq = new BigQuery({
1274
- projectId: params[parameters6.projectId.slug],
1275
+ projectId: params[parameters7.projectId.slug],
1275
1276
  credentials
1276
1277
  });
1277
1278
  try {
@@ -1286,10 +1287,10 @@ var bigqueryConnector = new ConnectorPlugin({
1286
1287
  const { BigQuery } = await import("@google-cloud/bigquery");
1287
1288
  const resolvedSql = replaceLiteralParams(sql, namedParams);
1288
1289
  const credentials = JSON.parse(
1289
- Buffer.from(params[parameters6.serviceAccountKeyJsonBase64.slug], "base64").toString("utf-8")
1290
+ Buffer.from(params[parameters7.serviceAccountKeyJsonBase64.slug], "base64").toString("utf-8")
1290
1291
  );
1291
1292
  const bq = new BigQuery({
1292
- projectId: params[parameters6.projectId.slug],
1293
+ projectId: params[parameters7.projectId.slug],
1293
1294
  credentials
1294
1295
  });
1295
1296
  const [job] = await bq.createQueryJob({ query: resolvedSql });
@@ -1485,7 +1486,7 @@ Follow these steps to set up the BigQuery connection.
1485
1486
  });
1486
1487
 
1487
1488
  // src/connectors/bigquery-oauth/parameters.ts
1488
- var parameters7 = {
1489
+ var parameters8 = {
1489
1490
  projectId: new ParameterDefinition({
1490
1491
  slug: "project-id",
1491
1492
  name: "Google Cloud Project ID",
@@ -1579,7 +1580,7 @@ Avoid loading large amounts of data; always include LIMIT in queries.`,
1579
1580
  error: `Connection ${connectionId} not found`
1580
1581
  };
1581
1582
  }
1582
- const gcpProjectId = parameters7.projectId.getValue(connection);
1583
+ const gcpProjectId = parameters8.projectId.getValue(connection);
1583
1584
  console.log(
1584
1585
  `[connector-query] bigquery-oauth/${connection.name}: ${sql}`
1585
1586
  );
@@ -1646,7 +1647,7 @@ var bigqueryOauthConnector = new ConnectorPlugin({
1646
1647
  name: "BigQuery (OAuth)",
1647
1648
  description: "Connect to Google BigQuery for data warehouse and analytics using OAuth.",
1648
1649
  iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/6nlehQyOmdbktG5hOYkYMr/6ca559140d5ddc7dadc5eac88858a563/bigquery.svg",
1649
- parameters: parameters7,
1650
+ parameters: parameters8,
1650
1651
  releaseFlag: { dev1: true, dev2: false, prod: false },
1651
1652
  setup: bigquerySetup2,
1652
1653
  proxyPolicy: {
@@ -1665,7 +1666,7 @@ var bigqueryOauthConnector = new ConnectorPlugin({
1665
1666
  tools: tools6,
1666
1667
  async checkConnection(params, config) {
1667
1668
  const { proxyFetch } = config;
1668
- const projectId = params[parameters7.projectId.slug];
1669
+ const projectId = params[parameters8.projectId.slug];
1669
1670
  const url = `https://bigquery.googleapis.com/bigquery/v2/projects/${projectId}/queries`;
1670
1671
  try {
1671
1672
  const res = await proxyFetch(url, {
@@ -1684,7 +1685,7 @@ var bigqueryOauthConnector = new ConnectorPlugin({
1684
1685
  },
1685
1686
  async query(params, sql, namedParams, context) {
1686
1687
  const { proxyFetch } = context;
1687
- const projectId = params[parameters7.projectId.slug];
1688
+ const projectId = params[parameters8.projectId.slug];
1688
1689
  const resolvedSql = replaceLiteralParams(sql, namedParams);
1689
1690
  const url = `https://bigquery.googleapis.com/bigquery/v2/projects/${projectId}/queries`;
1690
1691
  const res = await proxyFetch(url, {
@@ -1702,7 +1703,7 @@ var bigqueryOauthConnector = new ConnectorPlugin({
1702
1703
  });
1703
1704
 
1704
1705
  // src/connectors/aws-athena/parameters.ts
1705
- var parameters8 = {
1706
+ var parameters9 = {
1706
1707
  awsAccessKeyId: new ParameterDefinition({
1707
1708
  slug: "aws-access-key-id",
1708
1709
  name: "AWS Access Key ID",
@@ -1799,8 +1800,8 @@ Avoid loading large amounts of data; always include LIMIT in queries.`,
1799
1800
  GetQueryExecutionCommand,
1800
1801
  GetQueryResultsCommand
1801
1802
  } = await import("@aws-sdk/client-athena");
1802
- const workgroup = parameters8.workgroup.tryGetValue(connection);
1803
- const outputLocation = parameters8.outputLocation.tryGetValue(connection);
1803
+ const workgroup = parameters9.workgroup.tryGetValue(connection);
1804
+ const outputLocation = parameters9.outputLocation.tryGetValue(connection);
1804
1805
  if (!workgroup && !outputLocation) {
1805
1806
  return {
1806
1807
  success: false,
@@ -1808,10 +1809,10 @@ Avoid loading large amounts of data; always include LIMIT in queries.`,
1808
1809
  };
1809
1810
  }
1810
1811
  const client = new AthenaClient({
1811
- region: parameters8.awsRegion.getValue(connection),
1812
+ region: parameters9.awsRegion.getValue(connection),
1812
1813
  credentials: {
1813
- accessKeyId: parameters8.awsAccessKeyId.getValue(connection),
1814
- secretAccessKey: parameters8.awsSecretAccessKey.getValue(connection)
1814
+ accessKeyId: parameters9.awsAccessKeyId.getValue(connection),
1815
+ secretAccessKey: parameters9.awsSecretAccessKey.getValue(connection)
1815
1816
  }
1816
1817
  });
1817
1818
  const startParams = { QueryString: sql };
@@ -1875,7 +1876,7 @@ var awsAthenaConnector = new ConnectorPlugin({
1875
1876
  name: "AWS Athena",
1876
1877
  description: "Connect to AWS Athena for serverless SQL queries on S3 data.",
1877
1878
  iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/5x0vIHtUHfJJMZUv4RFOYZ/5059bac389f0169542f39cdb4b387d2c/Athena.svg",
1878
- parameters: parameters8,
1879
+ parameters: parameters9,
1879
1880
  releaseFlag: { dev1: true, dev2: true, prod: true },
1880
1881
  systemPrompt: `## AWS Athena SQL Notes
1881
1882
  - Uses Presto/Trino based SQL syntax
@@ -1893,8 +1894,8 @@ var awsAthenaConnector = new ConnectorPlugin({
1893
1894
  StartQueryExecutionCommand,
1894
1895
  GetQueryExecutionCommand
1895
1896
  } = await import("@aws-sdk/client-athena");
1896
- const workgroup = params[parameters8.workgroup.slug];
1897
- const outputLocation = params[parameters8.outputLocation.slug];
1897
+ const workgroup = params[parameters9.workgroup.slug];
1898
+ const outputLocation = params[parameters9.outputLocation.slug];
1898
1899
  if (!workgroup && !outputLocation) {
1899
1900
  return {
1900
1901
  success: false,
@@ -1902,10 +1903,10 @@ var awsAthenaConnector = new ConnectorPlugin({
1902
1903
  };
1903
1904
  }
1904
1905
  const client = new AthenaClient({
1905
- region: params[parameters8.awsRegion.slug],
1906
+ region: params[parameters9.awsRegion.slug],
1906
1907
  credentials: {
1907
- accessKeyId: params[parameters8.awsAccessKeyId.slug],
1908
- secretAccessKey: params[parameters8.awsSecretAccessKey.slug]
1908
+ accessKeyId: params[parameters9.awsAccessKeyId.slug],
1909
+ secretAccessKey: params[parameters9.awsSecretAccessKey.slug]
1909
1910
  }
1910
1911
  });
1911
1912
  const startParams = { QueryString: "SELECT 1" };
@@ -1950,16 +1951,16 @@ var awsAthenaConnector = new ConnectorPlugin({
1950
1951
  GetQueryResultsCommand
1951
1952
  } = await import("@aws-sdk/client-athena");
1952
1953
  const resolvedSql = replaceLiteralParams(sql, namedParams);
1953
- const workgroup = params[parameters8.workgroup.slug];
1954
- const outputLocation = params[parameters8.outputLocation.slug];
1954
+ const workgroup = params[parameters9.workgroup.slug];
1955
+ const outputLocation = params[parameters9.outputLocation.slug];
1955
1956
  if (!workgroup && !outputLocation) {
1956
1957
  throw new Error("Either workgroup or output-location is required");
1957
1958
  }
1958
1959
  const client = new AthenaClient({
1959
- region: params[parameters8.awsRegion.slug],
1960
+ region: params[parameters9.awsRegion.slug],
1960
1961
  credentials: {
1961
- accessKeyId: params[parameters8.awsAccessKeyId.slug],
1962
- secretAccessKey: params[parameters8.awsSecretAccessKey.slug]
1962
+ accessKeyId: params[parameters9.awsAccessKeyId.slug],
1963
+ secretAccessKey: params[parameters9.awsSecretAccessKey.slug]
1963
1964
  }
1964
1965
  });
1965
1966
  const startParams = { QueryString: resolvedSql };
@@ -2004,7 +2005,7 @@ var awsAthenaConnector = new ConnectorPlugin({
2004
2005
  });
2005
2006
 
2006
2007
  // src/connectors/redshift/parameters.ts
2007
- var parameters9 = {
2008
+ var parameters10 = {
2008
2009
  awsAccessKeyId: new ParameterDefinition({
2009
2010
  slug: "aws-access-key-id",
2010
2011
  name: "AWS Access Key ID",
@@ -2130,14 +2131,14 @@ Avoid loading large amounts of data; always include LIMIT in queries.`,
2130
2131
  DescribeStatementCommand,
2131
2132
  GetStatementResultCommand
2132
2133
  } = await import("@aws-sdk/client-redshift-data");
2133
- const awsAccessKeyId = parameters9.awsAccessKeyId.getValue(connection);
2134
- const awsSecretAccessKey = parameters9.awsSecretAccessKey.getValue(connection);
2135
- const awsRegion = parameters9.awsRegion.getValue(connection);
2136
- const database = parameters9.database.getValue(connection);
2137
- const clusterIdentifier = parameters9.clusterIdentifier.tryGetValue(connection);
2138
- const workgroupName = parameters9.workgroupName.tryGetValue(connection);
2139
- const secretArn = parameters9.secretArn.tryGetValue(connection);
2140
- const dbUser = parameters9.dbUser.tryGetValue(connection);
2134
+ const awsAccessKeyId = parameters10.awsAccessKeyId.getValue(connection);
2135
+ const awsSecretAccessKey = parameters10.awsSecretAccessKey.getValue(connection);
2136
+ const awsRegion = parameters10.awsRegion.getValue(connection);
2137
+ const database = parameters10.database.getValue(connection);
2138
+ const clusterIdentifier = parameters10.clusterIdentifier.tryGetValue(connection);
2139
+ const workgroupName = parameters10.workgroupName.tryGetValue(connection);
2140
+ const secretArn = parameters10.secretArn.tryGetValue(connection);
2141
+ const dbUser = parameters10.dbUser.tryGetValue(connection);
2141
2142
  if (!clusterIdentifier && !workgroupName) {
2142
2143
  return {
2143
2144
  success: false,
@@ -2208,7 +2209,7 @@ var redshiftConnector = new ConnectorPlugin({
2208
2209
  name: "Redshift",
2209
2210
  description: "Connect to Amazon Redshift for data warehouse analytics.",
2210
2211
  iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/AEwW2psmrnZ7htTVsgA9t/a637e31707c5d760be73ce1d8ec75580/aws-redshift-logo.svg",
2211
- parameters: parameters9,
2212
+ parameters: parameters10,
2212
2213
  releaseFlag: { dev1: true, dev2: true, prod: true },
2213
2214
  systemPrompt: `## Redshift SQL Notes
2214
2215
  - Uses PostgreSQL based SQL syntax
@@ -2226,10 +2227,10 @@ var redshiftConnector = new ConnectorPlugin({
2226
2227
  ExecuteStatementCommand,
2227
2228
  DescribeStatementCommand
2228
2229
  } = await import("@aws-sdk/client-redshift-data");
2229
- const clusterIdentifier = params[parameters9.clusterIdentifier.slug];
2230
- const workgroupName = params[parameters9.workgroupName.slug];
2231
- const secretArn = params[parameters9.secretArn.slug];
2232
- const dbUser = params[parameters9.dbUser.slug];
2230
+ const clusterIdentifier = params[parameters10.clusterIdentifier.slug];
2231
+ const workgroupName = params[parameters10.workgroupName.slug];
2232
+ const secretArn = params[parameters10.secretArn.slug];
2233
+ const dbUser = params[parameters10.dbUser.slug];
2233
2234
  if (!clusterIdentifier && !workgroupName) {
2234
2235
  return {
2235
2236
  success: false,
@@ -2237,15 +2238,15 @@ var redshiftConnector = new ConnectorPlugin({
2237
2238
  };
2238
2239
  }
2239
2240
  const client = new RedshiftDataClient({
2240
- region: params[parameters9.awsRegion.slug],
2241
+ region: params[parameters10.awsRegion.slug],
2241
2242
  credentials: {
2242
- accessKeyId: params[parameters9.awsAccessKeyId.slug],
2243
- secretAccessKey: params[parameters9.awsSecretAccessKey.slug]
2243
+ accessKeyId: params[parameters10.awsAccessKeyId.slug],
2244
+ secretAccessKey: params[parameters10.awsSecretAccessKey.slug]
2244
2245
  }
2245
2246
  });
2246
2247
  const { Id: statementId } = await client.send(
2247
2248
  new ExecuteStatementCommand({
2248
- Database: params[parameters9.database.slug],
2249
+ Database: params[parameters10.database.slug],
2249
2250
  Sql: "SELECT 1",
2250
2251
  ...clusterIdentifier && { ClusterIdentifier: clusterIdentifier },
2251
2252
  ...workgroupName && { WorkgroupName: workgroupName },
@@ -2286,23 +2287,23 @@ var redshiftConnector = new ConnectorPlugin({
2286
2287
  GetStatementResultCommand
2287
2288
  } = await import("@aws-sdk/client-redshift-data");
2288
2289
  const resolvedSql = replaceLiteralParams(sql, namedParams);
2289
- const clusterIdentifier = params[parameters9.clusterIdentifier.slug];
2290
- const workgroupName = params[parameters9.workgroupName.slug];
2291
- const secretArn = params[parameters9.secretArn.slug];
2292
- const dbUser = params[parameters9.dbUser.slug];
2290
+ const clusterIdentifier = params[parameters10.clusterIdentifier.slug];
2291
+ const workgroupName = params[parameters10.workgroupName.slug];
2292
+ const secretArn = params[parameters10.secretArn.slug];
2293
+ const dbUser = params[parameters10.dbUser.slug];
2293
2294
  if (!clusterIdentifier && !workgroupName) {
2294
2295
  throw new Error("Either cluster-identifier or workgroup-name is required");
2295
2296
  }
2296
2297
  const client = new RedshiftDataClient({
2297
- region: params[parameters9.awsRegion.slug],
2298
+ region: params[parameters10.awsRegion.slug],
2298
2299
  credentials: {
2299
- accessKeyId: params[parameters9.awsAccessKeyId.slug],
2300
- secretAccessKey: params[parameters9.awsSecretAccessKey.slug]
2300
+ accessKeyId: params[parameters10.awsAccessKeyId.slug],
2301
+ secretAccessKey: params[parameters10.awsSecretAccessKey.slug]
2301
2302
  }
2302
2303
  });
2303
2304
  const { Id: statementId } = await client.send(
2304
2305
  new ExecuteStatementCommand({
2305
- Database: params[parameters9.database.slug],
2306
+ Database: params[parameters10.database.slug],
2306
2307
  Sql: resolvedSql,
2307
2308
  ...clusterIdentifier && { ClusterIdentifier: clusterIdentifier },
2308
2309
  ...workgroupName && { WorkgroupName: workgroupName },
@@ -2340,7 +2341,7 @@ var redshiftConnector = new ConnectorPlugin({
2340
2341
  });
2341
2342
 
2342
2343
  // src/connectors/databricks/parameters.ts
2343
- var parameters10 = {
2344
+ var parameters11 = {
2344
2345
  host: new ParameterDefinition({
2345
2346
  slug: "host",
2346
2347
  name: "Databricks Workspace Host",
@@ -2412,9 +2413,9 @@ Avoid loading large amounts of data; always include LIMIT in queries.`,
2412
2413
  );
2413
2414
  try {
2414
2415
  const { DBSQLClient } = await import("@databricks/sql");
2415
- const host = parameters10.host.getValue(connection);
2416
- const token = parameters10.token.getValue(connection);
2417
- const httpPath = parameters10.httpPath.getValue(connection);
2416
+ const host = parameters11.host.getValue(connection);
2417
+ const token = parameters11.token.getValue(connection);
2418
+ const httpPath = parameters11.httpPath.getValue(connection);
2418
2419
  const client = new DBSQLClient();
2419
2420
  await client.connect({ host, path: httpPath, token });
2420
2421
  let session;
@@ -2455,7 +2456,7 @@ var databricksConnector = new ConnectorPlugin({
2455
2456
  name: "Databricks",
2456
2457
  description: "Connect to Databricks for data lakehouse and SQL analytics.",
2457
2458
  iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/6QgcrfpQOKg18P7DdgKerd/af55bf0d871339049824dd167b97a29f/databricks-icon.svg",
2458
- parameters: parameters10,
2459
+ parameters: parameters11,
2459
2460
  releaseFlag: { dev1: true, dev2: true, prod: true },
2460
2461
  systemPrompt: `## Databricks SQL Notes
2461
2462
  - Uses Spark SQL / Databricks SQL syntax
@@ -2470,9 +2471,9 @@ var databricksConnector = new ConnectorPlugin({
2470
2471
  const { DBSQLClient } = await import("@databricks/sql");
2471
2472
  const client = new DBSQLClient();
2472
2473
  await client.connect({
2473
- host: params[parameters10.host.slug],
2474
- path: params[parameters10.httpPath.slug],
2475
- token: params[parameters10.token.slug]
2474
+ host: params[parameters11.host.slug],
2475
+ path: params[parameters11.httpPath.slug],
2476
+ token: params[parameters11.token.slug]
2476
2477
  });
2477
2478
  let session;
2478
2479
  let operation;
@@ -2499,9 +2500,9 @@ var databricksConnector = new ConnectorPlugin({
2499
2500
  const resolvedSql = replaceLiteralParams(sql, namedParams);
2500
2501
  const client = new DBSQLClient();
2501
2502
  await client.connect({
2502
- host: params[parameters10.host.slug],
2503
- path: params[parameters10.httpPath.slug],
2504
- token: params[parameters10.token.slug]
2503
+ host: params[parameters11.host.slug],
2504
+ path: params[parameters11.httpPath.slug],
2505
+ token: params[parameters11.token.slug]
2505
2506
  });
2506
2507
  let session;
2507
2508
  let operation;
@@ -2524,7 +2525,7 @@ var databricksConnector = new ConnectorPlugin({
2524
2525
  });
2525
2526
 
2526
2527
  // src/connectors/airtable/parameters.ts
2527
- var parameters11 = {
2528
+ var parameters12 = {
2528
2529
  baseId: new ParameterDefinition({
2529
2530
  slug: "base-id",
2530
2531
  name: "Airtable Base ID",
@@ -2581,8 +2582,8 @@ Authentication is handled automatically using the API Key.
2581
2582
  }
2582
2583
  console.log(`[connector-request] airtable/${connection.name}: ${method} ${path}`);
2583
2584
  try {
2584
- const apiKey = parameters11.apiKey.getValue(connection);
2585
- const baseId = parameters11.baseId.getValue(connection);
2585
+ const apiKey = parameters12.apiKey.getValue(connection);
2586
+ const baseId = parameters12.baseId.getValue(connection);
2586
2587
  const resolvedPath = path.replace(/\{baseId\}/g, baseId);
2587
2588
  const url = `${BASE_URL}${resolvedPath}`;
2588
2589
  const controller = new AbortController();
@@ -2624,7 +2625,7 @@ var airtableConnector = new ConnectorPlugin({
2624
2625
  name: "Airtable",
2625
2626
  description: "Connect to Airtable for spreadsheet-database hybrid data management.",
2626
2627
  iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/19JUphfOZjyjTK6Zg4NGCf/8c56227b088cada52d3a2d9385a3be97/airtable.svg",
2627
- parameters: parameters11,
2628
+ parameters: parameters12,
2628
2629
  releaseFlag: { dev1: true, dev2: true, prod: true },
2629
2630
  systemPrompt: `## Airtable API
2630
2631
  - Call the Airtable REST API using the authenticated request tool
@@ -2648,7 +2649,7 @@ var airtableConnector = new ConnectorPlugin({
2648
2649
  });
2649
2650
 
2650
2651
  // src/connectors/google-analytics/parameters.ts
2651
- var parameters12 = {
2652
+ var parameters13 = {
2652
2653
  serviceAccountKeyJsonBase64: new ParameterDefinition({
2653
2654
  slug: "service-account-key-json-base64",
2654
2655
  name: "Google Cloud Service Account JSON",
@@ -2706,8 +2707,8 @@ Authentication is handled automatically using a service account.
2706
2707
  console.log(`[connector-request] google-analytics/${connection.name}: ${method} ${path}`);
2707
2708
  try {
2708
2709
  const { GoogleAuth } = await import("google-auth-library");
2709
- const keyJsonBase64 = parameters12.serviceAccountKeyJsonBase64.getValue(connection);
2710
- const propertyId = parameters12.propertyId.getValue(connection);
2710
+ const keyJsonBase64 = parameters13.serviceAccountKeyJsonBase64.getValue(connection);
2711
+ const propertyId = parameters13.propertyId.getValue(connection);
2711
2712
  const credentials = JSON.parse(
2712
2713
  Buffer.from(keyJsonBase64, "base64").toString("utf-8")
2713
2714
  );
@@ -2760,7 +2761,7 @@ var googleAnalyticsConnector = new ConnectorPlugin({
2760
2761
  name: "Google Analytics",
2761
2762
  description: "Connect to Google Analytics for web analytics and reporting.",
2762
2763
  iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/7fs0ipzxuD9mACDzBATtxX/3c53ed90d15c96483e4f78cb29dab5e9/google-analytics.svg",
2763
- parameters: parameters12,
2764
+ parameters: parameters13,
2764
2765
  releaseFlag: { dev1: true, dev2: true, prod: true },
2765
2766
  systemPrompt: `## Google Analytics Data API
2766
2767
  - Call the GA4 Data API using the authenticated request tool
@@ -2835,12 +2836,15 @@ Authentication is handled automatically using username and password.`,
2835
2836
  const controller = new AbortController();
2836
2837
  const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS5);
2837
2838
  try {
2839
+ const headers = {
2840
+ "X-Cybozu-Authorization": authToken
2841
+ };
2842
+ if (body) {
2843
+ headers["Content-Type"] = "application/json";
2844
+ }
2838
2845
  const response = await fetch(url, {
2839
2846
  method,
2840
- headers: {
2841
- "X-Cybozu-Authorization": authToken,
2842
- "Content-Type": "application/json"
2843
- },
2847
+ headers,
2844
2848
  body: body ? JSON.stringify(body) : void 0,
2845
2849
  signal: controller.signal
2846
2850
  });
@@ -2927,7 +2931,7 @@ const { apps } = await kintone.listApps();
2927
2931
  });
2928
2932
 
2929
2933
  // src/connectors/wix-store/parameters.ts
2930
- var parameters13 = {
2934
+ var parameters14 = {
2931
2935
  accountId: new ParameterDefinition({
2932
2936
  slug: "account-id",
2933
2937
  name: "Account ID",
@@ -2992,8 +2996,8 @@ Authentication is handled automatically using the API Key and Site ID.`,
2992
2996
  }
2993
2997
  console.log(`[connector-request] wix-store/${connection.name}: ${method} ${path}`);
2994
2998
  try {
2995
- const apiKey = parameters13.apiKey.getValue(connection);
2996
- const siteId = parameters13.siteId.getValue(connection);
2999
+ const apiKey = parameters14.apiKey.getValue(connection);
3000
+ const siteId = parameters14.siteId.getValue(connection);
2997
3001
  const url = `${BASE_URL3}${path}`;
2998
3002
  const controller = new AbortController();
2999
3003
  const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS6);
@@ -3035,7 +3039,7 @@ var wixStoreConnector = new ConnectorPlugin({
3035
3039
  name: "Wix Store",
3036
3040
  description: "Connect to Wix Store.",
3037
3041
  iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/YyFxclQFzROIYpFam6vRK/e7e75d3feac49a1cc5e433c147216d23/Wix_logo_black.svg",
3038
- parameters: parameters13,
3042
+ parameters: parameters14,
3039
3043
  releaseFlag: { dev1: true, dev2: true, prod: true },
3040
3044
  systemPrompt: `## Wix Store API
3041
3045
  - Call the Wix Store REST API using the authenticated request tool
@@ -3061,7 +3065,7 @@ var wixStoreConnector = new ConnectorPlugin({
3061
3065
  });
3062
3066
 
3063
3067
  // src/connectors/dbt/parameters.ts
3064
- var parameters14 = {
3068
+ var parameters15 = {
3065
3069
  host: new ParameterDefinition({
3066
3070
  slug: "host",
3067
3071
  name: "dbt Cloud Host",
@@ -3138,9 +3142,9 @@ Authentication is handled automatically using the API token.
3138
3142
  }
3139
3143
  console.log(`[connector-request] dbt/${connection.name}: GraphQL query`);
3140
3144
  try {
3141
- const host = parameters14.host.getValue(connection);
3142
- const token = parameters14.token.getValue(connection);
3143
- const environmentId = parameters14.prodEnvId.getValue(connection);
3145
+ const host = parameters15.host.getValue(connection);
3146
+ const token = parameters15.token.getValue(connection);
3147
+ const environmentId = parameters15.prodEnvId.getValue(connection);
3144
3148
  const resolvedVariables = variables ? JSON.parse(
3145
3149
  JSON.stringify(variables).replace(/\{environmentId\}/g, environmentId)
3146
3150
  ) : void 0;
@@ -3190,7 +3194,7 @@ var dbtConnector = new ConnectorPlugin({
3190
3194
  name: "dbt",
3191
3195
  description: "Connect to dbt Cloud for data transformation and analytics engineering.",
3192
3196
  iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/4iT6ncXtdtHdkXexU0WgfZ/0367a38d245f2568eab5eb511f9ee692/dbt.png",
3193
- parameters: parameters14,
3197
+ parameters: parameters15,
3194
3198
  releaseFlag: { dev1: true, dev2: true, prod: true },
3195
3199
  systemPrompt: `## dbt Cloud Discovery API (GraphQL)
3196
3200
  - Call the dbt Cloud Discovery API using the authenticated request tool
@@ -3247,7 +3251,7 @@ query:
3247
3251
  });
3248
3252
 
3249
3253
  // src/connectors/squadbase-db/parameters.ts
3250
- var parameters15 = {
3254
+ var parameters16 = {
3251
3255
  connectionUrl: new ParameterDefinition({
3252
3256
  slug: "connection-url",
3253
3257
  name: "Connection URL",
@@ -3304,7 +3308,7 @@ Avoid loading large amounts of data; always include LIMIT in queries.`,
3304
3308
  let connectionUrl;
3305
3309
  try {
3306
3310
  const { Pool } = await import("pg");
3307
- connectionUrl = parameters15.connectionUrl.getValue(connection);
3311
+ connectionUrl = parameters16.connectionUrl.getValue(connection);
3308
3312
  const pool = new Pool({
3309
3313
  connectionString: connectionUrl,
3310
3314
  ssl: { rejectUnauthorized: false },
@@ -3342,7 +3346,7 @@ var squadbaseDbConnector = new ConnectorPlugin({
3342
3346
  name: "Squadbase DB",
3343
3347
  description: "Connect to Squadbase DB (PostgreSQL).",
3344
3348
  iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/25y0XqMxIufeD3egWH3bEl/659b4ade405890654cfaf91c03a4b458/icon.svg",
3345
- parameters: parameters15,
3349
+ parameters: parameters16,
3346
3350
  releaseFlag: { dev1: true, dev2: true, prod: true },
3347
3351
  systemPrompt: `## Squadbase DB SQL Notes
3348
3352
  - Uses PostgreSQL based SQL syntax
@@ -3354,7 +3358,7 @@ var squadbaseDbConnector = new ConnectorPlugin({
3354
3358
  async checkConnection(params, _config) {
3355
3359
  const { Pool } = await import("pg");
3356
3360
  const pool = new Pool({
3357
- connectionString: params[parameters15.connectionUrl.slug],
3361
+ connectionString: params[parameters16.connectionUrl.slug],
3358
3362
  ssl: { rejectUnauthorized: false },
3359
3363
  connectionTimeoutMillis: 1e4
3360
3364
  });
@@ -3371,7 +3375,7 @@ var squadbaseDbConnector = new ConnectorPlugin({
3371
3375
  const { Pool } = await import("pg");
3372
3376
  const { text, values } = buildPositionalParams(sql, namedParams);
3373
3377
  const pool = new Pool({
3374
- connectionString: params[parameters15.connectionUrl.slug],
3378
+ connectionString: params[parameters16.connectionUrl.slug],
3375
3379
  ssl: { rejectUnauthorized: false },
3376
3380
  connectionTimeoutMillis: 1e4,
3377
3381
  statement_timeout: 6e4
@@ -3385,6 +3389,34 @@ var squadbaseDbConnector = new ConnectorPlugin({
3385
3389
  }
3386
3390
  });
3387
3391
 
3392
+ // src/connectors/openai/index.ts
3393
+ var tools16 = {};
3394
+ var openaiConnector = new ConnectorPlugin({
3395
+ slug: "openai",
3396
+ authType: null,
3397
+ name: "OpenAI",
3398
+ description: "Connect to OpenAI for AI model inference, embeddings, and image generation.",
3399
+ iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/53XJtCgUlW10x6i1X8xpxM/0bfd634069f1d74241296543cb20427a/openai.svg",
3400
+ parameters: parameters2,
3401
+ releaseFlag: { dev1: true, dev2: false, prod: false },
3402
+ systemPrompt: `## OpenAI SDK (TypeScript handler)
3403
+ Use the OpenAI connector via the SDK in TypeScript handlers:
3404
+
3405
+ \`\`\`ts
3406
+ import { connection } from "@squadbase/vite-server/connectors/openai";
3407
+ import OpenAI from "openai";
3408
+
3409
+ const { apiKey } = connection("<connectionId>");
3410
+ const client = new OpenAI({ apiKey });
3411
+
3412
+ const response = await client.chat.completions.create({
3413
+ model: "gpt-4o",
3414
+ messages: [{ role: "user", content: "Hello" }],
3415
+ });
3416
+ \`\`\``,
3417
+ tools: tools16
3418
+ });
3419
+
3388
3420
  // src/connectors/registry.ts
3389
3421
  var plugins = {
3390
3422
  snowflake: snowflakeConnector,
@@ -3401,7 +3433,8 @@ var plugins = {
3401
3433
  airtable: airtableConnector,
3402
3434
  squadbaseDb: squadbaseDbConnector,
3403
3435
  kintone: kintoneConnector,
3404
- wixStore: wixStoreConnector
3436
+ wixStore: wixStoreConnector,
3437
+ openai: openaiConnector
3405
3438
  };
3406
3439
  var connectors = {
3407
3440
  ...plugins,
@@ -3440,6 +3473,7 @@ export {
3440
3473
  googleAnalyticsConnector,
3441
3474
  kintoneConnector,
3442
3475
  mysqlConnector,
3476
+ openaiConnector,
3443
3477
  postgresqlConnector,
3444
3478
  redshiftConnector,
3445
3479
  snowflakeConnector,
package/dist/sdk.d.ts CHANGED
@@ -34,6 +34,16 @@ interface KintoneConnectorSdk {
34
34
  * @param params - Resolved parameter values keyed by parameter slug
35
35
  * ("base-url", "username", "password")
36
36
  */
37
- declare function createClient(params: Record<string, string>): KintoneConnectorSdk;
37
+ declare function createClient$1(params: Record<string, string>): KintoneConnectorSdk;
38
38
 
39
- export { type KintoneConnectorSdk, createClient as kintone };
39
+ interface OpenAIConnectorSdk {
40
+ apiKey: string;
41
+ }
42
+ /**
43
+ * Create an OpenAI client from resolved connection parameters.
44
+ *
45
+ * @param params - Resolved parameter values keyed by parameter slug ("api-key")
46
+ */
47
+ declare function createClient(params: Record<string, string>): OpenAIConnectorSdk;
48
+
49
+ export { type KintoneConnectorSdk, type OpenAIConnectorSdk, createClient$1 as kintone, createClient as openai };
package/dist/sdk.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import {
2
- parameters
3
- } from "./chunk-5YEHPSNW.js";
2
+ parameters,
3
+ parameters2
4
+ } from "./chunk-E5AVUXWJ.js";
4
5
 
5
6
  // src/connectors/kintone/sdk/index.ts
6
7
  function createClient(params) {
@@ -70,6 +71,18 @@ function createClient(params) {
70
71
  }
71
72
  };
72
73
  }
74
+
75
+ // src/connectors/openai/sdk/index.ts
76
+ function createClient2(params) {
77
+ const apiKey = params[parameters2.apiKey.slug];
78
+ if (!apiKey) {
79
+ throw new Error(
80
+ `openai: missing required parameter: ${parameters2.apiKey.slug}`
81
+ );
82
+ }
83
+ return { apiKey };
84
+ }
73
85
  export {
74
- createClient as kintone
86
+ createClient as kintone,
87
+ createClient2 as openai
75
88
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@squadbase/connectors",
3
- "version": "0.0.9",
3
+ "version": "0.0.11",
4
4
  "description": "Squadbase Connectors",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",