veryfront 0.1.606 → 0.1.608
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/esm/cli/commands/init/catalog.d.ts.map +1 -1
- package/esm/cli/commands/init/catalog.js +7 -3
- package/esm/cli/mcp/tools/catalog-tools.d.ts +1 -1
- package/esm/cli/mcp/tools/catalog-tools.d.ts.map +1 -1
- package/esm/cli/mcp/tools/catalog-tools.js +61 -145
- package/esm/cli/templates/integration-loader.d.ts +9 -1
- package/esm/cli/templates/integration-loader.d.ts.map +1 -1
- package/esm/cli/templates/integration-loader.js +14 -3
- package/esm/deno.js +1 -1
- package/esm/extensions/ext-document-kreuzberg/src/index.d.ts.map +1 -1
- package/esm/extensions/ext-document-kreuzberg/src/index.js +12 -4
- package/esm/extensions/ext-document-kreuzberg/src/kreuzberg.d.ts.map +1 -1
- package/esm/extensions/ext-document-kreuzberg/src/kreuzberg.js +3 -1
- package/esm/extensions/ext-document-kreuzberg/src/runtime.d.ts +3 -0
- package/esm/extensions/ext-document-kreuzberg/src/runtime.d.ts.map +1 -0
- package/esm/extensions/ext-document-kreuzberg/src/runtime.js +26 -0
- package/esm/extensions/ext-document-kreuzberg/src/upload-extraction-worker.js +20 -0
- package/esm/src/integrations/_data.js +1 -1
- package/esm/src/integrations/feature-flags.d.ts +12 -0
- package/esm/src/integrations/feature-flags.d.ts.map +1 -0
- package/esm/src/integrations/feature-flags.js +118 -0
- package/esm/src/integrations/index.d.ts.map +1 -1
- package/esm/src/integrations/index.js +8 -5
- package/esm/src/integrations/schema.d.ts +4 -4
- package/esm/src/internal-agents/run-stream.d.ts +1 -0
- package/esm/src/internal-agents/run-stream.d.ts.map +1 -1
- package/esm/src/internal-agents/run-stream.js +34 -0
- package/esm/src/oauth/index.d.ts +5 -1
- package/esm/src/oauth/index.d.ts.map +1 -1
- package/esm/src/oauth/index.js +5 -1
- package/esm/src/oauth/providers/common.d.ts +27 -25
- package/esm/src/oauth/providers/common.d.ts.map +1 -1
- package/esm/src/oauth/providers/common.js +3 -1
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/init/catalog.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/init/catalog.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAUnE,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,SAAS,EAAE,SAAS,cAAc,EAoBrC,CAAC;AAEX,0DAA0D;AAC1D,wBAAgB,wBAAwB,IAAI,YAAY,EAAE,CAMzD;AAMD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,eAAe,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,SAAS,iBAAiB,EAAE,CAAC;CAC5C;AAED,eAAO,MAAM,sBAAsB,EAAE,SAAS,mBAAmB,EAmGvD,CAAC;AAEX,2CAA2C;AAC3C,wBAAgB,kBAAkB,IAAI,iBAAiB,EAAE,CAIxD;AAED,6DAA6D;AAC7D,wBAAgB,2BAA2B,IAAI,YAAY,EAAE,CAM5D;AAED,4DAA4D;AAC5D,wBAAgB,sBAAsB,IAAI,iBAAiB,EAAE,CAa5D;AAED,+DAA+D;AAC/D,wBAAgB,sCAAsC,IAAI,KAAK,CAC7D,YAAY,GAAG;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,CACtC,CA0BA"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Shared catalog of templates and integrations
|
|
3
3
|
* Single source of truth for all CLI template/integration data
|
|
4
4
|
*/
|
|
5
|
+
import { filterVisibleIntegrations, isVisibleIntegration, } from "../../../src/integrations/feature-flags.js";
|
|
5
6
|
export const TEMPLATES = [
|
|
6
7
|
{ id: "minimal", label: "Minimal", description: "Blank canvas, no extras" },
|
|
7
8
|
{ id: "ai-agent", label: "AI Agent", description: "Agent + chat UI + streaming" },
|
|
@@ -47,7 +48,7 @@ export const INTEGRATION_CATEGORIES = [
|
|
|
47
48
|
{
|
|
48
49
|
name: "Productivity",
|
|
49
50
|
integrations: [
|
|
50
|
-
{ id: "calendar", label: "Calendar", description: "Google Calendar events" },
|
|
51
|
+
{ id: "calendar", label: "Google Calendar", description: "Google Calendar events" },
|
|
51
52
|
{ id: "notion", label: "Notion", description: "Pages, databases, blocks" },
|
|
52
53
|
{ id: "jira", label: "Jira", description: "Issues, projects, sprints" },
|
|
53
54
|
{ id: "linear", label: "Linear", description: "Issue tracking" },
|
|
@@ -133,7 +134,7 @@ export const INTEGRATION_CATEGORIES = [
|
|
|
133
134
|
];
|
|
134
135
|
/** Get all integrations as a flat array */
|
|
135
136
|
export function getAllIntegrations() {
|
|
136
|
-
return INTEGRATION_CATEGORIES.flatMap((cat) => [...cat.integrations]);
|
|
137
|
+
return filterVisibleIntegrations(INTEGRATION_CATEGORIES.flatMap((cat) => [...cat.integrations]));
|
|
137
138
|
}
|
|
138
139
|
/** Get integrations as SelectOption[] for terminal-select */
|
|
139
140
|
export function getIntegrationSelectOptions() {
|
|
@@ -162,13 +163,16 @@ export function getPopularIntegrations() {
|
|
|
162
163
|
export function getIntegrationSelectOptionsWithHeaders() {
|
|
163
164
|
const choices = [];
|
|
164
165
|
for (const category of INTEGRATION_CATEGORIES) {
|
|
166
|
+
const integrations = category.integrations.filter((integration) => isVisibleIntegration(integration.id));
|
|
167
|
+
if (integrations.length === 0)
|
|
168
|
+
continue;
|
|
165
169
|
choices.push({
|
|
166
170
|
value: `__header_${category.name}`,
|
|
167
171
|
label: `── ${category.name} ──`,
|
|
168
172
|
description: "",
|
|
169
173
|
isHeader: true,
|
|
170
174
|
});
|
|
171
|
-
for (const integration of
|
|
175
|
+
for (const integration of integrations) {
|
|
172
176
|
choices.push({
|
|
173
177
|
value: integration.id,
|
|
174
178
|
label: integration.label,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog-tools.d.ts","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/catalog-tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"catalog-tools.d.ts","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/catalog-tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAO3E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAQ3C,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,UAAU,CAAC;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAqDD,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAyCD,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;CAC3C;AAgDD,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AA4CD,QAAA,MAAM,oBAAoB,4IAAoC,CAAC;AAG/D,KAAK,iBAAiB,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC;AAE9E,eAAO,MAAM,cAAc,EAAE,OAAO,CAAC,iBAAiB,EAAE,WAAW,EAAE,CAQpE,CAAC;AAMF,QAAA,MAAM,qBAAqB,4IAAoC,CAAC;AAGhE,KAAK,kBAAkB,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC,CAAC;AAEhF,eAAO,MAAM,eAAe,EAAE,OAAO,CAAC,kBAAkB,EAAE,YAAY,EAAE,CAQvE,CAAC;AAMF,QAAA,MAAM,wBAAwB;;GAqB7B,CAAC;AAGF,KAAK,qBAAqB,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAC,CAAC;AAEtF,eAAO,MAAM,kBAAkB,EAAE,OAAO,CAAC,qBAAqB,EAAE,eAAe,EAAE,CAahF,CAAC;AAMF,QAAA,MAAM,oBAAoB,4IAAoC,CAAC;AAG/D,KAAK,iBAAiB,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC;AAE9E,eAAO,MAAM,cAAc,EAAE,OAAO,CAAC,iBAAiB,EAAE,WAAW,EAAE,CAQpE,CAAC;AAMF,QAAA,MAAM,qBAAqB;;;;;GAyB1B,CAAC;AAGF,KAAK,kBAAkB,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC,CAAC;AAEhF,UAAU,mBAAmB;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,eAAO,MAAM,eAAe,EAAE,OAAO,CAAC,kBAAkB,EAAE,mBAAmB,CAiD5E,CAAC"}
|
|
@@ -5,6 +5,9 @@ import { defineSchema, lazySchema } from "../../../src/schemas/index.js";
|
|
|
5
5
|
import { join } from "../../../src/platform/compat/path/index.js";
|
|
6
6
|
import { cwd } from "../../../src/platform/index.js";
|
|
7
7
|
import { withSpan } from "../../../src/observability/tracing/otlp-setup.js";
|
|
8
|
+
import { connectors } from "../../../src/integrations/_data.js";
|
|
9
|
+
import { filterVisibleIntegrations } from "../../../src/integrations/feature-flags.js";
|
|
10
|
+
import { INTEGRATION_CATEGORIES } from "../../commands/init/catalog.js";
|
|
8
11
|
import { directoryExists, formatError, toSlug } from "./helpers.js";
|
|
9
12
|
const EXAMPLES = [
|
|
10
13
|
{
|
|
@@ -94,148 +97,47 @@ const TEMPLATES = [
|
|
|
94
97
|
features: ["App Router", "Tailwind CSS", "TypeScript"],
|
|
95
98
|
},
|
|
96
99
|
];
|
|
97
|
-
|
|
98
|
-
{
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
authType: "oauth2",
|
|
139
|
-
},
|
|
140
|
-
{
|
|
141
|
-
name: "docs-google",
|
|
142
|
-
displayName: "Google Docs",
|
|
143
|
-
category: "productivity",
|
|
144
|
-
description: "Read and edit documents",
|
|
145
|
-
authType: "oauth2",
|
|
146
|
-
},
|
|
147
|
-
{
|
|
148
|
-
name: "github",
|
|
149
|
-
displayName: "GitHub",
|
|
150
|
-
category: "development",
|
|
151
|
-
description: "Manage repos, issues, and PRs",
|
|
152
|
-
authType: "oauth2",
|
|
153
|
-
},
|
|
154
|
-
{
|
|
155
|
-
name: "gitlab",
|
|
156
|
-
displayName: "GitLab",
|
|
157
|
-
category: "development",
|
|
158
|
-
description: "Manage projects and pipelines",
|
|
159
|
-
authType: "oauth2",
|
|
160
|
-
},
|
|
161
|
-
{
|
|
162
|
-
name: "jira",
|
|
163
|
-
displayName: "Jira",
|
|
164
|
-
category: "development",
|
|
165
|
-
description: "Track issues and projects",
|
|
166
|
-
authType: "oauth2",
|
|
167
|
-
},
|
|
168
|
-
{
|
|
169
|
-
name: "linear",
|
|
170
|
-
displayName: "Linear",
|
|
171
|
-
category: "development",
|
|
172
|
-
description: "Issue tracking and project management",
|
|
173
|
-
authType: "oauth2",
|
|
174
|
-
},
|
|
175
|
-
{
|
|
176
|
-
name: "sentry",
|
|
177
|
-
displayName: "Sentry",
|
|
178
|
-
category: "development",
|
|
179
|
-
description: "Error tracking and monitoring",
|
|
180
|
-
authType: "api-key",
|
|
181
|
-
},
|
|
182
|
-
{
|
|
183
|
-
name: "teams",
|
|
184
|
-
displayName: "Microsoft Teams",
|
|
185
|
-
category: "communication",
|
|
186
|
-
description: "Chat and collaboration",
|
|
187
|
-
authType: "oauth2",
|
|
188
|
-
},
|
|
189
|
-
{
|
|
190
|
-
name: "outlook",
|
|
191
|
-
displayName: "Outlook",
|
|
192
|
-
category: "communication",
|
|
193
|
-
description: "Email and calendar",
|
|
194
|
-
authType: "oauth2",
|
|
195
|
-
},
|
|
196
|
-
{
|
|
197
|
-
name: "zoom",
|
|
198
|
-
displayName: "Zoom",
|
|
199
|
-
category: "communication",
|
|
200
|
-
description: "Video meetings",
|
|
201
|
-
authType: "oauth2",
|
|
202
|
-
},
|
|
203
|
-
{
|
|
204
|
-
name: "airtable",
|
|
205
|
-
displayName: "Airtable",
|
|
206
|
-
category: "data",
|
|
207
|
-
description: "Database and spreadsheets",
|
|
208
|
-
authType: "oauth2",
|
|
209
|
-
},
|
|
210
|
-
{
|
|
211
|
-
name: "snowflake",
|
|
212
|
-
displayName: "Snowflake",
|
|
213
|
-
category: "data",
|
|
214
|
-
description: "Data warehouse queries",
|
|
215
|
-
authType: "api-key",
|
|
216
|
-
},
|
|
217
|
-
{
|
|
218
|
-
name: "supabase",
|
|
219
|
-
displayName: "Supabase",
|
|
220
|
-
category: "data",
|
|
221
|
-
description: "Database and auth",
|
|
222
|
-
authType: "api-key",
|
|
223
|
-
},
|
|
224
|
-
{
|
|
225
|
-
name: "neon",
|
|
226
|
-
displayName: "Neon",
|
|
227
|
-
category: "data",
|
|
228
|
-
description: "Serverless Postgres",
|
|
229
|
-
authType: "oauth2",
|
|
230
|
-
},
|
|
231
|
-
{
|
|
232
|
-
name: "anthropic",
|
|
233
|
-
displayName: "Anthropic",
|
|
234
|
-
category: "ai",
|
|
235
|
-
description: "Claude AI models",
|
|
236
|
-
authType: "api-key",
|
|
237
|
-
},
|
|
238
|
-
];
|
|
100
|
+
function getMcpCategory(categoryName) {
|
|
101
|
+
switch (categoryName) {
|
|
102
|
+
case "Communication":
|
|
103
|
+
return "communication";
|
|
104
|
+
case "Productivity":
|
|
105
|
+
return "productivity";
|
|
106
|
+
case "Development":
|
|
107
|
+
return "development";
|
|
108
|
+
case "Storage":
|
|
109
|
+
return "data";
|
|
110
|
+
case "Infrastructure":
|
|
111
|
+
return "infrastructure";
|
|
112
|
+
case "Sales & CRM":
|
|
113
|
+
return "sales";
|
|
114
|
+
case "Support":
|
|
115
|
+
return "support";
|
|
116
|
+
case "Finance":
|
|
117
|
+
return "finance";
|
|
118
|
+
case "Marketing":
|
|
119
|
+
return "marketing";
|
|
120
|
+
case "Design":
|
|
121
|
+
return "design";
|
|
122
|
+
case "AI Providers":
|
|
123
|
+
return "ai";
|
|
124
|
+
default:
|
|
125
|
+
return "other";
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
const connectorByName = new Map(connectors.map((connector) => [connector.name, connector]));
|
|
129
|
+
const INTEGRATIONS = INTEGRATION_CATEGORIES.flatMap((category) => category.integrations.flatMap((integration) => {
|
|
130
|
+
const connector = connectorByName.get(integration.id);
|
|
131
|
+
if (!connector)
|
|
132
|
+
return [];
|
|
133
|
+
return [{
|
|
134
|
+
name: integration.id,
|
|
135
|
+
displayName: integration.label,
|
|
136
|
+
category: getMcpCategory(category.name),
|
|
137
|
+
description: integration.description,
|
|
138
|
+
authType: connector.auth.type,
|
|
139
|
+
}];
|
|
140
|
+
}));
|
|
239
141
|
const USECASES = [
|
|
240
142
|
{
|
|
241
143
|
name: "productivity",
|
|
@@ -304,7 +206,20 @@ export const vfListTemplates = {
|
|
|
304
206
|
// ============================================================================
|
|
305
207
|
const getListIntegrationsInput = defineSchema((v) => v.object({
|
|
306
208
|
category: v
|
|
307
|
-
.enum([
|
|
209
|
+
.enum([
|
|
210
|
+
"all",
|
|
211
|
+
"productivity",
|
|
212
|
+
"development",
|
|
213
|
+
"communication",
|
|
214
|
+
"data",
|
|
215
|
+
"infrastructure",
|
|
216
|
+
"sales",
|
|
217
|
+
"support",
|
|
218
|
+
"finance",
|
|
219
|
+
"marketing",
|
|
220
|
+
"design",
|
|
221
|
+
"ai",
|
|
222
|
+
])
|
|
308
223
|
.optional()
|
|
309
224
|
.default("all")
|
|
310
225
|
.describe("Filter integrations by category"),
|
|
@@ -318,9 +233,10 @@ export const vfListIntegrations = {
|
|
|
318
233
|
inputSchema: listIntegrationsInput,
|
|
319
234
|
execute: (input) => {
|
|
320
235
|
const { category } = input;
|
|
236
|
+
const integrations = filterVisibleIntegrations(INTEGRATIONS);
|
|
321
237
|
if (category === "all")
|
|
322
|
-
return Promise.resolve(
|
|
323
|
-
return Promise.resolve(
|
|
238
|
+
return Promise.resolve(integrations);
|
|
239
|
+
return Promise.resolve(integrations.filter((i) => i.category === category));
|
|
324
240
|
},
|
|
325
241
|
};
|
|
326
242
|
// ============================================================================
|
|
@@ -9,9 +9,17 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import type { IntegrationConfig, IntegrationName, ResolvedIntegration, TemplateFile, UseCaseConfig, UseCaseName } from "./types.js";
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
12
|
+
* All declared integrations. Unsupported integrations stay in the source tree,
|
|
13
|
+
* but are only available when explicitly enabled with
|
|
14
|
+
* VERYFRONT_EXPERIMENTAL_INTEGRATIONS.
|
|
15
|
+
*/
|
|
16
|
+
export declare const ALL_AVAILABLE_INTEGRATIONS: IntegrationName[];
|
|
17
|
+
/**
|
|
18
|
+
* Default available integrations that can be added via --integrations flag.
|
|
19
|
+
* Prefer getAvailableIntegrations() when runtime feature-flag changes matter.
|
|
13
20
|
*/
|
|
14
21
|
export declare const AVAILABLE_INTEGRATIONS: IntegrationName[];
|
|
22
|
+
export declare function getAvailableIntegrations(): IntegrationName[];
|
|
15
23
|
/**
|
|
16
24
|
* Available use-cases that can be selected via --usecase flag
|
|
17
25
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integration-loader.d.ts","sourceRoot":"","sources":["../../../src/cli/templates/integration-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"integration-loader.d.ts","sourceRoot":"","sources":["../../../src/cli/templates/integration-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAWH,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,WAAW,EACZ,MAAM,YAAY,CAAC;AAEpB;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,EAAE,eAAe,EAkDvD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,eAAe,EAEK,CAAC;AAE1D,wBAAgB,wBAAwB,IAAI,eAAe,EAAE,CAI5D;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAAW,EAM3C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,WAAW,EAAE,aAAa,CA8C/D,CAAC;AAMF;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,eAAe,EAAE,eAAe,GAC/B,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAanC;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,eAAe,EAAE,eAAe,GAC/B,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAOrC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,eAAe,EAAE,GAAG;IACrE,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAIA;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,gBAAgB,EAAE,eAAe,EAAE,GAClC,OAAO,CAAC;IACT,YAAY,EAAE,mBAAmB,EAAE,CAAC;IACpC,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC,CAkBD;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAUjF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,WAAW,GAAG,aAAa,CAExE;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,gBAAgB,EAAE,eAAe,EAAE,GAClC,OAAO,CACR,KAAK,CAAC;IACJ,WAAW,EAAE,eAAe,CAAC;IAC7B,OAAO,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;CACvC,CAAC,CACH,CAcA;AAED;;;GAGG;AACH,wBAAgB,qCAAqC,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAE/E;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAE7E;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,YAAY,EAAE,CAwZxD"}
|
|
@@ -8,12 +8,15 @@
|
|
|
8
8
|
* - Prompt/action loading
|
|
9
9
|
*/
|
|
10
10
|
import { createFileSystem, join } from "../../src/fs/index.js";
|
|
11
|
+
import { filterVisibleIntegrations } from "../../src/integrations/feature-flags.js";
|
|
11
12
|
import { loadTemplateFromDirectory } from "./loader.js";
|
|
12
13
|
import { buildIntegrationDirectory, buildUnknownIntegrationErrors, mergeIntegrationFiles, resolveIntegrationModuleDir, } from "./integration-loader-helpers.js";
|
|
13
14
|
/**
|
|
14
|
-
*
|
|
15
|
+
* All declared integrations. Unsupported integrations stay in the source tree,
|
|
16
|
+
* but are only available when explicitly enabled with
|
|
17
|
+
* VERYFRONT_EXPERIMENTAL_INTEGRATIONS.
|
|
15
18
|
*/
|
|
16
|
-
export const
|
|
19
|
+
export const ALL_AVAILABLE_INTEGRATIONS = [
|
|
17
20
|
"gmail",
|
|
18
21
|
"slack",
|
|
19
22
|
"github",
|
|
@@ -64,6 +67,14 @@ export const AVAILABLE_INTEGRATIONS = [
|
|
|
64
67
|
"anthropic",
|
|
65
68
|
"aws",
|
|
66
69
|
];
|
|
70
|
+
/**
|
|
71
|
+
* Default available integrations that can be added via --integrations flag.
|
|
72
|
+
* Prefer getAvailableIntegrations() when runtime feature-flag changes matter.
|
|
73
|
+
*/
|
|
74
|
+
export const AVAILABLE_INTEGRATIONS = filterVisibleIntegrations(ALL_AVAILABLE_INTEGRATIONS.map((name) => ({ id: name }))).map((integration) => integration.id);
|
|
75
|
+
export function getAvailableIntegrations() {
|
|
76
|
+
return filterVisibleIntegrations(ALL_AVAILABLE_INTEGRATIONS.map((name) => ({ id: name }))).map((integration) => integration.id);
|
|
77
|
+
}
|
|
67
78
|
/**
|
|
68
79
|
* Available use-cases that can be selected via --usecase flag
|
|
69
80
|
*/
|
|
@@ -161,7 +172,7 @@ export async function loadIntegration(integrationName) {
|
|
|
161
172
|
* Validate integration names
|
|
162
173
|
*/
|
|
163
174
|
export function validateIntegrations(integrations) {
|
|
164
|
-
const errors = buildUnknownIntegrationErrors(integrations,
|
|
175
|
+
const errors = buildUnknownIntegrationErrors(integrations, getAvailableIntegrations());
|
|
165
176
|
return { valid: errors.length === 0, errors };
|
|
166
177
|
}
|
|
167
178
|
/**
|
package/esm/deno.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/extensions/ext-document-kreuzberg/src/index.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/extensions/ext-document-kreuzberg/src/index.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAsDrG,qBAAa,0BAA2B,YAAW,iBAAiB;IAClE,eAAe,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAIxC,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAW9E;AAED,QAAA,MAAM,oBAAoB,EAAE,gBAkB3B,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
|
|
@@ -8,13 +8,19 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import * as dntShim from "../../../_dnt.shims.js";
|
|
10
10
|
import { loadKreuzberg } from "./kreuzberg.js";
|
|
11
|
+
import { isDeno } from "./runtime.js";
|
|
11
12
|
/** Maximum time to wait for document text extraction before aborting. */
|
|
12
13
|
const EXTRACTION_TIMEOUT_MS = 30_000;
|
|
13
14
|
function extractInWorkerDeno(buffer, mimeType) {
|
|
14
15
|
return new Promise((resolve, reject) => {
|
|
15
|
-
//
|
|
16
|
-
//
|
|
17
|
-
|
|
16
|
+
// The worker ships as raw TypeScript in the compiled binary and from source
|
|
17
|
+
// (where `compile-binary.ts` force-includes it), but as transpiled JS in the
|
|
18
|
+
// npm package consumed via `deno run npm:veryfront`. Pick the sibling that
|
|
19
|
+
// matches whichever build is executing this module.
|
|
20
|
+
const workerFile = globalThis[Symbol.for("import-meta-ponyfill-esmodule")](import.meta).url.endsWith(".ts")
|
|
21
|
+
? "./upload-extraction-worker.ts"
|
|
22
|
+
: "./upload-extraction-worker.js";
|
|
23
|
+
const workerUrl = new URL(workerFile, globalThis[Symbol.for("import-meta-ponyfill-esmodule")](import.meta).url);
|
|
18
24
|
const worker = new Worker(workerUrl, { type: "module" });
|
|
19
25
|
const timer = dntShim.setTimeout(() => {
|
|
20
26
|
worker.terminate();
|
|
@@ -44,7 +50,9 @@ export class KreuzbergDocumentExtractor {
|
|
|
44
50
|
return loadKreuzberg();
|
|
45
51
|
}
|
|
46
52
|
async extractInWorker(buffer, mimeType) {
|
|
47
|
-
|
|
53
|
+
// Only a real Deno runtime gets the isolated Worker; Node/Bun extract
|
|
54
|
+
// in-process via @kreuzberg/node. See ./runtime.ts for why a bare `Deno`
|
|
55
|
+
// check is unreliable in the dnt npm build.
|
|
48
56
|
if (!isDeno) {
|
|
49
57
|
const { extractBytes } = await loadKreuzberg();
|
|
50
58
|
const result = await extractBytes(new Uint8Array(buffer), mimeType);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kreuzberg.d.ts","sourceRoot":"","sources":["../../../../src/extensions/ext-document-kreuzberg/src/kreuzberg.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"kreuzberg.d.ts","sourceRoot":"","sources":["../../../../src/extensions/ext-document-kreuzberg/src/kreuzberg.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAwBlF,wBAAsB,aAAa,IAAI,OAAO,CAAC,kBAAkB,CAAC,CA2BjE"}
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
* @module extensions/ext-document-kreuzberg/kreuzberg
|
|
10
10
|
*/
|
|
11
11
|
import * as dntShim from "../../../_dnt.shims.js";
|
|
12
|
+
import { isDeno } from "./runtime.js";
|
|
12
13
|
// deno-lint-ignore no-explicit-any
|
|
13
14
|
async function loadKreuzbergNode() {
|
|
14
15
|
try {
|
|
@@ -22,7 +23,8 @@ async function loadKreuzbergNode() {
|
|
|
22
23
|
}
|
|
23
24
|
}
|
|
24
25
|
export async function loadKreuzberg() {
|
|
25
|
-
|
|
26
|
+
// Node/Bun load the native @kreuzberg/node; only a real Deno runtime uses the
|
|
27
|
+
// WASM build. See ./runtime.ts for why a bare `Deno` check is unreliable here.
|
|
26
28
|
if (!isDeno) {
|
|
27
29
|
return loadKreuzbergNode();
|
|
28
30
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../src/extensions/ext-document-kreuzberg/src/runtime.ts"],"names":[],"mappings":"AAoCA,uEAAuE;AACvE,eAAO,MAAM,MAAM,EAAE,OAA+D,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime detection — inlined from src/platform/compat/runtime.ts so the
|
|
3
|
+
* extension stays dependency-free on core (mirrors ext-bundler-esbuild).
|
|
4
|
+
*
|
|
5
|
+
* The Node check is what makes this correct in the dnt npm build: dnt's
|
|
6
|
+
* `@deno/shim-deno` polyfill makes a bare `Deno` reference truthy on Node/Bun,
|
|
7
|
+
* but `hasNodeProcess()` short-circuits `isDeno` to false there regardless.
|
|
8
|
+
*
|
|
9
|
+
* @module extensions/ext-document-kreuzberg/runtime
|
|
10
|
+
*/
|
|
11
|
+
import * as dntShim from "../../../_dnt.shims.js";
|
|
12
|
+
function hasRealDeno() {
|
|
13
|
+
return (typeof dntShim.Deno !== "undefined" &&
|
|
14
|
+
typeof dntShim.Deno.version === "object" &&
|
|
15
|
+
typeof dntShim.Deno.build === "object" &&
|
|
16
|
+
typeof dntShim.Deno.build.os === "string");
|
|
17
|
+
}
|
|
18
|
+
function hasBunGlobal() {
|
|
19
|
+
return dntShim.dntGlobalThis.Bun != null;
|
|
20
|
+
}
|
|
21
|
+
function hasNodeProcess() {
|
|
22
|
+
const g = dntShim.dntGlobalThis;
|
|
23
|
+
return g.process?.versions?.node != null && !g.process?.versions?.deno;
|
|
24
|
+
}
|
|
25
|
+
/** True only in a real Deno runtime — not the dnt shim on Node/Bun. */
|
|
26
|
+
export const isDeno = !hasNodeProcess() && !hasBunGlobal() && hasRealDeno();
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { loadKreuzberg } from "./kreuzberg.js";
|
|
2
|
+
self.onmessage = async (event) => {
|
|
3
|
+
if (event.origin && event.origin !== self.location.origin) {
|
|
4
|
+
self.postMessage(
|
|
5
|
+
{
|
|
6
|
+
error: "Rejected document extraction request from invalid origin"
|
|
7
|
+
}
|
|
8
|
+
);
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
try {
|
|
12
|
+
const { buffer, mimeType } = event.data;
|
|
13
|
+
const { extractBytes } = await loadKreuzberg();
|
|
14
|
+
const result = await extractBytes(new Uint8Array(buffer), mimeType);
|
|
15
|
+
self.postMessage({ content: result.content });
|
|
16
|
+
} catch (err) {
|
|
17
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
18
|
+
self.postMessage({ error: message });
|
|
19
|
+
}
|
|
20
|
+
};
|