veryfront 0.1.996 → 0.1.997
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/deno.d.ts +1 -0
- package/esm/deno.js +2 -1
- package/esm/src/task/discovery.d.ts +95 -0
- package/esm/src/task/discovery.d.ts.map +1 -0
- package/esm/src/task/discovery.js +192 -0
- package/esm/src/task/index.d.ts +27 -0
- package/esm/src/task/index.d.ts.map +1 -0
- package/esm/src/task/index.js +22 -0
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- package/package.json +5 -1
package/esm/deno.d.ts
CHANGED
package/esm/deno.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
"name": "veryfront",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.997",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"nodeModulesDir": "auto",
|
|
6
6
|
"minimumDependencyAge": {
|
|
@@ -98,6 +98,7 @@ export default {
|
|
|
98
98
|
"./runs": "./src/runs/index.ts",
|
|
99
99
|
"./skill": "./src/skill/index.ts",
|
|
100
100
|
"./trigger": "./src/trigger/index.ts",
|
|
101
|
+
"./task": "./src/task/index.ts",
|
|
101
102
|
"./schedule": "./src/schedule/index.ts",
|
|
102
103
|
"./webhook": "./src/webhook/index.ts",
|
|
103
104
|
"./mcp": "./src/mcp/index.ts",
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Task Discovery
|
|
3
|
+
*
|
|
4
|
+
* Discovers task definitions from user's project `tasks/` directory.
|
|
5
|
+
* Follows the same patterns as workflow-discovery.ts.
|
|
6
|
+
*
|
|
7
|
+
* Scans:
|
|
8
|
+
* - tasks/*.ts - task definition files
|
|
9
|
+
* - tasks/**\/*.ts - nested task files
|
|
10
|
+
*
|
|
11
|
+
* Task files should export a task definition:
|
|
12
|
+
* ```typescript
|
|
13
|
+
* export default {
|
|
14
|
+
* name: "Sync external data",
|
|
15
|
+
* run: async (ctx) => {
|
|
16
|
+
* console.log("Syncing data...")
|
|
17
|
+
* return { synced: 42 }
|
|
18
|
+
* }
|
|
19
|
+
* }
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
import type { RuntimeAdapter } from "../platform/index.js";
|
|
23
|
+
import type { VeryfrontConfig } from "../config/index.js";
|
|
24
|
+
import type { TaskDefinition } from "./types.js";
|
|
25
|
+
/**
|
|
26
|
+
* Discovered task info.
|
|
27
|
+
*
|
|
28
|
+
* @deprecated Use project runtime discovery helpers from `veryfront/task`
|
|
29
|
+
* instead. Runtime discovery keeps tasks, tools, agents, and cloud runs on the
|
|
30
|
+
* same project discovery path.
|
|
31
|
+
*/
|
|
32
|
+
export interface DiscoveredTask {
|
|
33
|
+
/** Task ID derived from file path (e.g., "sync-data" from tasks/sync-data.ts) */
|
|
34
|
+
id: string;
|
|
35
|
+
/** Human-readable name from task definition */
|
|
36
|
+
name: string;
|
|
37
|
+
/** File path where the task is defined */
|
|
38
|
+
filePath: string;
|
|
39
|
+
/** Export name (e.g., "default" or named export) */
|
|
40
|
+
exportName: string;
|
|
41
|
+
/** The task definition */
|
|
42
|
+
definition: TaskDefinition;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Options for file-based task discovery.
|
|
46
|
+
*
|
|
47
|
+
* @deprecated Use `discoverProjectTaskRuntime` instead.
|
|
48
|
+
*/
|
|
49
|
+
export interface TaskDiscoveryOptions {
|
|
50
|
+
/** Project directory */
|
|
51
|
+
projectDir: string;
|
|
52
|
+
/** Runtime adapter for filesystem operations */
|
|
53
|
+
adapter: RuntimeAdapter;
|
|
54
|
+
/** Veryfront config (for import maps, etc.) */
|
|
55
|
+
config?: VeryfrontConfig;
|
|
56
|
+
/** Base directory for tasks (default: "tasks") */
|
|
57
|
+
tasksDir?: string;
|
|
58
|
+
/** Enable debug logging */
|
|
59
|
+
debug?: boolean;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Result of file-based task discovery.
|
|
63
|
+
*
|
|
64
|
+
* @deprecated Use `DiscoveryResult` from project runtime discovery instead.
|
|
65
|
+
*/
|
|
66
|
+
export interface TaskDiscoveryResult {
|
|
67
|
+
/** All discovered tasks */
|
|
68
|
+
tasks: DiscoveredTask[];
|
|
69
|
+
/** Errors encountered during discovery */
|
|
70
|
+
errors: Array<{
|
|
71
|
+
filePath: string;
|
|
72
|
+
error: string;
|
|
73
|
+
}>;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Derive task ID from file path (e.g., "tasks/sync-data.ts" -> "sync-data").
|
|
77
|
+
*
|
|
78
|
+
* @deprecated Use project runtime task IDs from `discoverProjectTaskRuntime`
|
|
79
|
+
* instead.
|
|
80
|
+
*/
|
|
81
|
+
export declare function deriveTaskId(filePath: string, tasksDir: string): string;
|
|
82
|
+
/**
|
|
83
|
+
* Discover all tasks in a project with the legacy file-based path.
|
|
84
|
+
*
|
|
85
|
+
* @deprecated Use `discoverProjectTaskRuntime` instead.
|
|
86
|
+
*/
|
|
87
|
+
export declare function discoverTasks(options: TaskDiscoveryOptions): Promise<TaskDiscoveryResult>;
|
|
88
|
+
/**
|
|
89
|
+
* Find a specific task by ID through the legacy file-based path.
|
|
90
|
+
*
|
|
91
|
+
* @deprecated Use `discoverProjectTaskRuntime` and `findProjectRuntimeTask`
|
|
92
|
+
* instead.
|
|
93
|
+
*/
|
|
94
|
+
export declare function findTaskById(taskId: string, options: TaskDiscoveryOptions): Promise<DiscoveredTask | null>;
|
|
95
|
+
//# sourceMappingURL=discovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../../src/src/task/discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAajD;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,iFAAiF;IACjF,EAAE,EAAE,MAAM,CAAC;IAEX,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IAEb,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IAEjB,oDAAoD;IACpD,UAAU,EAAE,MAAM,CAAC;IAEnB,0BAA0B;IAC1B,UAAU,EAAE,cAAc,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,wBAAwB;IACxB,UAAU,EAAE,MAAM,CAAC;IAEnB,gDAAgD;IAChD,OAAO,EAAE,cAAc,CAAC;IAExB,+CAA+C;IAC/C,MAAM,CAAC,EAAE,eAAe,CAAC;IAEzB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,2BAA2B;IAC3B,KAAK,EAAE,cAAc,EAAE,CAAC;IAExB,0CAA0C;IAC1C,MAAM,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpD;AAwED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CASvE;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAiE9B;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAuChC"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Task Discovery
|
|
3
|
+
*
|
|
4
|
+
* Discovers task definitions from user's project `tasks/` directory.
|
|
5
|
+
* Follows the same patterns as workflow-discovery.ts.
|
|
6
|
+
*
|
|
7
|
+
* Scans:
|
|
8
|
+
* - tasks/*.ts - task definition files
|
|
9
|
+
* - tasks/**\/*.ts - nested task files
|
|
10
|
+
*
|
|
11
|
+
* Task files should export a task definition:
|
|
12
|
+
* ```typescript
|
|
13
|
+
* export default {
|
|
14
|
+
* name: "Sync external data",
|
|
15
|
+
* run: async (ctx) => {
|
|
16
|
+
* console.log("Syncing data...")
|
|
17
|
+
* return { synced: 42 }
|
|
18
|
+
* }
|
|
19
|
+
* }
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
import { join } from "../../deps/jsr.io/@std/path/1.1.4/mod.js";
|
|
23
|
+
import { logger as baseLogger } from "../utils/index.js";
|
|
24
|
+
import { collectFiles } from "../utils/file-discovery.js";
|
|
25
|
+
import { importDiscoveryModule } from "../discovery/module-import.js";
|
|
26
|
+
import { isTaskDefinition } from "./types.js";
|
|
27
|
+
const logger = baseLogger.component("task-discovery");
|
|
28
|
+
const TASK_FILE_EXTENSIONS = [".ts", ".tsx", ".js", ".jsx"];
|
|
29
|
+
const TASK_IGNORE_PATTERNS = [
|
|
30
|
+
"node_modules",
|
|
31
|
+
".git",
|
|
32
|
+
"__tests__",
|
|
33
|
+
"*.test.*",
|
|
34
|
+
"*.spec.*",
|
|
35
|
+
];
|
|
36
|
+
function resolveTasksBaseDir(projectDir, tasksDir, config) {
|
|
37
|
+
const fsType = config?.fs?.type ?? "local";
|
|
38
|
+
return fsType === "github" || fsType === "veryfront-api" ? tasksDir : join(projectDir, tasksDir);
|
|
39
|
+
}
|
|
40
|
+
function toErrorMessage(error) {
|
|
41
|
+
return error instanceof Error ? error.message : String(error);
|
|
42
|
+
}
|
|
43
|
+
async function collectTaskFiles(baseDir, adapter) {
|
|
44
|
+
return await collectFiles({
|
|
45
|
+
baseDir,
|
|
46
|
+
extensions: [...TASK_FILE_EXTENSIONS],
|
|
47
|
+
recursive: true,
|
|
48
|
+
ignorePatterns: [...TASK_IGNORE_PATTERNS],
|
|
49
|
+
adapter,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
function extractTaskExport(module) {
|
|
53
|
+
const defaultExport = module.default;
|
|
54
|
+
if (isTaskDefinition(defaultExport)) {
|
|
55
|
+
return { exportName: "default", definition: defaultExport };
|
|
56
|
+
}
|
|
57
|
+
for (const [exportName, value] of Object.entries(module)) {
|
|
58
|
+
if (exportName !== "default" && isTaskDefinition(value)) {
|
|
59
|
+
return { exportName, definition: value };
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
async function loadTaskFromFile(filePath, id, adapter, projectDir) {
|
|
65
|
+
const module = await importDiscoveryModule(filePath, {
|
|
66
|
+
adapter,
|
|
67
|
+
projectDir,
|
|
68
|
+
});
|
|
69
|
+
const taskExport = extractTaskExport(module);
|
|
70
|
+
if (!taskExport)
|
|
71
|
+
return null;
|
|
72
|
+
return {
|
|
73
|
+
id,
|
|
74
|
+
name: taskExport.definition.name || id,
|
|
75
|
+
filePath,
|
|
76
|
+
exportName: taskExport.exportName,
|
|
77
|
+
definition: taskExport.definition,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
function logDiscoveredTask(task, debug) {
|
|
81
|
+
if (debug) {
|
|
82
|
+
logger.info(`Found task "${task.id}" in ${task.filePath} (export: ${task.exportName})`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Derive task ID from file path (e.g., "tasks/sync-data.ts" -> "sync-data").
|
|
87
|
+
*
|
|
88
|
+
* @deprecated Use project runtime task IDs from `discoverProjectTaskRuntime`
|
|
89
|
+
* instead.
|
|
90
|
+
*/
|
|
91
|
+
export function deriveTaskId(filePath, tasksDir) {
|
|
92
|
+
// Remove the tasks dir prefix and extension
|
|
93
|
+
let relative = filePath;
|
|
94
|
+
const dirPrefix = tasksDir.endsWith("/") ? tasksDir : `${tasksDir}/`;
|
|
95
|
+
if (relative.startsWith(dirPrefix)) {
|
|
96
|
+
relative = relative.slice(dirPrefix.length);
|
|
97
|
+
}
|
|
98
|
+
// Remove extension
|
|
99
|
+
return relative.replace(/\.(ts|tsx|js|jsx)$/, "");
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Discover all tasks in a project with the legacy file-based path.
|
|
103
|
+
*
|
|
104
|
+
* @deprecated Use `discoverProjectTaskRuntime` instead.
|
|
105
|
+
*/
|
|
106
|
+
export async function discoverTasks(options) {
|
|
107
|
+
const { projectDir, adapter, config, tasksDir = "tasks", debug = false, } = options;
|
|
108
|
+
const tasks = [];
|
|
109
|
+
const errors = [];
|
|
110
|
+
const baseDir = resolveTasksBaseDir(projectDir, tasksDir, config);
|
|
111
|
+
if (debug) {
|
|
112
|
+
logger.info(`Scanning ${baseDir} for tasks`);
|
|
113
|
+
}
|
|
114
|
+
try {
|
|
115
|
+
const dirExists = await adapter.fs.exists(baseDir);
|
|
116
|
+
if (!dirExists) {
|
|
117
|
+
if (debug) {
|
|
118
|
+
logger.info(`No tasks directory found at ${baseDir}`);
|
|
119
|
+
}
|
|
120
|
+
return { tasks, errors };
|
|
121
|
+
}
|
|
122
|
+
const files = await collectTaskFiles(baseDir, adapter);
|
|
123
|
+
if (debug) {
|
|
124
|
+
logger.info(`Found ${files.length} potential task files`);
|
|
125
|
+
}
|
|
126
|
+
for (const file of files) {
|
|
127
|
+
try {
|
|
128
|
+
const task = await loadTaskFromFile(file.path, deriveTaskId(file.path, baseDir), adapter, projectDir);
|
|
129
|
+
if (task) {
|
|
130
|
+
tasks.push(task);
|
|
131
|
+
logDiscoveredTask(task, debug);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
const errorMsg = toErrorMessage(error);
|
|
136
|
+
errors.push({ filePath: file.path, error: errorMsg });
|
|
137
|
+
if (debug) {
|
|
138
|
+
logger.warn(`Failed to load ${file.path}: ${errorMsg}`);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
if (debug) {
|
|
143
|
+
logger.info(`Discovered ${tasks.length} tasks`);
|
|
144
|
+
}
|
|
145
|
+
return { tasks, errors };
|
|
146
|
+
}
|
|
147
|
+
catch (error) {
|
|
148
|
+
const errorMsg = toErrorMessage(error);
|
|
149
|
+
logger.error(`Task discovery failed: ${errorMsg}`);
|
|
150
|
+
errors.push({ filePath: baseDir, error: errorMsg });
|
|
151
|
+
return { tasks, errors };
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Find a specific task by ID through the legacy file-based path.
|
|
156
|
+
*
|
|
157
|
+
* @deprecated Use `discoverProjectTaskRuntime` and `findProjectRuntimeTask`
|
|
158
|
+
* instead.
|
|
159
|
+
*/
|
|
160
|
+
export async function findTaskById(taskId, options) {
|
|
161
|
+
const { projectDir, adapter, config, tasksDir = "tasks", debug = false, } = options;
|
|
162
|
+
const baseDir = resolveTasksBaseDir(projectDir, tasksDir, config);
|
|
163
|
+
try {
|
|
164
|
+
const dirExists = await adapter.fs.exists(baseDir);
|
|
165
|
+
if (!dirExists)
|
|
166
|
+
return null;
|
|
167
|
+
const files = await collectTaskFiles(baseDir, adapter);
|
|
168
|
+
for (const file of files) {
|
|
169
|
+
const id = deriveTaskId(file.path, baseDir);
|
|
170
|
+
if (id !== taskId)
|
|
171
|
+
continue;
|
|
172
|
+
try {
|
|
173
|
+
const task = await loadTaskFromFile(file.path, id, adapter, projectDir);
|
|
174
|
+
if (task) {
|
|
175
|
+
logDiscoveredTask(task, debug);
|
|
176
|
+
return task;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
catch (error) {
|
|
180
|
+
const errorMsg = toErrorMessage(error);
|
|
181
|
+
if (debug) {
|
|
182
|
+
logger.warn(`Failed to load ${file.path}: ${errorMsg}`);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
catch (error) {
|
|
188
|
+
const errorMsg = toErrorMessage(error);
|
|
189
|
+
logger.error(`Task discovery failed while finding "${taskId}": ${errorMsg}`);
|
|
190
|
+
}
|
|
191
|
+
return null;
|
|
192
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Source-defined tasks for Veryfront projects.
|
|
3
|
+
*
|
|
4
|
+
* @module task
|
|
5
|
+
*
|
|
6
|
+
* @example Define a task in tasks/sync-data.ts
|
|
7
|
+
* ```ts
|
|
8
|
+
* import type { TaskContext } from "veryfront/task";
|
|
9
|
+
*
|
|
10
|
+
* export default {
|
|
11
|
+
* name: "Sync external data",
|
|
12
|
+
* async run(ctx: TaskContext) {
|
|
13
|
+
* return { synced: 42 };
|
|
14
|
+
* },
|
|
15
|
+
* };
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
import "../../_dnt.polyfills.js";
|
|
19
|
+
export type { TaskContext, TaskDefinition } from "./types.js";
|
|
20
|
+
export { isTaskDefinition } from "./types.js";
|
|
21
|
+
export { deriveTaskId, discoverTasks, findTaskById } from "./discovery.js";
|
|
22
|
+
export type { DiscoveredTask, TaskDiscoveryOptions, TaskDiscoveryResult } from "./discovery.js";
|
|
23
|
+
export { runTask } from "./runner.js";
|
|
24
|
+
export type { RunnableTask, RunTaskOptions, TaskRunResult } from "./runner.js";
|
|
25
|
+
export { discoverProjectTaskRuntime, findProjectRuntimeTask, formatProjectRuntimeDiscoveryErrors, listProjectRuntimeTasks, } from "./project-runtime.js";
|
|
26
|
+
export type { ProjectTaskRuntimeOptions } from "./project-runtime.js";
|
|
27
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/task/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,yBAAyB,CAAC;AAEjC,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC3E,YAAY,EAAE,cAAc,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAChG,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,mCAAmC,EACnC,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Source-defined tasks for Veryfront projects.
|
|
3
|
+
*
|
|
4
|
+
* @module task
|
|
5
|
+
*
|
|
6
|
+
* @example Define a task in tasks/sync-data.ts
|
|
7
|
+
* ```ts
|
|
8
|
+
* import type { TaskContext } from "veryfront/task";
|
|
9
|
+
*
|
|
10
|
+
* export default {
|
|
11
|
+
* name: "Sync external data",
|
|
12
|
+
* async run(ctx: TaskContext) {
|
|
13
|
+
* return { synced: 42 };
|
|
14
|
+
* },
|
|
15
|
+
* };
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
import "../../_dnt.polyfills.js";
|
|
19
|
+
export { isTaskDefinition } from "./types.js";
|
|
20
|
+
export { deriveTaskId, discoverTasks, findTaskById } from "./discovery.js";
|
|
21
|
+
export { runTask } from "./runner.js";
|
|
22
|
+
export { discoverProjectTaskRuntime, findProjectRuntimeTask, formatProjectRuntimeDiscoveryErrors, listProjectRuntimeTasks, } from "./project-runtime.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "veryfront",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.997",
|
|
4
4
|
"description": "The simplest way to build AI-powered apps",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
@@ -149,6 +149,10 @@
|
|
|
149
149
|
"import": "./esm/src/trigger/index.js",
|
|
150
150
|
"types": "./esm/src/trigger/index.d.ts"
|
|
151
151
|
},
|
|
152
|
+
"./task": {
|
|
153
|
+
"import": "./esm/src/task/index.js",
|
|
154
|
+
"types": "./esm/src/task/index.d.ts"
|
|
155
|
+
},
|
|
152
156
|
"./schedule": {
|
|
153
157
|
"import": "./esm/src/schedule/index.js",
|
|
154
158
|
"types": "./esm/src/schedule/index.d.ts"
|