@squadbase/vite-server 0.1.17-dev.3b633bb → 0.1.17-dev.423ee34
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/cli/index.js +3307 -739
- package/dist/connectors/airtable-oauth.js +50 -8
- package/dist/connectors/airtable.js +46 -8
- package/dist/connectors/amplitude.js +10 -8
- package/dist/connectors/anthropic.js +4 -2
- package/dist/connectors/asana.js +39 -10
- package/dist/connectors/attio.js +32 -13
- package/dist/connectors/aws-billing.js +10 -8
- package/dist/connectors/azure-sql.js +33 -7
- package/dist/connectors/backlog-api-key.js +42 -15
- package/dist/connectors/clickup.js +52 -10
- package/dist/connectors/cosmosdb.js +14 -12
- package/dist/connectors/customerio.js +10 -8
- package/dist/connectors/dbt.js +688 -25
- package/dist/connectors/freshdesk.js +84 -8
- package/dist/connectors/freshsales.js +10 -8
- package/dist/connectors/freshservice.js +10 -8
- package/dist/connectors/gamma.js +17 -15
- package/dist/connectors/gemini.js +4 -2
- package/dist/connectors/github.js +14 -12
- package/dist/connectors/gmail-oauth.js +10 -10
- package/dist/connectors/gmail.js +6 -4
- package/dist/connectors/google-ads.js +10 -8
- package/dist/connectors/google-analytics-oauth.js +154 -25
- package/dist/connectors/google-analytics.js +536 -109
- package/dist/connectors/google-audit-log.js +6 -4
- package/dist/connectors/google-calendar-oauth.js +63 -15
- package/dist/connectors/google-calendar.js +63 -11
- package/dist/connectors/google-docs.js +10 -10
- package/dist/connectors/google-drive.js +32 -10
- package/dist/connectors/google-search-console-oauth.js +128 -17
- package/dist/connectors/google-sheets.js +8 -6
- package/dist/connectors/google-slides.js +10 -10
- package/dist/connectors/grafana.js +47 -10
- package/dist/connectors/hubspot-oauth.js +41 -9
- package/dist/connectors/hubspot.js +27 -9
- package/dist/connectors/influxdb.js +10 -8
- package/dist/connectors/intercom-oauth.js +72 -12
- package/dist/connectors/intercom.js +14 -12
- package/dist/connectors/jdbc.js +8 -6
- package/dist/connectors/jira-api-key.js +70 -11
- package/dist/connectors/kintone-api-token.js +68 -18
- package/dist/connectors/kintone.js +56 -11
- package/dist/connectors/linear.js +56 -12
- package/dist/connectors/linkedin-ads.js +43 -14
- package/dist/connectors/mailchimp-oauth.js +8 -6
- package/dist/connectors/mailchimp.js +8 -6
- package/dist/connectors/meta-ads-oauth.js +35 -14
- package/dist/connectors/meta-ads.js +37 -14
- package/dist/connectors/mixpanel.js +10 -8
- package/dist/connectors/monday.js +11 -9
- package/dist/connectors/mongodb.js +10 -8
- package/dist/connectors/notion-oauth.js +60 -11
- package/dist/connectors/notion.js +62 -11
- package/dist/connectors/openai.js +4 -2
- package/dist/connectors/oracle.js +25 -7
- package/dist/connectors/outlook-oauth.js +20 -20
- package/dist/connectors/powerbi-oauth.js +12 -12
- package/dist/connectors/salesforce.js +44 -9
- package/dist/connectors/semrush.js +8 -6
- package/dist/connectors/sentry.js +38 -10
- package/dist/connectors/shopify-oauth.js +43 -10
- package/dist/connectors/shopify.js +10 -8
- package/dist/connectors/sqlserver.js +33 -7
- package/dist/connectors/stripe-api-key.js +68 -15
- package/dist/connectors/stripe-oauth.js +70 -19
- package/dist/connectors/supabase.js +24 -5
- package/dist/connectors/tableau.js +16 -14
- package/dist/connectors/tiktok-ads.js +39 -16
- package/dist/connectors/wix-store.js +10 -8
- package/dist/connectors/zendesk-oauth.js +55 -12
- package/dist/connectors/zendesk.js +14 -12
- package/dist/index.d.ts +1 -0
- package/dist/index.js +3336 -743
- package/dist/main.js +3325 -737
- package/dist/vite-plugin.js +3305 -737
- package/package.json +1 -1
|
@@ -16,6 +16,7 @@ var init_parameter_definition = __esm({
|
|
|
16
16
|
type;
|
|
17
17
|
secret;
|
|
18
18
|
required;
|
|
19
|
+
isDeprecated;
|
|
19
20
|
constructor(config) {
|
|
20
21
|
this.slug = config.slug;
|
|
21
22
|
this.name = config.name;
|
|
@@ -24,6 +25,7 @@ var init_parameter_definition = __esm({
|
|
|
24
25
|
this.type = config.type;
|
|
25
26
|
this.secret = config.secret;
|
|
26
27
|
this.required = config.required;
|
|
28
|
+
this.isDeprecated = config.isDeprecated ?? false;
|
|
27
29
|
}
|
|
28
30
|
/**
|
|
29
31
|
* Get the parameter value from a ConnectorConnectionObject.
|
|
@@ -214,7 +216,7 @@ var ConnectorPlugin = class _ConnectorPlugin {
|
|
|
214
216
|
/**
|
|
215
217
|
* Create tools for connections that belong to this connector.
|
|
216
218
|
* Filters connections by connectorKey internally.
|
|
217
|
-
* Returns tools keyed as
|
|
219
|
+
* Returns tools keyed as `connector_${connectorKey}_${toolName}`.
|
|
218
220
|
*/
|
|
219
221
|
createTools(connections, config, opts) {
|
|
220
222
|
const myConnections = connections.filter(
|
|
@@ -224,7 +226,7 @@ var ConnectorPlugin = class _ConnectorPlugin {
|
|
|
224
226
|
for (const t of Object.values(this.tools)) {
|
|
225
227
|
const tool = t.createTool(myConnections, config);
|
|
226
228
|
const originalToModelOutput = tool.toModelOutput;
|
|
227
|
-
result[
|
|
229
|
+
result[`connector_${this.connectorKey}_${t.name}`] = {
|
|
228
230
|
...tool,
|
|
229
231
|
toModelOutput: async (options) => {
|
|
230
232
|
if (!originalToModelOutput) {
|
|
@@ -878,9 +880,9 @@ var awsBillingConnector = new ConnectorPlugin({
|
|
|
878
880
|
systemPrompt: {
|
|
879
881
|
en: `### Tools
|
|
880
882
|
|
|
881
|
-
- \`
|
|
882
|
-
- \`
|
|
883
|
-
- \`
|
|
883
|
+
- \`connector_aws-billing-service-account_getCostAndUsage\`: Primary tool for querying historical AWS cost and usage. Use it for spend breakdowns by service/account/region/usage-type, month-over-month comparisons, and identifying cost drivers. Pass a TimePeriod (YYYY-MM-DD), Granularity (DAILY/MONTHLY/HOURLY), Metrics, and optionally GroupBy / Filter. See the Cost Explorer Reference below for valid keys.
|
|
884
|
+
- \`connector_aws-billing-service-account_getDimensionValues\`: Enumerate the valid values for a single Cost Explorer dimension (e.g., list all SERVICE names, LINKED_ACCOUNT IDs, REGIONS). Use this before constructing a Filter so the Filter Expression contains valid values.
|
|
885
|
+
- \`connector_aws-billing-service-account_getCostForecast\`: Forecast future cost or usage. Use this for "what will spend look like next month" questions. The TimePeriod must be in the future.
|
|
884
886
|
|
|
885
887
|
### Cost Explorer Reference
|
|
886
888
|
|
|
@@ -963,9 +965,9 @@ export default async function handler(c: Context) {
|
|
|
963
965
|
\`\`\``,
|
|
964
966
|
ja: `### \u30C4\u30FC\u30EB
|
|
965
967
|
|
|
966
|
-
- \`
|
|
967
|
-
- \`
|
|
968
|
-
- \`
|
|
968
|
+
- \`connector_aws-billing-service-account_getCostAndUsage\`: AWS\u306E\u904E\u53BB\u306E\u30B3\u30B9\u30C8\u30FB\u4F7F\u7528\u91CF\u3092\u53D6\u5F97\u3059\u308B\u30E1\u30A4\u30F3\u30C4\u30FC\u30EB\u3002\u30B5\u30FC\u30D3\u30B9\u5225\u30FB\u30A2\u30AB\u30A6\u30F3\u30C8\u5225\u30FB\u30EA\u30FC\u30B8\u30E7\u30F3\u5225\u30FB\u5229\u7528\u30BF\u30A4\u30D7\u5225\u306E\u652F\u51FA\u5185\u8A33\u3001\u524D\u6708\u6BD4\u8F03\u3001\u4E3B\u8981\u30B3\u30B9\u30C8\u8981\u56E0\u306E\u7279\u5B9A\u306B\u4F7F\u7528\u3057\u307E\u3059\u3002TimePeriod (YYYY-MM-DD)\u3001Granularity (DAILY/MONTHLY/HOURLY)\u3001Metrics\u3001\u30AA\u30D7\u30B7\u30E7\u30F3\u3067 GroupBy / Filter \u3092\u6307\u5B9A\u3057\u307E\u3059\u3002\u6709\u52B9\u306A\u30AD\u30FC\u306F\u4E0B\u8A18\u300CCost Explorer \u30EA\u30D5\u30A1\u30EC\u30F3\u30B9\u300D\u3092\u53C2\u7167\u3002
|
|
969
|
+
- \`connector_aws-billing-service-account_getDimensionValues\`: \u5358\u4E00\u306ECost Explorer\u30C7\u30A3\u30E1\u30F3\u30B7\u30E7\u30F3\u306B\u3064\u3044\u3066\u6709\u52B9\u306A\u5024\u3092\u5217\u6319\u3057\u307E\u3059\uFF08\u4F8B: \u5168 SERVICE \u540D\u3001LINKED_ACCOUNT ID\u3001REGION \u306E\u53D6\u5F97\uFF09\u3002Filter \u3092\u69CB\u7BC9\u3059\u308B\u524D\u306B\u3053\u306E\u30C4\u30FC\u30EB\u3067\u6709\u52B9\u5024\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002
|
|
970
|
+
- \`connector_aws-billing-service-account_getCostForecast\`: \u5C06\u6765\u306E\u30B3\u30B9\u30C8\u30FB\u4F7F\u7528\u91CF\u3092\u4E88\u6E2C\u3057\u307E\u3059\u3002\u300C\u6765\u6708\u306E\u652F\u51FA\u898B\u8FBC\u307F\u306F\uFF1F\u300D\u306E\u3088\u3046\u306A\u8CEA\u554F\u306B\u4F7F\u7528\u3057\u307E\u3059\u3002TimePeriod \u306F\u672A\u6765\u306E\u65E5\u4ED8\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
|
|
969
971
|
|
|
970
972
|
### Cost Explorer \u30EA\u30D5\u30A1\u30EC\u30F3\u30B9
|
|
971
973
|
|
|
@@ -21,6 +21,7 @@ var init_parameter_definition = __esm({
|
|
|
21
21
|
type;
|
|
22
22
|
secret;
|
|
23
23
|
required;
|
|
24
|
+
isDeprecated;
|
|
24
25
|
constructor(config) {
|
|
25
26
|
this.slug = config.slug;
|
|
26
27
|
this.name = config.name;
|
|
@@ -29,6 +30,7 @@ var init_parameter_definition = __esm({
|
|
|
29
30
|
this.type = config.type;
|
|
30
31
|
this.secret = config.secret;
|
|
31
32
|
this.required = config.required;
|
|
33
|
+
this.isDeprecated = config.isDeprecated ?? false;
|
|
32
34
|
}
|
|
33
35
|
/**
|
|
34
36
|
* Get the parameter value from a ConnectorConnectionObject.
|
|
@@ -511,7 +513,7 @@ var ConnectorPlugin = class _ConnectorPlugin {
|
|
|
511
513
|
/**
|
|
512
514
|
* Create tools for connections that belong to this connector.
|
|
513
515
|
* Filters connections by connectorKey internally.
|
|
514
|
-
* Returns tools keyed as
|
|
516
|
+
* Returns tools keyed as `connector_${connectorKey}_${toolName}`.
|
|
515
517
|
*/
|
|
516
518
|
createTools(connections, config, opts) {
|
|
517
519
|
const myConnections = connections.filter(
|
|
@@ -521,7 +523,7 @@ var ConnectorPlugin = class _ConnectorPlugin {
|
|
|
521
523
|
for (const t of Object.values(this.tools)) {
|
|
522
524
|
const tool = t.createTool(myConnections, config);
|
|
523
525
|
const originalToModelOutput = tool.toModelOutput;
|
|
524
|
-
result[
|
|
526
|
+
result[`connector_${this.connectorKey}_${t.name}`] = {
|
|
525
527
|
...tool,
|
|
526
528
|
toModelOutput: async (options) => {
|
|
527
529
|
if (!originalToModelOutput) {
|
|
@@ -754,6 +756,28 @@ function buildFlow(options) {
|
|
|
754
756
|
fetchAll: () => fetchTableNames(rt.params, schema),
|
|
755
757
|
limit: SQLSERVER_SETUP_MAX_TABLES
|
|
756
758
|
});
|
|
759
|
+
let rowCounts = /* @__PURE__ */ new Map();
|
|
760
|
+
try {
|
|
761
|
+
const countRows = await runSqlServerSetupQuery(
|
|
762
|
+
rt.params,
|
|
763
|
+
`SELECT t.TABLE_NAME, SUM(p.rows) AS row_count
|
|
764
|
+
FROM INFORMATION_SCHEMA.TABLES t
|
|
765
|
+
JOIN sys.partitions p
|
|
766
|
+
ON OBJECT_ID(t.TABLE_SCHEMA + '.' + t.TABLE_NAME) = p.object_id
|
|
767
|
+
AND p.index_id IN (0, 1)
|
|
768
|
+
WHERE t.TABLE_SCHEMA = ${quoteLiteral(schema)}
|
|
769
|
+
AND t.TABLE_TYPE IN ('BASE TABLE', 'VIEW')
|
|
770
|
+
GROUP BY t.TABLE_NAME`,
|
|
771
|
+
forceEncrypt
|
|
772
|
+
);
|
|
773
|
+
rowCounts = new Map(
|
|
774
|
+
countRows.map((r) => [
|
|
775
|
+
String(r["TABLE_NAME"] ?? ""),
|
|
776
|
+
Number(r["row_count"] ?? 0)
|
|
777
|
+
])
|
|
778
|
+
);
|
|
779
|
+
} catch {
|
|
780
|
+
}
|
|
757
781
|
const sections = [
|
|
758
782
|
`## ${connectorName}`,
|
|
759
783
|
"",
|
|
@@ -770,7 +794,9 @@ function buildFlow(options) {
|
|
|
770
794
|
ORDER BY ORDINAL_POSITION`,
|
|
771
795
|
forceEncrypt
|
|
772
796
|
);
|
|
773
|
-
|
|
797
|
+
const rowCount = rowCounts.get(table);
|
|
798
|
+
const heading = typeof rowCount === "number" ? `#### Table: ${table} (~${rowCount.toLocaleString()} rows)` : `#### Table: ${table}`;
|
|
799
|
+
sections.push(heading, "");
|
|
774
800
|
sections.push("| Column | Type | Nullable | Default |");
|
|
775
801
|
sections.push("|--------|------|----------|---------|");
|
|
776
802
|
for (const c of cols) {
|
|
@@ -803,11 +829,11 @@ init_utils();
|
|
|
803
829
|
// ../connectors/src/connectors/azure-sql/setup.ts
|
|
804
830
|
var azureSqlOnboarding = new ConnectorOnboarding({
|
|
805
831
|
dataOverviewInstructions: {
|
|
806
|
-
en: `1. Use
|
|
832
|
+
en: `1. Use connector_azure-sql_executeQuery to confirm the database flavor: \`SELECT @@VERSION\` (Azure SQL returns "Microsoft SQL Azure \u2026")
|
|
807
833
|
2. List user tables: \`SELECT TABLE_SCHEMA, TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_SCHEMA NOT IN ('sys', 'INFORMATION_SCHEMA')\`
|
|
808
834
|
3. For key tables, fetch column info: \`SELECT COLUMN_NAME, DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'dbo' AND TABLE_NAME = 'xxx'\`
|
|
809
835
|
4. Sample up to 3 tables. Azure SQL is T-SQL, so use \`TOP\` rather than \`LIMIT\`: \`SELECT TOP 5 * FROM <schema>.<table_name>\``,
|
|
810
|
-
ja: `1.
|
|
836
|
+
ja: `1. connector_azure-sql_executeQuery \u3067\u30D5\u30EC\u30FC\u30D0\u30FC\u3092\u78BA\u8A8D: \`SELECT @@VERSION\`\uFF08Azure SQL \u306F "Microsoft SQL Azure \u2026" \u3092\u8FD4\u3057\u307E\u3059\uFF09
|
|
811
837
|
2. \u30E6\u30FC\u30B6\u30FC\u30C6\u30FC\u30D6\u30EB\u4E00\u89A7: \`SELECT TABLE_SCHEMA, TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_SCHEMA NOT IN ('sys', 'INFORMATION_SCHEMA')\`
|
|
812
838
|
3. \u4E3B\u8981\u30C6\u30FC\u30D6\u30EB\u306E\u30AB\u30E9\u30E0\u60C5\u5831: \`SELECT COLUMN_NAME, DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'dbo' AND TABLE_NAME = 'xxx'\`
|
|
813
839
|
4. \u5FC5\u8981\u306B\u5FDC\u3058\u3066\u6700\u59273\u30C6\u30FC\u30D6\u30EB\u3092\u30B5\u30F3\u30D7\u30EA\u30F3\u30B0\u3002Azure SQL \u306F T-SQL \u306E\u305F\u3081 \`LIMIT\` \u3067\u306F\u306A\u304F \`TOP\` \u3092\u4F7F\u7528: \`SELECT TOP 5 * FROM <schema>.<table_name>\``
|
|
@@ -913,7 +939,7 @@ var azureSqlConnector = new ConnectorPlugin({
|
|
|
913
939
|
systemPrompt: {
|
|
914
940
|
en: `### Tools
|
|
915
941
|
|
|
916
|
-
- \`
|
|
942
|
+
- \`connector_azure-sql_executeQuery\`: Executes a T-SQL query against Azure SQL Database and returns rows. Use for schema exploration via \`INFORMATION_SCHEMA\` and data sampling. See the SQL Reference below for Azure SQL-specific notes.
|
|
917
943
|
|
|
918
944
|
### Business Logic
|
|
919
945
|
|
|
@@ -930,7 +956,7 @@ The business logic type for this connector is "sql".
|
|
|
930
956
|
- Row-limit compatibility: the platform's server-logic schema inference may wrap your query as \`SELECT * FROM (<inner>) AS _sq LIMIT N\`. T-SQL does not understand \`LIMIT\`, so the connector detects this exact wrapper at \`query()\` time, executes \`<inner>\` directly, and slices the first N rows in JS. You do not need to handle this \u2014 but do not author your own \`LIMIT\` clauses; use \`TOP\` / \`OFFSET ... FETCH NEXT\` in queries you write.`,
|
|
931
957
|
ja: `### \u30C4\u30FC\u30EB
|
|
932
958
|
|
|
933
|
-
- \`
|
|
959
|
+
- \`connector_azure-sql_executeQuery\`: Azure SQL Database \u306B\u5BFE\u3057\u3066 T-SQL \u30AF\u30A8\u30EA\u3092\u5B9F\u884C\u3057\u3001\u884C\u30C7\u30FC\u30BF\u3092\u8FD4\u3057\u307E\u3059\u3002\`INFORMATION_SCHEMA\` \u3092\u4F7F\u3063\u305F\u30B9\u30AD\u30FC\u30DE\u63A2\u7D22\u3084\u30C7\u30FC\u30BF\u306E\u30B5\u30F3\u30D7\u30EA\u30F3\u30B0\u306B\u4F7F\u3044\u307E\u3059\u3002Azure SQL \u56FA\u6709\u306E\u6CE8\u610F\u70B9\u306F\u4E0B\u90E8\u306E\u300CSQL \u30EA\u30D5\u30A1\u30EC\u30F3\u30B9\u300D\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002
|
|
934
960
|
|
|
935
961
|
### Business Logic
|
|
936
962
|
|
|
@@ -16,6 +16,7 @@ var init_parameter_definition = __esm({
|
|
|
16
16
|
type;
|
|
17
17
|
secret;
|
|
18
18
|
required;
|
|
19
|
+
isDeprecated;
|
|
19
20
|
constructor(config) {
|
|
20
21
|
this.slug = config.slug;
|
|
21
22
|
this.name = config.name;
|
|
@@ -24,6 +25,7 @@ var init_parameter_definition = __esm({
|
|
|
24
25
|
this.type = config.type;
|
|
25
26
|
this.secret = config.secret;
|
|
26
27
|
this.required = config.required;
|
|
28
|
+
this.isDeprecated = config.isDeprecated ?? false;
|
|
27
29
|
}
|
|
28
30
|
/**
|
|
29
31
|
* Get the parameter value from a ConnectorConnectionObject.
|
|
@@ -210,7 +212,7 @@ var ConnectorPlugin = class _ConnectorPlugin {
|
|
|
210
212
|
/**
|
|
211
213
|
* Create tools for connections that belong to this connector.
|
|
212
214
|
* Filters connections by connectorKey internally.
|
|
213
|
-
* Returns tools keyed as
|
|
215
|
+
* Returns tools keyed as `connector_${connectorKey}_${toolName}`.
|
|
214
216
|
*/
|
|
215
217
|
createTools(connections, config, opts) {
|
|
216
218
|
const myConnections = connections.filter(
|
|
@@ -220,7 +222,7 @@ var ConnectorPlugin = class _ConnectorPlugin {
|
|
|
220
222
|
for (const t of Object.values(this.tools)) {
|
|
221
223
|
const tool = t.createTool(myConnections, config);
|
|
222
224
|
const originalToModelOutput = tool.toModelOutput;
|
|
223
|
-
result[
|
|
225
|
+
result[`connector_${this.connectorKey}_${t.name}`] = {
|
|
224
226
|
...tool,
|
|
225
227
|
toModelOutput: async (options) => {
|
|
226
228
|
if (!originalToModelOutput) {
|
|
@@ -350,14 +352,14 @@ var AUTH_TYPES = {
|
|
|
350
352
|
// ../connectors/src/connectors/backlog/setup.ts
|
|
351
353
|
var backlogOnboarding = new ConnectorOnboarding({
|
|
352
354
|
dataOverviewInstructions: {
|
|
353
|
-
en: `1. Call
|
|
354
|
-
2. Call
|
|
355
|
-
3. For key projects, call
|
|
356
|
-
4. Call
|
|
357
|
-
ja: `1.
|
|
358
|
-
2.
|
|
359
|
-
3. \u4E3B\u8981\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306B\u3064\u3044\u3066
|
|
360
|
-
4.
|
|
355
|
+
en: `1. Call connector_backlog-api-key_request with GET space to verify the connection and get space information
|
|
356
|
+
2. Call connector_backlog-api-key_request with GET projects to list all accessible projects
|
|
357
|
+
3. For key projects, call connector_backlog-api-key_request with GET issues?projectId[]={projectId}&count=5&order=desc to retrieve recent issues
|
|
358
|
+
4. Call connector_backlog-api-key_request with GET projects/{projectIdOrKey}/statuses to understand the workflow statuses`,
|
|
359
|
+
ja: `1. connector_backlog-api-key_request \u3067 GET space \u3092\u547C\u3073\u51FA\u3057\u3001\u63A5\u7D9A\u78BA\u8A8D\u3068\u30B9\u30DA\u30FC\u30B9\u60C5\u5831\u3092\u53D6\u5F97
|
|
360
|
+
2. connector_backlog-api-key_request \u3067 GET projects \u3092\u547C\u3073\u51FA\u3057\u3001\u30A2\u30AF\u30BB\u30B9\u53EF\u80FD\u306A\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u4E00\u89A7\u3092\u53D6\u5F97
|
|
361
|
+
3. \u4E3B\u8981\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306B\u3064\u3044\u3066 connector_backlog-api-key_request \u3067 GET issues?projectId[]={projectId}&count=5&order=desc \u3092\u547C\u3073\u51FA\u3057\u3001\u6700\u8FD1\u306E\u8AB2\u984C\u3092\u53D6\u5F97
|
|
362
|
+
4. connector_backlog-api-key_request \u3067 GET projects/{projectIdOrKey}/statuses \u3092\u547C\u3073\u51FA\u3057\u3001\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u306E\u30B9\u30C6\u30FC\u30BF\u30B9\u3092\u78BA\u8A8D`
|
|
361
363
|
}
|
|
362
364
|
});
|
|
363
365
|
|
|
@@ -406,6 +408,20 @@ async function listStatuses(params, projectIdOrKey) {
|
|
|
406
408
|
if (!res.ok) return [];
|
|
407
409
|
return await res.json();
|
|
408
410
|
}
|
|
411
|
+
async function countIssues(params, projectId, statusId) {
|
|
412
|
+
try {
|
|
413
|
+
const statusParam = statusId ? `&statusId[]=${statusId}` : "";
|
|
414
|
+
const res = await apiFetch(
|
|
415
|
+
params,
|
|
416
|
+
`issues/count?projectId[]=${encodeURIComponent(projectId)}${statusParam}`
|
|
417
|
+
);
|
|
418
|
+
if (!res.ok) return null;
|
|
419
|
+
const data = await res.json();
|
|
420
|
+
return typeof data.count === "number" ? data.count : null;
|
|
421
|
+
} catch {
|
|
422
|
+
return null;
|
|
423
|
+
}
|
|
424
|
+
}
|
|
409
425
|
var backlogSetupFlow = {
|
|
410
426
|
initialState: () => ({}),
|
|
411
427
|
steps: [
|
|
@@ -455,14 +471,25 @@ var backlogSetupFlow = {
|
|
|
455
471
|
continue;
|
|
456
472
|
}
|
|
457
473
|
sections.push(`### Project: ${project.name} (${project.projectKey})`, "");
|
|
458
|
-
const [issueTypes, statuses] = await Promise.all([
|
|
474
|
+
const [issueTypes, statuses, totalIssues] = await Promise.all([
|
|
459
475
|
listIssueTypes(rt.params, id),
|
|
460
|
-
listStatuses(rt.params, id)
|
|
476
|
+
listStatuses(rt.params, id),
|
|
477
|
+
countIssues(rt.params, id)
|
|
461
478
|
]);
|
|
479
|
+
if (totalIssues != null) {
|
|
480
|
+
sections.push(`- Total issues: ${totalIssues.toLocaleString()}`);
|
|
481
|
+
}
|
|
462
482
|
sections.push(`- Issue types (${issueTypes.length}):`);
|
|
463
483
|
for (const t of issueTypes) sections.push(` - ${t.name}`);
|
|
484
|
+
const statusCounts = await Promise.all(
|
|
485
|
+
statuses.map((s) => countIssues(rt.params, id, s.id))
|
|
486
|
+
);
|
|
464
487
|
sections.push(`- Statuses (${statuses.length}):`);
|
|
465
|
-
for (
|
|
488
|
+
for (let i = 0; i < statuses.length; i++) {
|
|
489
|
+
const c = statusCounts[i];
|
|
490
|
+
const cStr = c != null ? `: ${c.toLocaleString()} issues` : "";
|
|
491
|
+
sections.push(` - ${statuses[i].name}${cStr}`);
|
|
492
|
+
}
|
|
466
493
|
sections.push("");
|
|
467
494
|
}
|
|
468
495
|
return sections.join("\n");
|
|
@@ -561,7 +588,7 @@ var backlogConnector = new ConnectorPlugin({
|
|
|
561
588
|
systemPrompt: {
|
|
562
589
|
en: `### Tools
|
|
563
590
|
|
|
564
|
-
- \`
|
|
591
|
+
- \`connector_backlog-api-key_request\`: The only way to call the Backlog REST API (v2). Use it to list projects, search issues, get issue details, create/update issues, manage wikis, and retrieve users. Authentication (API key as query parameter) and space URL are configured automatically.
|
|
565
592
|
|
|
566
593
|
### Business Logic
|
|
567
594
|
|
|
@@ -633,7 +660,7 @@ await backlog.request("/api/v2/issues", {
|
|
|
633
660
|
- order: "asc" or "desc"`,
|
|
634
661
|
ja: `### \u30C4\u30FC\u30EB
|
|
635
662
|
|
|
636
|
-
- \`
|
|
663
|
+
- \`connector_backlog-api-key_request\`: Backlog REST API\uFF08v2\uFF09\u3092\u547C\u3073\u51FA\u3059\u552F\u4E00\u306E\u624B\u6BB5\u3067\u3059\u3002\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u4E00\u89A7\u306E\u53D6\u5F97\u3001\u8AB2\u984C\u306E\u691C\u7D22\u3001\u8AB2\u984C\u8A73\u7D30\u306E\u53D6\u5F97\u3001\u8AB2\u984C\u306E\u4F5C\u6210\u30FB\u66F4\u65B0\u3001Wiki\u7BA1\u7406\u3001\u30E6\u30FC\u30B6\u30FC\u53D6\u5F97\u306B\u4F7F\u7528\u3057\u307E\u3059\u3002\u8A8D\u8A3C\uFF08API\u30AD\u30FC\u3092\u30AF\u30A8\u30EA\u30D1\u30E9\u30E1\u30FC\u30BF\u3068\u3057\u3066\u4ED8\u4E0E\uFF09\u3068\u30B9\u30DA\u30FC\u30B9URL\u306F\u81EA\u52D5\u7684\u306B\u8A2D\u5B9A\u3055\u308C\u307E\u3059\u3002
|
|
637
664
|
|
|
638
665
|
### Business Logic
|
|
639
666
|
|
|
@@ -16,6 +16,7 @@ var init_parameter_definition = __esm({
|
|
|
16
16
|
type;
|
|
17
17
|
secret;
|
|
18
18
|
required;
|
|
19
|
+
isDeprecated;
|
|
19
20
|
constructor(config) {
|
|
20
21
|
this.slug = config.slug;
|
|
21
22
|
this.name = config.name;
|
|
@@ -24,6 +25,7 @@ var init_parameter_definition = __esm({
|
|
|
24
25
|
this.type = config.type;
|
|
25
26
|
this.secret = config.secret;
|
|
26
27
|
this.required = config.required;
|
|
28
|
+
this.isDeprecated = config.isDeprecated ?? false;
|
|
27
29
|
}
|
|
28
30
|
/**
|
|
29
31
|
* Get the parameter value from a ConnectorConnectionObject.
|
|
@@ -346,7 +348,7 @@ var ConnectorPlugin = class _ConnectorPlugin {
|
|
|
346
348
|
/**
|
|
347
349
|
* Create tools for connections that belong to this connector.
|
|
348
350
|
* Filters connections by connectorKey internally.
|
|
349
|
-
* Returns tools keyed as
|
|
351
|
+
* Returns tools keyed as `connector_${connectorKey}_${toolName}`.
|
|
350
352
|
*/
|
|
351
353
|
createTools(connections, config, opts) {
|
|
352
354
|
const myConnections = connections.filter(
|
|
@@ -356,7 +358,7 @@ var ConnectorPlugin = class _ConnectorPlugin {
|
|
|
356
358
|
for (const t of Object.values(this.tools)) {
|
|
357
359
|
const tool = t.createTool(myConnections, config);
|
|
358
360
|
const originalToModelOutput = tool.toModelOutput;
|
|
359
|
-
result[
|
|
361
|
+
result[`connector_${this.connectorKey}_${t.name}`] = {
|
|
360
362
|
...tool,
|
|
361
363
|
toModelOutput: async (options) => {
|
|
362
364
|
if (!originalToModelOutput) {
|
|
@@ -496,15 +498,15 @@ function normalizeRequestPath(path2, basePathSegment) {
|
|
|
496
498
|
// ../connectors/src/connectors/clickup/setup.ts
|
|
497
499
|
var clickupOnboarding = new ConnectorOnboarding({
|
|
498
500
|
dataOverviewInstructions: {
|
|
499
|
-
en: `1. Call
|
|
500
|
-
2. Call
|
|
501
|
+
en: `1. Call connector_clickup_request with GET /team to list workspaces (the ClickUp API still calls workspaces "teams"). Pick the first workspace's \`id\`.
|
|
502
|
+
2. Call connector_clickup_request with GET /team/{team_id}/space?archived=false to list spaces in the workspace.
|
|
501
503
|
3. Pick one space and list its folders (GET /space/{space_id}/folder?archived=false) and folderless lists (GET /space/{space_id}/list?archived=false). Each folder also contains lists at GET /folder/{folder_id}/list.
|
|
502
|
-
4. Pick one list and call
|
|
504
|
+
4. Pick one list and call connector_clickup_request with GET /list/{list_id}/task?page=0&include_closed=true to sample tasks. Inspect each task's \`status\`, \`assignees\`, \`due_date\`, and \`custom_fields\`.
|
|
503
505
|
5. If custom fields are used, call GET /list/{list_id}/field to get their definitions.`,
|
|
504
|
-
ja: `1.
|
|
505
|
-
2.
|
|
506
|
+
ja: `1. connector_clickup_request \u3067 GET /team \u3092\u547C\u3073\u51FA\u3057\u3066\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u4E00\u89A7\u3092\u53D6\u5F97\u3057\u307E\u3059\uFF08ClickUp API \u3067\u306F\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u3092 "team" \u3068\u547C\u3073\u307E\u3059\uFF09\u3002\u6700\u521D\u306E\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u306E \`id\` \u3092\u9078\u629E\u3057\u307E\u3059\u3002
|
|
507
|
+
2. connector_clickup_request \u3067 GET /team/{team_id}/space?archived=false \u3092\u547C\u3073\u51FA\u3057\u3066\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u5185\u306E\u30B9\u30DA\u30FC\u30B9\u4E00\u89A7\u3092\u53D6\u5F97\u3057\u307E\u3059\u3002
|
|
506
508
|
3. \u30B9\u30DA\u30FC\u30B9\u30921\u3064\u9078\u3073\u3001\u30D5\u30A9\u30EB\u30C0\u4E00\u89A7\uFF08GET /space/{space_id}/folder?archived=false\uFF09\u3068\u30D5\u30A9\u30EB\u30C0\u7121\u3057\u30EA\u30B9\u30C8\u4E00\u89A7\uFF08GET /space/{space_id}/list?archived=false\uFF09\u3092\u53D6\u5F97\u3057\u307E\u3059\u3002\u5404\u30D5\u30A9\u30EB\u30C0\u5185\u306E\u30EA\u30B9\u30C8\u306F GET /folder/{folder_id}/list \u3067\u53D6\u5F97\u3067\u304D\u307E\u3059\u3002
|
|
507
|
-
4. \u30EA\u30B9\u30C8\u30921\u3064\u9078\u3073\
|
|
509
|
+
4. \u30EA\u30B9\u30C8\u30921\u3064\u9078\u3073\u3001connector_clickup_request \u3067 GET /list/{list_id}/task?page=0&include_closed=true \u3092\u547C\u3073\u51FA\u3057\u3066\u30BF\u30B9\u30AF\u3092\u30B5\u30F3\u30D7\u30EA\u30F3\u30B0\u3057\u307E\u3059\u3002\u5404\u30BF\u30B9\u30AF\u306E \`status\`, \`assignees\`, \`due_date\`, \`custom_fields\` \u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002
|
|
508
510
|
5. \u30AB\u30B9\u30BF\u30E0\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u5229\u7528\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u306F GET /list/{list_id}/field \u3067\u305D\u306E\u5B9A\u7FA9\u3092\u53D6\u5F97\u3057\u3066\u304F\u3060\u3055\u3044\u3002`
|
|
509
511
|
}
|
|
510
512
|
});
|
|
@@ -565,6 +567,21 @@ async function listFolderlessLists(params, spaceId) {
|
|
|
565
567
|
const data = await res.json();
|
|
566
568
|
return data.lists ?? [];
|
|
567
569
|
}
|
|
570
|
+
var CLICKUP_SAMPLE_LISTS_PER_SPACE = 5;
|
|
571
|
+
async function fetchListTaskCount(params, listId) {
|
|
572
|
+
try {
|
|
573
|
+
const res = await apiFetch(
|
|
574
|
+
params,
|
|
575
|
+
`/list/${encodeURIComponent(listId)}/task?archived=false&page=0`
|
|
576
|
+
);
|
|
577
|
+
if (!res.ok) return null;
|
|
578
|
+
const data = await res.json();
|
|
579
|
+
const tasks = data.tasks ?? [];
|
|
580
|
+
return tasks.length >= 100 ? "100+" : String(tasks.length);
|
|
581
|
+
} catch {
|
|
582
|
+
return null;
|
|
583
|
+
}
|
|
584
|
+
}
|
|
568
585
|
var clickupSetupFlow = {
|
|
569
586
|
initialState: () => ({}),
|
|
570
587
|
steps: [
|
|
@@ -634,6 +651,31 @@ var clickupSetupFlow = {
|
|
|
634
651
|
for (const f of folders) sections.push(` - ${f.name}`);
|
|
635
652
|
sections.push(`- Folderless lists (${folderlessLists.length}):`);
|
|
636
653
|
for (const l of folderlessLists) sections.push(` - ${l.name}`);
|
|
654
|
+
const sampled = folderlessLists.slice(0, CLICKUP_SAMPLE_LISTS_PER_SPACE);
|
|
655
|
+
if (sampled.length > 0) {
|
|
656
|
+
const counts = await Promise.all(
|
|
657
|
+
sampled.map((l) => fetchListTaskCount(rt.params, l.id))
|
|
658
|
+
);
|
|
659
|
+
sections.push(
|
|
660
|
+
"",
|
|
661
|
+
rt.language === "ja" ? `- \u30EA\u30B9\u30C8\u5225\u30BF\u30B9\u30AF\u4EF6\u6570 (\u4E0A\u4F4D${sampled.length}\u4EF6):` : `- Task counts (first ${sampled.length} lists):`
|
|
662
|
+
);
|
|
663
|
+
sections.push("");
|
|
664
|
+
sections.push("| List | Tasks |");
|
|
665
|
+
sections.push("|------|-------|");
|
|
666
|
+
for (let i = 0; i < sampled.length; i++) {
|
|
667
|
+
const list = sampled[i];
|
|
668
|
+
const count = counts[i] ?? "-";
|
|
669
|
+
const safeName = list.name.replace(/\|/g, "\\|");
|
|
670
|
+
sections.push(`| ${safeName} | ${count} |`);
|
|
671
|
+
}
|
|
672
|
+
if (folderlessLists.length > sampled.length) {
|
|
673
|
+
sections.push(
|
|
674
|
+
"",
|
|
675
|
+
rt.language === "ja" ? `_\u5168${folderlessLists.length}\u4EF6\u306E\u3046\u3061\u5148\u982D${sampled.length}\u4EF6\u3092\u8868\u793A_` : `_Showing first ${sampled.length} of ${folderlessLists.length} folderless lists._`
|
|
676
|
+
);
|
|
677
|
+
}
|
|
678
|
+
}
|
|
637
679
|
sections.push("");
|
|
638
680
|
}
|
|
639
681
|
return sections.join("\n");
|
|
@@ -764,7 +806,7 @@ var clickupConnector = new ConnectorPlugin({
|
|
|
764
806
|
systemPrompt: {
|
|
765
807
|
en: `### Tools
|
|
766
808
|
|
|
767
|
-
- \`
|
|
809
|
+
- \`connector_clickup_request\`: The only way to call the ClickUp REST API v2. Use it to list workspaces, spaces, folders, lists, tasks, members, and custom fields. Authentication (Personal API Token in the \`Authorization\` header \u2014 no \`Bearer\` prefix) is configured automatically. Provide the API path and optionally append query parameters like \`page\`, \`archived\`, \`include_closed\`.
|
|
768
810
|
|
|
769
811
|
### Business Logic
|
|
770
812
|
|
|
@@ -850,7 +892,7 @@ export default async function handler(c: Context) {
|
|
|
850
892
|
- POST \`/team/{team_id}/time_entries\` \u2014 Create a time entry`,
|
|
851
893
|
ja: `### \u30C4\u30FC\u30EB
|
|
852
894
|
|
|
853
|
-
- \`
|
|
895
|
+
- \`connector_clickup_request\`: ClickUp REST API v2 \u3092\u547C\u3073\u51FA\u3059\u552F\u4E00\u306E\u624B\u6BB5\u3067\u3059\u3002\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u3001\u30B9\u30DA\u30FC\u30B9\u3001\u30D5\u30A9\u30EB\u30C0\u3001\u30EA\u30B9\u30C8\u3001\u30BF\u30B9\u30AF\u3001\u30E1\u30F3\u30D0\u30FC\u3001\u30AB\u30B9\u30BF\u30E0\u30D5\u30A3\u30FC\u30EB\u30C9\u306E\u53D6\u5F97\u30FB\u66F4\u65B0\u306B\u4F7F\u7528\u3057\u307E\u3059\u3002\u8A8D\u8A3C\uFF08Personal API Token \u3092 \`Authorization\` \u30D8\u30C3\u30C0\u30FC\u306B\u8A2D\u5B9A \u2014 \`Bearer\` \u30D7\u30EC\u30D5\u30A3\u30C3\u30AF\u30B9\u306F\u4ED8\u304D\u307E\u305B\u3093\uFF09\u306F\u81EA\u52D5\u3067\u884C\u308F\u308C\u307E\u3059\u3002API\u30D1\u30B9\u3092\u6307\u5B9A\u3057\u3001\u5FC5\u8981\u306B\u5FDC\u3058\u3066 \`page\`, \`archived\`, \`include_closed\` \u306A\u3069\u306E\u30AF\u30A8\u30EA\u30D1\u30E9\u30E1\u30FC\u30BF\u3092\u4ED8\u52A0\u3057\u3066\u304F\u3060\u3055\u3044\u3002
|
|
854
896
|
|
|
855
897
|
### Business Logic
|
|
856
898
|
|
|
@@ -16,6 +16,7 @@ var init_parameter_definition = __esm({
|
|
|
16
16
|
type;
|
|
17
17
|
secret;
|
|
18
18
|
required;
|
|
19
|
+
isDeprecated;
|
|
19
20
|
constructor(config) {
|
|
20
21
|
this.slug = config.slug;
|
|
21
22
|
this.name = config.name;
|
|
@@ -24,6 +25,7 @@ var init_parameter_definition = __esm({
|
|
|
24
25
|
this.type = config.type;
|
|
25
26
|
this.secret = config.secret;
|
|
26
27
|
this.required = config.required;
|
|
28
|
+
this.isDeprecated = config.isDeprecated ?? false;
|
|
27
29
|
}
|
|
28
30
|
/**
|
|
29
31
|
* Get the parameter value from a ConnectorConnectionObject.
|
|
@@ -256,7 +258,7 @@ var ConnectorPlugin = class _ConnectorPlugin {
|
|
|
256
258
|
/**
|
|
257
259
|
* Create tools for connections that belong to this connector.
|
|
258
260
|
* Filters connections by connectorKey internally.
|
|
259
|
-
* Returns tools keyed as
|
|
261
|
+
* Returns tools keyed as `connector_${connectorKey}_${toolName}`.
|
|
260
262
|
*/
|
|
261
263
|
createTools(connections, config, opts) {
|
|
262
264
|
const myConnections = connections.filter(
|
|
@@ -266,7 +268,7 @@ var ConnectorPlugin = class _ConnectorPlugin {
|
|
|
266
268
|
for (const t of Object.values(this.tools)) {
|
|
267
269
|
const tool = t.createTool(myConnections, config);
|
|
268
270
|
const originalToModelOutput = tool.toModelOutput;
|
|
269
|
-
result[
|
|
271
|
+
result[`connector_${this.connectorKey}_${t.name}`] = {
|
|
270
272
|
...tool,
|
|
271
273
|
toModelOutput: async (options) => {
|
|
272
274
|
if (!originalToModelOutput) {
|
|
@@ -396,14 +398,14 @@ var AUTH_TYPES = {
|
|
|
396
398
|
// ../connectors/src/connectors/cosmosdb/setup.ts
|
|
397
399
|
var cosmosdbOnboarding = new ConnectorOnboarding({
|
|
398
400
|
dataOverviewInstructions: {
|
|
399
|
-
en: `1. Use
|
|
400
|
-
2. For key containers, sample documents with
|
|
401
|
+
en: `1. Use connector_cosmosdb_listContainers to list all containers in the configured database
|
|
402
|
+
2. For key containers, sample documents with connector_cosmosdb_query: container="users", sql="SELECT TOP 5 * FROM c"
|
|
401
403
|
3. Examine the document structure to understand the schema (Cosmos DB containers are schema-flexible \u2014 items in the same container may have different fields)
|
|
402
|
-
4. Use
|
|
403
|
-
ja: `1.
|
|
404
|
-
2. \u4E3B\u8981\u30B3\u30F3\u30C6\u30CA\u306B\u3064\u3044\u3066
|
|
404
|
+
4. Use connector_cosmosdb_query with GROUP BY to analyse data distribution if needed: \`SELECT c.status, COUNT(1) AS n FROM c GROUP BY c.status\``,
|
|
405
|
+
ja: `1. connector_cosmosdb_listContainers \u3067\u5BFE\u8C61\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u5185\u306E\u30B3\u30F3\u30C6\u30CA\u4E00\u89A7\u3092\u53D6\u5F97
|
|
406
|
+
2. \u4E3B\u8981\u30B3\u30F3\u30C6\u30CA\u306B\u3064\u3044\u3066 connector_cosmosdb_query \u3067\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u30B5\u30F3\u30D7\u30EA\u30F3\u30B0: container="users", sql="SELECT TOP 5 * FROM c"
|
|
405
407
|
3. \u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u69CB\u9020\u3092\u78BA\u8A8D\u3057\u3066\u30B9\u30AD\u30FC\u30DE\u3092\u628A\u63E1\uFF08Cosmos DB \u306E\u30B3\u30F3\u30C6\u30CA\u306F\u30B9\u30AD\u30FC\u30DE\u304C\u67D4\u8EDF\u306A\u305F\u3081\u3001\u540C\u3058\u30B3\u30F3\u30C6\u30CA\u5185\u3067\u3082\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u7570\u306A\u308B\u5834\u5408\u304C\u3042\u308A\u307E\u3059\uFF09
|
|
406
|
-
4. \u5FC5\u8981\u306B\u5FDC\u3058\u3066
|
|
408
|
+
4. \u5FC5\u8981\u306B\u5FDC\u3058\u3066 connector_cosmosdb_query \u306E GROUP BY \u3067\u30C7\u30FC\u30BF\u5206\u5E03\u3092\u78BA\u8A8D: \`SELECT c.status, COUNT(1) AS n FROM c GROUP BY c.status\``
|
|
407
409
|
}
|
|
408
410
|
});
|
|
409
411
|
|
|
@@ -715,8 +717,8 @@ var cosmosdbConnector = new ConnectorPlugin({
|
|
|
715
717
|
systemPrompt: {
|
|
716
718
|
en: `### Tools
|
|
717
719
|
|
|
718
|
-
- \`
|
|
719
|
-
- \`
|
|
720
|
+
- \`connector_cosmosdb_listContainers\`: Lists all containers in the configured database, with their partition key paths. Use this first to explore available data.
|
|
721
|
+
- \`connector_cosmosdb_query\`: Executes a Cosmos DB SQL (Core / NoSQL API) query against a single container and returns items. Use for schema exploration, data sampling, and analytical queries. Pass \`partitionKey\` to scope the query to a single partition (cross-partition queries are enabled by default).
|
|
720
722
|
|
|
721
723
|
### Business Logic
|
|
722
724
|
|
|
@@ -761,8 +763,8 @@ export default async function handler(_c: Context) {
|
|
|
761
763
|
- Always bound results with \`TOP n\` and prefer scoped queries with a \`partitionKey\` value when possible \u2014 cross-partition queries cost more RUs.`,
|
|
762
764
|
ja: `### \u30C4\u30FC\u30EB
|
|
763
765
|
|
|
764
|
-
- \`
|
|
765
|
-
- \`
|
|
766
|
+
- \`connector_cosmosdb_listContainers\`: \u8A2D\u5B9A\u3055\u308C\u305F\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u5185\u306E\u30B3\u30F3\u30C6\u30CA\u4E00\u89A7\uFF08\u30D1\u30FC\u30C6\u30A3\u30B7\u30E7\u30F3\u30AD\u30FC\u306E\u30D1\u30B9\u4ED8\u304D\uFF09\u3092\u53D6\u5F97\u3057\u307E\u3059\u3002\u30C7\u30FC\u30BF\u63A2\u7D22\u306E\u6700\u521D\u306E\u30B9\u30C6\u30C3\u30D7\u3068\u3057\u3066\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002
|
|
767
|
+
- \`connector_cosmosdb_query\`: \u5358\u4E00\u306E\u30B3\u30F3\u30C6\u30CA\u306B\u5BFE\u3057\u3066 Cosmos DB SQL\uFF08Core / NoSQL API\uFF09\u30AF\u30A8\u30EA\u3092\u5B9F\u884C\u3057\u3001\u30A2\u30A4\u30C6\u30E0\u3092\u8FD4\u3057\u307E\u3059\u3002\u30B9\u30AD\u30FC\u30DE\u63A2\u7D22\u3001\u30C7\u30FC\u30BF\u306E\u30B5\u30F3\u30D7\u30EA\u30F3\u30B0\u3001\u5206\u6790\u30AF\u30A8\u30EA\u306B\u4F7F\u7528\u3057\u307E\u3059\u3002\`partitionKey\` \u3092\u6E21\u3059\u3068\u5358\u4E00\u30D1\u30FC\u30C6\u30A3\u30B7\u30E7\u30F3\u306B\u30B9\u30B3\u30FC\u30D7\u3067\u304D\u3001\u672A\u6307\u5B9A\u3060\u3068\u30AF\u30ED\u30B9\u30D1\u30FC\u30C6\u30A3\u30B7\u30E7\u30F3\u30AF\u30A8\u30EA\u306B\u306A\u308A\u307E\u3059\u3002
|
|
766
768
|
|
|
767
769
|
### Business Logic
|
|
768
770
|
|
|
@@ -16,6 +16,7 @@ var init_parameter_definition = __esm({
|
|
|
16
16
|
type;
|
|
17
17
|
secret;
|
|
18
18
|
required;
|
|
19
|
+
isDeprecated;
|
|
19
20
|
constructor(config) {
|
|
20
21
|
this.slug = config.slug;
|
|
21
22
|
this.name = config.name;
|
|
@@ -24,6 +25,7 @@ var init_parameter_definition = __esm({
|
|
|
24
25
|
this.type = config.type;
|
|
25
26
|
this.secret = config.secret;
|
|
26
27
|
this.required = config.required;
|
|
28
|
+
this.isDeprecated = config.isDeprecated ?? false;
|
|
27
29
|
}
|
|
28
30
|
/**
|
|
29
31
|
* Get the parameter value from a ConnectorConnectionObject.
|
|
@@ -293,7 +295,7 @@ var ConnectorPlugin = class _ConnectorPlugin {
|
|
|
293
295
|
/**
|
|
294
296
|
* Create tools for connections that belong to this connector.
|
|
295
297
|
* Filters connections by connectorKey internally.
|
|
296
|
-
* Returns tools keyed as
|
|
298
|
+
* Returns tools keyed as `connector_${connectorKey}_${toolName}`.
|
|
297
299
|
*/
|
|
298
300
|
createTools(connections, config, opts) {
|
|
299
301
|
const myConnections = connections.filter(
|
|
@@ -303,7 +305,7 @@ var ConnectorPlugin = class _ConnectorPlugin {
|
|
|
303
305
|
for (const t of Object.values(this.tools)) {
|
|
304
306
|
const tool = t.createTool(myConnections, config);
|
|
305
307
|
const originalToModelOutput = tool.toModelOutput;
|
|
306
|
-
result[
|
|
308
|
+
result[`connector_${this.connectorKey}_${t.name}`] = {
|
|
307
309
|
...tool,
|
|
308
310
|
toModelOutput: async (options) => {
|
|
309
311
|
if (!originalToModelOutput) {
|
|
@@ -428,12 +430,12 @@ var AUTH_TYPES = {
|
|
|
428
430
|
// ../connectors/src/connectors/customerio/setup.ts
|
|
429
431
|
var customerioOnboarding = new ConnectorOnboarding({
|
|
430
432
|
dataOverviewInstructions: {
|
|
431
|
-
en: `1. Call
|
|
432
|
-
2. Call
|
|
433
|
+
en: `1. Call connector_customerio_request with GET /v1/segments to list all segments
|
|
434
|
+
2. Call connector_customerio_request with GET /v1/campaigns to list all campaigns
|
|
433
435
|
3. Pick a segment and call GET /v1/segments/{segment_id}/membership to view member IDs
|
|
434
436
|
4. Pick a customer ID and call GET /v1/customers/{id}/attributes to view customer attributes`,
|
|
435
|
-
ja: `1.
|
|
436
|
-
2.
|
|
437
|
+
ja: `1. connector_customerio_request \u3067 GET /v1/segments \u3092\u547C\u3073\u51FA\u3057\u3001\u5168\u30BB\u30B0\u30E1\u30F3\u30C8\u4E00\u89A7\u3092\u53D6\u5F97
|
|
438
|
+
2. connector_customerio_request \u3067 GET /v1/campaigns \u3092\u547C\u3073\u51FA\u3057\u3001\u5168\u30AD\u30E3\u30F3\u30DA\u30FC\u30F3\u4E00\u89A7\u3092\u53D6\u5F97
|
|
437
439
|
3. \u30BB\u30B0\u30E1\u30F3\u30C8\u3092\u9078\u629E\u3057 GET /v1/segments/{segment_id}/membership \u3067\u30E1\u30F3\u30D0\u30FCID\u3092\u78BA\u8A8D
|
|
438
440
|
4. \u9867\u5BA2ID\u3092\u9078\u629E\u3057 GET /v1/customers/{id}/attributes \u3067\u9867\u5BA2\u5C5E\u6027\u3092\u78BA\u8A8D`
|
|
439
441
|
}
|
|
@@ -665,7 +667,7 @@ var customerioConnector = new ConnectorPlugin({
|
|
|
665
667
|
systemPrompt: {
|
|
666
668
|
en: `### Tools
|
|
667
669
|
|
|
668
|
-
- \`
|
|
670
|
+
- \`connector_customerio_request\`: The only way to call the Customer.io App API. Use it to read customer data, manage campaigns and segments, send transactional messages, and trigger broadcasts. Authentication (Bearer token with App API Key) is configured automatically.
|
|
669
671
|
|
|
670
672
|
### Business Logic
|
|
671
673
|
|
|
@@ -749,7 +751,7 @@ export default async function handler(c: Context) {
|
|
|
749
751
|
- Pagination uses cursor-based \`start\` parameter for customer listing`,
|
|
750
752
|
ja: `### \u30C4\u30FC\u30EB
|
|
751
753
|
|
|
752
|
-
- \`
|
|
754
|
+
- \`connector_customerio_request\`: Customer.io App API\u3092\u547C\u3073\u51FA\u3059\u552F\u4E00\u306E\u624B\u6BB5\u3067\u3059\u3002\u9867\u5BA2\u30C7\u30FC\u30BF\u306E\u8AAD\u307F\u53D6\u308A\u3001\u30AD\u30E3\u30F3\u30DA\u30FC\u30F3\u3084\u30BB\u30B0\u30E1\u30F3\u30C8\u306E\u7BA1\u7406\u3001\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u30E1\u30C3\u30BB\u30FC\u30B8\u306E\u9001\u4FE1\u3001\u30D6\u30ED\u30FC\u30C9\u30AD\u30E3\u30B9\u30C8\u306E\u30C8\u30EA\u30AC\u30FC\u306B\u4F7F\u7528\u3057\u307E\u3059\u3002\u8A8D\u8A3C\uFF08App API\u30AD\u30FC\u306B\u3088\u308BBearer\u30C8\u30FC\u30AF\u30F3\uFF09\u306F\u81EA\u52D5\u7684\u306B\u8A2D\u5B9A\u3055\u308C\u307E\u3059\u3002
|
|
753
755
|
|
|
754
756
|
### Business Logic
|
|
755
757
|
|