@qjp88995/agent-runtime 0.1.1 → 0.1.2
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/dist/testing/contracts.d.ts +43 -4
- package/dist/testing/contracts.d.ts.map +1 -1
- package/dist/testing/contracts.js +402 -48
- package/dist/testing/contracts.js.map +1 -1
- package/dist/testing/index.d.ts +1 -1
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +1 -1
- package/dist/testing/index.js.map +1 -1
- package/package.json +1 -1
- package/src/testing/contracts.ts +519 -55
- package/src/testing/index.ts +3 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ConversationStore } from '../ports/conversation-store.js';
|
|
1
2
|
import type { SessionLock, SubagentAwaitLease, TreeBudget, WakeChannel } from '../ports/coordination.js';
|
|
2
3
|
import { type QuestionStore } from '../ports/question-store.js';
|
|
3
4
|
import type { RunStore } from '../ports/run-store.js';
|
|
@@ -18,20 +19,58 @@ type Factory<T> = () => T | {
|
|
|
18
19
|
impl: T;
|
|
19
20
|
cleanup?: () => void | Promise<void>;
|
|
20
21
|
}>;
|
|
22
|
+
/**
|
|
23
|
+
* 宿主库的建行办法。数据库实现的表通常有外键与约束(消息、问题、跑次指向会话,问题指向
|
|
24
|
+
* 用户,子会话指向父跑次),契约用例里的这些 id 就不能是随机串——由宿主给出建一行、
|
|
25
|
+
* 返回 id 的办法,清理也归宿主(例如在 `afterAll` 里删掉自己建过的行)。
|
|
26
|
+
*
|
|
27
|
+
* 全部可选,缺省是随机 uuid 与示例值(进程内实现、无外键的后端)。
|
|
28
|
+
*/
|
|
29
|
+
export interface ContractFixtures {
|
|
30
|
+
/** 建一个根会话,返回 id。 */
|
|
31
|
+
rootSession?(): Promise<string>;
|
|
32
|
+
/** 建一个用户,返回 id。 */
|
|
33
|
+
user?(): Promise<string>;
|
|
34
|
+
/** 在这个会话里建一条跑次,返回 id(子会话的 `parentRunId` 指向它)。 */
|
|
35
|
+
run?(sessionId: string): Promise<string>;
|
|
36
|
+
/**
|
|
37
|
+
* `RunOpenInput.attrs`:宿主把附加信息存成列、列上有非空或 CHECK 约束时,给一组能落库的值。
|
|
38
|
+
*/
|
|
39
|
+
runAttrs?: Readonly<Record<string, unknown>>;
|
|
40
|
+
/** `NewSubSession.attrs`:要能**原样读回**(用例按 `toMatchObject` 比)。缺省 `{ a: 1 }`。 */
|
|
41
|
+
sessionAttrs?: Readonly<Record<string, unknown>>;
|
|
42
|
+
/** `NewSubSession.metadata`:同上,要能原样读回。缺省 `{ k: 'v' }`。 */
|
|
43
|
+
sessionMetadata?: Readonly<Record<string, unknown>>;
|
|
44
|
+
}
|
|
45
|
+
export interface ContractOptions {
|
|
46
|
+
fixtures?: ContractFixtures;
|
|
47
|
+
}
|
|
21
48
|
export declare function describeStreamBusContract(name: string, factory: Factory<StreamBus>): void;
|
|
22
49
|
export declare function describeSessionLockContract(name: string, factory: Factory<SessionLock>): void;
|
|
23
50
|
export declare function describeWakeChannelContract(name: string, factory: Factory<WakeChannel>): void;
|
|
24
51
|
export declare function describeSubagentAwaitLeaseContract(name: string, factory: Factory<SubagentAwaitLease>): void;
|
|
25
52
|
export declare function describeTreeBudgetContract(name: string, factory: Factory<TreeBudget>): void;
|
|
26
53
|
export declare function describeRunStoreContract(name: string, factory: Factory<RunStore>,
|
|
27
|
-
/**
|
|
28
|
-
staleDelayMs
|
|
54
|
+
/**
|
|
55
|
+
* 数字 = 旧写法的 `staleDelayMs`。`staleDelayMs`:建一条能被 `findStaleRunning(0)`
|
|
56
|
+
* 看到的旧跑次所需的等待(毫秒),缺省 5。
|
|
57
|
+
*/
|
|
58
|
+
options?: number | (ContractOptions & {
|
|
59
|
+
staleDelayMs?: number;
|
|
60
|
+
})): void;
|
|
29
61
|
/**
|
|
30
62
|
* `SessionStore` 契约(子会话行与里程碑游标)。`listSubagentSessionsForSweep` 要看消息与
|
|
31
63
|
* 更新时间,跟宿主的消息表绑在一起,不在这里测。
|
|
32
64
|
*/
|
|
33
|
-
export declare function describeSessionStoreContract(name: string, factory: Factory<SessionStore
|
|
34
|
-
export declare function describeQuestionStoreContract(name: string, factory: Factory<QuestionStore
|
|
65
|
+
export declare function describeSessionStoreContract(name: string, factory: Factory<SessionStore>, options?: ContractOptions): void;
|
|
66
|
+
export declare function describeQuestionStoreContract(name: string, factory: Factory<QuestionStore>, options?: ContractOptions): void;
|
|
35
67
|
export declare function describeVendorFileCacheContract(name: string, factory: Factory<VendorFileCache>): void;
|
|
68
|
+
/**
|
|
69
|
+
* `ConversationStore` 契约(消息、inbox、两个上下文指针)。
|
|
70
|
+
*
|
|
71
|
+
* 只认端口上看得见的东西:`seq` 只要求会话内单调(数据库实现常是全表一条序列),
|
|
72
|
+
* 「有了新动静」记没记、记在哪是实现细节,不在这里测。
|
|
73
|
+
*/
|
|
74
|
+
export declare function describeConversationStoreContract(name: string, factory: Factory<ConversationStore>, options?: ContractOptions): void;
|
|
36
75
|
export {};
|
|
37
76
|
//# sourceMappingURL=contracts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/testing/contracts.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAClB,UAAU,EACV,WAAW,EACZ,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EACV,eAAe,EAEhB,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/testing/contracts.ts"],"names":[],"mappings":"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"}
|