@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 +24 -0
- package/dist/index.d.ts +7 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -9
- package/dist/index.js.map +1 -1
- package/package.json +17 -5
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
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG
|
|
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 {
|
|
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
|
-
|
|
15
|
-
|
|
16
|
-
export
|
|
17
|
-
|
|
18
|
-
|
|
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
|
-
|
|
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
|
-
|
|
94
|
-
|
|
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":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAgB,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC9F,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAQ3D,kDAAkD;AAClD,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;AAGnE,eAAe,YAAY,CAAC;IAC1B,IAAI,EAAE,6BAA6B;IACnC,WAAW,EAAE,aAAa;IAC1B,SAAS,EAAE,OAAO;IAClB,IAAI;IACJ,KAAK,CAAC,IAAI;QACR,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;CACF,CAAC,CAAC;AAEH,SAAS,kBAAkB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAQ;IACpE,kEAAkE;IAClE,MAAM,KAAK,GAAG,gBAAgB,CAAqB,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IAE5F,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE;QAC3B,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ;YAAE,OAAO;QAClD,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,QAAQ,CAAC;QACb,UAAU,EAAE;YACV,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE;gBACR,IAAI,EAAE,oBAAoB;gBAC1B,WAAW,EACT,8CAA8C;oBAC9C,qDAAqD;oBACrD,+EAA+E;oBAC/E,yFAAyF;oBACzF,sCAAsC;oBACtC,0CAA0C;gBAC5C,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,SAAS,EAAE;4BACT,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,mDAAmD;yBACjE;qBACF;oBACD,QAAQ,EAAE,EAAE;oBACZ,oBAAoB,EAAE,KAAK;iBAC5B;aACF;SACF;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;YAC/B,MAAM,SAAS,GAAI,IAAI,CAAC,SAAoB,IAAI,OAAO,CAAC,SAAS,CAAC;YAClE,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC/B,IAAI,CAAC,CAAC,EAAE,CAAC;gBACP,OAAO,IAAI,CAAC,SAAS,CAAC;oBACpB,MAAM,EAAE,IAAI;oBACZ,SAAS;oBACT,MAAM,EACJ,6DAA6D;wBAC7D,wBAAwB;iBAC3B,CAAC,CAAC;YACL,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC;YACxC,MAAM,GAAG,GACP,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;YACzG,4DAA4D;YAC5D,wCAAwC;YACxC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;iBACxC,MAAM,CAAC,CAAC,CAAC,EAAyB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;iBAC9D,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3E,6CAA6C;YAC7C,+BAA+B;YAC/B,MAAM,eAAe,GACnB,uDAAuD,CAAC;YAC1D,MAAM,MAAM,GACV,CAAC,CAAC,UAAU,IAAI,IAAI;gBAClB,CAAC,CAAC,gDAAgD,eAAe,EAAE;gBACnE,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,GAAG;oBACnB,CAAC,CAAC,WAAW,eAAe,EAAE;oBAC9B,CAAC,CAAC,YAAY,CAAC;YACrB,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,SAAS;gBACT,KAAK;gBACL,UAAU,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE;gBAChD,GAAG;gBACH,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,aAAa,EAAE,CAAC,CAAC,aAAa;gBAC9B,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC3C,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,IAAI;gBACJ,MAAM;aACP,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;IAEH,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IACzC,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;AAC1C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aalis/plugin-prompt-budget",
|
|
3
|
-
"version": "0.
|
|
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.
|
|
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.
|
|
34
|
-
"@aalis/api-agent": "0.
|
|
33
|
+
"@aalis/core": "0.17.0",
|
|
34
|
+
"@aalis/api-agent": "0.8.0"
|
|
35
35
|
},
|
|
36
36
|
"peerDependencies": {
|
|
37
|
-
"@aalis/core": ">=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",
|