veryfront 0.1.973 → 0.1.975
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/schedule/command-help.d.ts +3 -0
- package/esm/cli/commands/schedule/command-help.d.ts.map +1 -0
- package/esm/cli/commands/schedule/command-help.js +24 -0
- package/esm/cli/commands/schedule/handler.d.ts +3 -0
- package/esm/cli/commands/schedule/handler.d.ts.map +1 -0
- package/esm/cli/commands/schedule/handler.js +55 -0
- package/esm/cli/commands/schedules/command-help.d.ts +3 -0
- package/esm/cli/commands/schedules/command-help.d.ts.map +1 -0
- package/esm/cli/commands/schedules/command-help.js +16 -0
- package/esm/cli/commands/schedules/handler.d.ts +3 -0
- package/esm/cli/commands/schedules/handler.d.ts.map +1 -0
- package/esm/cli/commands/schedules/handler.js +19 -0
- package/esm/cli/commands/trigger-utils.d.ts +19 -0
- package/esm/cli/commands/trigger-utils.d.ts.map +1 -0
- package/esm/cli/commands/trigger-utils.js +50 -0
- package/esm/cli/commands/webhook/command-help.d.ts +3 -0
- package/esm/cli/commands/webhook/command-help.d.ts.map +1 -0
- package/esm/cli/commands/webhook/command-help.js +24 -0
- package/esm/cli/commands/webhook/handler.d.ts +3 -0
- package/esm/cli/commands/webhook/handler.d.ts.map +1 -0
- package/esm/cli/commands/webhook/handler.js +55 -0
- package/esm/cli/commands/webhooks/command-help.d.ts +3 -0
- package/esm/cli/commands/webhooks/command-help.d.ts.map +1 -0
- package/esm/cli/commands/webhooks/command-help.js +16 -0
- package/esm/cli/commands/webhooks/handler.d.ts +3 -0
- package/esm/cli/commands/webhooks/handler.d.ts.map +1 -0
- package/esm/cli/commands/webhooks/handler.js +19 -0
- package/esm/cli/help/command-definitions.d.ts.map +1 -1
- package/esm/cli/help/command-definitions.js +8 -0
- package/esm/cli/router.d.ts.map +1 -1
- package/esm/cli/router.js +8 -0
- package/esm/deno.d.ts +14 -0
- package/esm/deno.js +15 -1
- package/esm/src/agent/runtime/model-resolution.d.ts +1 -0
- package/esm/src/agent/runtime/model-resolution.d.ts.map +1 -1
- package/esm/src/agent/runtime/model-resolution.js +4 -1
- package/esm/src/agent/runtime/provider-tool-compat.d.ts.map +1 -1
- package/esm/src/agent/runtime/provider-tool-compat.js +33 -2
- package/esm/src/agent/types.d.ts +1 -1
- package/esm/src/config/schemas/config.schema.d.ts +24 -0
- package/esm/src/config/schemas/config.schema.d.ts.map +1 -1
- package/esm/src/config/schemas/config.schema.js +24 -0
- package/esm/src/discovery/discovery-engine.d.ts.map +1 -1
- package/esm/src/discovery/discovery-engine.js +11 -1
- package/esm/src/discovery/handlers/index.d.ts +2 -0
- package/esm/src/discovery/handlers/index.d.ts.map +1 -1
- package/esm/src/discovery/handlers/index.js +2 -0
- package/esm/src/discovery/handlers/schedule-handler.d.ts +4 -0
- package/esm/src/discovery/handlers/schedule-handler.d.ts.map +1 -0
- package/esm/src/discovery/handlers/schedule-handler.js +8 -0
- package/esm/src/discovery/handlers/webhook-handler.d.ts +4 -0
- package/esm/src/discovery/handlers/webhook-handler.d.ts.map +1 -0
- package/esm/src/discovery/handlers/webhook-handler.js +8 -0
- package/esm/src/discovery/project-discovery-config.d.ts +4 -0
- package/esm/src/discovery/project-discovery-config.d.ts.map +1 -1
- package/esm/src/discovery/project-discovery-config.js +4 -0
- package/esm/src/discovery/types.d.ts +6 -0
- package/esm/src/discovery/types.d.ts.map +1 -1
- package/esm/src/platform/cloud/resolver.d.ts +1 -1
- package/esm/src/platform/cloud/resolver.d.ts.map +1 -1
- package/esm/src/platform/cloud/resolver.js +1 -1
- package/esm/src/provider/index.d.ts +1 -1
- package/esm/src/provider/index.js +1 -1
- package/esm/src/provider/veryfront-cloud/model-catalog.d.ts +1 -1
- package/esm/src/provider/veryfront-cloud/model-catalog.d.ts.map +1 -1
- package/esm/src/provider/veryfront-cloud/model-catalog.js +8 -1
- package/esm/src/schedule/discovery.d.ts +13 -0
- package/esm/src/schedule/discovery.d.ts.map +1 -0
- package/esm/src/schedule/discovery.js +12 -0
- package/esm/src/schedule/factory.d.ts +3 -0
- package/esm/src/schedule/factory.d.ts.map +1 -0
- package/esm/src/schedule/factory.js +48 -0
- package/esm/src/schedule/index.d.ts +25 -0
- package/esm/src/schedule/index.d.ts.map +1 -0
- package/esm/src/schedule/index.js +22 -0
- package/esm/src/schedule/types.d.ts +21 -0
- package/esm/src/schedule/types.d.ts.map +1 -0
- package/esm/src/schedule/types.js +9 -0
- package/esm/src/trigger/discovery.d.ts +31 -0
- package/esm/src/trigger/discovery.d.ts.map +1 -0
- package/esm/src/trigger/discovery.js +115 -0
- package/esm/src/trigger/index.d.ts +30 -0
- package/esm/src/trigger/index.d.ts.map +1 -0
- package/esm/src/trigger/index.js +26 -0
- package/esm/src/trigger/local-runner.d.ts +20 -0
- package/esm/src/trigger/local-runner.d.ts.map +1 -0
- package/esm/src/trigger/local-runner.js +92 -0
- package/esm/src/trigger/target.d.ts +7 -0
- package/esm/src/trigger/target.d.ts.map +1 -0
- package/esm/src/trigger/target.js +8 -0
- package/esm/src/trigger/validation.d.ts +3 -0
- package/esm/src/trigger/validation.d.ts.map +1 -0
- package/esm/src/trigger/validation.js +36 -0
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- package/esm/src/webhook/discovery.d.ts +13 -0
- package/esm/src/webhook/discovery.d.ts.map +1 -0
- package/esm/src/webhook/discovery.js +12 -0
- package/esm/src/webhook/factory.d.ts +3 -0
- package/esm/src/webhook/factory.d.ts.map +1 -0
- package/esm/src/webhook/factory.js +58 -0
- package/esm/src/webhook/index.d.ts +29 -0
- package/esm/src/webhook/index.d.ts.map +1 -0
- package/esm/src/webhook/index.js +26 -0
- package/esm/src/webhook/types.d.ts +26 -0
- package/esm/src/webhook/types.d.ts.map +1 -0
- package/esm/src/webhook/types.js +8 -0
- package/package.json +13 -1
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { VeryfrontConfig } from "../config/index.js";
|
|
2
|
+
import type { RuntimeAdapter } from "../platform/index.js";
|
|
3
|
+
export type SourceTriggerKind = "schedule" | "webhook";
|
|
4
|
+
export type SourceTriggerDiscoveryErrorCode = "parse_error" | "invalid_definition" | "dynamic_definition" | "duplicate_source_id" | "unsupported_target" | "manual_conflict";
|
|
5
|
+
export interface SourceTriggerDiscoveryError {
|
|
6
|
+
kind: "source_trigger_discovery_error";
|
|
7
|
+
sourceKind: SourceTriggerKind;
|
|
8
|
+
sourcePath: string;
|
|
9
|
+
sourceId?: string;
|
|
10
|
+
code: SourceTriggerDiscoveryErrorCode;
|
|
11
|
+
message: string;
|
|
12
|
+
details?: Record<string, unknown>;
|
|
13
|
+
}
|
|
14
|
+
export interface SourceTriggerDiscoveryResult<T> {
|
|
15
|
+
items: T[];
|
|
16
|
+
errors: SourceTriggerDiscoveryError[];
|
|
17
|
+
}
|
|
18
|
+
export interface TriggerDiscoveryOptions {
|
|
19
|
+
projectDir: string;
|
|
20
|
+
adapter: RuntimeAdapter;
|
|
21
|
+
config?: VeryfrontConfig;
|
|
22
|
+
triggerDir: string;
|
|
23
|
+
sourceKind: SourceTriggerKind;
|
|
24
|
+
}
|
|
25
|
+
export interface TriggerDefinitionWithId {
|
|
26
|
+
id: string;
|
|
27
|
+
}
|
|
28
|
+
export declare function discoverSourceTriggers<T extends TriggerDefinitionWithId>(options: TriggerDiscoveryOptions & {
|
|
29
|
+
validate: (value: unknown) => value is T;
|
|
30
|
+
}): Promise<SourceTriggerDiscoveryResult<T>>;
|
|
31
|
+
//# sourceMappingURL=discovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../../src/src/trigger/discovery.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAY3D,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,SAAS,CAAC;AAEvD,MAAM,MAAM,+BAA+B,GACvC,aAAa,GACb,oBAAoB,GACpB,oBAAoB,GACpB,qBAAqB,GACrB,oBAAoB,GACpB,iBAAiB,CAAC;AAEtB,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,gCAAgC,CAAC;IACvC,UAAU,EAAE,iBAAiB,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,+BAA+B,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,4BAA4B,CAAC,CAAC;IAC7C,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,MAAM,EAAE,2BAA2B,EAAE,CAAC;CACvC;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,iBAAiB,CAAC;CAC/B;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;CACZ;AA8DD,wBAAsB,sBAAsB,CAAC,CAAC,SAAS,uBAAuB,EAC5E,OAAO,EAAE,uBAAuB,GAAG;IACjC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC;CAC1C,GACA,OAAO,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAiE1C"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { join } from "../../deps/jsr.io/@std/path/1.1.4/mod.js";
|
|
2
|
+
import { importDiscoveryModule } from "../discovery/module-import.js";
|
|
3
|
+
import { collectFiles } from "../utils/file-discovery.js";
|
|
4
|
+
const TRIGGER_FILE_EXTENSIONS = [".ts", ".tsx", ".js", ".jsx"];
|
|
5
|
+
const TRIGGER_IGNORE_PATTERNS = [
|
|
6
|
+
"node_modules",
|
|
7
|
+
".git",
|
|
8
|
+
"__tests__",
|
|
9
|
+
"*.test.*",
|
|
10
|
+
"*.spec.*",
|
|
11
|
+
];
|
|
12
|
+
function resolveTriggerBaseDir(projectDir, triggerDir, config) {
|
|
13
|
+
const fsType = config?.fs?.type ?? "local";
|
|
14
|
+
return fsType === "github" || fsType === "veryfront-api"
|
|
15
|
+
? triggerDir
|
|
16
|
+
: join(projectDir, triggerDir);
|
|
17
|
+
}
|
|
18
|
+
function toErrorMessage(error) {
|
|
19
|
+
return error instanceof Error ? error.message : String(error);
|
|
20
|
+
}
|
|
21
|
+
function createError(input) {
|
|
22
|
+
return {
|
|
23
|
+
kind: "source_trigger_discovery_error",
|
|
24
|
+
sourceKind: input.sourceKind,
|
|
25
|
+
sourcePath: input.sourcePath,
|
|
26
|
+
...(input.sourceId === undefined ? {} : { sourceId: input.sourceId }),
|
|
27
|
+
code: input.code,
|
|
28
|
+
message: input.message,
|
|
29
|
+
...(input.details === undefined ? {} : { details: input.details }),
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
async function collectTriggerFiles(baseDir, adapter) {
|
|
33
|
+
return await collectFiles({
|
|
34
|
+
baseDir,
|
|
35
|
+
extensions: [...TRIGGER_FILE_EXTENSIONS],
|
|
36
|
+
recursive: true,
|
|
37
|
+
ignorePatterns: [...TRIGGER_IGNORE_PATTERNS],
|
|
38
|
+
adapter,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
function extractTriggerExport(module, validate) {
|
|
42
|
+
if (validate(module.default)) {
|
|
43
|
+
return { exportName: "default", definition: module.default };
|
|
44
|
+
}
|
|
45
|
+
for (const [exportName, value] of Object.entries(module)) {
|
|
46
|
+
if (exportName === "default")
|
|
47
|
+
continue;
|
|
48
|
+
if (validate(value))
|
|
49
|
+
return { exportName, definition: value };
|
|
50
|
+
}
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
export async function discoverSourceTriggers(options) {
|
|
54
|
+
const { projectDir, adapter, config, triggerDir, sourceKind, validate } = options;
|
|
55
|
+
const baseDir = resolveTriggerBaseDir(projectDir, triggerDir, config);
|
|
56
|
+
const items = [];
|
|
57
|
+
const errors = [];
|
|
58
|
+
const seenIds = new Map();
|
|
59
|
+
try {
|
|
60
|
+
const dirExists = await adapter.fs.exists(baseDir);
|
|
61
|
+
if (!dirExists)
|
|
62
|
+
return { items, errors };
|
|
63
|
+
const files = await collectTriggerFiles(baseDir, adapter);
|
|
64
|
+
for (const file of files) {
|
|
65
|
+
try {
|
|
66
|
+
const module = await importDiscoveryModule(file.path, {
|
|
67
|
+
adapter,
|
|
68
|
+
projectDir,
|
|
69
|
+
});
|
|
70
|
+
const triggerExport = extractTriggerExport(module, validate);
|
|
71
|
+
if (!triggerExport) {
|
|
72
|
+
errors.push(createError({
|
|
73
|
+
sourceKind,
|
|
74
|
+
sourcePath: file.path,
|
|
75
|
+
code: "invalid_definition",
|
|
76
|
+
message: `File must export a valid ${sourceKind} definition.`,
|
|
77
|
+
}));
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
const existingPath = seenIds.get(triggerExport.definition.id);
|
|
81
|
+
if (existingPath) {
|
|
82
|
+
errors.push(createError({
|
|
83
|
+
sourceKind,
|
|
84
|
+
sourcePath: file.path,
|
|
85
|
+
sourceId: triggerExport.definition.id,
|
|
86
|
+
code: "duplicate_source_id",
|
|
87
|
+
message: `Duplicate ${sourceKind} id "${triggerExport.definition.id}".`,
|
|
88
|
+
details: { firstSourcePath: existingPath },
|
|
89
|
+
}));
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
seenIds.set(triggerExport.definition.id, file.path);
|
|
93
|
+
items.push(triggerExport.definition);
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
errors.push(createError({
|
|
97
|
+
sourceKind,
|
|
98
|
+
sourcePath: file.path,
|
|
99
|
+
code: "parse_error",
|
|
100
|
+
message: toErrorMessage(error),
|
|
101
|
+
}));
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return { items, errors };
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
errors.push(createError({
|
|
108
|
+
sourceKind,
|
|
109
|
+
sourcePath: baseDir,
|
|
110
|
+
code: "parse_error",
|
|
111
|
+
message: toErrorMessage(error),
|
|
112
|
+
}));
|
|
113
|
+
return { items, errors };
|
|
114
|
+
}
|
|
115
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared source-trigger discovery and local execution primitives.
|
|
3
|
+
*
|
|
4
|
+
* @module trigger
|
|
5
|
+
*
|
|
6
|
+
* @example Discover and run a source-defined trigger target
|
|
7
|
+
* ```ts
|
|
8
|
+
* import { discoverSchedules } from "veryfront/schedule";
|
|
9
|
+
* import { runTriggerTarget } from "veryfront/trigger";
|
|
10
|
+
*
|
|
11
|
+
* const { items } = await discoverSchedules({ projectDir, adapter });
|
|
12
|
+
* const dailyTriage = items.find((item) => item.id === "daily-support-triage");
|
|
13
|
+
*
|
|
14
|
+
* if (dailyTriage) {
|
|
15
|
+
* await runTriggerTarget({
|
|
16
|
+
* projectDir,
|
|
17
|
+
* adapter,
|
|
18
|
+
* target: dailyTriage.target,
|
|
19
|
+
* input: dailyTriage.input,
|
|
20
|
+
* });
|
|
21
|
+
* }
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
import "../../_dnt.polyfills.js";
|
|
25
|
+
export { discoverSourceTriggers } from "./discovery.js";
|
|
26
|
+
export { runTriggerTarget } from "./local-runner.js";
|
|
27
|
+
export type { SourceTriggerDiscoveryError, SourceTriggerDiscoveryErrorCode, SourceTriggerDiscoveryResult, SourceTriggerKind, TriggerDefinitionWithId, TriggerDiscoveryOptions, } from "./discovery.js";
|
|
28
|
+
export type { RunTriggerTargetOptions, TriggerTargetRunResult } from "./local-runner.js";
|
|
29
|
+
export type { TriggerTarget } from "./target.js";
|
|
30
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/trigger/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,yBAAyB,CAAC;AAGjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,YAAY,EACV,2BAA2B,EAC3B,+BAA+B,EAC/B,4BAA4B,EAC5B,iBAAiB,EACjB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACzF,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared source-trigger discovery and local execution primitives.
|
|
3
|
+
*
|
|
4
|
+
* @module trigger
|
|
5
|
+
*
|
|
6
|
+
* @example Discover and run a source-defined trigger target
|
|
7
|
+
* ```ts
|
|
8
|
+
* import { discoverSchedules } from "veryfront/schedule";
|
|
9
|
+
* import { runTriggerTarget } from "veryfront/trigger";
|
|
10
|
+
*
|
|
11
|
+
* const { items } = await discoverSchedules({ projectDir, adapter });
|
|
12
|
+
* const dailyTriage = items.find((item) => item.id === "daily-support-triage");
|
|
13
|
+
*
|
|
14
|
+
* if (dailyTriage) {
|
|
15
|
+
* await runTriggerTarget({
|
|
16
|
+
* projectDir,
|
|
17
|
+
* adapter,
|
|
18
|
+
* target: dailyTriage.target,
|
|
19
|
+
* input: dailyTriage.input,
|
|
20
|
+
* });
|
|
21
|
+
* }
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
import "../../_dnt.polyfills.js";
|
|
25
|
+
export { discoverSourceTriggers } from "./discovery.js";
|
|
26
|
+
export { runTriggerTarget } from "./local-runner.js";
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { RuntimeAdapter } from "../platform/index.js";
|
|
2
|
+
import type { VeryfrontConfig } from "../config/index.js";
|
|
3
|
+
import type { TriggerTarget } from "./target.js";
|
|
4
|
+
export interface RunTriggerTargetOptions {
|
|
5
|
+
projectDir: string;
|
|
6
|
+
adapter: RuntimeAdapter;
|
|
7
|
+
config?: VeryfrontConfig;
|
|
8
|
+
projectId?: string;
|
|
9
|
+
target: TriggerTarget;
|
|
10
|
+
input?: unknown;
|
|
11
|
+
debug?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface TriggerTargetRunResult {
|
|
14
|
+
kind: TriggerTarget["kind"];
|
|
15
|
+
id: string;
|
|
16
|
+
output?: unknown;
|
|
17
|
+
durationMs: number;
|
|
18
|
+
}
|
|
19
|
+
export declare function runTriggerTarget(options: RunTriggerTargetOptions): Promise<TriggerTargetRunResult>;
|
|
20
|
+
//# sourceMappingURL=local-runner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-runner.d.ts","sourceRoot":"","sources":["../../../src/src/trigger/local-runner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAK1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAyFD,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,sBAAsB,CAAC,CAYjC"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { agentRegistry } from "../agent/composition/index.js";
|
|
2
|
+
import { discoverProjectAgentRuntime } from "../agent/project/agent-runtime.js";
|
|
3
|
+
import { toolRegistry } from "../tool/registry.js";
|
|
4
|
+
import { createWorkflowClient } from "../workflow/api/workflow-client.js";
|
|
5
|
+
import { discoverTasks } from "../task/discovery.js";
|
|
6
|
+
import { runTask } from "../task/runner.js";
|
|
7
|
+
function toRecordInput(input) {
|
|
8
|
+
if (input === undefined)
|
|
9
|
+
return {};
|
|
10
|
+
if (input && typeof input === "object" && !Array.isArray(input)) {
|
|
11
|
+
return input;
|
|
12
|
+
}
|
|
13
|
+
return { payload: input };
|
|
14
|
+
}
|
|
15
|
+
async function runTaskTarget(options) {
|
|
16
|
+
const { tasks, errors } = await discoverTasks({
|
|
17
|
+
projectDir: options.projectDir,
|
|
18
|
+
adapter: options.adapter,
|
|
19
|
+
config: options.config,
|
|
20
|
+
debug: options.debug,
|
|
21
|
+
});
|
|
22
|
+
if (errors.length > 0) {
|
|
23
|
+
throw new Error(`Task discovery failed: ${errors[0]?.filePath}: ${errors[0]?.error}`);
|
|
24
|
+
}
|
|
25
|
+
const task = tasks.find((candidate) => candidate.id === options.target.id);
|
|
26
|
+
if (!task) {
|
|
27
|
+
throw new Error(`Task target "${options.target.id}" not found.`);
|
|
28
|
+
}
|
|
29
|
+
const result = await runTask({
|
|
30
|
+
task,
|
|
31
|
+
config: toRecordInput(options.input),
|
|
32
|
+
projectId: options.projectId,
|
|
33
|
+
debug: options.debug,
|
|
34
|
+
});
|
|
35
|
+
if (!result.success) {
|
|
36
|
+
throw new Error(result.error ?? `Task target "${options.target.id}" failed.`);
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
kind: "task",
|
|
40
|
+
id: options.target.id,
|
|
41
|
+
output: result.result,
|
|
42
|
+
durationMs: result.durationMs,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
async function runWorkflowTarget(options) {
|
|
46
|
+
const start = Date.now();
|
|
47
|
+
const discovery = await discoverProjectAgentRuntime({
|
|
48
|
+
projectDir: options.projectDir,
|
|
49
|
+
adapter: options.adapter,
|
|
50
|
+
verbose: options.debug,
|
|
51
|
+
});
|
|
52
|
+
if (discovery.errors.length > 0) {
|
|
53
|
+
const first = discovery.errors[0];
|
|
54
|
+
throw new Error(`Runtime discovery failed: ${first?.file}: ${first?.error.message}`);
|
|
55
|
+
}
|
|
56
|
+
const workflow = discovery.workflows.get(options.target.id);
|
|
57
|
+
if (!workflow) {
|
|
58
|
+
throw new Error(`Workflow target "${options.target.id}" not found.`);
|
|
59
|
+
}
|
|
60
|
+
const client = createWorkflowClient({
|
|
61
|
+
debug: options.debug,
|
|
62
|
+
executor: {
|
|
63
|
+
stepExecutor: {
|
|
64
|
+
agentRegistry,
|
|
65
|
+
toolRegistry,
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
});
|
|
69
|
+
try {
|
|
70
|
+
client.register(workflow.definition);
|
|
71
|
+
const handle = await client.start(options.target.id, options.input ?? {});
|
|
72
|
+
const output = await handle.result();
|
|
73
|
+
return {
|
|
74
|
+
kind: "workflow",
|
|
75
|
+
id: options.target.id,
|
|
76
|
+
output,
|
|
77
|
+
durationMs: Date.now() - start,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
finally {
|
|
81
|
+
await client.destroy();
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
export async function runTriggerTarget(options) {
|
|
85
|
+
if (options.target.kind === "task") {
|
|
86
|
+
return await runTaskTarget(options);
|
|
87
|
+
}
|
|
88
|
+
if (options.target.kind === "workflow") {
|
|
89
|
+
return await runWorkflowTarget(options);
|
|
90
|
+
}
|
|
91
|
+
throw new Error("Agent trigger targets are Cloud-only for this milestone. Use a workflow or task for local trigger runs.");
|
|
92
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"target.d.ts","sourceRoot":"","sources":["../../../src/src/trigger/target.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC;AAE9D,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,iBAAiB,CAAC;IACxB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAQtE"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export function isTriggerTarget(value) {
|
|
2
|
+
if (!value || typeof value !== "object")
|
|
3
|
+
return false;
|
|
4
|
+
const target = value;
|
|
5
|
+
return ((target.kind === "task" || target.kind === "workflow" || target.kind === "agent") &&
|
|
6
|
+
typeof target.id === "string" &&
|
|
7
|
+
target.id.trim().length > 0);
|
|
8
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/src/trigger/validation.ts"],"names":[],"mappings":"AAEA,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAMjE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,SAAU,GAAG,IAAI,CAgCvE"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
const ID_PATTERN = /^[a-z0-9][a-z0-9._/-]*$/;
|
|
2
|
+
export function validateTriggerId(id, label) {
|
|
3
|
+
if (!ID_PATTERN.test(id)) {
|
|
4
|
+
throw new Error(`${label} id must start with a lowercase letter or number and use lowercase letters, numbers, dots, underscores, slashes, or hyphens.`);
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
export function assertSerializable(value, path = "value") {
|
|
8
|
+
if (value === undefined)
|
|
9
|
+
return;
|
|
10
|
+
if (value === null)
|
|
11
|
+
return;
|
|
12
|
+
const valueType = typeof value;
|
|
13
|
+
if (valueType === "string" || valueType === "number" || valueType === "boolean")
|
|
14
|
+
return;
|
|
15
|
+
if (valueType === "function" || valueType === "symbol" || valueType === "bigint") {
|
|
16
|
+
throw new Error(`${path} must be JSON-serializable.`);
|
|
17
|
+
}
|
|
18
|
+
if (value instanceof Date) {
|
|
19
|
+
throw new Error(`${path} must be JSON-serializable.`);
|
|
20
|
+
}
|
|
21
|
+
if (Array.isArray(value)) {
|
|
22
|
+
for (let index = 0; index < value.length; index++) {
|
|
23
|
+
assertSerializable(value[index], `${path}[${index}]`);
|
|
24
|
+
}
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
if (typeof value === "object") {
|
|
28
|
+
const prototype = Object.getPrototypeOf(value);
|
|
29
|
+
if (prototype !== Object.prototype && prototype !== null) {
|
|
30
|
+
throw new Error(`${path} must be JSON-serializable.`);
|
|
31
|
+
}
|
|
32
|
+
for (const [key, child] of Object.entries(value)) {
|
|
33
|
+
assertSerializable(child, `${path}.${key}`);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { RuntimeAdapter } from "../platform/index.js";
|
|
2
|
+
import type { VeryfrontConfig } from "../config/index.js";
|
|
3
|
+
import { type SourceTriggerDiscoveryResult } from "../trigger/discovery.js";
|
|
4
|
+
import { type WebhookDefinition } from "./types.js";
|
|
5
|
+
export interface WebhookDiscoveryOptions {
|
|
6
|
+
projectDir: string;
|
|
7
|
+
adapter: RuntimeAdapter;
|
|
8
|
+
config?: VeryfrontConfig;
|
|
9
|
+
webhooksDir?: string;
|
|
10
|
+
}
|
|
11
|
+
export type WebhookDiscoveryResult = SourceTriggerDiscoveryResult<WebhookDefinition>;
|
|
12
|
+
export declare function discoverWebhooks(options: WebhookDiscoveryOptions): Promise<WebhookDiscoveryResult>;
|
|
13
|
+
//# sourceMappingURL=discovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../../src/src/webhook/discovery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAEL,KAAK,4BAA4B,EAClC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAuB,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEzE,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,sBAAsB,GAAG,4BAA4B,CAAC,iBAAiB,CAAC,CAAC;AAErF,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,sBAAsB,CAAC,CASjC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { discoverSourceTriggers, } from "../trigger/discovery.js";
|
|
2
|
+
import { isWebhookDefinition } from "./types.js";
|
|
3
|
+
export async function discoverWebhooks(options) {
|
|
4
|
+
return await discoverSourceTriggers({
|
|
5
|
+
projectDir: options.projectDir,
|
|
6
|
+
adapter: options.adapter,
|
|
7
|
+
config: options.config,
|
|
8
|
+
triggerDir: options.webhooksDir ?? "webhooks",
|
|
9
|
+
sourceKind: "webhook",
|
|
10
|
+
validate: isWebhookDefinition,
|
|
11
|
+
});
|
|
12
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/src/webhook/factory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EAGlB,MAAM,YAAY,CAAC;AAuCpB,wBAAgB,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,iBAAiB,CA2BhE"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { isTriggerTarget } from "../trigger/target.js";
|
|
2
|
+
import { assertSerializable, validateTriggerId } from "../trigger/validation.js";
|
|
3
|
+
const OPERATORS = new Set(["equals", "not_equals", "contains", "exists"]);
|
|
4
|
+
function requireString(value, label) {
|
|
5
|
+
if (typeof value !== "string" || value.trim().length === 0) {
|
|
6
|
+
throw new Error(`${label} is required.`);
|
|
7
|
+
}
|
|
8
|
+
return value;
|
|
9
|
+
}
|
|
10
|
+
function normalizeFilter(filter) {
|
|
11
|
+
if (filter === undefined)
|
|
12
|
+
return undefined;
|
|
13
|
+
if (filter.mode !== "all" && filter.mode !== "any") {
|
|
14
|
+
throw new Error("Webhook eventFilter mode must be all or any.");
|
|
15
|
+
}
|
|
16
|
+
if (!Array.isArray(filter.conditions)) {
|
|
17
|
+
throw new Error("Webhook eventFilter conditions must be an array.");
|
|
18
|
+
}
|
|
19
|
+
return {
|
|
20
|
+
mode: filter.mode,
|
|
21
|
+
conditions: filter.conditions.map((condition, index) => {
|
|
22
|
+
if (typeof condition.path !== "string" || condition.path.trim().length === 0) {
|
|
23
|
+
throw new Error(`Webhook eventFilter condition ${index} path is required.`);
|
|
24
|
+
}
|
|
25
|
+
if (!OPERATORS.has(condition.operator)) {
|
|
26
|
+
throw new Error(`Webhook eventFilter condition ${index} operator is not supported.`);
|
|
27
|
+
}
|
|
28
|
+
assertSerializable(condition.value, `Webhook eventFilter condition ${index} value`);
|
|
29
|
+
return {
|
|
30
|
+
path: condition.path,
|
|
31
|
+
operator: condition.operator,
|
|
32
|
+
...(condition.value === undefined ? {} : { value: condition.value }),
|
|
33
|
+
};
|
|
34
|
+
}),
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
export function webhook(config) {
|
|
38
|
+
const id = requireString(config.id, "Webhook id");
|
|
39
|
+
validateTriggerId(id, "Webhook");
|
|
40
|
+
if (!isTriggerTarget(config.target)) {
|
|
41
|
+
throw new Error("Webhook target must specify a valid task, workflow, or agent id.");
|
|
42
|
+
}
|
|
43
|
+
if (config.target.kind === "agent" &&
|
|
44
|
+
(!config.agentMessage || config.agentMessage.promptTemplate.trim().length === 0)) {
|
|
45
|
+
throw new Error("Agent webhooks must define agentMessage.promptTemplate.");
|
|
46
|
+
}
|
|
47
|
+
const eventFilter = normalizeFilter(config.eventFilter);
|
|
48
|
+
return {
|
|
49
|
+
id,
|
|
50
|
+
...(config.name === undefined ? {} : { name: config.name }),
|
|
51
|
+
...(config.description === undefined ? {} : { description: config.description }),
|
|
52
|
+
target: { kind: config.target.kind, id: config.target.id },
|
|
53
|
+
...(eventFilter === undefined ? {} : { eventFilter }),
|
|
54
|
+
...(config.agentMessage === undefined
|
|
55
|
+
? {}
|
|
56
|
+
: { agentMessage: { promptTemplate: config.agentMessage.promptTemplate } }),
|
|
57
|
+
};
|
|
58
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Source-defined webhooks for Veryfront projects.
|
|
3
|
+
*
|
|
4
|
+
* @module webhook
|
|
5
|
+
*
|
|
6
|
+
* @example Run a workflow for urgent customer events
|
|
7
|
+
* ```ts
|
|
8
|
+
* import { webhook } from "veryfront/webhook";
|
|
9
|
+
*
|
|
10
|
+
* export default webhook({
|
|
11
|
+
* id: "customer-escalation",
|
|
12
|
+
* target: { kind: "workflow", id: "escalate-ticket" },
|
|
13
|
+
* eventFilter: {
|
|
14
|
+
* mode: "any",
|
|
15
|
+
* conditions: [
|
|
16
|
+
* { path: "severity", operator: "equals", value: "high" },
|
|
17
|
+
* { path: "priority", operator: "equals", value: "urgent" },
|
|
18
|
+
* ],
|
|
19
|
+
* },
|
|
20
|
+
* });
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
import "../../_dnt.polyfills.js";
|
|
24
|
+
export { webhook } from "./factory.js";
|
|
25
|
+
export { discoverWebhooks } from "./discovery.js";
|
|
26
|
+
export type { WebhookAgentMessageMapping, WebhookConfig, WebhookDefinition, WebhookEventFilter, WebhookEventFilterCondition, WebhookEventFilterMode, WebhookEventFilterOperator, } from "./types.js";
|
|
27
|
+
export { isWebhookDefinition } from "./types.js";
|
|
28
|
+
export type { WebhookDiscoveryOptions, WebhookDiscoveryResult } from "./discovery.js";
|
|
29
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/webhook/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,yBAAyB,CAAC;AAGjC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,YAAY,EACV,0BAA0B,EAC1B,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,2BAA2B,EAC3B,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,YAAY,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Source-defined webhooks for Veryfront projects.
|
|
3
|
+
*
|
|
4
|
+
* @module webhook
|
|
5
|
+
*
|
|
6
|
+
* @example Run a workflow for urgent customer events
|
|
7
|
+
* ```ts
|
|
8
|
+
* import { webhook } from "veryfront/webhook";
|
|
9
|
+
*
|
|
10
|
+
* export default webhook({
|
|
11
|
+
* id: "customer-escalation",
|
|
12
|
+
* target: { kind: "workflow", id: "escalate-ticket" },
|
|
13
|
+
* eventFilter: {
|
|
14
|
+
* mode: "any",
|
|
15
|
+
* conditions: [
|
|
16
|
+
* { path: "severity", operator: "equals", value: "high" },
|
|
17
|
+
* { path: "priority", operator: "equals", value: "urgent" },
|
|
18
|
+
* ],
|
|
19
|
+
* },
|
|
20
|
+
* });
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
import "../../_dnt.polyfills.js";
|
|
24
|
+
export { webhook } from "./factory.js";
|
|
25
|
+
export { discoverWebhooks } from "./discovery.js";
|
|
26
|
+
export { isWebhookDefinition } from "./types.js";
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { TriggerTarget } from "../trigger/target.js";
|
|
2
|
+
export type WebhookEventFilterMode = "all" | "any";
|
|
3
|
+
export type WebhookEventFilterOperator = "equals" | "not_equals" | "contains" | "exists";
|
|
4
|
+
export interface WebhookEventFilterCondition {
|
|
5
|
+
path: string;
|
|
6
|
+
operator: WebhookEventFilterOperator;
|
|
7
|
+
value?: unknown;
|
|
8
|
+
}
|
|
9
|
+
export interface WebhookEventFilter {
|
|
10
|
+
mode: WebhookEventFilterMode;
|
|
11
|
+
conditions: WebhookEventFilterCondition[];
|
|
12
|
+
}
|
|
13
|
+
export interface WebhookAgentMessageMapping {
|
|
14
|
+
promptTemplate: string;
|
|
15
|
+
}
|
|
16
|
+
export interface WebhookDefinition {
|
|
17
|
+
id: string;
|
|
18
|
+
name?: string;
|
|
19
|
+
description?: string;
|
|
20
|
+
target: TriggerTarget;
|
|
21
|
+
eventFilter?: WebhookEventFilter;
|
|
22
|
+
agentMessage?: WebhookAgentMessageMapping;
|
|
23
|
+
}
|
|
24
|
+
export type WebhookConfig = WebhookDefinition;
|
|
25
|
+
export declare function isWebhookDefinition(value: unknown): value is WebhookDefinition;
|
|
26
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/src/webhook/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,MAAM,sBAAsB,GAAG,KAAK,GAAG,KAAK,CAAC;AAEnD,MAAM,MAAM,0BAA0B,GAClC,QAAQ,GACR,YAAY,GACZ,UAAU,GACV,QAAQ,CAAC;AAEb,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,0BAA0B,CAAC;IACrC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,UAAU,EAAE,2BAA2B,EAAE,CAAC;CAC3C;AAED,MAAM,WAAW,0BAA0B;IACzC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,aAAa,CAAC;IACtB,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,YAAY,CAAC,EAAE,0BAA0B,CAAC;CAC3C;AAED,MAAM,MAAM,aAAa,GAAG,iBAAiB,CAAC;AAE9C,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,iBAAiB,CAQ9E"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "veryfront",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.975",
|
|
4
4
|
"description": "The simplest way to build AI-powered apps",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
@@ -145,6 +145,18 @@
|
|
|
145
145
|
"import": "./esm/src/skill/index.js",
|
|
146
146
|
"types": "./esm/src/skill/index.d.ts"
|
|
147
147
|
},
|
|
148
|
+
"./trigger": {
|
|
149
|
+
"import": "./esm/src/trigger/index.js",
|
|
150
|
+
"types": "./esm/src/trigger/index.d.ts"
|
|
151
|
+
},
|
|
152
|
+
"./schedule": {
|
|
153
|
+
"import": "./esm/src/schedule/index.js",
|
|
154
|
+
"types": "./esm/src/schedule/index.d.ts"
|
|
155
|
+
},
|
|
156
|
+
"./webhook": {
|
|
157
|
+
"import": "./esm/src/webhook/index.js",
|
|
158
|
+
"types": "./esm/src/webhook/index.d.ts"
|
|
159
|
+
},
|
|
148
160
|
"./mcp": {
|
|
149
161
|
"import": "./esm/src/mcp/index.js",
|
|
150
162
|
"types": "./esm/src/mcp/index.d.ts"
|