@yss123/cage-ai 0.0.0-stage → 0.3.1

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 (81) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +77 -2
  3. package/dist/budget.d.ts +64 -0
  4. package/dist/budget.js +54 -0
  5. package/dist/budget.js.map +1 -0
  6. package/dist/context-read.d.ts +38 -0
  7. package/dist/context-read.js +124 -0
  8. package/dist/context-read.js.map +1 -0
  9. package/dist/context-schema.d.ts +9 -0
  10. package/dist/context-schema.js +16 -0
  11. package/dist/context-schema.js.map +1 -0
  12. package/dist/context.d.ts +27 -0
  13. package/dist/context.js +83 -0
  14. package/dist/context.js.map +1 -0
  15. package/dist/execution-schema.d.ts +9 -0
  16. package/dist/execution-schema.js +20 -0
  17. package/dist/execution-schema.js.map +1 -0
  18. package/dist/history.d.ts +43 -0
  19. package/dist/history.js +139 -0
  20. package/dist/history.js.map +1 -0
  21. package/dist/http.d.ts +15 -0
  22. package/dist/http.js +197 -0
  23. package/dist/http.js.map +1 -0
  24. package/dist/index.d.ts +33 -0
  25. package/dist/index.js +100 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/model-failure.d.ts +66 -0
  28. package/dist/model-failure.js +85 -0
  29. package/dist/model-failure.js.map +1 -0
  30. package/dist/model.d.ts +50 -0
  31. package/dist/model.js +93 -0
  32. package/dist/model.js.map +1 -0
  33. package/dist/models.d.ts +75 -0
  34. package/dist/models.js +241 -0
  35. package/dist/models.js.map +1 -0
  36. package/dist/personalities.d.ts +87 -0
  37. package/dist/personalities.js +191 -0
  38. package/dist/personalities.js.map +1 -0
  39. package/dist/personality-presets.d.ts +14 -0
  40. package/dist/personality-presets.js +24 -0
  41. package/dist/personality-presets.js.map +1 -0
  42. package/dist/prompt.d.ts +67 -0
  43. package/dist/prompt.js +148 -0
  44. package/dist/prompt.js.map +1 -0
  45. package/dist/query.d.ts +13 -0
  46. package/dist/query.js +82 -0
  47. package/dist/query.js.map +1 -0
  48. package/dist/request-plan.d.ts +59 -0
  49. package/dist/request-plan.js +168 -0
  50. package/dist/request-plan.js.map +1 -0
  51. package/dist/responses.d.ts +29 -0
  52. package/dist/responses.js +134 -0
  53. package/dist/responses.js.map +1 -0
  54. package/dist/runtime.d.ts +172 -0
  55. package/dist/runtime.js +1189 -0
  56. package/dist/runtime.js.map +1 -0
  57. package/dist/schema.d.ts +11 -0
  58. package/dist/schema.js +51 -0
  59. package/dist/schema.js.map +1 -0
  60. package/dist/security.d.ts +23 -0
  61. package/dist/security.js +73 -0
  62. package/dist/security.js.map +1 -0
  63. package/dist/state.d.ts +238 -0
  64. package/dist/state.js +11 -0
  65. package/dist/state.js.map +1 -0
  66. package/dist/store.d.ts +113 -0
  67. package/dist/store.js +456 -0
  68. package/dist/store.js.map +1 -0
  69. package/dist/text-stream.d.ts +62 -0
  70. package/dist/text-stream.js +99 -0
  71. package/dist/text-stream.js.map +1 -0
  72. package/dist/tool-catalog.d.ts +23 -0
  73. package/dist/tool-catalog.js +53 -0
  74. package/dist/tool-catalog.js.map +1 -0
  75. package/dist/tools.d.ts +54 -0
  76. package/dist/tools.js +259 -0
  77. package/dist/tools.js.map +1 -0
  78. package/dist/types.d.ts +283 -0
  79. package/dist/types.js +16 -0
  80. package/dist/types.js.map +1 -0
  81. package/package.json +41 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * AI 会话、运行、事件、动作、互动与偏好的初始系统迁移。
3
+ * 唯一约束保护请求键、审批步骤和工具调用关联;权限与租户边界由运行服务落实,导入本文件不执行建表。
4
+ */
5
+ /**
6
+ * 由 ai() 注册的基础元数据迁移,运行与回执必须经服务读写,不能作为绕过业务命令的入口。
7
+ */
8
+ export declare const AI_MIGRATION: {
9
+ name: string;
10
+ sql: string;
11
+ };
package/dist/schema.js ADDED
@@ -0,0 +1,51 @@
1
+ /**
2
+ * AI 会话、运行、事件、动作、互动与偏好的初始系统迁移。
3
+ * 唯一约束保护请求键、审批步骤和工具调用关联;权限与租户边界由运行服务落实,导入本文件不执行建表。
4
+ */
5
+ // AI 元数据不进入业务工具目录;只能由检查租户、会话归属与授权的服务读写。
6
+ /**
7
+ * 由 ai() 注册的基础元数据迁移,运行与回执必须经服务读写,不能作为绕过业务命令的入口。
8
+ */
9
+ export const AI_MIGRATION = { name: 'cage:ai_001', sql: `
10
+ CREATE TABLE sys.ai_session (
11
+ id uuid PRIMARY KEY, tenant_id uuid NOT NULL, user_id uuid NOT NULL, title text NOT NULL,
12
+ created_at timestamptz NOT NULL DEFAULT now(), updated_at timestamptz NOT NULL DEFAULT now()
13
+ );
14
+ CREATE INDEX ai_session_owner_idx ON sys.ai_session(tenant_id,user_id,updated_at DESC);
15
+ CREATE TABLE sys.ai_run (
16
+ id uuid PRIMARY KEY, tenant_id uuid NOT NULL, user_id uuid, session_id uuid REFERENCES sys.ai_session(id),
17
+ mode text NOT NULL CHECK(mode IN ('assistant','approval')), status text NOT NULL, phase text NOT NULL DEFAULT 'context',
18
+ input text NOT NULL DEFAULT '', page_context jsonb, context jsonb, history jsonb NOT NULL DEFAULT '[]', pending jsonb NOT NULL DEFAULT '[]',
19
+ model text NOT NULL, instructions text NOT NULL DEFAULT '', limits jsonb NOT NULL, fingerprint text NOT NULL, auth_fingerprint text,
20
+ auth_session text, delegated_until timestamptz NOT NULL, step_up_at bigint,
21
+ approval_step_id uuid, process text, policy jsonb, request_key text, request_hash text,
22
+ steps integer NOT NULL DEFAULT 0, tool_calls integer NOT NULL DEFAULT 0, tokens integer NOT NULL DEFAULT 0,
23
+ next_seq integer NOT NULL DEFAULT 0, lease_token uuid, lease_until timestamptz, deadline timestamptz,
24
+ cancelled boolean NOT NULL DEFAULT false, answer text, error text, failures integer NOT NULL DEFAULT 0,
25
+ created_at timestamptz NOT NULL DEFAULT now(), updated_at timestamptz NOT NULL DEFAULT now(),
26
+ UNIQUE(tenant_id,user_id,request_key), UNIQUE(approval_step_id)
27
+ );
28
+ CREATE INDEX ai_run_queue_idx ON sys.ai_run(status,created_at);
29
+ CREATE INDEX ai_run_session_idx ON sys.ai_run(session_id,created_at);
30
+ CREATE TABLE sys.ai_event (
31
+ run_id uuid NOT NULL REFERENCES sys.ai_run(id), sequence integer NOT NULL, type text NOT NULL, data jsonb NOT NULL,
32
+ created_at timestamptz NOT NULL DEFAULT now(), PRIMARY KEY(run_id,sequence)
33
+ );
34
+ CREATE TABLE sys.ai_action (
35
+ id uuid PRIMARY KEY, run_id uuid NOT NULL REFERENCES sys.ai_run(id), tenant_id uuid NOT NULL,
36
+ call_id text NOT NULL, tool text NOT NULL, input jsonb NOT NULL, input_hash text NOT NULL,
37
+ status text NOT NULL DEFAULT 'planned', result jsonb, created_at timestamptz NOT NULL DEFAULT now(), updated_at timestamptz NOT NULL DEFAULT now(),
38
+ UNIQUE(run_id,call_id)
39
+ );
40
+ CREATE TABLE sys.ai_interaction (
41
+ id uuid PRIMARY KEY, run_id uuid NOT NULL REFERENCES sys.ai_run(id), action_id uuid REFERENCES sys.ai_action(id),
42
+ kind text NOT NULL, prompt text NOT NULL, data jsonb NOT NULL, response jsonb,
43
+ expires_at timestamptz NOT NULL, created_at timestamptz NOT NULL DEFAULT now(), answered_at timestamptz
44
+ );
45
+ CREATE TABLE sys.ai_memory (
46
+ id uuid PRIMARY KEY, tenant_id uuid NOT NULL, user_id uuid NOT NULL, key text NOT NULL, value text NOT NULL,
47
+ updated_at timestamptz NOT NULL DEFAULT now(), UNIQUE(tenant_id,user_id,key)
48
+ );
49
+ GRANT SELECT, INSERT, UPDATE, DELETE ON sys.ai_session,sys.ai_run,sys.ai_event,sys.ai_action,sys.ai_interaction,sys.ai_memory TO cage_app;
50
+ ` };
51
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wCAAwC;AACxC;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCvD,EAAE,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { type Ctx, type Kernel } from '@yss123/cage-kernel';
2
+ import { z } from 'zod';
3
+ import type { StoredRun } from './state.js';
4
+ /**
5
+ * 稳定序列化后计算 SHA-256 摘要,用于输入/状态比较,不用于保存密码。
6
+ */
7
+ export declare const digest: (value: unknown) => string;
8
+ /**
9
+ * 把主体、部门、能力参数、范围和明文权限纳入指纹,防止交付旧授权下的上下文。
10
+ */
11
+ export declare function authFingerprint(ctx: Ctx): string;
12
+ /**
13
+ * 按 Zod 校验并返回转换后的输入;失败转为带字段路径的 INVALID_INPUT。
14
+ */
15
+ export declare function parse<T>(schema: z.ZodType<T>, value: unknown): T;
16
+ /**
17
+ * 要求真人用户及 Sys.ai.use;失败抛未登录或无权限错误,并将 userId 收窄为字符串。
18
+ */
19
+ export declare function needUser(ctx: Ctx): asserts ctx is Ctx & {
20
+ userId: string;
21
+ };
22
+ /** 每轮及每次动作重读授权;任务不携带可被模型篡改的权限快照。 */
23
+ export declare function contextForRun(kernel: Kernel, run: StoredRun): Promise<Ctx>;
@@ -0,0 +1,73 @@
1
+ /**
2
+ * AI 的输入与身份边界。提交、轮次恢复和工具执行共享这里的校验。
3
+ * 权限摘要用于发现变化,不是授权凭证;后台恢复仍核验登录会话、委托期限与内核当前权限。
4
+ */
5
+ import { createHash } from 'node:crypto';
6
+ import { cageError, stableStringify } from '@yss123/cage-kernel';
7
+ import { approvalRoleContext } from '@yss123/cage-approval';
8
+ /**
9
+ * 稳定序列化后计算 SHA-256 摘要,用于输入/状态比较,不用于保存密码。
10
+ */
11
+ export const digest = (value) => createHash('sha256').update(stableStringify(value)).digest('hex');
12
+ /**
13
+ * 把主体、部门、能力参数、范围和明文权限纳入指纹,防止交付旧授权下的上下文。
14
+ */
15
+ export function authFingerprint(ctx) {
16
+ return digest({
17
+ tenant: ctx.tenantId,
18
+ user: ctx.userId,
19
+ actor: ctx.actor,
20
+ dept: ctx.deptId,
21
+ path: ctx.deptPath,
22
+ capabilities: [...ctx.capabilities].sort(([a], [b]) => a.localeCompare(b)),
23
+ scopes: ctx.scopes,
24
+ unmask: [...ctx.unmask].sort(),
25
+ });
26
+ }
27
+ /**
28
+ * 按 Zod 校验并返回转换后的输入;失败转为带字段路径的 INVALID_INPUT。
29
+ */
30
+ export function parse(schema, value) {
31
+ const result = schema.safeParse(value);
32
+ if (!result.success)
33
+ throw cageError('INVALID_INPUT', result.error.issues.map((i) => ({ path: i.path.join('.'), message: i.message })));
34
+ return result.data;
35
+ }
36
+ /**
37
+ * 要求真人用户及 Sys.ai.use;失败抛未登录或无权限错误,并将 userId 收窄为字符串。
38
+ */
39
+ export function needUser(ctx) {
40
+ if (ctx.actor?.kind !== 'user' || !ctx.userId)
41
+ throw cageError('UNAUTHENTICATED');
42
+ if (!ctx.capabilities.has('Sys.ai.use'))
43
+ throw cageError('FORBIDDEN', { capability: 'Sys.ai.use' });
44
+ }
45
+ /** 每轮及每次动作重读授权;任务不携带可被模型篡改的权限快照。 */
46
+ export async function contextForRun(kernel, run) {
47
+ if (new Date(run.delegated_until).getTime() <= Date.now())
48
+ throw cageError('UNAUTHENTICATED');
49
+ if (run.mode === 'approval')
50
+ return approvalRoleContext(kernel, run.process, run.tenant_id);
51
+ if (run.auth_session) {
52
+ const session = await kernel.app
53
+ .selectFrom('sys.session')
54
+ .select('id')
55
+ .where('id', '=', run.auth_session)
56
+ .where('tenant_id', '=', run.tenant_id)
57
+ .where('user_id', '=', run.user_id)
58
+ .where('expires_at', '>', new Date())
59
+ .executeTakeFirst();
60
+ if (!session)
61
+ throw cageError('UNAUTHENTICATED');
62
+ }
63
+ const ctx = await kernel.contextFor(run.user_id, run.tenant_id, {
64
+ requestId: run.id,
65
+ source: 'api',
66
+ stepUpAt: run.step_up_at ? Number(run.step_up_at) : null,
67
+ });
68
+ if (!ctx)
69
+ throw cageError('UNAUTHENTICATED');
70
+ needUser(ctx);
71
+ return ctx;
72
+ }
73
+ //# sourceMappingURL=security.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security.js","sourceRoot":"","sources":["../src/security.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,238 @@
1
+ /**
2
+ * AI 运行记录与恢复状态的数据库映射;store/runtime 使用,前端 DTO 另在 ai-protocol。
3
+ * 远端游标、调用预留、尝试次数与已结算消耗分别持久化,进程恢复时不能把未知调用当作未发生。
4
+ */
5
+ import type { AiStep } from '@yss123/cage-approval';
6
+ import type { AiPersonality, AiRunStatus, PageContext } from '@yss123/cage-ai-protocol';
7
+ import type { ModelMessage, RunLimits, ToolCall } from './types.js';
8
+ /** 远端游标只描述可接续的历史;协议兼容性单独保存,不能随游标重建而丢失。 */
9
+ export interface RemoteHistory {
10
+ /**
11
+ * 模型配置指纹。
12
+ */
13
+ key: string;
14
+ /**
15
+ * 上游响应 ID,不接受浏览器指定。
16
+ */
17
+ responseId: string;
18
+ /**
19
+ * 远端已包含的本地消息数量。
20
+ */
21
+ historyLength: number;
22
+ /**
23
+ * 远端链已占用的估算 Token,接续并非免费上下文。
24
+ */
25
+ contextTokens: number;
26
+ }
27
+ /**
28
+ * 模型请求前写入的费用预留,结果未知时保守结算,明确拒绝接续时释放。
29
+ */
30
+ export interface ModelReservation {
31
+ /**
32
+ * 调用尝试的一基编号。
33
+ */
34
+ attempt: number;
35
+ /**
36
+ * 成功后计入的模型步数。
37
+ */
38
+ step: number;
39
+ /**
40
+ * 本次输入预留 Token。
41
+ */
42
+ inputTokens: number;
43
+ /**
44
+ * 本次最大输出预留 Token。
45
+ */
46
+ outputTokens: number;
47
+ /**
48
+ * 预留开始的 ISO 时间。
49
+ */
50
+ startedAt: string;
51
+ }
52
+ /**
53
+ * 本次请求冻结的工具装载模式与预算,发现工具复用同一规则。
54
+ */
55
+ export interface ToolPlan {
56
+ /**
57
+ * all 为全部工具,discovery 为有界候选及发现入口。
58
+ */
59
+ mode: 'all' | 'discovery';
60
+ /**
61
+ * 完整工具 schema 的估算 Token 上限。
62
+ */
63
+ tokenBudget: number;
64
+ /**
65
+ * 包含通用工具的总数量上限。
66
+ */
67
+ maxTools: number;
68
+ }
69
+ /**
70
+ * 两类运行的公共数据库字段,状态以数据库为准,执行者持有有期租约。
71
+ */
72
+ interface RunRecord {
73
+ /**
74
+ * 运行 UUID,也是请求关联键。
75
+ */
76
+ id: string;
77
+ /**
78
+ * 所属租户,跨记录读取必须一致。
79
+ */
80
+ tenant_id: string;
81
+ /**
82
+ * 排队、执行、交互或终态。
83
+ */
84
+ status: AiRunStatus;
85
+ /**
86
+ * 下一阶段:准备上下文、模型、动作或结束。
87
+ */
88
+ phase: 'context' | 'model' | 'actions' | 'done';
89
+ /**
90
+ * 本轮用户任务文字。
91
+ */
92
+ input: string;
93
+ /**
94
+ * 客户端页面定位/草稿;null 表示未提供,不是可信事实。
95
+ */
96
+ page_context: PageContext | null;
97
+ /**
98
+ * 服务端读取的事实与偏好;未准备时为 null。
99
+ */
100
+ context: Record<string, unknown> | null;
101
+ /**
102
+ * 含调用/回执配对的持久历史。
103
+ */
104
+ history: ModelMessage[];
105
+ /**
106
+ * 本轮消息开始索引,避免重复复制旧轮次。
107
+ */
108
+ history_start: number;
109
+ /**
110
+ * 自动历史窗口已省略更早内容的标记。
111
+ */
112
+ history_omitted: boolean;
113
+ /**
114
+ * 已规划尚待串行消费的工具调用。
115
+ */
116
+ pending: ToolCall[];
117
+ /**
118
+ * 稳定模型声明别名。
119
+ */
120
+ model: string;
121
+ /**
122
+ * 提交时冻结的应用或审批指令。
123
+ */
124
+ instructions: string;
125
+ /**
126
+ * 提交时冻结的执行额度。
127
+ */
128
+ limits: RunLimits;
129
+ /**
130
+ * 助理性格快照,审批为 null。
131
+ */
132
+ personality: AiPersonality | null;
133
+ /**
134
+ * 注册声明指纹,变化后拒绝旧结果。
135
+ */
136
+ fingerprint: string;
137
+ /**
138
+ * 上下文准备时的授权指纹,尚未建立时为 null。
139
+ */
140
+ auth_fingerprint: string | null;
141
+ /**
142
+ * 发起任务的登录会话,恢复时复核有效性。
143
+ */
144
+ auth_session: string | null;
145
+ /**
146
+ * 委托到期时间,等待用户也受此限制。
147
+ */
148
+ delegated_until: Date;
149
+ /**
150
+ * 二次认证时间戳,null 表示无证据。
151
+ */
152
+ step_up_at: number | null;
153
+ /**
154
+ * 已结算有效模型步数。
155
+ */
156
+ steps: number;
157
+ /**
158
+ * 已结算累计 Token,不含在途预留。
159
+ */
160
+ tokens: number;
161
+ /**
162
+ * 已进入历史观察结果的工具次数。
163
+ */
164
+ tool_calls: number;
165
+ /**
166
+ * 本次已加载业务工具 key,未规划为 null。
167
+ */
168
+ tool_keys: string[] | null;
169
+ /**
170
+ * 冻结的装载模式与预算。
171
+ */
172
+ tool_plan: ToolPlan | null;
173
+ /**
174
+ * 有效远端接续游标,无可用游标时为 null。
175
+ */
176
+ model_state: RemoteHistory | null;
177
+ /**
178
+ * 已确认不支持接续的配置指纹。
179
+ */
180
+ continuation_disabled_key: string | null;
181
+ /**
182
+ * 总调用尝试数,包含未成功回答的尝试。
183
+ */
184
+ model_attempts: number;
185
+ /**
186
+ * 在途未结算调用,恢复时保守记账。
187
+ */
188
+ model_reservation: ModelReservation | null;
189
+ /**
190
+ * 执行者令牌,释放后为 null。
191
+ */
192
+ lease_token: string | null;
193
+ /**
194
+ * 租约截止,超时可由其他执行者领取。
195
+ */
196
+ lease_until: Date | null;
197
+ /**
198
+ * 执行截止时间,回复交互重新排队时清空。
199
+ */
200
+ deadline: Date | null;
201
+ /**
202
+ * 取消标记,阻止迟到事务提交。
203
+ */
204
+ cancelled: boolean;
205
+ /**
206
+ * 最终文字或裁决 JSON,未完成为 null。
207
+ */
208
+ answer: string | null;
209
+ /**
210
+ * 稳定失败码,不保存上游正文。
211
+ */
212
+ error: string | null;
213
+ /**
214
+ * 首次排队时间,用于会话顺序。
215
+ */
216
+ created_at: Date;
217
+ }
218
+ /**
219
+ * assistant 属于用户会话;approval 属于审批步骤,通过自动角色上下文运行。
220
+ */
221
+ export type StoredRun = RunRecord & ({
222
+ mode: 'assistant';
223
+ session_id: string;
224
+ user_id: string;
225
+ policy: null;
226
+ approval_step_id: null;
227
+ process: null;
228
+ } | {
229
+ mode: 'approval';
230
+ session_id: null;
231
+ user_id: null;
232
+ policy: AiStep;
233
+ approval_step_id: string;
234
+ process: string;
235
+ });
236
+ /** 老版本留下的无效游标不能进入协议层;业务历史仍可从本地恢复。 */
237
+ export declare function remoteHistory(value: RemoteHistory | null, key: string | undefined, historyLength: number): RemoteHistory | null;
238
+ export {};
package/dist/state.js ADDED
@@ -0,0 +1,11 @@
1
+ /** 老版本留下的无效游标不能进入协议层;业务历史仍可从本地恢复。 */
2
+ export function remoteHistory(value, key, historyLength) {
3
+ if (!value || !key || value.key !== key || !value.responseId)
4
+ return null;
5
+ if (!Number.isSafeInteger(value.historyLength) || value.historyLength < 0 || value.historyLength > historyLength)
6
+ return null;
7
+ if (!Number.isSafeInteger(value.contextTokens) || value.contextTokens < 0)
8
+ return null;
9
+ return value;
10
+ }
11
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAuOA,qCAAqC;AACrC,MAAM,UAAU,aAAa,CAC3B,KAA2B,EAC3B,GAAuB,EACvB,aAAqB;IAErB,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAC1E,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,aAAa,GAAG,CAAC,IAAI,KAAK,CAAC,aAAa,GAAG,aAAa;QAC9G,OAAO,IAAI,CAAC;IACd,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,aAAa,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACvF,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,113 @@
1
+ import { type Ctx, type Kernel } from '@yss123/cage-kernel';
2
+ import { type Transaction } from 'kysely';
3
+ import { type AiRun, type AiEvent, type AiSession, type AiMemory, type AiEventType } from '@yss123/cage-ai-protocol';
4
+ import { type AiOptions } from './types.js';
5
+ import { PersonalityManager } from './personalities.js';
6
+ /**
7
+ * 将值序列化为数据库 JSON 字段文本;调用方须先完成结构校验,不在此隐藏不可序列化错误。
8
+ */
9
+ export declare const json: (value: unknown) => string;
10
+ /**
11
+ * 把数据库时间值转为 UTC ISO 字符串供协议 DTO 使用;无效时间直接抛错,不用本机时间静默替代。
12
+ */
13
+ export declare const iso: (value: any) => string;
14
+ /** 所有流事件在持有 run 行锁的事务内编号;断线可以按 sequence 重放。 */
15
+ /**
16
+ * 在持有运行行锁的事务内递增 sequence 并插入事件,运行更新时间同步刷新。
17
+ * 调用方必须把业务状态变更放在同一事务,使重连按序重放时不会看见未提交状态;此函数不负责 HTTP 推送。
18
+ */
19
+ export declare function event(tx: Transaction<any>, runId: string, type: AiEventType, data: unknown): Promise<void>;
20
+ /**
21
+ * 用户助理持久化服务,也是 AiRuntime 的状态存取基础。
22
+ * 公开读取先验证用户归属、注册表与授权指纹;提交、取消及互动用事务协调并发,模型执行和业务工具调用由运行时承担。
23
+ */
24
+ export declare class AiStore {
25
+ readonly kernel: Kernel;
26
+ readonly options: AiOptions;
27
+ readonly fingerprint: string;
28
+ /**
29
+ * 会话创建、切换和运行快照共用的租户性格服务。
30
+ */
31
+ readonly personalities: PersonalityManager;
32
+ /**
33
+ * 绑定内核、AI 声明选项及注册表指纹,并创建共用性格服务;构造时不创建会话或启动 worker。
34
+ */
35
+ constructor(kernel: Kernel, options: AiOptions, fingerprint: string);
36
+ /**
37
+ * 验证助理用户及标题,在事务中确认指定或默认性格存在且启用,再创建归属当前租户/用户的会话。
38
+ * null 性格 key 表示跟随租户默认项;本步骤不调用模型。
39
+ */
40
+ createSession(ctx: Ctx, title?: string, personalityKey?: string | null): Promise<AiSession>;
41
+ /**
42
+ * 返回当前租户用户最近更新的至多 100 个会话;不提供跨用户管理视图或全量导出。
43
+ */
44
+ sessions(ctx: Ctx): Promise<AiSession[]>;
45
+ /**
46
+ * 锁定本人会话并比较 personality_version 后切换性格,递增版本。
47
+ * 目标必须启用,null 表示默认项;只影响以后提交的轮次,不修改运行已经保存的性格快照。
48
+ */
49
+ selectPersonality(ctx: Ctx, sessionId: string, raw: unknown): Promise<AiSession>;
50
+ /**
51
+ * 验证 UUID、登录身份和租户/用户归属后读取会话;不存在或无归属统一 NOT_FOUND。
52
+ * 可在调用方事务中加行锁,用于提交与性格切换的并发协调。
53
+ */
54
+ ownedSession(ctx: Ctx, id: string, db?: import("kysely").Kysely<any>, lock?: boolean): Promise<{
55
+ [x: string]: any;
56
+ }>;
57
+ /**
58
+ * 验证运行归属,并拒绝注册声明或授权指纹已变化的旧记录。
59
+ * 旧回答和事件也可能包含现在不该看到的信息,因此读取同样执行指纹复核;返回内部行供本层转换,不直接作为公开 DTO。
60
+ */
61
+ ownedRun(ctx: Ctx, id: string, db?: import("kysely").Kysely<any>): Promise<{
62
+ [x: string]: any;
63
+ }>;
64
+ /**
65
+ * 校验启用状态、消息/页面快照及最多 80 KiB 输入,按用户事务锁执行幂等提交。
66
+ * 相同请求键与内容复用已有运行,不重复占队列;同键不同内容冲突。锁会话后冻结性格、权限和注册表快照,非终态队列默认最多 8 个。
67
+ * 创建 queued 运行、首个状态事件和会话更新时间共同提交,默认委托期限 30 分钟;返回状态快照,实际工作由 worker 异步执行。
68
+ */
69
+ submit(ctx: Ctx, sessionId: string, input: unknown, requestKey: string, authSession?: string): Promise<AiRun>;
70
+ /**
71
+ * 读取经归属/指纹复核的运行 DTO及未回复互动。
72
+ * 终态一律不再交付待处理互动,避免客户端继续确认已结束任务;不返回内部模型历史、租约或凭据。
73
+ */
74
+ run(ctx: Ctx, id: string): Promise<AiRun>;
75
+ /**
76
+ * 验证本人会话后取最近 100 个运行,再按时间正序逐个执行 run 的指纹检查。
77
+ * 任一旧记录授权不再匹配时拒绝交付,不把旧敏感答案当作普通会话缓存返回。
78
+ */
79
+ runs(ctx: Ctx, sessionId: string): Promise<AiRun[]>;
80
+ /**
81
+ * 读取指定序号之后的单页事件,默认从 0 开始;授权与每页数量规则由 eventPage 统一执行。
82
+ */
83
+ events(ctx: Ctx, id: string, after?: number): Promise<AiEvent[]>;
84
+ /** SSE 同时读取状态与事件,避免每次追赶都再次查询完整运行及互动列表。 */
85
+ /**
86
+ * 验证归属与当前指纹,读取 after 之后最多 200 条有序事件及运行状态/最新序号。
87
+ * SSE 据此判断是否追平或终止;状态和事件不是额外长事务快照,下一页继续通过序号追赶。
88
+ */
89
+ eventPage(ctx: Ctx, id: string, after?: number): Promise<{
90
+ status: AiRun['status'];
91
+ nextSequence: number;
92
+ events: AiEvent[];
93
+ }>;
94
+ /**
95
+ * 锁定本人运行后标记取消并清除租约,终态重复取消不做变更。
96
+ * 尚未结算的模型预留按估算一次性计入累计 Token,同时写失败和取消事件;取消阻止后续租约提交,但不会撤销之前已完成的业务命令。
97
+ */
98
+ cancel(ctx: Ctx, id: string): Promise<AiRun>;
99
+ /**
100
+ * 在运行行锁内保存确认、补充输入或页面快照回复,再把等待运行排回 queued。
101
+ * 相同已回答内容幂等返回,不同内容冲突;拒绝过期、类型不符、其他页面实例或倒退版本快照。
102
+ * 只记录用户回复,不在 HTTP 事务直接执行工具,worker 恢复时仍重新核验权限与业务状态。
103
+ */
104
+ respond(ctx: Ctx, id: string, interactionId: string, input: unknown): Promise<AiRun>;
105
+ /**
106
+ * 返回当前租户用户最近更新的最多 50 条偏好;只读本人数据,内容不因被记忆就获得指令优先级。
107
+ */
108
+ memories(ctx: Ctx): Promise<AiMemory[]>;
109
+ /**
110
+ * 按 UUID 和当前租户/用户归属删除偏好;目标不存在时也完成,重复删除不产生额外副作用。
111
+ */
112
+ deleteMemory(ctx: Ctx, id: string): Promise<void>;
113
+ }