@downcity/plugins 1.0.26 → 1.0.27

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.
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * 关键点(中文)
5
5
  * - workboard 是一个 runtime 观测面板插件,负责提供结构化工作快照。
6
- * - 当前通过 plugin HTTP 注入暴露 `/api/workboard/snapshot`,供 console 代理与 UI 消费。
6
+ * - 当前同时通过 plugin action 与 HTTP 注入提供快照,供 Town/RPC 与旧 HTTP 宿主复用。
7
7
  */
8
8
  import type { AgentRuntime } from "@downcity/agent/internal/types/runtime/agent/AgentRuntime.js";
9
9
  import { BasePlugin } from "@downcity/agent/internal/plugin/core/BasePlugin.js";
@@ -1 +1 @@
1
- {"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/workboard/Plugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAC;AACjG,OAAO,EAAE,UAAU,EAAE,MAAM,oDAAoD,CAAC;AA0EhF;;GAEG;AACH,qBAAa,eAAgB,SAAQ,UAAU;IAC7C,QAAQ,CAAC,IAAI,eAAe;gBAEhB,KAAK,GAAE,YAAY,GAAG,IAAW;CAI9C"}
1
+ {"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/workboard/Plugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAC;AACjG,OAAO,EAAE,UAAU,EAAE,MAAM,oDAAoD,CAAC;AAkGhF;;GAEG;AACH,qBAAa,eAAgB,SAAQ,UAAU;IAC7C,QAAQ,CAAC,IAAI,eAAe;gBAEhB,KAAK,GAAE,YAAY,GAAG,IAAW;CAI9C"}
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * 关键点(中文)
5
5
  * - workboard 是一个 runtime 观测面板插件,负责提供结构化工作快照。
6
- * - 当前通过 plugin HTTP 注入暴露 `/api/workboard/snapshot`,供 console 代理与 UI 消费。
6
+ * - 当前同时通过 plugin action 与 HTTP 注入提供快照,供 Town/RPC 与旧 HTTP 宿主复用。
7
7
  */
8
8
  import { BasePlugin } from "@downcity/agent/internal/plugin/core/BasePlugin.js";
9
9
  import { isPluginEnabled } from "@downcity/agent/internal/plugin/core/Activation.js";
@@ -27,6 +27,28 @@ function createWorkboardPluginDefinition(plugin) {
27
27
  reasons: [],
28
28
  };
29
29
  },
30
+ actions: {
31
+ snapshot: {
32
+ execute: async ({ context }) => {
33
+ const availability = await plugin.availability?.(context);
34
+ if (availability && availability.available !== true) {
35
+ return {
36
+ success: false,
37
+ error: availability.reasons.join("; ") || "workboard unavailable",
38
+ };
39
+ }
40
+ const snapshot = await getWorkboardSnapshotStore({
41
+ contextResolver: () => context,
42
+ }).readSnapshot();
43
+ return {
44
+ success: true,
45
+ data: {
46
+ snapshot,
47
+ },
48
+ };
49
+ },
50
+ },
51
+ },
30
52
  http: {
31
53
  server: {
32
54
  authPolicies: [
@@ -1 +1 @@
1
- {"version":3,"file":"Plugin.js","sourceRoot":"","sources":["../../src/workboard/Plugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,oDAAoD,CAAC;AAEhF,OAAO,EAAE,eAAe,EAAE,MAAM,oDAAoD,CAAC;AACrF,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAGzE,SAAS,+BAA+B,CAAC,MAAc;IACrD,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EACT,iJAAiJ;QACnJ,YAAY,CAAC,OAAO;YAClB,IAAI,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC1C,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,SAAS,EAAE,KAAK;oBAChB,OAAO,EAAE,CAAC,6CAA6C,CAAC;iBACzD,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,EAAE;aACZ,CAAC;QACJ,CAAC;QACD,IAAI,EAAE;YACJ,MAAM,EAAE;gBACN,YAAY,EAAE;oBACZ;wBACE,IAAI,EAAE,kBAAkB;wBACxB,MAAM,EAAE,KAAK;wBACb,WAAW,EAAE,IAAI;wBACjB,cAAc,EAAE,CAAC,YAAY,CAAC;qBAC/B;iBACF;gBACD,QAAQ,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE;oBAC1B,GAAG,CAAC,GAAG,CAAC,yBAAyB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;wBAC7C,IAAI,CAAC;4BACH,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC;4BAC/D,IAAI,YAAY,IAAI,YAAY,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;gCACpD,OAAO,CAAC,CAAC,IAAI,CACX;oCACE,OAAO,EAAE,KAAK;oCACd,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,uBAAuB;iCAClE,EACD,GAAG,CACJ,CAAC;4BACJ,CAAC;4BAED,MAAM,QAAQ,GAAG,MAAM,yBAAyB,CAAC;gCAC/C,eAAe,EAAE,UAAU;6BAC5B,CAAC,CAAC,YAAY,EAAE,CAAC;4BAClB,MAAM,OAAO,GAA8B;gCACzC,OAAO,EAAE,IAAI;gCACb,QAAQ;6BACT,CAAC;4BACF,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBACzB,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BACf,OAAO,CAAC,CAAC,IAAI,CACX;gCACE,OAAO,EAAE,KAAK;gCACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;6BAC9D,EACD,GAAG,CACJ,CAAC;wBACJ,CAAC;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC;aACF;SACF;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,UAAU;IACpC,IAAI,GAAG,WAAW,CAAC;IAE5B,YAAY,QAA6B,IAAI;QAC3C,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,+BAA+B,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7D,CAAC;CACF"}
1
+ {"version":3,"file":"Plugin.js","sourceRoot":"","sources":["../../src/workboard/Plugin.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@downcity/plugins",
3
- "version": "1.0.26",
3
+ "version": "1.0.27",
4
4
  "type": "module",
5
5
  "description": "Downcity 内建 plugin 集合包",
6
6
  "main": "./bin/index.js",
@@ -22,7 +22,7 @@
22
22
  "node-cron": "^4.2.1",
23
23
  "ws": "^8.21.0",
24
24
  "zod": "^4.4.3",
25
- "@downcity/agent": "^1.1.69"
25
+ "@downcity/agent": "^1.1.71"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@types/better-sqlite3": "^7.6.13",
@@ -3,12 +3,13 @@
3
3
  *
4
4
  * 关键点(中文)
5
5
  * - workboard 是一个 runtime 观测面板插件,负责提供结构化工作快照。
6
- * - 当前通过 plugin HTTP 注入暴露 `/api/workboard/snapshot`,供 console 代理与 UI 消费。
6
+ * - 当前同时通过 plugin action 与 HTTP 注入提供快照,供 Town/RPC 与旧 HTTP 宿主复用。
7
7
  */
8
8
 
9
9
  import type { AgentRuntime } from "@downcity/agent/internal/types/runtime/agent/AgentRuntime.js";
10
10
  import { BasePlugin } from "@downcity/agent/internal/plugin/core/BasePlugin.js";
11
11
  import type { Plugin } from "@downcity/agent/internal/plugin/types/Plugin.js";
12
+ import type { JsonValue } from "@downcity/agent/internal/types/common/Json.js";
12
13
  import { isPluginEnabled } from "@downcity/agent/internal/plugin/core/Activation.js";
13
14
  import { getWorkboardSnapshotStore } from "@/workboard/runtime/Store.js";
14
15
  import type { WorkboardSnapshotResponse } from "@/workboard/types/Workboard.js";
@@ -33,6 +34,29 @@ function createWorkboardPluginDefinition(plugin: Plugin): Plugin {
33
34
  reasons: [],
34
35
  };
35
36
  },
37
+ actions: {
38
+ snapshot: {
39
+ execute: async ({ context }) => {
40
+ const availability = await plugin.availability?.(context);
41
+ if (availability && availability.available !== true) {
42
+ return {
43
+ success: false,
44
+ error: availability.reasons.join("; ") || "workboard unavailable",
45
+ };
46
+ }
47
+
48
+ const snapshot = await getWorkboardSnapshotStore({
49
+ contextResolver: () => context,
50
+ }).readSnapshot();
51
+ return {
52
+ success: true,
53
+ data: {
54
+ snapshot,
55
+ } as unknown as JsonValue,
56
+ };
57
+ },
58
+ },
59
+ },
36
60
  http: {
37
61
  server: {
38
62
  authPolicies: [