@deepbounty/sdk 1.0.8 → 1.1.0

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/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { ModuleSetting, TaskContent, Tool } from "./types";
1
+ import { ModuleSetting, TaskContent, TaskResult, Tool } from "./types";
2
2
  export interface Logger {
3
3
  info: (...args: any[]) => void;
4
4
  warn: (...args: any[]) => void;
@@ -44,18 +44,21 @@ export interface ServerAPI {
44
44
  logger: Logger;
45
45
  config: ConfigAPI;
46
46
  /**
47
- * Register a scheduled task that runs at a specific interval
48
- * @param taskContent The task content including commands and required tools
47
+ * Register a task template that can be scheduled for all targets
48
+ * @param name Friendly name for the task
49
+ * @param description Task description
50
+ * @param taskContent The task content including commands and tools
49
51
  * @param interval Interval in seconds between task executions
50
- * @returns The ID of the registered scheduled task
52
+ * @param onComplete Optional callback executed when the task completes
53
+ * @returns The ID of the registered task template
51
54
  */
52
- registerScheduledTask(taskContent: TaskContent, interval: number): number;
55
+ registerTaskTemplate(name: string, description: string, taskContent: TaskContent, interval: number, onComplete?: (result: TaskResult) => void): Promise<number>;
53
56
  /**
54
- * Unregister a scheduled task
55
- * @param taskId The ID of the scheduled task to unregister
56
- * @returns true if the task was unregistered, false if it didn't exist
57
+ * Unregister a task template
58
+ * @param templateId The ID of the task template to unregister
59
+ * @returns true if the template was unregistered, false if it didn't exist
57
60
  */
58
- unregisterScheduledTask(taskId: number): boolean;
61
+ unregisterTaskTemplate(templateId: number): Promise<boolean>;
59
62
  /** Register a tool
60
63
  * @param tool The tool to register
61
64
  */
@@ -2,14 +2,28 @@ import { Tool } from "./tools";
2
2
  export interface TaskContent {
3
3
  commands: string[];
4
4
  requiredTools?: Tool[];
5
+ extractResult?: boolean;
6
+ }
7
+ export interface TaskTemplate {
8
+ id: number;
9
+ moduleId: string;
10
+ name: string;
11
+ description?: string;
12
+ content: TaskContent;
13
+ interval: number;
14
+ active: boolean;
15
+ createdAt: Date;
5
16
  }
6
17
  export interface ScheduledTask {
7
18
  id: number;
19
+ templateId: number;
8
20
  content: TaskContent;
9
21
  interval: number;
10
22
  moduleId: string;
23
+ targetId?: number;
11
24
  lastExecutedAt?: Date;
12
25
  nextExecutionAt: Date;
26
+ active: boolean;
13
27
  }
14
28
  export interface TaskExecution {
15
29
  executionId: number;
@@ -18,6 +32,7 @@ export interface TaskExecution {
18
32
  status: "pending" | "running" | "completed" | "failed";
19
33
  createdAt: Date;
20
34
  content: TaskContent;
35
+ targetId?: number;
21
36
  }
22
37
  export interface TaskResult {
23
38
  executionId: number;
@@ -25,4 +40,12 @@ export interface TaskResult {
25
40
  success: boolean;
26
41
  output?: any;
27
42
  error?: string;
43
+ targetId?: number;
44
+ }
45
+ export interface TargetTaskOverride {
46
+ id: number;
47
+ targetId: number;
48
+ taskTemplateId: number;
49
+ active: boolean;
50
+ createdAt: Date;
28
51
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deepbounty/sdk",
3
- "version": "1.0.8",
3
+ "version": "1.1.0",
4
4
  "description": "DeepBounty SDK for module development",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",