better-opencode-async-agents 0.2.0 → 0.4.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.
Files changed (42) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +5 -11
  3. package/dist/constants.d.ts +8 -0
  4. package/dist/constants.d.ts.map +1 -1
  5. package/dist/helpers.d.ts +17 -2
  6. package/dist/helpers.d.ts.map +1 -1
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +671 -52
  9. package/dist/index.js.map +21 -17
  10. package/dist/manager/events.d.ts +1 -0
  11. package/dist/manager/events.d.ts.map +1 -1
  12. package/dist/manager/index.d.ts +20 -0
  13. package/dist/manager/index.d.ts.map +1 -1
  14. package/dist/manager/notifications.d.ts.map +1 -1
  15. package/dist/manager/polling.d.ts +1 -1
  16. package/dist/manager/polling.d.ts.map +1 -1
  17. package/dist/manager/task-lifecycle.d.ts +2 -2
  18. package/dist/manager/task-lifecycle.d.ts.map +1 -1
  19. package/dist/prompts.d.ts +1 -1
  20. package/dist/prompts.d.ts.map +1 -1
  21. package/dist/server/cors.d.ts +22 -0
  22. package/dist/server/cors.d.ts.map +1 -0
  23. package/dist/server/index.d.ts +20 -0
  24. package/dist/server/index.d.ts.map +1 -0
  25. package/dist/server/routes.d.ts +14 -0
  26. package/dist/server/routes.d.ts.map +1 -0
  27. package/dist/server/sse.d.ts +44 -0
  28. package/dist/server/sse.d.ts.map +1 -0
  29. package/dist/server/types.d.ts +69 -0
  30. package/dist/server/types.d.ts.map +1 -0
  31. package/dist/storage.d.ts +34 -0
  32. package/dist/storage.d.ts.map +1 -1
  33. package/dist/tools/cancel.d.ts +3 -3
  34. package/dist/tools/cancel.d.ts.map +1 -1
  35. package/dist/tools/list.d.ts.map +1 -1
  36. package/dist/tools/output.d.ts +3 -2
  37. package/dist/tools/output.d.ts.map +1 -1
  38. package/dist/tools/task.d.ts +1 -0
  39. package/dist/tools/task.d.ts.map +1 -1
  40. package/dist/types.d.ts +7 -0
  41. package/dist/types.d.ts.map +1 -1
  42. package/package.json +1 -1
@@ -28,5 +28,6 @@ export declare function handleEvent(event: {
28
28
  getTasksArray: () => BackgroundTask[];
29
29
  notifyParentSession: (task: BackgroundTask) => void;
30
30
  persistTask: (task: BackgroundTask) => void;
31
+ emitTaskEvent?: (eventType: "task.completed" | "task.error" | "task.cancelled", task: BackgroundTask) => void;
31
32
  }): void;
32
33
  //# sourceMappingURL=events.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/manager/events.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAM/C;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE;IACN,KAAK,EAAE;QACL,SAAS,EAAE,MAAM,OAAO,CAAC;YACvB,MAAM,EAAE,aAAa,CAAC;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;aAAE,CAAC,CAAC;SAC/E,CAAC,CAAC;KACJ,CAAC;CACH,EACD,WAAW,EAAE,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,KAAK,IAAI,GACnF,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE;IACL,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC,EACD,SAAS,EAAE;IACT,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,cAAc,EAAE,CAAC;IACtC,mBAAmB,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IACpD,WAAW,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;CAC7C,GACA,IAAI,CA4EN"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/manager/events.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAM/C;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE;IACN,KAAK,EAAE;QACL,SAAS,EAAE,MAAM,OAAO,CAAC;YACvB,MAAM,EAAE,aAAa,CAAC;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;aAAE,CAAC,CAAC;SAC/E,CAAC,CAAC;KACJ,CAAC;CACH,EACD,WAAW,EAAE,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,KAAK,IAAI,GACnF,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE;IACL,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC,EACD,SAAS,EAAE;IACT,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,cAAc,EAAE,CAAC;IACtC,mBAAmB,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IACpD,WAAW,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IAC5C,aAAa,CAAC,EAAE,CACd,SAAS,EAAE,gBAAgB,GAAG,YAAY,GAAG,gBAAgB,EAC7D,IAAI,EAAE,cAAc,KACjB,IAAI,CAAC;CACX,GACA,IAAI,CA8EN"}
@@ -1,5 +1,7 @@
1
1
  import type { PluginInput } from "@opencode-ai/plugin";
2
2
  import type { BackgroundTask, LaunchInput } from "../types";
3
+ export type TaskEventType = "task.created" | "task.updated" | "task.completed" | "task.error" | "task.cancelled";
4
+ export type TaskEventCallback = (eventType: TaskEventType, task: BackgroundTask) => void;
3
5
  /**
4
6
  * BackgroundManager class for managing background agent tasks.
5
7
  *
@@ -14,7 +16,17 @@ export declare class BackgroundManager {
14
16
  private currentBatchId;
15
17
  private tasks;
16
18
  private originalParentSessionID;
19
+ private taskEventListeners;
17
20
  constructor(ctx: PluginInput);
21
+ /**
22
+ * Registers a callback for task lifecycle events.
23
+ * Returns an unsubscribe function.
24
+ */
25
+ onTaskEvent(callback: TaskEventCallback): () => void;
26
+ /**
27
+ * Emits a task event to all registered listeners.
28
+ */
29
+ private emitTaskEvent;
18
30
  /**
19
31
  * Loads persisted tasks from disk on startup.
20
32
  * Only loads metadata - full task state is reconstructed lazily.
@@ -62,6 +74,10 @@ export declare class BackgroundManager {
62
74
  */
63
75
  getTaskWithFallback(id: string): Promise<BackgroundTask | undefined>;
64
76
  getAllTasks(): BackgroundTask[];
77
+ /**
78
+ * Gets all task session IDs (full IDs) for collision-free short ID generation.
79
+ */
80
+ getTaskSessionIds(): string[];
65
81
  getTaskMessages(sessionID: string): Promise<Array<{
66
82
  info?: {
67
83
  role?: string;
@@ -94,6 +110,10 @@ export declare class BackgroundManager {
94
110
  private stopPolling;
95
111
  private pollRunningTasks;
96
112
  private showProgressToast;
113
+ /**
114
+ * Updates task progress and emits task.updated event if progress changed.
115
+ */
116
+ private updateTaskProgressWithEvent;
97
117
  private notifyParentSession;
98
118
  private startEventSubscription;
99
119
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/manager/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/manager/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../src/manager/notifications.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAM/D;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,cAAc,EAAE,EAC1B,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,cAAc,EACtB,aAAa,EAAE,MAAM,cAAc,EAAE,GACpC,IAAI,CA4GN;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,cAAc,EAAE,GACpC,IAAI,CAoFN;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EACjD,eAAe,EAAE,CACf,SAAS,EAAE,MAAM,KACd,OAAO,CACV,KAAK,CAAC;IAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CACrF,EACD,aAAa,CAAC,EAAE,MAAM,cAAc,EAAE,GACrC,OAAO,CAAC,IAAI,CAAC,CAiDf;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,cAAc,EACpB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EACjD,aAAa,CAAC,EAAE,MAAM,cAAc,EAAE,GACrC,OAAO,CAAC,IAAI,CAAC,CA8Cf"}
1
+ {"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../src/manager/notifications.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAM/D;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,cAAc,EAAE,EAC1B,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,cAAc,EACtB,aAAa,EAAE,MAAM,cAAc,EAAE,GACpC,IAAI,CAiIN;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,cAAc,EAAE,GACpC,IAAI,CAoFN;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EACjD,eAAe,EAAE,CACf,SAAS,EAAE,MAAM,KACd,OAAO,CACV,KAAK,CAAC;IAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CACrF,EACD,aAAa,CAAC,EAAE,MAAM,cAAc,EAAE,GACrC,OAAO,CAAC,IAAI,CAAC,CAiDf;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,cAAc,EACpB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EACjD,aAAa,CAAC,EAAE,MAAM,cAAc,EAAE,GACrC,OAAO,CAAC,IAAI,CAAC,CA8Cf"}
@@ -27,7 +27,7 @@ export declare function pollRunningTasks(client: OpencodeClient, tasks: Map<stri
27
27
  type?: string;
28
28
  text?: string;
29
29
  }>;
30
- }>>, persistTask?: (task: BackgroundTask) => void): Promise<void>;
30
+ }>>, persistTask?: (task: BackgroundTask) => void, emitTaskEvent?: (eventType: "task.completed" | "task.error" | "task.cancelled", task: BackgroundTask) => void): Promise<void>;
31
31
  /**
32
32
  * Update task progress information.
33
33
  *
@@ -1 +1 @@
1
- {"version":3,"file":"polling.d.ts","sourceRoot":"","sources":["../../src/manager/polling.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAe/D,wBAAgB,YAAY,CAC1B,eAAe,EAAE,KAAK,GAAG,SAAS,EAClC,MAAM,EAAE,MAAM,IAAI,GACjB,KAAK,GAAG,SAAS,CAMnB;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,eAAe,EAAE,KAAK,GAAG,SAAS,GAAG,IAAI,CAIpE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,EAClC,uBAAuB,EAAE,MAAM,GAAG,IAAI,EACtC,kBAAkB,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,EAC3D,mBAAmB,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,EACnD,aAAa,EAAE,MAAM,IAAI,EACzB,WAAW,EAAE,MAAM,IAAI,EACvB,iBAAiB,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,IAAI,EACvD,aAAa,EAAE,MAAM,cAAc,EAAE,EACrC,eAAe,CAAC,EAAE,CAChB,SAAS,EAAE,MAAM,KACd,OAAO,CACV,KAAK,CAAC;IAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CACrF,EACD,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,GAC3C,OAAO,CAAC,IAAI,CAAC,CAsHf;AAED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,IAAI,CAAC,CAyCf;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,CAa9D"}
1
+ {"version":3,"file":"polling.d.ts","sourceRoot":"","sources":["../../src/manager/polling.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAe/D,wBAAgB,YAAY,CAC1B,eAAe,EAAE,KAAK,GAAG,SAAS,EAClC,MAAM,EAAE,MAAM,IAAI,GACjB,KAAK,GAAG,SAAS,CAMnB;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,eAAe,EAAE,KAAK,GAAG,SAAS,GAAG,IAAI,CAIpE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,EAClC,uBAAuB,EAAE,MAAM,GAAG,IAAI,EACtC,kBAAkB,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,EAC3D,mBAAmB,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,EACnD,aAAa,EAAE,MAAM,IAAI,EACzB,WAAW,EAAE,MAAM,IAAI,EACvB,iBAAiB,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,IAAI,EACvD,aAAa,EAAE,MAAM,cAAc,EAAE,EACrC,eAAe,CAAC,EAAE,CAChB,SAAS,EAAE,MAAM,KACd,OAAO,CACV,KAAK,CAAC;IAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CACrF,EACD,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,EAC5C,aAAa,CAAC,EAAE,CACd,SAAS,EAAE,gBAAgB,GAAG,YAAY,GAAG,gBAAgB,EAC7D,IAAI,EAAE,cAAc,KACjB,IAAI,GACR,OAAO,CAAC,IAAI,CAAC,CAsHf;AAED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,IAAI,CAAC,CA6Cf;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,CAa9D"}
@@ -1,5 +1,5 @@
1
1
  import type { BackgroundTask, LaunchInput, OpencodeClient } from "../types";
2
- export declare function launchTask(input: LaunchInput, tasks: Map<string, BackgroundTask>, client: OpencodeClient, getOrCreateBatchId: () => string, setOriginalParentSessionID: (sessionID: string | null) => void, startPolling: () => void, notifyParentSession: (task: BackgroundTask) => void): Promise<BackgroundTask>;
2
+ export declare function launchTask(input: LaunchInput, tasks: Map<string, BackgroundTask>, client: OpencodeClient, getOrCreateBatchId: () => string, setOriginalParentSessionID: (sessionID: string | null) => void, startPolling: () => void, notifyParentSession: (task: BackgroundTask) => void, emitTaskEvent?: (eventType: "task.error", task: BackgroundTask) => void, persistTask?: (task: BackgroundTask) => Promise<void>): Promise<BackgroundTask>;
3
3
  /**
4
4
  * Cancel a running task.
5
5
  *
@@ -37,7 +37,7 @@ export declare function checkAndUpdateTaskStatus(task: BackgroundTask, client: O
37
37
  type?: string;
38
38
  text?: string;
39
39
  }>;
40
- }>>): Promise<BackgroundTask>;
40
+ }>>, emitTaskEvent?: (eventType: "task.completed" | "task.error" | "task.cancelled", task: BackgroundTask) => void): Promise<BackgroundTask>;
41
41
  /**
42
42
  * Clear all tasks.
43
43
  *
@@ -1 +1 @@
1
- {"version":3,"file":"task-lifecycle.d.ts","sourceRoot":"","sources":["../../src/manager/task-lifecycle.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAS5E,wBAAsB,UAAU,CAC9B,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,EAClC,MAAM,EAAE,cAAc,EACtB,kBAAkB,EAAE,MAAM,MAAM,EAChC,0BAA0B,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,EAC9D,YAAY,EAAE,MAAM,IAAI,EACxB,mBAAmB,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,GAClD,OAAO,CAAC,cAAc,CAAC,CA4IzB;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,EAClC,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,cAAc,GACrB,OAAO,CACR,KAAK,CAAC;IACJ,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjD,CAAC,CACH,CAcA;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,cAAc,EACtB,mBAAmB,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,EACnD,gBAAgB,UAAQ,EACxB,eAAe,CAAC,EAAE,CAChB,SAAS,EAAE,MAAM,KACd,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAAC,GACjG,OAAO,CAAC,cAAc,CAAC,CA8CzB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,EAClC,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,IAAI,GACtB,IAAI,CAUN;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,OAAO,CAAC,CAOlB"}
1
+ {"version":3,"file":"task-lifecycle.d.ts","sourceRoot":"","sources":["../../src/manager/task-lifecycle.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAS5E,wBAAsB,UAAU,CAC9B,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,EAClC,MAAM,EAAE,cAAc,EACtB,kBAAkB,EAAE,MAAM,MAAM,EAChC,0BAA0B,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,EAC9D,YAAY,EAAE,MAAM,IAAI,EACxB,mBAAmB,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,EACnD,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,KAAK,IAAI,EACvE,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,GACpD,OAAO,CAAC,cAAc,CAAC,CAqJzB;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,EAClC,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,cAAc,GACrB,OAAO,CACR,KAAK,CAAC;IACJ,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjD,CAAC,CACH,CAcA;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,cAAc,EACtB,mBAAmB,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,EACnD,gBAAgB,UAAQ,EACxB,eAAe,CAAC,EAAE,CAChB,SAAS,EAAE,MAAM,KACd,OAAO,CACV,KAAK,CAAC;IAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CACrF,EACD,aAAa,CAAC,EAAE,CACd,SAAS,EAAE,gBAAgB,GAAG,YAAY,GAAG,gBAAgB,EAC7D,IAAI,EAAE,cAAc,KACjB,IAAI,GACR,OAAO,CAAC,cAAc,CAAC,CAgDzB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,EAClC,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,IAAI,GACtB,IAAI,CAUN;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,OAAO,CAAC,CAOlB"}
package/dist/prompts.d.ts CHANGED
@@ -71,7 +71,7 @@ export declare const FORMAT_TEMPLATES: {
71
71
  taskResult: (shortTaskId: string, description: string, duration: string, content: string) => string;
72
72
  taskResultError: (shortTaskId: string, description: string, duration: string, errMsg: string) => string;
73
73
  listHeader: string;
74
- listSummary: (total: number, running: number, completed: number, errored: number, cancelled: number) => string;
74
+ listSummary: (total: number, running: number, completed: number, errored: number, cancelled: number, totalToolCalls: number) => string;
75
75
  progressSection: (tools: string[]) => string;
76
76
  };
77
77
  export declare const PLACEHOLDER_TEXT: {
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,iBAAiB;;;;;;CAoD7B,CAAC;AAMF,eAAO,MAAM,gBAAgB;gCACC,MAAM;iCAKL,MAAM,eAAe,MAAM;mCAMzB,MAAM,eAAe,MAAM;oCAQ1B,MAAM,cAAc,MAAM;kCAK5B,MAAM,eAAe,MAAM;2CAGlB,MAAM;CAE9C,CAAC;AAMF,eAAO,MAAM,cAAc;2BAEF,MAAM;mCACE,MAAM;;4CAKG,MAAM;;;;4BAStB,MAAM;4BACN,MAAM;0BACR,MAAM;4BACJ,MAAM;2BACP,MAAM;6BACJ,MAAM;kCACD,MAAM;;gCAIR,MAAM;;CAEnC,CAAC;AAMF,eAAO,MAAM,gBAAgB;;CAE5B,CAAC;AAMF,eAAO,MAAM,aAAa;;;CAOzB,CAAC;AAMF,eAAO,MAAM,qBAAqB;wCAEI,MAAM,YAAY,MAAM;qCAG3B,MAAM,YAAY,MAAM;wCAGrB,MAAM,YAAY,MAAM;0CAGtB,MAAM,YAAY,MAAM;uCAG3B,MAAM,YAAY,MAAM;kCAG7B,MAAM,SAAS,MAAM;;CAGpD,CAAC;AAMF,eAAO,MAAM,oBAAoB;+BACJ,MAAM;mCAKF,MAAM;wBAIjB,MAAM,gBAAgB,MAAM;yBAI3B,MAAM;CAC5B,CAAC;AAMF,eAAO,MAAM,YAAY;;;;sCAIW,MAAM;;CAMzC,CAAC;AAMF,eAAO,MAAM,YAAY;;oBAEP,MAAM;;CAEvB,CAAC;AAMF,eAAO,MAAM,gBAAgB;uBAEnB,MAAM,eACC,MAAM,eACN,MAAM,SACZ,MAAM,UACL,MAAM,YACJ,MAAM,mBACC,MAAM,cACX,MAAM,iBACH,MAAM;8BAiBG,MAAM,eAAe,MAAM,YAAY,MAAM,WAAW,MAAM;mCAazD,MAAM,eAAe,MAAM,YAAY,MAAM,UAAU,MAAM;;yBAiBnF,MAAM,WACJ,MAAM,aACJ,MAAM,WACR,MAAM,aACJ,MAAM;6BAIM,MAAM,EAAE;CAClC,CAAC;AAMF,eAAO,MAAM,gBAAgB;;;;;;6BAMF,MAAM;CAChC,CAAC"}
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,iBAAiB;;;;;;CAoD7B,CAAC;AAMF,eAAO,MAAM,gBAAgB;gCACC,MAAM;iCAKL,MAAM,eAAe,MAAM;mCAMzB,MAAM,eAAe,MAAM;oCAQ1B,MAAM,cAAc,MAAM;kCAK5B,MAAM,eAAe,MAAM;2CAGlB,MAAM;CAE9C,CAAC;AAMF,eAAO,MAAM,cAAc;2BAEF,MAAM;mCACE,MAAM;;4CAKG,MAAM;;;;4BAStB,MAAM;4BACN,MAAM;0BACR,MAAM;4BACJ,MAAM;2BACP,MAAM;6BACJ,MAAM;kCACD,MAAM;;gCAIR,MAAM;;CAEnC,CAAC;AAMF,eAAO,MAAM,gBAAgB;;CAE5B,CAAC;AAMF,eAAO,MAAM,aAAa;;;CAOzB,CAAC;AAMF,eAAO,MAAM,qBAAqB;wCAEI,MAAM,YAAY,MAAM;qCAG3B,MAAM,YAAY,MAAM;wCAGrB,MAAM,YAAY,MAAM;0CAGtB,MAAM,YAAY,MAAM;uCAG3B,MAAM,YAAY,MAAM;kCAG7B,MAAM,SAAS,MAAM;;CAGpD,CAAC;AAMF,eAAO,MAAM,oBAAoB;+BACJ,MAAM;mCAKF,MAAM;wBAIjB,MAAM,gBAAgB,MAAM;yBAI3B,MAAM;CAC5B,CAAC;AAMF,eAAO,MAAM,YAAY;;;;sCAIW,MAAM;;CAMzC,CAAC;AAMF,eAAO,MAAM,YAAY;;oBAEP,MAAM;;CAEvB,CAAC;AAMF,eAAO,MAAM,gBAAgB;uBAEnB,MAAM,eACC,MAAM,eACN,MAAM,SACZ,MAAM,UACL,MAAM,YACJ,MAAM,mBACC,MAAM,cACX,MAAM,iBACH,MAAM;8BAiBG,MAAM,eAAe,MAAM,YAAY,MAAM,WAAW,MAAM;mCAazD,MAAM,eAAe,MAAM,YAAY,MAAM,UAAU,MAAM;;yBAiBnF,MAAM,WACJ,MAAM,aACJ,MAAM,WACR,MAAM,aACJ,MAAM,kBACD,MAAM;6BAIC,MAAM,EAAE;CAClC,CAAC;AAMF,eAAO,MAAM,gBAAgB;;;;;;6BAMF,MAAM;CAChC,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * CORS headers applied to all API responses.
3
+ * Safe to use wildcard because server binds to 127.0.0.1 only.
4
+ */
5
+ export declare const CORS_HEADERS: Record<string, string>;
6
+ /**
7
+ * Adds CORS headers to an existing Response.
8
+ */
9
+ export declare function withCors(response: Response): Response;
10
+ /**
11
+ * Creates a JSON response with CORS headers.
12
+ */
13
+ export declare function jsonResponse(data: unknown, status?: number): Response;
14
+ /**
15
+ * Creates an error JSON response with CORS headers.
16
+ */
17
+ export declare function errorResponse(error: string, status: number): Response;
18
+ /**
19
+ * Handles CORS preflight (OPTIONS) requests.
20
+ */
21
+ export declare function preflightResponse(): Response;
22
+ //# sourceMappingURL=cors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cors.d.ts","sourceRoot":"","sources":["../../src/server/cors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAI/C,CAAC;AAEF;;GAEG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAKrD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,SAAM,GAAG,QAAQ,CAOlE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,CAErE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,QAAQ,CAE5C"}
@@ -0,0 +1,20 @@
1
+ import { SSEBroadcaster } from "./sse";
2
+ export declare class StatusApiServer {
3
+ private manager;
4
+ private server;
5
+ private broadcaster;
6
+ private unsubscribe;
7
+ private startedAt;
8
+ private constructor();
9
+ /**
10
+ * Start the API server. Returns null if disabled via env var.
11
+ */
12
+ static start(manager: any): Promise<StatusApiServer | null>;
13
+ private bind;
14
+ private buildStatsData;
15
+ getPort(): number;
16
+ getUrl(): string;
17
+ getBroadcaster(): SSEBroadcaster;
18
+ stop(): Promise<void>;
19
+ }
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,cAAc,EAA0C,MAAM,OAAO,CAAC;AAG/E,qBAAa,eAAe;IAOxB,OAAO,CAAC,OAAO;IANjB,OAAO,CAAC,MAAM,CAA6C;IAC3D,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO;IAUP;;OAEG;WACU,KAAK,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;YAWnD,IAAI;IAqGlB,OAAO,CAAC,cAAc;IAwCtB,OAAO,IAAI,MAAM;IAIjB,MAAM,IAAI,MAAM;IAKhB,cAAc,IAAI,cAAc;IAI1B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAe5B"}
@@ -0,0 +1,14 @@
1
+ import type { BackgroundTask } from "../types";
2
+ /** Interface for the subset of BackgroundManager methods routes need */
3
+ export interface RouteManager {
4
+ getAllTasks(): BackgroundTask[];
5
+ getTask(id: string): BackgroundTask | undefined;
6
+ getTaskMessages(sessionID: string): Promise<Array<unknown>>;
7
+ }
8
+ export declare function handleHealth(_req: Request, manager: RouteManager): Response;
9
+ export declare function handleStats(_req: Request, manager: RouteManager): Response;
10
+ export declare function handleTaskList(req: Request, manager: RouteManager): Response;
11
+ export declare function handleTaskDetail(req: Request, manager: RouteManager, id: string): Response;
12
+ export declare function handleTaskLogs(req: Request, manager: RouteManager, id: string): Promise<Response>;
13
+ export declare function handleTaskGroup(req: Request, manager: RouteManager, groupId: string): Response;
14
+ //# sourceMappingURL=routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/server/routes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAc/C,wEAAwE;AACxE,MAAM,WAAW,YAAY;IAC3B,WAAW,IAAI,cAAc,EAAE,CAAC;IAChC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;IAChD,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;CAC7D;AAQD,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,GAAG,QAAQ,CAS3E;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,GAAG,QAAQ,CA4C1E;AAMD,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,GAAG,QAAQ,CAyD5E;AAMD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,GAAG,QAAQ,CAM1F;AAMD,wBAAsB,cAAc,CAClC,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,YAAY,EACrB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,QAAQ,CAAC,CAanB;AAMD,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,GAAG,QAAQ,CA6D9F"}
@@ -0,0 +1,44 @@
1
+ import type { BackgroundTask } from "../types";
2
+ import type { SSEEventType, StatsResponse } from "./types";
3
+ type SSEController = ReadableStreamDefaultController<Uint8Array>;
4
+ /**
5
+ * Manages SSE subscribers and broadcasts events to all connected clients.
6
+ */
7
+ export declare class SSEBroadcaster {
8
+ private subscribers;
9
+ private encoder;
10
+ /**
11
+ * Add a subscriber. Returns false if at capacity.
12
+ */
13
+ addSubscriber(controller: SSEController): boolean;
14
+ /**
15
+ * Remove a subscriber.
16
+ */
17
+ removeSubscriber(controller: SSEController): void;
18
+ /**
19
+ * Broadcast an SSE event to all subscribers.
20
+ */
21
+ broadcast(eventType: SSEEventType, data: unknown): void;
22
+ /**
23
+ * Send an event to a single subscriber.
24
+ */
25
+ sendTo(controller: SSEController, eventType: SSEEventType, data: unknown): void;
26
+ getSubscriberCount(): number;
27
+ /**
28
+ * Format data as SSE wire format:
29
+ * event: <type>\ndata: <json>\n\n
30
+ */
31
+ private formatSSE;
32
+ }
33
+ /** Interface for data needed by SSE handler */
34
+ export interface SSEDataProvider {
35
+ getAllTasks(): BackgroundTask[];
36
+ buildStats(): StatsResponse;
37
+ }
38
+ /**
39
+ * Handle GET /v1/events — SSE stream.
40
+ * Sends snapshot on connect, then keeps connection open for delta events + heartbeat.
41
+ */
42
+ export declare function handleSSERequest(req: Request, broadcaster: SSEBroadcaster, dataProvider: SSEDataProvider): Response;
43
+ export {};
44
+ //# sourceMappingURL=sse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../../src/server/sse.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE3D,KAAK,aAAa,GAAG,+BAA+B,CAAC,UAAU,CAAC,CAAC;AAEjE;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,OAAO,CAAqB;IAEpC;;OAEG;IACH,aAAa,CAAC,UAAU,EAAE,aAAa,GAAG,OAAO;IAQjD;;OAEG;IACH,gBAAgB,CAAC,UAAU,EAAE,aAAa,GAAG,IAAI;IAIjD;;OAEG;IACH,SAAS,CAAC,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI;IAcvD;;OAEG;IACH,MAAM,CAAC,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI;IAS/E,kBAAkB,IAAI,MAAM;IAI5B;;;OAGG;IACH,OAAO,CAAC,SAAS;CAGlB;AAED,+CAA+C;AAC/C,MAAM,WAAW,eAAe;IAC9B,WAAW,IAAI,cAAc,EAAE,CAAC;IAChC,UAAU,IAAI,aAAa,CAAC;CAC7B;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,OAAO,EACZ,WAAW,EAAE,cAAc,EAC3B,YAAY,EAAE,eAAe,GAC5B,QAAQ,CAmDV"}
@@ -0,0 +1,69 @@
1
+ import type { BackgroundTask } from "../types";
2
+ export interface HealthResponse {
3
+ status: "ok";
4
+ uptime: number;
5
+ version: string;
6
+ taskCount: number;
7
+ }
8
+ export interface StatsResponse {
9
+ byStatus: Record<string, number>;
10
+ byAgent: Record<string, number>;
11
+ toolCallsByName: Record<string, number>;
12
+ duration: {
13
+ avg: number;
14
+ max: number;
15
+ min: number;
16
+ };
17
+ totalTasks: number;
18
+ activeTasks: number;
19
+ }
20
+ export interface PaginatedTasksResponse {
21
+ tasks: BackgroundTask[];
22
+ total: number;
23
+ limit: number;
24
+ offset: number;
25
+ }
26
+ export interface TaskLogsResponse {
27
+ messages: unknown[];
28
+ taskId: string;
29
+ retrievedAt: string;
30
+ }
31
+ export interface TaskGroupResponse {
32
+ groupId: string;
33
+ tasks: BackgroundTask[];
34
+ stats: {
35
+ completed: number;
36
+ running: number;
37
+ error: number;
38
+ cancelled: number;
39
+ total: number;
40
+ completionRate: number;
41
+ totalToolCalls: number;
42
+ toolCallsByName: Record<string, number>;
43
+ duration: number;
44
+ };
45
+ }
46
+ export interface ErrorResponse {
47
+ error: string;
48
+ status: number;
49
+ }
50
+ export type SSEEventType = "snapshot" | "task.created" | "task.updated" | "task.completed" | "task.error" | "task.cancelled" | "heartbeat";
51
+ export interface SnapshotEvent {
52
+ tasks: BackgroundTask[];
53
+ stats: StatsResponse;
54
+ }
55
+ export interface TaskDeltaEvent {
56
+ task: BackgroundTask;
57
+ }
58
+ export interface HeartbeatEvent {
59
+ ts: string;
60
+ }
61
+ export type SSEEventData = SnapshotEvent | TaskDeltaEvent | HeartbeatEvent;
62
+ export interface ServerInfo {
63
+ port: number;
64
+ pid: number;
65
+ startedAt: string;
66
+ url: string;
67
+ version: string;
68
+ }
69
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/server/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAwB,MAAM,UAAU,CAAC;AAMrE,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,IAAI,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,QAAQ,EAAE;QACR,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,KAAK,EAAE;QACL,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACxC,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAMD,MAAM,MAAM,YAAY,GACpB,UAAU,GACV,cAAc,GACd,cAAc,GACd,gBAAgB,GAChB,YAAY,GACZ,gBAAgB,GAChB,WAAW,CAAC;AAEhB,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,KAAK,EAAE,aAAa,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,cAAc,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,cAAc,GAAG,cAAc,CAAC;AAM3E,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB"}
package/dist/storage.d.ts CHANGED
@@ -26,4 +26,38 @@ export declare function getPersistedTask(sessionID: string): Promise<PersistedTa
26
26
  * Deletes a single task from disk.
27
27
  */
28
28
  export declare function deletePersistedTask(sessionID: string): Promise<void>;
29
+ /**
30
+ * Loads all persisted tasks from disk with their session IDs.
31
+ * Returns an array of tasks with sessionID included for API consumption.
32
+ */
33
+ export declare function loadAllTasks(): Promise<Array<{
34
+ sessionID: string;
35
+ } & PersistedTask>>;
36
+ /**
37
+ * Writes server discovery info to disk.
38
+ * Used by the HTTP Status API server to advertise its endpoint.
39
+ */
40
+ export declare function writeServerInfo(info: {
41
+ port: number;
42
+ pid: number;
43
+ startedAt: string;
44
+ url: string;
45
+ version: string;
46
+ }): Promise<void>;
47
+ /**
48
+ * Reads server discovery info from disk.
49
+ * Returns null if the file doesn't exist.
50
+ */
51
+ export declare function readServerInfo(): Promise<{
52
+ port: number;
53
+ pid: number;
54
+ startedAt: string;
55
+ url: string;
56
+ version: string;
57
+ } | null>;
58
+ /**
59
+ * Deletes the server discovery info file.
60
+ * Called when the HTTP Status API server shuts down.
61
+ */
62
+ export declare function deleteServerInfo(): Promise<void>;
29
63
  //# sourceMappingURL=storage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AA8B7C;;;GAGG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAYtD;AAED;;;GAGG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CA8BxE;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBnF;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAIpF;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAG5F;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAM1E"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AA8B7C;;;GAGG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAYtD;AAED;;;GAGG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CA8BxE;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBnF;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAIpF;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAG5F;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAM1E;AAED;;;GAGG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,KAAK,CAAC;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa,CAAC,CAAC,CAG1F;AAQD;;;GAGG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBhB;AAED;;;GAGG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,IAAI,CAAC,CAwCR;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAuBtD"}
@@ -2,12 +2,12 @@ import { type ToolDefinition } from "@opencode-ai/plugin";
2
2
  import type { BackgroundTask } from "../types";
3
3
  /**
4
4
  * Creates the background_cancel tool for cancelling running tasks
5
- * @param manager - BackgroundManager instance with getTask(), cancelTask(), resolveTaskId() methods
5
+ * @param manager - BackgroundManager instance with getTaskWithFallback(), cancelTask(), resolveTaskIdWithFallback() methods
6
6
  * @returns Tool definition for background_cancel
7
7
  */
8
8
  export declare function createBackgroundCancel(manager: {
9
- getTask(taskId: string): BackgroundTask | undefined;
10
- resolveTaskId(idOrPrefix: string): string | null;
9
+ getTaskWithFallback(id: string): Promise<BackgroundTask | undefined>;
10
+ resolveTaskIdWithFallback(idOrPrefix: string): Promise<string | null>;
11
11
  cancelTask(taskId: string): Promise<void>;
12
12
  }): ToolDefinition;
13
13
  //# sourceMappingURL=cancel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cancel.d.ts","sourceRoot":"","sources":["../../src/tools/cancel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAQ,MAAM,qBAAqB,CAAC;AAGhE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE;IAC9C,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;IACpD,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACjD,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C,GAAG,cAAc,CA4BjB"}
1
+ {"version":3,"file":"cancel.d.ts","sourceRoot":"","sources":["../../src/tools/cancel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAQ,MAAM,qBAAqB,CAAC;AAGhE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE;IAC9C,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IACrE,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACtE,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C,GAAG,cAAc,CA6BjB"}
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/tools/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAQ,MAAM,qBAAqB,CAAC;AAGhE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAM/C,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAC5C,WAAW,IAAI,cAAc,EAAE,CAAC;CACjC,GAAG,cAAc,CAmEjB"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/tools/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAQ,MAAM,qBAAqB,CAAC;AAGhE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAM/C,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAC5C,WAAW,IAAI,cAAc,EAAE,CAAC;CACjC,GAAG,cAAc,CAgFjB"}
@@ -2,12 +2,13 @@ import { type ToolDefinition } from "@opencode-ai/plugin";
2
2
  import type { BackgroundTask } from "../types";
3
3
  /**
4
4
  * Creates the background_output tool for retrieving task status and results
5
- * @param manager - BackgroundManager instance with getTask(), checkAndUpdateTaskStatus(), waitForTask(), resolveTaskId() methods
5
+ * @param manager - BackgroundManager instance with getTask(), checkAndUpdateTaskStatus(), waitForTask(), resolveTaskIdWithFallback() methods
6
6
  * @returns Tool definition for background_output
7
7
  */
8
8
  export declare function createBackgroundOutput(manager: {
9
9
  getTask(taskId: string): BackgroundTask | undefined;
10
- resolveTaskId(idOrPrefix: string): string | null;
10
+ resolveTaskIdWithFallback(idOrPrefix: string): Promise<string | null>;
11
+ getTaskWithFallback(id: string): Promise<BackgroundTask | undefined>;
11
12
  checkAndUpdateTaskStatus(task: BackgroundTask, skipNotification?: boolean): Promise<BackgroundTask>;
12
13
  waitForTask(taskId: string, timeoutMs: number): Promise<BackgroundTask | null>;
13
14
  getTaskMessages(sessionID: string): Promise<any[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/tools/output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAQ,MAAM,qBAAqB,CAAC;AAGhE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAO/C;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE;IAC9C,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;IACpD,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACjD,wBAAwB,CACtB,IAAI,EAAE,cAAc,EACpB,gBAAgB,CAAC,EAAE,OAAO,GACzB,OAAO,CAAC,cAAc,CAAC,CAAC;IAC3B,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAE/E,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;CACpD,GAAG,cAAc,CAyEjB"}
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/tools/output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAQ,MAAM,qBAAqB,CAAC;AAGhE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAO/C;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE;IAC9C,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;IACpD,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACtE,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IACrE,wBAAwB,CACtB,IAAI,EAAE,cAAc,EACpB,gBAAgB,CAAC,EAAE,OAAO,GACzB,OAAO,CAAC,cAAc,CAAC,CAAC;IAC3B,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAE/E,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;CACpD,GAAG,cAAc,CA0EjB"}
@@ -3,6 +3,7 @@ import type { BackgroundTask, LaunchInput } from "../types";
3
3
  import { type ResumeManager } from "./resume";
4
4
  interface TaskManager extends ResumeManager {
5
5
  launch(input: LaunchInput): Promise<BackgroundTask>;
6
+ getTaskSessionIds(): string[];
6
7
  }
7
8
  /**
8
9
  * Creates the background_task tool for launching async background agent tasks
@@ -1 +1 @@
1
- {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/tools/task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAQ,MAAM,qBAAqB,CAAC;AAShE,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,KAAK,aAAa,EAAqC,MAAM,UAAU,CAAC;AAMjF,UAAU,WAAY,SAAQ,aAAa;IACzC,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CACrD;AAMD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CAkCzE"}
1
+ {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/tools/task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAQ,MAAM,qBAAqB,CAAC;AAShE,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,KAAK,aAAa,EAAqC,MAAM,UAAU,CAAC;AAMjF,UAAU,WAAY,SAAQ,aAAa;IACzC,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACpD,iBAAiB,IAAI,MAAM,EAAE,CAAC;CAC/B;AAMD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CAkCzE"}
package/dist/types.d.ts CHANGED
@@ -2,6 +2,7 @@ import type { PluginInput } from "@opencode-ai/plugin";
2
2
  export type BackgroundTaskStatus = "running" | "completed" | "error" | "cancelled" | "resumed";
3
3
  export interface TaskProgress {
4
4
  toolCalls: number;
5
+ toolCallsByName: Record<string, number>;
5
6
  lastTools: string[];
6
7
  lastUpdate: string;
7
8
  }
@@ -17,6 +18,12 @@ export interface PersistedTask {
17
18
  status: BackgroundTaskStatus;
18
19
  resumeCount?: number;
19
20
  isForked?: boolean;
21
+ completedAt?: string;
22
+ error?: string;
23
+ result?: string;
24
+ progress?: TaskProgress;
25
+ startedAt?: string;
26
+ batchId?: string;
20
27
  }
21
28
  /**
22
29
  * Full task object used in memory.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAMvD,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,WAAW,GAAG,SAAS,CAAC;AAE/F,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,oBAAoB,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAMvD,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,WAAW,GAAG,SAAS,CAAC;AAE/F,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,oBAAoB,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "better-opencode-async-agents",
3
- "version": "0.2.0",
3
+ "version": "0.4.0",
4
4
  "description": "Background task management plugin for OpenCode AI",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",