@aalis/api-commands 0.5.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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Ace Nyan <ace@acenyan.com>
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,25 @@
1
+ # @aalis/api-commands
2
+
3
+ 类型/接口/能力声明包(只导出 `type` 与 `*Capabilities`,不含运行时逻辑)
4
+
5
+ ## 角色
6
+
7
+ 类型/接口/能力声明包(只导出 `type` 与 `*Capabilities`,不含运行时逻辑)
8
+
9
+ ## 安装
10
+
11
+ ```bash
12
+ pnpm add @aalis/api-commands
13
+ ```
14
+
15
+ ## 使用
16
+
17
+ ```ts
18
+ import type { /* ... */ } from '@aalis/api-commands';
19
+ ```
20
+
21
+ 本包为 *-api 类型包;实现见对应的运行时插件。
22
+
23
+ ## 许可
24
+
25
+ 见仓库根目录 LICENSE。
@@ -0,0 +1,162 @@
1
+ import type { CapabilityConfirm, CapabilityRisk, CapabilityVisibility, ExecutionGuard } from '@aalis/api-authority';
2
+ import type { Context } from '@aalis/core';
3
+ /** Handler 收到的会话/选项视图(不含原始 args,位置参数走形参) */
4
+ export interface CommandArgv {
5
+ session: {
6
+ sessionId: string;
7
+ platform: string;
8
+ userId?: string;
9
+ /** 会话信道类型(适配器标注;私聊敏感指令如 /bind 据此设防) */
10
+ sessionType?: 'group' | 'private' | 'channel';
11
+ /** 原始输入文本(含前缀) */
12
+ raw: string;
13
+ };
14
+ options: Record<string, unknown>;
15
+ }
16
+ /**
17
+ * 命令执行函数。
18
+ * @param argv 会话上下文 + 解析后的选项
19
+ * @param positionals 按 inline DSL 顺序解析出的位置参数
20
+ */
21
+ export type CommandHandler = (argv: CommandArgv, ...positionals: unknown[]) => Promise<string | undefined> | string | undefined;
22
+ export type PositionalArgType = 'string' | 'number' | 'boolean' | 'text';
23
+ export interface PositionalArgSpec {
24
+ name: string;
25
+ type: PositionalArgType;
26
+ required: boolean;
27
+ }
28
+ export type OptionValueType = 'string' | 'number' | 'boolean' | 'string[]';
29
+ export interface OptionSpec {
30
+ /** 长选项名 (--name) */
31
+ name: string;
32
+ /** 短选项别名 (-x),可多个 */
33
+ aliases: string[];
34
+ /** 值类型;boolean 表示纯 flag */
35
+ type: OptionValueType;
36
+ /** 占位符名(用于 help 输出),如 'page' */
37
+ valueName?: string;
38
+ /** 是否需要取值 */
39
+ takesValue: boolean;
40
+ /** 值可选时([val:type] 语法),flag 存在但无值给 true */
41
+ valueOptional: boolean;
42
+ description?: string;
43
+ default?: unknown;
44
+ required: boolean;
45
+ choices?: readonly string[];
46
+ }
47
+ /** 注册时的元数据 */
48
+ export interface CommandMeta {
49
+ /** 主能力默认可见性(轴 A;缺省 public);restricted 须被 owner/委托授予。子命令继承父分组声明 */
50
+ visibility?: CapabilityVisibility;
51
+ /** 确认要求(轴 B,与 visibility 正交、owner 也生效):'session'/'always';缺省=不确认。子命令继承父声明 */
52
+ confirm?: CapabilityConfirm;
53
+ /** 风险等级(声明糖):展开为 (visibility, confirm) 默认;显式 visibility/confirm 覆盖 */
54
+ risk?: CapabilityRisk;
55
+ /** 自定义 usage 文本 */
56
+ usage?: string;
57
+ /** 示例 */
58
+ examples?: string[];
59
+ }
60
+ /** 已注册命令(运行期完整态) */
61
+ export interface Command {
62
+ /** 完整点路径名 */
63
+ name: string;
64
+ /** 注册插件名 */
65
+ pluginName: string;
66
+ description: string;
67
+ /** 主能力默认可见性(缺省 public);可被 authority 配置的 authorityOverrides 调整 */
68
+ visibility: CapabilityVisibility;
69
+ /** 生效确认要求(轴 B,含从父分组继承);缺省=不确认 */
70
+ confirm?: CapabilityConfirm;
71
+ /** 原始风险声明(透传,含沿点路径继承);供 authority 派生 minTier:safe→访客/sensitive→朋友/dangerous→信任 */
72
+ risk?: CapabilityRisk;
73
+ /** 别名(完整点路径) */
74
+ aliases: string[];
75
+ positionalArgs: PositionalArgSpec[];
76
+ options: OptionSpec[];
77
+ usage?: string;
78
+ examples?: string[];
79
+ /** 执行函数;分组节点为 undefined */
80
+ handler?: CommandHandler;
81
+ /** 是否为自动创建的分组节点 */
82
+ isGroup: boolean;
83
+ }
84
+ /** 命令服务消费方(CLI / 适配器)传入的执行输入 */
85
+ export interface ExecutionInput {
86
+ sessionId: string;
87
+ platform: string;
88
+ userId?: string;
89
+ /** 会话信道类型(透传自 IncomingMessage.sessionType) */
90
+ sessionType?: 'group' | 'private' | 'channel';
91
+ args: string[];
92
+ raw: string;
93
+ /**
94
+ * 跳过受限被拒后的交互确认弹窗(requestAccess);authorize 仍然生效。
95
+ *
96
+ * 供无法交互确认的受信任系统源(scheduler 等)使用:这些调用的身份来自
97
+ * 创建时固化的 actor(IncomingMessage.actor),能力按 actor 真实持有评估,
98
+ * 只是 cron 上下文里没有人能点确认弹窗,故跳过该步。**不**绕过 authorize(防提权)。
99
+ */
100
+ skipConfirm?: boolean;
101
+ }
102
+ export interface OptionRegisterOptions {
103
+ description?: string;
104
+ default?: unknown;
105
+ required?: boolean;
106
+ choices?: readonly string[];
107
+ }
108
+ export interface CommandBuilder {
109
+ alias(name: string): CommandBuilder;
110
+ option(name: string, syntax: string, options?: OptionRegisterOptions): CommandBuilder;
111
+ action(handler: CommandHandler): CommandBuilder;
112
+ usage(text: string): CommandBuilder;
113
+ example(line: string): CommandBuilder;
114
+ }
115
+ /** 仅供 useCommandService 内部使用:调用 service.command 时携带 pluginName 隐式参数 */
116
+ export interface InternalCommandMeta extends CommandMeta {
117
+ pluginName?: string;
118
+ }
119
+ export interface CommandService {
120
+ prefix: string;
121
+ /**
122
+ * 启动 builder 注册一个命令。
123
+ * @param name 完整点路径名,可含 inline DSL:`'memory.set <key:string> [value:text]'`
124
+ */
125
+ command(name: string, description?: string, meta?: InternalCommandMeta): CommandBuilder;
126
+ /**
127
+ * 注销指令。
128
+ * @param pluginName 只摘该插件的那一层声明,被它覆盖的声明会自动复位。
129
+ * **插件自己的清理必须传它**;缺省会摘掉全部层(管理面用)。
130
+ */
131
+ unregister(name: string, pluginName?: string): void;
132
+ unregisterByPlugin(pluginName: string): void;
133
+ execute(name: string, ctx: ExecutionInput): Promise<string | undefined>;
134
+ parseCommand(input: string): {
135
+ name: string;
136
+ args: string[];
137
+ raw: string;
138
+ } | null;
139
+ /**
140
+ * 判断给定 head + tokens 是否能解析到任何已注册指令节点。
141
+ * inbound middleware 用它区分"已识别的指令"和"碰巧带前缀但无人注册",
142
+ * 后者应被放行到普通消息管道(归档 / 触发等),而不是回显"未知指令"。
143
+ */
144
+ hasMatch(head: string, tokens?: string[]): boolean;
145
+ /** 顶层段是否存在(含分组节点) */
146
+ has(name: string): boolean;
147
+ get(name: string): Command | undefined;
148
+ getNode(name: string | string[]): Command | undefined;
149
+ getAll(): Command[];
150
+ setExecutionGuard(guard: ExecutionGuard): void;
151
+ }
152
+ export interface ScopedCommandService {
153
+ command(name: string, description?: string, meta?: CommandMeta): CommandBuilder;
154
+ readonly raw: CommandService | undefined;
155
+ }
156
+ export declare function useCommandService(ctx: Context): ScopedCommandService;
157
+ declare module '@aalis/core' {
158
+ interface ServiceTypeMap {
159
+ commands: CommandService;
160
+ }
161
+ }
162
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,81 @@
1
+ // ===== 指令服务接口与契约类型(v2 — 链式 builder) =====
2
+ //
3
+ // 本包提供斜杠指令系统的全部"非实现"契约。
4
+ //
5
+ // 核心理念:
6
+ // - 单一 Command 类型,命令层级用 name 的点路径表达('memory.clear.all')
7
+ // - Builder API:useCommandService(ctx).command(name).option().action()
8
+ // - inline DSL 声明位置参数:'memory.set <key:string> [value:text]'
9
+ // - 位置参数作为 handler 形参传入:(argv, key, value) => ...
10
+ //
11
+ // 实现见 @aalis/plugin-commands。
12
+ export function useCommandService(ctx) {
13
+ const pluginName = ctx.id;
14
+ return {
15
+ command(name, description, meta) {
16
+ return makeBuilder(ctx, name, description, { ...meta, pluginName });
17
+ },
18
+ get raw() {
19
+ return ctx.getService('commands');
20
+ },
21
+ };
22
+ }
23
+ /**
24
+ * 同时支持热转发与 bounce 重放的 builder:
25
+ * - calls[] 是权威源:provider 每次上线的 cb 里重新创建 real builder 并重放。
26
+ * - 同时保留 realBuilder 引用:有值时同步转发调用,与原快路径语义一致。
27
+ */
28
+ function makeBuilder(ctx, name, description, meta) {
29
+ const calls = [];
30
+ let realBuilder;
31
+ ctx.whenService('commands', svc => {
32
+ realBuilder = svc.command(name, description, meta);
33
+ for (const c of calls) {
34
+ if (c.kind === 'alias')
35
+ realBuilder.alias(c.name);
36
+ else if (c.kind === 'option')
37
+ realBuilder.option(c.name, c.syntax, c.opts);
38
+ else if (c.kind === 'action')
39
+ realBuilder.action(c.handler);
40
+ else if (c.kind === 'usage')
41
+ realBuilder.usage(c.text);
42
+ else if (c.kind === 'example')
43
+ realBuilder.example(c.line);
44
+ }
45
+ return () => {
46
+ // 必须带上 pluginName:只摘自己那一层声明。不带的话会把同名指令的**全部**声明
47
+ // 一起删掉——包括别的插件先注册的那份,且它不会重新出现。
48
+ svc.unregister(name, meta.pluginName);
49
+ realBuilder = undefined;
50
+ };
51
+ });
52
+ const self = {
53
+ alias(n) {
54
+ calls.push({ kind: 'alias', name: n });
55
+ realBuilder?.alias(n);
56
+ return self;
57
+ },
58
+ option(n, syntax, opts) {
59
+ calls.push({ kind: 'option', name: n, syntax, opts });
60
+ realBuilder?.option(n, syntax, opts);
61
+ return self;
62
+ },
63
+ action(handler) {
64
+ calls.push({ kind: 'action', handler });
65
+ realBuilder?.action(handler);
66
+ return self;
67
+ },
68
+ usage(text) {
69
+ calls.push({ kind: 'usage', text });
70
+ realBuilder?.usage(text);
71
+ return self;
72
+ },
73
+ example(line) {
74
+ calls.push({ kind: 'example', line });
75
+ realBuilder?.example(line);
76
+ return self;
77
+ },
78
+ };
79
+ return self;
80
+ }
81
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,EAAE;AACF,wBAAwB;AACxB,EAAE;AACF,QAAQ;AACR,wDAAwD;AACxD,uEAAuE;AACvE,6DAA6D;AAC7D,kDAAkD;AAClD,EAAE;AACF,8BAA8B;AA6L9B,MAAM,UAAU,iBAAiB,CAAC,GAAY;IAC5C,MAAM,UAAU,GAAG,GAAG,CAAC,EAAE,CAAC;IAC1B,OAAO;QACL,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI;YAC7B,OAAO,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,GAAG;YACL,OAAO,GAAG,CAAC,UAAU,CAAiB,UAAU,CAAC,CAAC;QACpD,CAAC;KACF,CAAC;AACJ,CAAC;AASD;;;;GAIG;AACH,SAAS,WAAW,CAClB,GAAY,EACZ,IAAY,EACZ,WAA+B,EAC/B,IAAyB;IAEzB,MAAM,KAAK,GAAmB,EAAE,CAAC;IACjC,IAAI,WAAuC,CAAC;IAE5C,GAAG,CAAC,WAAW,CAAiB,UAAU,EAAE,GAAG,CAAC,EAAE;QAChD,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;QACnD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;gBAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;iBAC7C,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;gBAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;iBACtE,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;gBAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;iBACvD,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;gBAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;iBAClD,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;gBAAE,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,GAAG,EAAE;YACV,gDAAgD;YAChD,+BAA+B;YAC/B,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACtC,WAAW,GAAG,SAAS,CAAC;QAC1B,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,IAAI,GAAmB;QAC3B,KAAK,CAAC,CAAC;YACL,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;YACvC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI;YACpB,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YACtD,WAAW,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YACrC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,CAAC,OAAO;YACZ,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;YACxC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,CAAC,IAAI;YACR,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACpC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACzB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,CAAC,IAAI;YACV,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACtC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC"}
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "@aalis/api-commands",
3
+ "version": "0.5.0",
4
+ "license": "MIT",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/AalisLabs/Aalis.git",
8
+ "directory": "packages/api-commands"
9
+ },
10
+ "author": "Ace Nyan <ace@acenyan.com>",
11
+ "bugs": {
12
+ "url": "https://github.com/AalisLabs/Aalis/issues"
13
+ },
14
+ "homepage": "https://github.com/AalisLabs/Aalis#readme",
15
+ "type": "module",
16
+ "main": "dist/index.js",
17
+ "types": "dist/index.d.ts",
18
+ "files": [
19
+ "dist"
20
+ ],
21
+ "dependencies": {
22
+ "@aalis/api-authority": ">=0.5.0 <1.0.0"
23
+ },
24
+ "devDependencies": {
25
+ "@types/node": "^22.0.0",
26
+ "typescript": "^5.7.0",
27
+ "@aalis/core": "0.10.0"
28
+ },
29
+ "aalis": {
30
+ "types": true
31
+ },
32
+ "peerDependencies": {
33
+ "@aalis/core": ">=0.2.0 <1.0.0"
34
+ },
35
+ "keywords": [
36
+ "aalis",
37
+ "aalis-api"
38
+ ],
39
+ "scripts": {
40
+ "build": "tsc",
41
+ "dev": "tsc --watch"
42
+ }
43
+ }