@aigne/afs-scheduler 1.12.0-beta.5

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 (75) hide show
  1. package/LICENSE.md +26 -0
  2. package/dist/_virtual/_@oxc-project_runtime@0.108.0/helpers/decorate.cjs +11 -0
  3. package/dist/_virtual/_@oxc-project_runtime@0.108.0/helpers/decorate.mjs +10 -0
  4. package/dist/cron-parser.cjs +202 -0
  5. package/dist/cron-parser.d.cts +65 -0
  6. package/dist/cron-parser.d.cts.map +1 -0
  7. package/dist/cron-parser.d.mts +65 -0
  8. package/dist/cron-parser.d.mts.map +1 -0
  9. package/dist/cron-parser.mjs +200 -0
  10. package/dist/cron-parser.mjs.map +1 -0
  11. package/dist/do-executor.cjs +59 -0
  12. package/dist/do-executor.d.cts +30 -0
  13. package/dist/do-executor.d.cts.map +1 -0
  14. package/dist/do-executor.d.mts +30 -0
  15. package/dist/do-executor.d.mts.map +1 -0
  16. package/dist/do-executor.mjs +59 -0
  17. package/dist/do-executor.mjs.map +1 -0
  18. package/dist/do-job-executor.cjs +53 -0
  19. package/dist/do-job-executor.d.cts +28 -0
  20. package/dist/do-job-executor.d.cts.map +1 -0
  21. package/dist/do-job-executor.d.mts +28 -0
  22. package/dist/do-job-executor.d.mts.map +1 -0
  23. package/dist/do-job-executor.mjs +53 -0
  24. package/dist/do-job-executor.mjs.map +1 -0
  25. package/dist/do-types.d.cts +66 -0
  26. package/dist/do-types.d.cts.map +1 -0
  27. package/dist/do-types.d.mts +66 -0
  28. package/dist/do-types.d.mts.map +1 -0
  29. package/dist/index.cjs +34 -0
  30. package/dist/index.d.cts +11 -0
  31. package/dist/index.d.mts +11 -0
  32. package/dist/index.mjs +11 -0
  33. package/dist/job-coordinator.cjs +216 -0
  34. package/dist/job-coordinator.d.cts +8 -0
  35. package/dist/job-coordinator.d.cts.map +1 -0
  36. package/dist/job-coordinator.d.mts +8 -0
  37. package/dist/job-coordinator.d.mts.map +1 -0
  38. package/dist/job-coordinator.mjs +216 -0
  39. package/dist/job-coordinator.mjs.map +1 -0
  40. package/dist/local-executor.cjs +25 -0
  41. package/dist/local-executor.d.cts +12 -0
  42. package/dist/local-executor.d.cts.map +1 -0
  43. package/dist/local-executor.d.mts +12 -0
  44. package/dist/local-executor.d.mts.map +1 -0
  45. package/dist/local-executor.mjs +25 -0
  46. package/dist/local-executor.mjs.map +1 -0
  47. package/dist/scheduler-provider.cjs +1236 -0
  48. package/dist/scheduler-provider.d.cts +95 -0
  49. package/dist/scheduler-provider.d.cts.map +1 -0
  50. package/dist/scheduler-provider.d.mts +95 -0
  51. package/dist/scheduler-provider.d.mts.map +1 -0
  52. package/dist/scheduler-provider.mjs +1237 -0
  53. package/dist/scheduler-provider.mjs.map +1 -0
  54. package/dist/task-runner.cjs +70 -0
  55. package/dist/task-runner.d.cts +25 -0
  56. package/dist/task-runner.d.cts.map +1 -0
  57. package/dist/task-runner.d.mts +25 -0
  58. package/dist/task-runner.d.mts.map +1 -0
  59. package/dist/task-runner.mjs +70 -0
  60. package/dist/task-runner.mjs.map +1 -0
  61. package/dist/task-store.cjs +186 -0
  62. package/dist/task-store.d.cts +60 -0
  63. package/dist/task-store.d.cts.map +1 -0
  64. package/dist/task-store.d.mts +60 -0
  65. package/dist/task-store.d.mts.map +1 -0
  66. package/dist/task-store.mjs +187 -0
  67. package/dist/task-store.mjs.map +1 -0
  68. package/dist/types.cjs +185 -0
  69. package/dist/types.d.cts +384 -0
  70. package/dist/types.d.cts.map +1 -0
  71. package/dist/types.d.mts +384 -0
  72. package/dist/types.d.mts.map +1 -0
  73. package/dist/types.mjs +176 -0
  74. package/dist/types.mjs.map +1 -0
  75. package/package.json +59 -0
@@ -0,0 +1,95 @@
1
+ import { SchedulerProviderOptions, TickResult } from "./types.cjs";
2
+ import { TaskStore } from "./task-store.cjs";
3
+ import { AFSAccessMode, AFSEntry, AFSExecResult, AFSExplainResult, AFSListOptions, AFSListResult, AFSReadOptions, AFSReadResult, AFSRoot, ProviderManifest } from "@aigne/afs";
4
+ import { AFSBaseProvider, RouteContext } from "@aigne/afs/provider";
5
+
6
+ //#region src/scheduler-provider.d.ts
7
+ declare class AFSScheduler extends AFSBaseProvider {
8
+ static manifest(): ProviderManifest;
9
+ readonly name: string;
10
+ readonly description?: string;
11
+ readonly accessMode: AFSAccessMode;
12
+ /** @internal — exposed for conformance test pre-population */
13
+ readonly store: TaskStore;
14
+ private executor;
15
+ private jobExecutor?;
16
+ private root;
17
+ private readonly options;
18
+ private readonly persistence;
19
+ constructor(options?: SchedulerProviderOptions);
20
+ onMount(root: AFSRoot, _mountPath?: string): void;
21
+ /** Await all pending snapshot writes. Use before reading persisted state. */
22
+ flush(): Promise<void>;
23
+ read(path: string, options?: AFSReadOptions): Promise<AFSReadResult>;
24
+ list(path: string, options?: AFSListOptions): Promise<AFSListResult>;
25
+ readRoot(ctx: RouteContext): AFSEntry | undefined;
26
+ readTasks(ctx: RouteContext): AFSEntry | undefined;
27
+ readTask(ctx: RouteContext<{
28
+ id: string;
29
+ }>): AFSEntry | undefined;
30
+ readTaskField(ctx: RouteContext<{
31
+ id: string;
32
+ field: string;
33
+ }>): AFSEntry | undefined;
34
+ readHistory(ctx: RouteContext): AFSEntry | undefined;
35
+ readHistoryTask(ctx: RouteContext<{
36
+ id: string;
37
+ }>): AFSEntry | undefined;
38
+ readHistoryTaskField(ctx: RouteContext<{
39
+ id: string;
40
+ field: string;
41
+ }>): AFSEntry | undefined;
42
+ readSchedules(ctx: RouteContext): AFSEntry | undefined;
43
+ readSchedule(ctx: RouteContext<{
44
+ id: string;
45
+ }>): AFSEntry | undefined;
46
+ readJobs(ctx: RouteContext): AFSEntry | undefined;
47
+ readJob(ctx: RouteContext<{
48
+ id: string;
49
+ }>): Promise<AFSEntry | undefined>;
50
+ readCapabilities(ctx: RouteContext): AFSEntry | undefined;
51
+ listRoot(ctx: RouteContext): AFSListResult;
52
+ listTasks(ctx: RouteContext): AFSListResult;
53
+ listHistory(ctx: RouteContext): AFSListResult;
54
+ listSchedules(ctx: RouteContext): AFSListResult;
55
+ listJobsHandler(ctx: RouteContext): AFSListResult;
56
+ readRootMeta(ctx: RouteContext): AFSEntry | undefined;
57
+ readTasksMeta(ctx: RouteContext): AFSEntry | undefined;
58
+ readHistoryMeta(ctx: RouteContext): AFSEntry | undefined;
59
+ readSchedulesMeta(ctx: RouteContext): AFSEntry | undefined;
60
+ readJobsMeta(ctx: RouteContext): AFSEntry | undefined;
61
+ explainRoot(): AFSExplainResult;
62
+ explainPath(ctx: RouteContext<{
63
+ path: string;
64
+ }>): AFSExplainResult;
65
+ listActions(ctx: RouteContext): AFSListResult;
66
+ execDispatch(ctx: RouteContext, args: Record<string, unknown>): Promise<AFSExecResult>;
67
+ execCancel(ctx: RouteContext, args: Record<string, unknown>): Promise<AFSExecResult>;
68
+ execRetry(ctx: RouteContext, args: Record<string, unknown>): Promise<AFSExecResult>;
69
+ execSchedule(ctx: RouteContext, args: Record<string, unknown>): Promise<AFSExecResult>;
70
+ execUnschedule(ctx: RouteContext, args: Record<string, unknown>): Promise<AFSExecResult>;
71
+ execHeartbeat(_ctx: RouteContext, args: Record<string, unknown>): Promise<AFSExecResult>;
72
+ execClaim(_ctx: RouteContext, args: Record<string, unknown>): Promise<AFSExecResult>;
73
+ execSubmit(ctx: RouteContext, args: Record<string, unknown>): Promise<AFSExecResult>;
74
+ execSubmitJob(_ctx: RouteContext, args: Record<string, unknown>): Promise<AFSExecResult>;
75
+ execCancelJob(_ctx: RouteContext, args: Record<string, unknown>): Promise<AFSExecResult>;
76
+ /**
77
+ * Evaluate cron schedules and scan for expired deadlines.
78
+ * Call from Worker `scheduled()` handler or `setInterval` in non-Worker environments.
79
+ */
80
+ tick(): Promise<TickResult>;
81
+ private getScheduledTaskTimeoutMs;
82
+ private getEffectiveDeadline;
83
+ private getCallerKey;
84
+ private checkTaskOwner;
85
+ private checkScheduleOwner;
86
+ private executeTask;
87
+ private checkTaskBudget;
88
+ private completeProc;
89
+ private dispatchMapTask;
90
+ private onJobTaskComplete;
91
+ private readEntryField;
92
+ }
93
+ //#endregion
94
+ export { AFSScheduler };
95
+ //# sourceMappingURL=scheduler-provider.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler-provider.d.cts","names":[],"sources":["../src/scheduler-provider.ts"],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ import { SchedulerProviderOptions, TickResult } from "./types.mjs";
2
+ import { TaskStore } from "./task-store.mjs";
3
+ import { AFSAccessMode, AFSEntry, AFSExecResult, AFSExplainResult, AFSListOptions, AFSListResult, AFSReadOptions, AFSReadResult, AFSRoot, ProviderManifest } from "@aigne/afs";
4
+ import { AFSBaseProvider, RouteContext } from "@aigne/afs/provider";
5
+
6
+ //#region src/scheduler-provider.d.ts
7
+ declare class AFSScheduler extends AFSBaseProvider {
8
+ static manifest(): ProviderManifest;
9
+ readonly name: string;
10
+ readonly description?: string;
11
+ readonly accessMode: AFSAccessMode;
12
+ /** @internal — exposed for conformance test pre-population */
13
+ readonly store: TaskStore;
14
+ private executor;
15
+ private jobExecutor?;
16
+ private root;
17
+ private readonly options;
18
+ private readonly persistence;
19
+ constructor(options?: SchedulerProviderOptions);
20
+ onMount(root: AFSRoot, _mountPath?: string): void;
21
+ /** Await all pending snapshot writes. Use before reading persisted state. */
22
+ flush(): Promise<void>;
23
+ read(path: string, options?: AFSReadOptions): Promise<AFSReadResult>;
24
+ list(path: string, options?: AFSListOptions): Promise<AFSListResult>;
25
+ readRoot(ctx: RouteContext): AFSEntry | undefined;
26
+ readTasks(ctx: RouteContext): AFSEntry | undefined;
27
+ readTask(ctx: RouteContext<{
28
+ id: string;
29
+ }>): AFSEntry | undefined;
30
+ readTaskField(ctx: RouteContext<{
31
+ id: string;
32
+ field: string;
33
+ }>): AFSEntry | undefined;
34
+ readHistory(ctx: RouteContext): AFSEntry | undefined;
35
+ readHistoryTask(ctx: RouteContext<{
36
+ id: string;
37
+ }>): AFSEntry | undefined;
38
+ readHistoryTaskField(ctx: RouteContext<{
39
+ id: string;
40
+ field: string;
41
+ }>): AFSEntry | undefined;
42
+ readSchedules(ctx: RouteContext): AFSEntry | undefined;
43
+ readSchedule(ctx: RouteContext<{
44
+ id: string;
45
+ }>): AFSEntry | undefined;
46
+ readJobs(ctx: RouteContext): AFSEntry | undefined;
47
+ readJob(ctx: RouteContext<{
48
+ id: string;
49
+ }>): Promise<AFSEntry | undefined>;
50
+ readCapabilities(ctx: RouteContext): AFSEntry | undefined;
51
+ listRoot(ctx: RouteContext): AFSListResult;
52
+ listTasks(ctx: RouteContext): AFSListResult;
53
+ listHistory(ctx: RouteContext): AFSListResult;
54
+ listSchedules(ctx: RouteContext): AFSListResult;
55
+ listJobsHandler(ctx: RouteContext): AFSListResult;
56
+ readRootMeta(ctx: RouteContext): AFSEntry | undefined;
57
+ readTasksMeta(ctx: RouteContext): AFSEntry | undefined;
58
+ readHistoryMeta(ctx: RouteContext): AFSEntry | undefined;
59
+ readSchedulesMeta(ctx: RouteContext): AFSEntry | undefined;
60
+ readJobsMeta(ctx: RouteContext): AFSEntry | undefined;
61
+ explainRoot(): AFSExplainResult;
62
+ explainPath(ctx: RouteContext<{
63
+ path: string;
64
+ }>): AFSExplainResult;
65
+ listActions(ctx: RouteContext): AFSListResult;
66
+ execDispatch(ctx: RouteContext, args: Record<string, unknown>): Promise<AFSExecResult>;
67
+ execCancel(ctx: RouteContext, args: Record<string, unknown>): Promise<AFSExecResult>;
68
+ execRetry(ctx: RouteContext, args: Record<string, unknown>): Promise<AFSExecResult>;
69
+ execSchedule(ctx: RouteContext, args: Record<string, unknown>): Promise<AFSExecResult>;
70
+ execUnschedule(ctx: RouteContext, args: Record<string, unknown>): Promise<AFSExecResult>;
71
+ execHeartbeat(_ctx: RouteContext, args: Record<string, unknown>): Promise<AFSExecResult>;
72
+ execClaim(_ctx: RouteContext, args: Record<string, unknown>): Promise<AFSExecResult>;
73
+ execSubmit(ctx: RouteContext, args: Record<string, unknown>): Promise<AFSExecResult>;
74
+ execSubmitJob(_ctx: RouteContext, args: Record<string, unknown>): Promise<AFSExecResult>;
75
+ execCancelJob(_ctx: RouteContext, args: Record<string, unknown>): Promise<AFSExecResult>;
76
+ /**
77
+ * Evaluate cron schedules and scan for expired deadlines.
78
+ * Call from Worker `scheduled()` handler or `setInterval` in non-Worker environments.
79
+ */
80
+ tick(): Promise<TickResult>;
81
+ private getScheduledTaskTimeoutMs;
82
+ private getEffectiveDeadline;
83
+ private getCallerKey;
84
+ private checkTaskOwner;
85
+ private checkScheduleOwner;
86
+ private executeTask;
87
+ private checkTaskBudget;
88
+ private completeProc;
89
+ private dispatchMapTask;
90
+ private onJobTaskComplete;
91
+ private readEntryField;
92
+ }
93
+ //#endregion
94
+ export { AFSScheduler };
95
+ //# sourceMappingURL=scheduler-provider.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler-provider.d.mts","names":[],"sources":["../src/scheduler-provider.ts"],"mappings":"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"}