veryfront 0.1.994 → 0.1.996

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.
Files changed (56) hide show
  1. package/esm/cli/commands/schedule/handler.d.ts.map +1 -1
  2. package/esm/cli/commands/schedule/handler.js +3 -1
  3. package/esm/cli/commands/task/command.d.ts.map +1 -1
  4. package/esm/cli/commands/task/command.js +18 -9
  5. package/esm/cli/commands/webhook/handler.d.ts.map +1 -1
  6. package/esm/cli/commands/webhook/handler.js +3 -1
  7. package/esm/cli/commands/workflow/command.d.ts.map +1 -1
  8. package/esm/cli/commands/workflow/command.js +5 -1
  9. package/esm/cli/shared/project-source-context.d.ts +1 -0
  10. package/esm/cli/shared/project-source-context.d.ts.map +1 -1
  11. package/esm/cli/shared/project-source-context.js +6 -1
  12. package/esm/deno.js +1 -1
  13. package/esm/src/agent/project/agent-runtime.d.ts +5 -0
  14. package/esm/src/agent/project/agent-runtime.d.ts.map +1 -1
  15. package/esm/src/agent/project/agent-runtime.js +3 -1
  16. package/esm/src/channels/control-plane.d.ts +1 -1
  17. package/esm/src/channels/control-plane.d.ts.map +1 -1
  18. package/esm/src/discovery/discovery-engine.d.ts.map +1 -1
  19. package/esm/src/discovery/discovery-engine.js +23 -31
  20. package/esm/src/discovery/handlers/task-handler.d.ts.map +1 -1
  21. package/esm/src/discovery/handlers/task-handler.js +4 -1
  22. package/esm/src/discovery/project-discovery-config.d.ts.map +1 -1
  23. package/esm/src/discovery/project-discovery-config.js +5 -1
  24. package/esm/src/embedding/index.d.ts +1 -1
  25. package/esm/src/embedding/index.d.ts.map +1 -1
  26. package/esm/src/embedding/rag-store.d.ts.map +1 -1
  27. package/esm/src/embedding/rag-store.js +37 -0
  28. package/esm/src/embedding/types.d.ts +7 -0
  29. package/esm/src/embedding/types.d.ts.map +1 -1
  30. package/esm/src/embedding/upload-loader.d.ts +5 -4
  31. package/esm/src/embedding/upload-loader.d.ts.map +1 -1
  32. package/esm/src/embedding/upload-loader.js +5 -4
  33. package/esm/src/embedding/veryfront-cloud/rag-store.d.ts.map +1 -1
  34. package/esm/src/embedding/veryfront-cloud/rag-store.js +45 -5
  35. package/esm/src/server/handlers/request/api/project-discovery.d.ts +2 -1
  36. package/esm/src/server/handlers/request/api/project-discovery.d.ts.map +1 -1
  37. package/esm/src/server/handlers/request/api/project-discovery.js +3 -1
  38. package/esm/src/server/handlers/request/project-run-execute.handler.d.ts +2 -8
  39. package/esm/src/server/handlers/request/project-run-execute.handler.d.ts.map +1 -1
  40. package/esm/src/server/handlers/request/project-run-execute.handler.js +3 -8
  41. package/esm/src/task/project-runtime.d.ts +19 -0
  42. package/esm/src/task/project-runtime.d.ts.map +1 -0
  43. package/esm/src/task/project-runtime.js +42 -0
  44. package/esm/src/task/runner.d.ts +10 -2
  45. package/esm/src/task/runner.d.ts.map +1 -1
  46. package/esm/src/trigger/local-runner.d.ts +1 -0
  47. package/esm/src/trigger/local-runner.d.ts.map +1 -1
  48. package/esm/src/trigger/local-runner.js +11 -17
  49. package/esm/src/utils/version-constant.d.ts +1 -1
  50. package/esm/src/utils/version-constant.js +1 -1
  51. package/esm/src/workflow/worker/dynamic-run-entrypoint.d.ts.map +1 -1
  52. package/esm/src/workflow/worker/dynamic-run-entrypoint.js +2 -0
  53. package/package.json +1 -1
  54. package/esm/src/task/discovery.d.ts +0 -79
  55. package/esm/src/task/discovery.d.ts.map +0 -1
  56. package/esm/src/task/discovery.js +0 -184
@@ -1,184 +0,0 @@
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
- export function deriveTaskId(filePath, tasksDir) {
89
- // Remove the tasks dir prefix and extension
90
- let relative = filePath;
91
- const dirPrefix = tasksDir.endsWith("/") ? tasksDir : `${tasksDir}/`;
92
- if (relative.startsWith(dirPrefix)) {
93
- relative = relative.slice(dirPrefix.length);
94
- }
95
- // Remove extension
96
- return relative.replace(/\.(ts|tsx|js|jsx)$/, "");
97
- }
98
- /**
99
- * Discover all tasks in a project
100
- */
101
- export async function discoverTasks(options) {
102
- const { projectDir, adapter, config, tasksDir = "tasks", debug = false, } = options;
103
- const tasks = [];
104
- const errors = [];
105
- const baseDir = resolveTasksBaseDir(projectDir, tasksDir, config);
106
- if (debug) {
107
- logger.info(`Scanning ${baseDir} for tasks`);
108
- }
109
- try {
110
- const dirExists = await adapter.fs.exists(baseDir);
111
- if (!dirExists) {
112
- if (debug) {
113
- logger.info(`No tasks directory found at ${baseDir}`);
114
- }
115
- return { tasks, errors };
116
- }
117
- const files = await collectTaskFiles(baseDir, adapter);
118
- if (debug) {
119
- logger.info(`Found ${files.length} potential task files`);
120
- }
121
- for (const file of files) {
122
- try {
123
- const task = await loadTaskFromFile(file.path, deriveTaskId(file.path, baseDir), adapter, projectDir);
124
- if (task) {
125
- tasks.push(task);
126
- logDiscoveredTask(task, debug);
127
- }
128
- }
129
- catch (error) {
130
- const errorMsg = toErrorMessage(error);
131
- errors.push({ filePath: file.path, error: errorMsg });
132
- if (debug) {
133
- logger.warn(`Failed to load ${file.path}: ${errorMsg}`);
134
- }
135
- }
136
- }
137
- if (debug) {
138
- logger.info(`Discovered ${tasks.length} tasks`);
139
- }
140
- return { tasks, errors };
141
- }
142
- catch (error) {
143
- const errorMsg = toErrorMessage(error);
144
- logger.error(`Task discovery failed: ${errorMsg}`);
145
- errors.push({ filePath: baseDir, error: errorMsg });
146
- return { tasks, errors };
147
- }
148
- }
149
- /**
150
- * Find a specific task by ID, short-circuiting discovery once found.
151
- */
152
- export async function findTaskById(taskId, options) {
153
- const { projectDir, adapter, config, tasksDir = "tasks", debug = false, } = options;
154
- const baseDir = resolveTasksBaseDir(projectDir, tasksDir, config);
155
- try {
156
- const dirExists = await adapter.fs.exists(baseDir);
157
- if (!dirExists)
158
- return null;
159
- const files = await collectTaskFiles(baseDir, adapter);
160
- for (const file of files) {
161
- const id = deriveTaskId(file.path, baseDir);
162
- if (id !== taskId)
163
- continue;
164
- try {
165
- const task = await loadTaskFromFile(file.path, id, adapter, projectDir);
166
- if (task) {
167
- logDiscoveredTask(task, debug);
168
- return task;
169
- }
170
- }
171
- catch (error) {
172
- const errorMsg = toErrorMessage(error);
173
- if (debug) {
174
- logger.warn(`Failed to load ${file.path}: ${errorMsg}`);
175
- }
176
- }
177
- }
178
- }
179
- catch (error) {
180
- const errorMsg = toErrorMessage(error);
181
- logger.error(`Task discovery failed while finding "${taskId}": ${errorMsg}`);
182
- }
183
- return null;
184
- }