@aalis/plugin-prompt-budget 0.5.2 → 0.6.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/README.md ADDED
@@ -0,0 +1,24 @@
1
+ # @aalis/plugin-prompt-budget
2
+
3
+ 提示词预算:token 计数与上下文裁剪自检
4
+
5
+ ## 安装
6
+
7
+ ```bash
8
+ pnpm add @aalis/plugin-prompt-budget
9
+ ```
10
+
11
+ ## 提供 / 依赖
12
+
13
+ `definePlugin` 默认导出:
14
+
15
+ - provides:无
16
+ - uses:`events`、`lifecycle`、`logger`;可选 `tools`
17
+
18
+ ## 文档
19
+
20
+ 详见 [docs/plugins/plugin-prompt-budget.md](../../docs/plugins/plugin-prompt-budget.md)。
21
+
22
+ ## 许可
23
+
24
+ 见仓库根目录 LICENSE。
package/dist/index.d.ts CHANGED
@@ -9,9 +9,11 @@
9
9
  * 实现:监听 `token:usage` 事件维护 sessionId → 最新 usage 缓存,注册
10
10
  * `prompt_budget_info` 工具供 AI 查询。零业务逻辑,纯只读 introspection。
11
11
  */
12
- import type { Context } from '@aalis/core';
13
- export declare const name = "@aalis/plugin-prompt-budget";
14
- export declare const displayName = "Prompt \u9884\u7B97\u81EA\u68C0";
15
- export declare const subsystem = "agent";
16
- export declare function apply(ctx: Context): void;
12
+ declare const _default: import("@aalis/core").PluginDefinition<{
13
+ tools: import("@aalis/core/dist/composition/descriptors").OptionalUse<import("@aalis/api-tools").ToolService, import("@aalis/api-tools").BoundTools>;
14
+ events: import("@aalis/core").ServiceDescriptor<(identity: symbol) => import("@aalis/core").Events, import("@aalis/core").Events>;
15
+ lifecycle: import("@aalis/core").ServiceDescriptor<(identity: symbol) => import("@aalis/core").LifecycleCap, import("@aalis/core").LifecycleCap>;
16
+ logger: import("@aalis/core").ServiceDescriptor<(identity: symbol) => import("@aalis/core").Logger, import("@aalis/core").Logger>;
17
+ }>;
18
+ export default _default;
17
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG3C,eAAO,MAAM,IAAI,gCAAgC,CAAC;AAClD,eAAO,MAAM,WAAW,oCAAgB,CAAC;AACzC,eAAO,MAAM,SAAS,UAAU,CAAC;AAQjC,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAqFxC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;;;;;;;AAiBH,wBAQG"}
package/dist/index.js CHANGED
@@ -9,16 +9,24 @@
9
9
  * 实现:监听 `token:usage` 事件维护 sessionId → 最新 usage 缓存,注册
10
10
  * `prompt_budget_info` 工具供 AI 查询。零业务逻辑,纯只读 introspection。
11
11
  */
12
- import { useToolService } from '@aalis/api-tools';
12
+ import { tools } from '@aalis/api-tools';
13
+ import { definePlugin, events, lifecycle, logger, optional } from '@aalis/core';
13
14
  import { createBoundedMap } from '@aalis/util-bounded-map';
14
- export const name = '@aalis/plugin-prompt-budget';
15
- export const displayName = 'Prompt 预算自检';
16
- export const subsystem = 'agent';
17
- export function apply(ctx) {
18
- const tools = useToolService(ctx);
15
+ /** tools 声明为可选:没有工具服务时本插件照常激活,缓存先攒着,工具服务上线即补登记 */
16
+ const uses = { tools: optional(tools), events, lifecycle, logger };
17
+ export default definePlugin({
18
+ name: '@aalis/plugin-prompt-budget',
19
+ displayName: 'Prompt 预算自检',
20
+ subsystem: 'agent',
21
+ uses,
22
+ apply(caps) {
23
+ registerBudgetTool(caps);
24
+ },
25
+ });
26
+ function registerBudgetTool({ tools, events, lifecycle, logger }) {
19
27
  /** sessionId → 最新一次的 token:usage 快照(派生只读,逐出后 AI 重查即重算);有界防长跑泄漏 */
20
28
  const cache = createBoundedMap({ max: 500, ttlMs: 6 * 60 * 60 * 1000 });
21
- ctx.on('token:usage', u => {
29
+ events.on('token:usage', u => {
22
30
  if (!u || typeof u.sessionId !== 'string')
23
31
  return;
24
32
  cache.set(u.sessionId, { ...u, observedAt: Date.now() });
@@ -90,7 +98,7 @@ export function apply(ctx) {
90
98
  });
91
99
  },
92
100
  });
93
- ctx.onDispose(() => cache.clear());
94
- ctx.logger.info('prompt_budget_info 工具已注册');
101
+ lifecycle.onDispose(() => cache.clear());
102
+ logger.info('prompt_budget_info 工具已注册');
95
103
  }
96
104
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aalis/plugin-prompt-budget",
3
- "version": "0.5.2",
3
+ "version": "0.6.0",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -24,17 +24,29 @@
24
24
  "dist"
25
25
  ],
26
26
  "dependencies": {
27
- "@aalis/api-tools": ">=0.5.1 <1.0.0",
27
+ "@aalis/api-tools": ">=0.9.0 <1.0.0",
28
28
  "@aalis/util-bounded-map": ">=0.5.0 <1.0.0"
29
29
  },
30
30
  "devDependencies": {
31
31
  "@types/node": "^22.0.0",
32
32
  "typescript": "^5.7.0",
33
- "@aalis/core": "0.12.1",
34
- "@aalis/api-agent": "0.7.1"
33
+ "@aalis/core": "0.17.0",
34
+ "@aalis/api-agent": "0.8.0"
35
35
  },
36
36
  "peerDependencies": {
37
- "@aalis/core": ">=0.2.0 <1.0.0"
37
+ "@aalis/core": ">=0.17.0 <1.0.0"
38
+ },
39
+ "aalis": {
40
+ "service": {
41
+ "optional": [
42
+ "tools"
43
+ ],
44
+ "required": [
45
+ "events",
46
+ "lifecycle",
47
+ "logger"
48
+ ]
49
+ }
38
50
  },
39
51
  "scripts": {
40
52
  "build": "tsc",