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
@@ -56,12 +56,26 @@ function buildDocumentFilePath(documentId, type) {
56
56
  const extension = type?.trim().toLowerCase().replace(/[^a-z0-9]+/g, "");
57
57
  return `${DOCUMENTS_DIR}/${documentId}.${extension || "txt"}`;
58
58
  }
59
+ function buildRefreshDocumentFilePath(documentId, type) {
60
+ const extension = type?.trim().toLowerCase().replace(/[^a-z0-9]+/g, "");
61
+ return `${DOCUMENTS_DIR}/${documentId}.refresh-${dntShim.crypto.randomUUID()}.${extension || "txt"}`;
62
+ }
59
63
  function isRecord(value) {
60
64
  return typeof value === "object" && value !== null;
61
65
  }
62
66
  function toStringValue(value, fallback = "") {
63
67
  return typeof value === "string" ? value : fallback;
64
68
  }
69
+ function toPublicRagDocumentMeta(document) {
70
+ return {
71
+ id: document.id,
72
+ title: document.title,
73
+ source: document.source,
74
+ type: document.type,
75
+ createdAt: document.createdAt,
76
+ url: document.url,
77
+ };
78
+ }
65
79
  function buildDocumentChunks(sourceText, chunkTexts, metadata) {
66
80
  let searchStart = 0;
67
81
  return chunkTexts.map((content, index) => {
@@ -176,6 +190,7 @@ async function listRagDocuments(context) {
176
190
  source: doc.source,
177
191
  type: doc.type,
178
192
  createdAt: new Date(doc.created_at).getTime(),
193
+ filePath: typeof doc.metadata?.filePath === "string" ? doc.metadata.filePath : undefined,
179
194
  }));
180
195
  }
181
196
  async function upsertRagDocument(context, document) {
@@ -197,6 +212,28 @@ async function deleteRagDocument(context, documentId) {
197
212
  // Document ingestion (chunks + embeddings + server-side record)
198
213
  // ---------------------------------------------------------------------------
199
214
  async function ingestDocument(context, config, title, text, meta) {
215
+ const documentId = dntShim.crypto.randomUUID();
216
+ await writeDocumentContent(context, config, documentId, title, text, meta);
217
+ return documentId;
218
+ }
219
+ async function refreshCloudDocument(context, config, documentId, text, meta) {
220
+ const documents = await listRagDocuments(context);
221
+ const existing = documents.find((doc) => doc.id === documentId);
222
+ if (!existing) {
223
+ throw INVALID_ARGUMENT.create({ detail: `RAG document not found: ${documentId}` });
224
+ }
225
+ const type = meta?.type ?? existing.type;
226
+ const previousFilePath = existing.filePath ?? buildDocumentFilePath(documentId, existing.type);
227
+ const filePath = buildRefreshDocumentFilePath(documentId, type);
228
+ await writeDocumentContent(context, config, documentId, meta?.title ?? existing.title, text, {
229
+ source: meta?.source ?? existing.source,
230
+ type,
231
+ }, { filePath });
232
+ if (previousFilePath !== filePath) {
233
+ await deleteFileChunks(context, previousFilePath);
234
+ }
235
+ }
236
+ async function writeDocumentContent(context, config, documentId, title, text, meta, options) {
200
237
  if (text.length > MAX_TEXT_LENGTH) {
201
238
  throw INVALID_ARGUMENT.create({
202
239
  detail: `Upload text exceeds ${MAX_TEXT_LENGTH / 1024 / 1024} MB limit`,
@@ -206,8 +243,7 @@ async function ingestDocument(context, config, title, text, meta) {
206
243
  if (chunkTexts.length === 0) {
207
244
  throw INVALID_ARGUMENT.create({ detail: "Upload contains no extractable text" });
208
245
  }
209
- const documentId = dntShim.crypto.randomUUID();
210
- const filePath = buildDocumentFilePath(documentId, meta?.type);
246
+ const filePath = options?.filePath ?? buildDocumentFilePath(documentId, meta?.type);
211
247
  const embedder = createEmbedder(config);
212
248
  const vectors = await embedder.embedMany(chunkTexts);
213
249
  const dimension = toSupportedDimension(vectors[0]?.length ?? 0);
@@ -243,7 +279,6 @@ async function ingestDocument(context, config, title, text, meta) {
243
279
  type: meta?.type ?? "",
244
280
  metadata: { filePath },
245
281
  });
246
- return documentId;
247
282
  }
248
283
  function createEmbedder(config) {
249
284
  return embedding({
@@ -340,6 +375,10 @@ export function createVeryfrontCloudRagStore(config) {
340
375
  const context = getCloudStoreContext(config);
341
376
  return ingestDocument(context, config, title, text, meta);
342
377
  },
378
+ async refreshDocument(id, text, meta) {
379
+ const context = getCloudStoreContext(config);
380
+ await refreshCloudDocument(context, config, id, text, meta);
381
+ },
343
382
  async search(query, options) {
344
383
  if (!query.trim())
345
384
  return [];
@@ -376,7 +415,8 @@ export function createVeryfrontCloudRagStore(config) {
376
415
  },
377
416
  async listDocuments() {
378
417
  const context = getCloudStoreContext(config);
379
- return listRagDocuments(context);
418
+ const documents = await listRagDocuments(context);
419
+ return documents.map(toPublicRagDocumentMeta);
380
420
  },
381
421
  async removeDocument(id) {
382
422
  const context = getCloudStoreContext(config);
@@ -387,7 +427,7 @@ export function createVeryfrontCloudRagStore(config) {
387
427
  await deleteRagDocument(context, id);
388
428
  // Best-effort cleanup of file chunks
389
429
  if (target) {
390
- const filePath = buildDocumentFilePath(id, target.type);
430
+ const filePath = target.filePath ?? buildDocumentFilePath(id, target.type);
391
431
  try {
392
432
  await deleteFileChunks(context, filePath);
393
433
  }
@@ -1,3 +1,4 @@
1
+ import type { DiscoveryResult } from "../../../../discovery/index.js";
1
2
  import type { HandlerContext } from "../../types.js";
2
3
  /**
3
4
  * Run primitive discovery (agents, tools) for a project if not already done.
@@ -5,5 +6,5 @@ import type { HandlerContext } from "../../types.js";
5
6
  * the correct remote project files and the agent registry uses the
6
7
  * correct project scope.
7
8
  */
8
- export declare function ensureProjectDiscovery(ctx: HandlerContext): Promise<void>;
9
+ export declare function ensureProjectDiscovery(ctx: HandlerContext): Promise<DiscoveryResult>;
9
10
  //# sourceMappingURL=project-discovery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"project-discovery.d.ts","sourceRoot":"","sources":["../../../../../../src/src/server/handlers/request/api/project-discovery.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAkDrD;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAyE/E"}
1
+ {"version":3,"file":"project-discovery.d.ts","sourceRoot":"","sources":["../../../../../../src/src/server/handlers/request/api/project-discovery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAItE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAkDrD;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CA8E1F"}
@@ -76,11 +76,12 @@ export async function ensureProjectDiscovery(ctx) {
76
76
  else {
77
77
  logger.info("Primitive discovery completed", logData);
78
78
  }
79
+ return result;
79
80
  })(),
80
81
  };
81
82
  discoveredProjects.set(key, discovery);
82
83
  try {
83
- await discovery.promise;
84
+ return await discovery.promise;
84
85
  }
85
86
  catch (error) {
86
87
  // Allow retry on next request
@@ -90,6 +91,7 @@ export async function ensureProjectDiscovery(ctx) {
90
91
  error: error instanceof Error ? error.message : String(error),
91
92
  stack: error instanceof Error ? error.stack : undefined,
92
93
  });
94
+ throw new Error(`Runtime discovery failed: ${error instanceof Error ? error.message : String(error)}`);
93
95
  }
94
96
  finally {
95
97
  if (!cacheCompletedDiscovery) {
@@ -1,6 +1,6 @@
1
1
  import type { RuntimeAdapter } from "../../../platform/index.js";
2
2
  import type { VeryfrontConfig } from "../../../config/index.js";
3
- import { type DiscoveredTask } from "../../../task/discovery.js";
3
+ import type { DiscoveryResult } from "../../../discovery/index.js";
4
4
  import { type RunTaskOptions, type TaskRunResult } from "../../../task/runner.js";
5
5
  import { type DiscoveredEval } from "../../../eval/discovery.js";
6
6
  import { type AgentServiceEvalAdapterConfig } from "../../../eval/agent-service.js";
@@ -55,12 +55,6 @@ interface WorkflowClientView {
55
55
  destroy(): Promise<void>;
56
56
  }
57
57
  export interface ProjectRunExecuteHandlerDeps {
58
- findTaskById(taskId: string, options: {
59
- projectDir: string;
60
- adapter: RuntimeAdapter;
61
- config?: VeryfrontConfig;
62
- debug?: boolean;
63
- }): Promise<DiscoveredTask | null>;
64
58
  runTask(options: RunTaskOptions): Promise<TaskRunResult>;
65
59
  findWorkflowById(workflowId: string, options: {
66
60
  projectDir: string;
@@ -78,7 +72,7 @@ export interface ProjectRunExecuteHandlerDeps {
78
72
  runEval(definition: EvalDefinition, options: RunEvalOptions): Promise<EvalReport>;
79
73
  createEvalAgentAdapter(config: AgentServiceEvalAdapterConfig): EvalAgentAdapter;
80
74
  uploadEvalReport(input: EvalReportUploadInput): Promise<string | null>;
81
- ensureProjectDiscovery(ctx: HandlerContext): Promise<void>;
75
+ ensureProjectDiscovery(ctx: HandlerContext): Promise<DiscoveryResult>;
82
76
  executeKnowledgeIngest(input: {
83
77
  request: ProjectRunExecuteRequest;
84
78
  ctx: HandlerContext;
@@ -1 +1 @@
1
- {"version":3,"file":"project-run-execute.handler.d.ts","sourceRoot":"","sources":["../../../../../src/src/server/handlers/request/project-run-execute.handler.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,KAAK,cAAc,EAAgB,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAW,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC3F,OAAO,EAAE,KAAK,cAAc,EAAgB,MAAM,4BAA4B,CAAC;AAE/E,OAAO,EACL,KAAK,6BAA6B,EAEnC,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EAGd,UAAU,EACV,cAAc,EACf,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,KAAK,kBAAkB,EAAoB,MAAM,sCAAsC,CAAC;AAEjG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAGvE,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAmB,aAAa,EAAE,MAAM,aAAa,CAAC;AACnG,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAWlD,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;CACvB;AAED,UAAU,qBAAqB;IAC7B,OAAO,EAAE,wBAAwB,CAAC;IAClC,GAAG,EAAE,cAAc,CAAC;IACpB,GAAG,EAAE,OAAO,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,eAAe;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACrC;AAED,UAAU,mBAAmB;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;IACpD,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IAClC,KAAK,CACH,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3B,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAChC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;IACvD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,4BAA4B;IAC3C,YAAY,CACV,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QACP,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,cAAc,CAAC;QACxB,MAAM,CAAC,EAAE,eAAe,CAAC;QACzB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,GACA,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAClC,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACzD,gBAAgB,CACd,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE;QACP,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,cAAc,CAAC;QACxB,MAAM,CAAC,EAAE,eAAe,CAAC;QACzB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,GACA,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IACtC,YAAY,CACV,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QACP,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,cAAc,CAAC;QACxB,MAAM,CAAC,EAAE,eAAe,CAAC;QACzB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,GACA,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAClC,oBAAoB,CAClB,MAAM,CAAC,EAAE,oBAAoB,GAC5B,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACpD,OAAO,CAAC,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAClF,sBAAsB,CAAC,MAAM,EAAE,6BAA6B,GAAG,gBAAgB,CAAC;IAChF,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACvE,sBAAsB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,sBAAsB,CAAC,KAAK,EAAE;QAC5B,OAAO,EAAE,wBAAwB,CAAC;QAClC,GAAG,EAAE,cAAc,CAAC;QACpB,GAAG,EAAE,OAAO,CAAC;KACd,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACvC,wBAAwB,CAAC,KAAK,EAAE;QAC9B,OAAO,EAAE,wBAAwB,CAAC;QAClC,GAAG,EAAE,cAAc,CAAC;QACpB,GAAG,EAAE,OAAO,CAAC;KACd,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACvC,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,GAAG,IAAI,MAAM,CAAC;CACf;AAi9BD,qBAAa,wBAAyB,SAAQ,WAAW;IAS3C,OAAO,CAAC,QAAQ,CAAC,IAAI;IARjC,QAAQ,EAAE,eAAe,CAMvB;gBAE2B,IAAI,GAAE,4BAA0C;IAIvE,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;CAsExE"}
1
+ {"version":3,"file":"project-run-execute.handler.d.ts","sourceRoot":"","sources":["../../../../../src/src/server/handlers/request/project-run-execute.handler.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { getEnvironmentConfig } from "../../../config/index.js";
4
4
  import { ControlPlaneRequestError, verifyControlPlaneRequest, } from "../../../internal-agents/control-plane-auth.js";
5
5
  import { INTERNAL_AGENT_CONTROL_PLANE_MAX_BODY_BYTES, InternalAgentRequestBodyTooLargeError, readInternalAgentRequestBody, } from "../../../internal-agents/request-body.js";
6
6
  import { getHostEnv } from "../../../platform/compat/process.js";
7
- import { findTaskById } from "../../../task/discovery.js";
7
+ import { findProjectRuntimeTask } from "../../../task/project-runtime.js";
8
8
  import { runTask } from "../../../task/runner.js";
9
9
  import { findEvalById } from "../../../eval/discovery.js";
10
10
  import { runEval } from "../../../eval/runner.js";
@@ -151,12 +151,8 @@ async function executeTaskRun(request, ctx, deps) {
151
151
  if (taskId === "knowledge-ingest") {
152
152
  throw new Error("Knowledge ingest must be executed through the knowledge ingest executor");
153
153
  }
154
- const task = await deps.findTaskById(taskId, {
155
- projectDir: ctx.projectDir,
156
- adapter: ctx.adapter,
157
- config: ctx.config,
158
- debug: ctx.debug,
159
- });
154
+ const discovery = await deps.ensureProjectDiscovery(ctx);
155
+ const task = findProjectRuntimeTask(discovery, taskId);
160
156
  if (!task) {
161
157
  return {
162
158
  success: false,
@@ -804,7 +800,6 @@ async function executeReleaseAssetBuildRun(input) {
804
800
  }
805
801
  }
806
802
  const defaultDeps = {
807
- findTaskById,
808
803
  runTask,
809
804
  findWorkflowById,
810
805
  findEvalById,
@@ -0,0 +1,19 @@
1
+ import type { DiscoveryResult } from "../discovery/index.js";
2
+ import type { RuntimeAdapter } from "../platform/index.js";
3
+ import type { FileSystemAdapter } from "../platform/adapters/base.js";
4
+ import type { VeryfrontConfig } from "../config/index.js";
5
+ import type { RunnableTask } from "./runner.js";
6
+ export interface ProjectTaskRuntimeOptions {
7
+ projectDir: string;
8
+ adapter: RuntimeAdapter;
9
+ config?: VeryfrontConfig | null;
10
+ fsAdapter?: FileSystemAdapter;
11
+ cacheKey?: string;
12
+ debug?: boolean;
13
+ throwOnErrors?: boolean;
14
+ }
15
+ export declare function formatProjectRuntimeDiscoveryErrors(errors: DiscoveryResult["errors"]): string[];
16
+ export declare function discoverProjectTaskRuntime(options: ProjectTaskRuntimeOptions): Promise<DiscoveryResult>;
17
+ export declare function findProjectRuntimeTask(discovery: DiscoveryResult, taskId: string): RunnableTask | null;
18
+ export declare function listProjectRuntimeTasks(discovery: DiscoveryResult): RunnableTask[];
19
+ //# sourceMappingURL=project-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-runtime.d.ts","sourceRoot":"","sources":["../../../src/src/task/project-runtime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IAChC,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAMD,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,GAChC,MAAM,EAAE,CAEV;AAED,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,eAAe,CAAC,CAqB1B;AAED,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,eAAe,EAC1B,MAAM,EAAE,MAAM,GACb,YAAY,GAAG,IAAI,CASrB;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,eAAe,GAAG,YAAY,EAAE,CAMlF"}
@@ -0,0 +1,42 @@
1
+ import { discoverProjectAgentRuntime } from "../agent/project/agent-runtime.js";
2
+ function formatRuntimeDiscoveryError(error) {
3
+ return `${error.file}: ${error.error.message}`;
4
+ }
5
+ export function formatProjectRuntimeDiscoveryErrors(errors) {
6
+ return errors.map(formatRuntimeDiscoveryError);
7
+ }
8
+ export async function discoverProjectTaskRuntime(options) {
9
+ const discovery = await discoverProjectAgentRuntime({
10
+ projectDir: options.projectDir,
11
+ adapter: options.adapter,
12
+ config: options.config,
13
+ fsAdapter: options.fsAdapter,
14
+ cacheKey: options.cacheKey,
15
+ verbose: options.debug,
16
+ });
17
+ if (options.throwOnErrors && discovery.errors.length > 0) {
18
+ const lines = formatProjectRuntimeDiscoveryErrors(discovery.errors);
19
+ throw new Error([
20
+ `Runtime discovery failed with ${discovery.errors.length} errors:`,
21
+ ...lines.map((line) => `- ${line}`),
22
+ ].join("\n"));
23
+ }
24
+ return discovery;
25
+ }
26
+ export function findProjectRuntimeTask(discovery, taskId) {
27
+ const definition = discovery.tasks.get(taskId);
28
+ if (!definition)
29
+ return null;
30
+ return {
31
+ id: taskId,
32
+ name: definition.name || taskId,
33
+ definition,
34
+ };
35
+ }
36
+ export function listProjectRuntimeTasks(discovery) {
37
+ return [...discovery.tasks].map(([id, definition]) => ({
38
+ id,
39
+ name: definition.name || id,
40
+ definition,
41
+ }));
42
+ }
@@ -4,13 +4,21 @@
4
4
  * Executes a discovered task by calling its run() function
5
5
  * with the appropriate context.
6
6
  */
7
- import type { DiscoveredTask } from "./discovery.js";
7
+ import type { TaskDefinition } from "./types.js";
8
+ export interface RunnableTask {
9
+ /** Stable task id used by CLI, triggers, and cloud runs. */
10
+ id: string;
11
+ /** Human-readable task name. */
12
+ name: string;
13
+ /** The task definition to execute. */
14
+ definition: TaskDefinition;
15
+ }
8
16
  /**
9
17
  * Options for running a task
10
18
  */
11
19
  export interface RunTaskOptions {
12
20
  /** The discovered task to run */
13
- task: DiscoveredTask;
21
+ task: RunnableTask;
14
22
  /** Additional config to pass to the task */
15
23
  config?: Record<string, unknown>;
16
24
  /** Project ID (for cloud context) */
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/src/task/runner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAKrD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,iCAAiC;IACjC,IAAI,EAAE,cAAc,CAAC;IAErB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEjC,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,+DAA+D;IAC/D,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,8CAA8C;IAC9C,OAAO,EAAE,OAAO,CAAC;IAEjB,yCAAyC;IACzC,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAkC7E"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/src/task/runner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAIjD,MAAM,WAAW,YAAY;IAC3B,4DAA4D;IAC5D,EAAE,EAAE,MAAM,CAAC;IAEX,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IAEb,sCAAsC;IACtC,UAAU,EAAE,cAAc,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,iCAAiC;IACjC,IAAI,EAAE,YAAY,CAAC;IAEnB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEjC,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,+DAA+D;IAC/D,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,8CAA8C;IAC9C,OAAO,EAAE,OAAO,CAAC;IAEjB,yCAAyC;IACzC,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAkC7E"}
@@ -5,6 +5,7 @@ export interface RunTriggerTargetOptions {
5
5
  projectDir: string;
6
6
  adapter: RuntimeAdapter;
7
7
  config?: VeryfrontConfig;
8
+ cacheKey?: string;
8
9
  projectId?: string;
9
10
  target: TriggerTarget;
10
11
  input?: unknown;
@@ -1 +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"}
1
+ {"version":3,"file":"local-runner.d.ts","sourceRoot":"","sources":["../../../src/src/trigger/local-runner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAQ1D,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,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,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;AAoFD,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,sBAAsB,CAAC,CAYjC"}
@@ -1,8 +1,7 @@
1
1
  import { agentRegistry } from "../agent/composition/index.js";
2
- import { discoverProjectAgentRuntime } from "../agent/project/agent-runtime.js";
3
2
  import { toolRegistry } from "../tool/registry.js";
4
3
  import { createWorkflowClient } from "../workflow/api/workflow-client.js";
5
- import { discoverTasks } from "../task/discovery.js";
4
+ import { discoverProjectTaskRuntime, findProjectRuntimeTask, } from "../task/project-runtime.js";
6
5
  import { runTask } from "../task/runner.js";
7
6
  function toRecordInput(input) {
8
7
  if (input === undefined)
@@ -12,17 +11,20 @@ function toRecordInput(input) {
12
11
  }
13
12
  return { payload: input };
14
13
  }
15
- async function runTaskTarget(options) {
16
- const { tasks, errors } = await discoverTasks({
14
+ async function discoverRuntimeOrThrow(options) {
15
+ return await discoverProjectTaskRuntime({
17
16
  projectDir: options.projectDir,
18
17
  adapter: options.adapter,
19
18
  config: options.config,
19
+ fsAdapter: options.adapter.fs,
20
+ cacheKey: options.cacheKey,
20
21
  debug: options.debug,
22
+ throwOnErrors: true,
21
23
  });
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);
24
+ }
25
+ async function runTaskTarget(options) {
26
+ const discovery = await discoverRuntimeOrThrow(options);
27
+ const task = findProjectRuntimeTask(discovery, options.target.id);
26
28
  if (!task) {
27
29
  throw new Error(`Task target "${options.target.id}" not found.`);
28
30
  }
@@ -44,15 +46,7 @@ async function runTaskTarget(options) {
44
46
  }
45
47
  async function runWorkflowTarget(options) {
46
48
  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
- }
49
+ const discovery = await discoverRuntimeOrThrow(options);
56
50
  const workflow = discovery.workflows.get(options.target.id);
57
51
  if (!workflow) {
58
52
  throw new Error(`Workflow target "${options.target.id}" not found.`);
@@ -1,3 +1,3 @@
1
1
  /** Shared version value. */
2
- export declare const VERSION = "0.1.994";
2
+ export declare const VERSION = "0.1.996";
3
3
  //# sourceMappingURL=version-constant.d.ts.map
@@ -1,4 +1,4 @@
1
1
  // Keep in sync with deno.json version.
2
2
  // scripts/release.ts updates this constant during releases.
3
3
  /** Shared version value. */
4
- export const VERSION = "0.1.994";
4
+ export const VERSION = "0.1.996";
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-run-entrypoint.d.ts","sourceRoot":"","sources":["../../../../src/src/workflow/worker/dynamic-run-entrypoint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AASH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAY5D;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;CAMrB,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,kCAAkC;IACjD,uCAAuC;IACvC,OAAO,EAAE,eAAe,CAAC;IAEzB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,kCAAkC,GACzC,OAAO,CAAC,MAAM,CAAC,CAmIjB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,yCAAyC;IACxD,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IAEjB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,gDAAgD;AAChD,wBAAsB,kCAAkC,CACtD,OAAO,EAAE,yCAAyC,GACjD,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,CAchC"}
1
+ {"version":3,"file":"dynamic-run-entrypoint.d.ts","sourceRoot":"","sources":["../../../../src/src/workflow/worker/dynamic-run-entrypoint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AASH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAY5D;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;CAMrB,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,kCAAkC;IACjD,uCAAuC;IACvC,OAAO,EAAE,eAAe,CAAC;IAEzB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,kCAAkC,GACzC,OAAO,CAAC,MAAM,CAAC,CAqIjB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,yCAAyC;IACxD,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IAEjB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,gDAAgD;AAChD,wBAAsB,kCAAkC,CACtD,OAAO,EAAE,yCAAyC,GACjD,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,CAchC"}
@@ -106,6 +106,8 @@ export async function runDynamicWorkflowRun(config) {
106
106
  const discoveryResult = await discoverProjectAgentRuntime({
107
107
  projectDir: "", // Root of project (relative paths with API)
108
108
  adapter,
109
+ fsAdapter: adapter.fs,
110
+ cacheKey: tenant.projectId ?? tenant.projectSlug,
109
111
  verbose: debug,
110
112
  });
111
113
  if (discoveryResult.errors.length > 0 && debug) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "veryfront",
3
- "version": "0.1.994",
3
+ "version": "0.1.996",
4
4
  "description": "The simplest way to build AI-powered apps",
5
5
  "keywords": [
6
6
  "react",
@@ -1,79 +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 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
- export interface DiscoveredTask {
29
- /** Task ID derived from file path (e.g., "sync-data" from tasks/sync-data.ts) */
30
- id: string;
31
- /** Human-readable name from task definition */
32
- name: string;
33
- /** File path where the task is defined */
34
- filePath: string;
35
- /** Export name (e.g., "default" or named export) */
36
- exportName: string;
37
- /** The task definition */
38
- definition: TaskDefinition;
39
- }
40
- /**
41
- * Options for task discovery
42
- */
43
- export interface TaskDiscoveryOptions {
44
- /** Project directory */
45
- projectDir: string;
46
- /** Runtime adapter for filesystem operations */
47
- adapter: RuntimeAdapter;
48
- /** Veryfront config (for import maps, etc.) */
49
- config?: VeryfrontConfig;
50
- /** Base directory for tasks (default: "tasks") */
51
- tasksDir?: string;
52
- /** Enable debug logging */
53
- debug?: boolean;
54
- }
55
- /**
56
- * Result of task discovery
57
- */
58
- export interface TaskDiscoveryResult {
59
- /** All discovered tasks */
60
- tasks: DiscoveredTask[];
61
- /** Errors encountered during discovery */
62
- errors: Array<{
63
- filePath: string;
64
- error: string;
65
- }>;
66
- }
67
- /**
68
- * Derive task ID from file path (e.g., "tasks/sync-data.ts" → "sync-data")
69
- */
70
- export declare function deriveTaskId(filePath: string, tasksDir: string): string;
71
- /**
72
- * Discover all tasks in a project
73
- */
74
- export declare function discoverTasks(options: TaskDiscoveryOptions): Promise<TaskDiscoveryResult>;
75
- /**
76
- * Find a specific task by ID, short-circuiting discovery once found.
77
- */
78
- export declare function findTaskById(taskId: string, options: TaskDiscoveryOptions): Promise<DiscoveredTask | null>;
79
- //# sourceMappingURL=discovery.d.ts.map
@@ -1 +0,0 @@
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;;GAEG;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;;GAEG;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;;GAEG;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;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CASvE;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAiE9B;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAuChC"}