@zmzai/agent-framework 0.9.0 → 0.12.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/dist/adapters/openai-provider.d.ts +6 -3
- package/dist/adapters/openai-provider.d.ts.map +1 -1
- package/dist/adapters/openai-provider.js +1 -1
- package/dist/adapters/openai-provider.js.map +1 -1
- package/dist/core/events/manifest.d.ts +2 -2
- package/dist/core/runtime/active-run-registry.d.ts +34 -0
- package/dist/core/runtime/active-run-registry.d.ts.map +1 -0
- package/dist/core/runtime/active-run-registry.js +44 -0
- package/dist/core/runtime/active-run-registry.js.map +1 -0
- package/dist/core/runtime/attempt-executor.d.ts +67 -0
- package/dist/core/runtime/attempt-executor.d.ts.map +1 -0
- package/dist/core/runtime/attempt-executor.js +683 -0
- package/dist/core/runtime/attempt-executor.js.map +1 -0
- package/dist/core/runtime/command-service.d.ts +48 -0
- package/dist/core/runtime/command-service.d.ts.map +1 -0
- package/dist/core/runtime/command-service.js +148 -0
- package/dist/core/runtime/command-service.js.map +1 -0
- package/dist/core/runtime/compaction.d.ts +30 -6
- package/dist/core/runtime/compaction.d.ts.map +1 -1
- package/dist/core/runtime/compaction.js +5 -4
- package/dist/core/runtime/compaction.js.map +1 -1
- package/dist/core/runtime/context-builder.d.ts +66 -0
- package/dist/core/runtime/context-builder.d.ts.map +1 -0
- package/dist/core/runtime/context-builder.js +187 -0
- package/dist/core/runtime/context-builder.js.map +1 -0
- package/dist/core/runtime/run-scheduler.d.ts +44 -0
- package/dist/core/runtime/run-scheduler.d.ts.map +1 -0
- package/dist/core/runtime/run-scheduler.js +136 -0
- package/dist/core/runtime/run-scheduler.js.map +1 -0
- package/dist/core/runtime/runner.d.ts +25 -178
- package/dist/core/runtime/runner.d.ts.map +1 -1
- package/dist/core/runtime/runner.js +105 -1457
- package/dist/core/runtime/runner.js.map +1 -1
- package/dist/core/runtime/task-lifecycle.d.ts +165 -0
- package/dist/core/runtime/task-lifecycle.d.ts.map +1 -0
- package/dist/core/runtime/task-lifecycle.js +424 -0
- package/dist/core/runtime/task-lifecycle.js.map +1 -0
- package/dist/core/session/sqlite-store.d.ts.map +1 -1
- package/dist/core/session/sqlite-store.js +110 -1
- package/dist/core/session/sqlite-store.js.map +1 -1
- package/dist/core/session/store.d.ts +9 -1
- package/dist/core/session/store.d.ts.map +1 -1
- package/dist/core/session/types.d.ts +16 -0
- package/dist/core/session/types.d.ts.map +1 -1
- package/dist/core/session/workflow.d.ts +49 -2
- package/dist/core/session/workflow.d.ts.map +1 -1
- package/dist/core/session/workflow.js.map +1 -1
- package/dist/core/subagents/coordinator.d.ts +140 -0
- package/dist/core/subagents/coordinator.d.ts.map +1 -0
- package/dist/core/subagents/coordinator.js +355 -0
- package/dist/core/subagents/coordinator.js.map +1 -0
- package/dist/core/subagents/parked.d.ts +50 -0
- package/dist/core/subagents/parked.d.ts.map +1 -0
- package/dist/core/subagents/parked.js +75 -0
- package/dist/core/subagents/parked.js.map +1 -0
- package/dist/core/subagents/tools.d.ts +29 -0
- package/dist/core/subagents/tools.d.ts.map +1 -0
- package/dist/core/subagents/tools.js +163 -0
- package/dist/core/subagents/tools.js.map +1 -0
- package/dist/core/subagents/types.d.ts +107 -0
- package/dist/core/subagents/types.d.ts.map +1 -0
- package/dist/core/subagents/types.js +44 -0
- package/dist/core/subagents/types.js.map +1 -0
- package/dist/core/task/completion.d.ts +3 -0
- package/dist/core/task/completion.d.ts.map +1 -1
- package/dist/core/task/completion.js +4 -0
- package/dist/core/task/completion.js.map +1 -1
- package/dist/core/task/types.d.ts +5 -0
- package/dist/core/task/types.d.ts.map +1 -1
- package/dist/core/task/types.js.map +1 -1
- package/dist/core/tools/adapter.d.ts.map +1 -1
- package/dist/core/tools/adapter.js +87 -61
- package/dist/core/tools/adapter.js.map +1 -1
- package/dist/core/tools/builtins.d.ts.map +1 -1
- package/dist/core/tools/builtins.js +7 -0
- package/dist/core/tools/builtins.js.map +1 -1
- package/dist/core/tools/context.d.ts +1 -0
- package/dist/core/tools/context.d.ts.map +1 -1
- package/dist/core/tools/def.d.ts +25 -0
- package/dist/core/tools/def.d.ts.map +1 -1
- package/dist/core/tools/def.js.map +1 -1
- package/dist/core/tools/git.d.ts.map +1 -1
- package/dist/core/tools/git.js +4 -0
- package/dist/core/tools/git.js.map +1 -1
- package/dist/core/tools/patch.d.ts.map +1 -1
- package/dist/core/tools/patch.js +1 -0
- package/dist/core/tools/patch.js.map +1 -1
- package/dist/core/tools/qa-check.d.ts +2 -2
- package/dist/core/tools/qa-check.d.ts.map +1 -1
- package/dist/core/tools/qa-check.js +1 -0
- package/dist/core/tools/qa-check.js.map +1 -1
- package/dist/core/tools/repomap.d.ts.map +1 -1
- package/dist/core/tools/repomap.js +1 -0
- package/dist/core/tools/repomap.js.map +1 -1
- package/dist/core/tools/task-block.d.ts.map +1 -1
- package/dist/core/tools/task-block.js +1 -0
- package/dist/core/tools/task-block.js.map +1 -1
- package/dist/core/tools/task-deliver.d.ts +1 -1
- package/dist/core/tools/task-deliver.d.ts.map +1 -1
- package/dist/core/tools/task-deliver.js +1 -0
- package/dist/core/tools/task-deliver.js.map +1 -1
- package/dist/core/tools/task.d.ts.map +1 -1
- package/dist/core/tools/task.js +3 -0
- package/dist/core/tools/task.js.map +1 -1
- package/dist/core/tools/terminal.d.ts.map +1 -1
- package/dist/core/tools/terminal.js +5 -0
- package/dist/core/tools/terminal.js.map +1 -1
- package/dist/core/tools/webfetch.d.ts.map +1 -1
- package/dist/core/tools/webfetch.js +1 -0
- package/dist/core/tools/webfetch.js.map +1 -1
- package/dist/core/tools/websearch.d.ts.map +1 -1
- package/dist/core/tools/websearch.js +1 -0
- package/dist/core/tools/websearch.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/server/create-agent-runtime.d.ts +3 -1
- package/dist/server/create-agent-runtime.d.ts.map +1 -1
- package/dist/server/create-agent-runtime.js +8 -1
- package/dist/server/create-agent-runtime.js.map +1 -1
- package/dist/server/create-server.d.ts +6 -0
- package/dist/server/create-server.d.ts.map +1 -1
- package/dist/server/create-server.js +9 -0
- package/dist/server/create-server.js.map +1 -1
- package/package.json +12 -11
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ModelProvider } from "./index.js";
|
|
2
|
+
import type { ModelRef } from "../core/session/types.js";
|
|
2
3
|
/** 动态额外请求头(如登录态 cookie)。函数形式每次请求前求值,支持异步。 */
|
|
3
4
|
export type ProviderHeaders = Record<string, string> | (() => Record<string, string> | Promise<Record<string, string>>);
|
|
4
5
|
/** 模型能力(真实上下文窗口等),由产品侧从模型目录解析。 */
|
|
@@ -50,10 +51,12 @@ export declare function createOpenAiModelProvider(input?: {
|
|
|
50
51
|
apiKey?: string;
|
|
51
52
|
defaultModel?: string;
|
|
52
53
|
headers?: ProviderHeaders;
|
|
53
|
-
/**
|
|
54
|
-
*
|
|
54
|
+
/** 按完整 ModelRef 查询真实模型能力(W9:键必须含 provider 标识——同一
|
|
55
|
+
* modelId 挂在不同 provider/端点配置上时能力不得串用,spec §9.2 / A32;
|
|
56
|
+
* 只按 modelId 缓存正是要钉的缺陷)。同步形式——getModel 是同步契约,
|
|
57
|
+
* 产品侧缓存键应按 providerId+modelId(+端点配置)。
|
|
55
58
|
* 未命中返回 undefined 时回落 DEFAULT_*,与不配置时行为完全一致。 */
|
|
56
|
-
modelCaps?: (
|
|
59
|
+
modelCaps?: (ref: ModelRef) => ModelCaps | undefined;
|
|
57
60
|
failoverEndpoints?: FailoverEndpoint[] | (() => FailoverEndpoint[]);
|
|
58
61
|
/** 降级发生时回调(宿主用于日志/UI 提示)。 */
|
|
59
62
|
onFailover?: (event: FailoverEvent) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-provider.d.ts","sourceRoot":"","sources":["../../src/adapters/openai-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"openai-provider.d.ts","sourceRoot":"","sources":["../../src/adapters/openai-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAe,MAAM,0BAA0B,CAAC;AAGtE,6CAA6C;AAC7C,MAAM,MAAM,eAAe,GACvB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACtB,CAAC,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAErE,kCAAkC;AAClC,MAAM,MAAM,SAAS,GAAG;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;gDAC4C;IAC5C,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;CACpC,CAAC;AAEF,2CAA2C;AAC3C,eAAO,MAAM,sBAAsB,SAAU,CAAC;AAC9C,eAAO,MAAM,kBAAkB,QAAS,CAAC;AAEzC,0CAA0C;AAC1C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,oCAAoC;AACpC,MAAM,MAAM,aAAa,GAAG;IAC1B,+BAA+B;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc;IACd,EAAE,EAAE,MAAM,CAAC;IACX,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;;;;;;;;;;;sCAcsC;AACtC,wBAAgB,yBAAyB,CAAC,KAAK,CAAC,EAAE;IAChD,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B;;;;qDAIiD;IACjD,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK,SAAS,GAAG,SAAS,CAAC;IACrD,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,GAAG,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC;IACpE,6BAA6B;IAC7B,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;CAC7C,GAAG,aAAa,CA8KhB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-provider.js","sourceRoot":"","sources":["../../src/adapters/openai-provider.ts"],"names":[],"mappings":"AAkBA,2CAA2C;AAC3C,MAAM,CAAC,MAAM,sBAAsB,GAAG,OAAO,CAAC;AAC9C,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAsBzC;;;;;;;;;;;;;;sCAcsC;AACtC,MAAM,UAAU,yBAAyB,CAAC,
|
|
1
|
+
{"version":3,"file":"openai-provider.js","sourceRoot":"","sources":["../../src/adapters/openai-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -127,8 +127,8 @@ export declare const frameworkEventSchemas: {
|
|
|
127
127
|
required: z.ZodBoolean;
|
|
128
128
|
status: z.ZodEnum<{
|
|
129
129
|
pending: "pending";
|
|
130
|
-
failed: "failed";
|
|
131
130
|
passed: "passed";
|
|
131
|
+
failed: "failed";
|
|
132
132
|
not_applicable: "not_applicable";
|
|
133
133
|
}>;
|
|
134
134
|
}, z.core.$strip>>;
|
|
@@ -241,8 +241,8 @@ export declare const frameworkEventSchemas: {
|
|
|
241
241
|
required: z.ZodBoolean;
|
|
242
242
|
status: z.ZodEnum<{
|
|
243
243
|
pending: "pending";
|
|
244
|
-
failed: "failed";
|
|
245
244
|
passed: "passed";
|
|
245
|
+
failed: "failed";
|
|
246
246
|
not_applicable: "not_applicable";
|
|
247
247
|
}>;
|
|
248
248
|
}, z.core.$strip>>;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Agent } from "@earendil-works/pi-agent-core";
|
|
2
|
+
import type { PermissionEngine } from "../permission/engine.js";
|
|
3
|
+
/** 一个会话的当前活跃 run(W6 §3.1,自 runner.ts 原样搬移)。
|
|
4
|
+
*
|
|
5
|
+
* registry 拥有进程级活跃 run 表,让调度/命令层共享它而不必 import runner。 */
|
|
6
|
+
export type ActiveRun = {
|
|
7
|
+
agent: Agent;
|
|
8
|
+
engine: PermissionEngine;
|
|
9
|
+
settled: () => Promise<void>;
|
|
10
|
+
abort: () => void;
|
|
11
|
+
/** Resolves only after the run has emitted its terminal state and released
|
|
12
|
+
* its lease. Control-plane code uses this before starting a continuation. */
|
|
13
|
+
done: Promise<void>;
|
|
14
|
+
};
|
|
15
|
+
export declare class ActiveRunRegistry {
|
|
16
|
+
private readonly runs;
|
|
17
|
+
constructor(runs: Map<string, ActiveRun>);
|
|
18
|
+
register(sessionId: string, run: ActiveRun): void;
|
|
19
|
+
get(sessionId: string): ActiveRun | undefined;
|
|
20
|
+
has(sessionId: string): boolean;
|
|
21
|
+
delete(sessionId: string): void;
|
|
22
|
+
sessionIds(): string[];
|
|
23
|
+
}
|
|
24
|
+
/** 进程级默认实例(包住上面那张 globalThis Map)。 */
|
|
25
|
+
export declare const defaultActiveRunRegistry: ActiveRunRegistry;
|
|
26
|
+
export declare function isSessionActive(sessionId: string): boolean;
|
|
27
|
+
/** 会话当前 run 是否挂起等待人工授权(HITL 待确认)。宿主会话列表用它把
|
|
28
|
+
* 「待确认」从笼统的「运行中」里区分出来,否则后台会话被权限卡住时
|
|
29
|
+
* 侧边栏毫无信号。无 run 或 run 无 pending 请求均为 false。 */
|
|
30
|
+
export declare function isSessionAwaitingPermission(sessionId: string): boolean;
|
|
31
|
+
/** 当前所有 running 会话 id(Electron 优雅退出等收尾场景枚举用,P2)。
|
|
32
|
+
* activeRuns 是模块级 globalThis 单例,跨项目/跨 runtime 共享。 */
|
|
33
|
+
export declare function listActiveSessions(): string[];
|
|
34
|
+
//# sourceMappingURL=active-run-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"active-run-registry.d.ts","sourceRoot":"","sources":["../../../src/core/runtime/active-run-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;0DAE0D;AAC1D,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,gBAAgB,CAAC;IACzB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB;kFAC8E;IAC9E,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;CACrB,CAAC;AAQF,qBAAa,iBAAiB;IAChB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC;IAEzD,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,GAAG,IAAI;IAGjD,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAG7C,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAG/B,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAG/B,UAAU,IAAI,MAAM,EAAE;CAGvB;AAED,sCAAsC;AACtC,eAAO,MAAM,wBAAwB,mBAAoC,CAAC;AAE1E,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;gDAEgD;AAChD,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAGtE;AAED;sDACsD;AACtD,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAE7C"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/** activeRuns 表仍是挂 globalThis 的 Map 单例(跨副本共享语义保持不变);
|
|
2
|
+
* registry 只是它的具名门面。 */
|
|
3
|
+
const globalRunners = globalThis;
|
|
4
|
+
const activeRuns = globalRunners.__zmzaiFrameworkRuns ?? new Map();
|
|
5
|
+
globalRunners.__zmzaiFrameworkRuns = activeRuns;
|
|
6
|
+
export class ActiveRunRegistry {
|
|
7
|
+
runs;
|
|
8
|
+
constructor(runs) {
|
|
9
|
+
this.runs = runs;
|
|
10
|
+
}
|
|
11
|
+
register(sessionId, run) {
|
|
12
|
+
this.runs.set(sessionId, run);
|
|
13
|
+
}
|
|
14
|
+
get(sessionId) {
|
|
15
|
+
return this.runs.get(sessionId);
|
|
16
|
+
}
|
|
17
|
+
has(sessionId) {
|
|
18
|
+
return this.runs.has(sessionId);
|
|
19
|
+
}
|
|
20
|
+
delete(sessionId) {
|
|
21
|
+
this.runs.delete(sessionId);
|
|
22
|
+
}
|
|
23
|
+
sessionIds() {
|
|
24
|
+
return [...this.runs.keys()];
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/** 进程级默认实例(包住上面那张 globalThis Map)。 */
|
|
28
|
+
export const defaultActiveRunRegistry = new ActiveRunRegistry(activeRuns);
|
|
29
|
+
export function isSessionActive(sessionId) {
|
|
30
|
+
return defaultActiveRunRegistry.has(sessionId);
|
|
31
|
+
}
|
|
32
|
+
/** 会话当前 run 是否挂起等待人工授权(HITL 待确认)。宿主会话列表用它把
|
|
33
|
+
* 「待确认」从笼统的「运行中」里区分出来,否则后台会话被权限卡住时
|
|
34
|
+
* 侧边栏毫无信号。无 run 或 run 无 pending 请求均为 false。 */
|
|
35
|
+
export function isSessionAwaitingPermission(sessionId) {
|
|
36
|
+
const active = defaultActiveRunRegistry.get(sessionId);
|
|
37
|
+
return !!active && active.engine.pendingRequests.length > 0;
|
|
38
|
+
}
|
|
39
|
+
/** 当前所有 running 会话 id(Electron 优雅退出等收尾场景枚举用,P2)。
|
|
40
|
+
* activeRuns 是模块级 globalThis 单例,跨项目/跨 runtime 共享。 */
|
|
41
|
+
export function listActiveSessions() {
|
|
42
|
+
return defaultActiveRunRegistry.sessionIds();
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=active-run-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"active-run-registry.js","sourceRoot":"","sources":["../../../src/core/runtime/active-run-registry.ts"],"names":[],"mappings":"AAgBA;yBACyB;AACzB,MAAM,aAAa,GAAG,UAAmF,CAAC;AAC1G,MAAM,UAAU,GAAG,aAAa,CAAC,oBAAoB,IAAI,IAAI,GAAG,EAAqB,CAAC;AACtF,aAAa,CAAC,oBAAoB,GAAG,UAAU,CAAC;AAEhD,MAAM,OAAO,iBAAiB;IACC;IAA7B,YAA6B,IAA4B;QAA5B,SAAI,GAAJ,IAAI,CAAwB;IAAG,CAAC;IAE7D,QAAQ,CAAC,SAAiB,EAAE,GAAc;QACxC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAChC,CAAC;IACD,GAAG,CAAC,SAAiB;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IACD,GAAG,CAAC,SAAiB;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IACD,MAAM,CAAC,SAAiB;QACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC9B,CAAC;IACD,UAAU;QACR,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/B,CAAC;CACF;AAED,sCAAsC;AACtC,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,iBAAiB,CAAC,UAAU,CAAC,CAAC;AAE1E,MAAM,UAAU,eAAe,CAAC,SAAiB;IAC/C,OAAO,wBAAwB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACjD,CAAC;AAED;;gDAEgD;AAChD,MAAM,UAAU,2BAA2B,CAAC,SAAiB;IAC3D,MAAM,MAAM,GAAG,wBAAwB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACvD,OAAO,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9D,CAAC;AAED;sDACsD;AACtD,MAAM,UAAU,kBAAkB;IAChC,OAAO,wBAAwB,CAAC,UAAU,EAAE,CAAC;AAC/C,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { AgentRegistry } from "../agent/registry.js";
|
|
2
|
+
import type { FrameworkEvent } from "../events/manifest.js";
|
|
3
|
+
import { PermissionEngine } from "../permission/engine.js";
|
|
4
|
+
import { LoopGuard } from "./loop-guard.js";
|
|
5
|
+
import type { SessionInfo } from "../session/types.js";
|
|
6
|
+
import type { PromptInput } from "../session/workflow.js";
|
|
7
|
+
import { type RunOutcome, type TaskLifecycle } from "./task-lifecycle.js";
|
|
8
|
+
import type { RunScheduler } from "./run-scheduler.js";
|
|
9
|
+
import type { ContextBuilder } from "./context-builder.js";
|
|
10
|
+
import type { TaskRecord } from "../task/types.js";
|
|
11
|
+
/** AttemptExecutor(W7-S7 自 SessionRunner 原样搬移,spec §7):
|
|
12
|
+
* PI 适配、上下文消费、工具执行钩子、事件漏斗与 RunOutcome 装配。
|
|
13
|
+
* 单次 Attempt 的完整执行;任务循环在 TaskLifecycle,调度在 RunScheduler。 */
|
|
14
|
+
/** 协作者由 runner 装配注入;RunnerDeps 字段**持有原对象引用**(测试会在
|
|
15
|
+
* 构造 runner 之后改 deps 字段,快照会让它们静默失效——W7-S7 实测踩过)。 */
|
|
16
|
+
export type AttemptCollaborators = {
|
|
17
|
+
lifecycle: TaskLifecycle;
|
|
18
|
+
scheduler: RunScheduler;
|
|
19
|
+
contextBuilder: ContextBuilder;
|
|
20
|
+
publish: (event: FrameworkEvent, sessionId: string) => Promise<void>;
|
|
21
|
+
persist: (event: FrameworkEvent, fallbackSessionId: string) => Promise<void>;
|
|
22
|
+
subagentCoordinator?: import("../subagents/coordinator.js").SubagentCoordinator;
|
|
23
|
+
spawnSubagent: (session: SessionInfo, input: {
|
|
24
|
+
description: string;
|
|
25
|
+
prompt: string;
|
|
26
|
+
subagentType: string;
|
|
27
|
+
spawnRequestId?: string;
|
|
28
|
+
}, registry: AgentRegistry, parentEngine: PermissionEngine) => Promise<{
|
|
29
|
+
childSessionId: string;
|
|
30
|
+
summary: string;
|
|
31
|
+
state: "completed" | "error";
|
|
32
|
+
}>;
|
|
33
|
+
};
|
|
34
|
+
export declare class AttemptExecutor {
|
|
35
|
+
#private;
|
|
36
|
+
private readonly deps;
|
|
37
|
+
private readonly collabs;
|
|
38
|
+
/** 供 runLoop 取归一化钩子数组(lazy:constructor 后仍可由 deps 引用共享)。 */
|
|
39
|
+
private get hooks();
|
|
40
|
+
constructor(deps: import("./runner.js").RunnerDeps, collabs: AttemptCollaborators);
|
|
41
|
+
/** 会话级 registry 解析(public:createServer 给协调器绑定同源解析用,
|
|
42
|
+
* 保证子代理类型检查与默认工厂看到 workspace 自定义 Agent)。 */
|
|
43
|
+
registryFor(session: SessionInfo): Promise<AgentRegistry>;
|
|
44
|
+
/** Versioned agents are resolved from the product control plane. A missing
|
|
45
|
+
* version intentionally falls back to the M1-M5 registry so old sessions
|
|
46
|
+
* and standalone consumers remain valid. */
|
|
47
|
+
private resolvedAgentFor;
|
|
48
|
+
/** 一次 Attempt:从模型上下文构造到终态收尾的完整内部运行。
|
|
49
|
+
*
|
|
50
|
+
* `taskContext` 存在时,任务契约会注入 systemPrompt(**不落成消息**,
|
|
51
|
+
* 规格 §19 禁止伪用户消息)。它同时携带 continuation 的 advisory,
|
|
52
|
+
* 保证「续跑指令」与「任务契约」在同一条系统指令里,不会互相矛盾。
|
|
53
|
+
* 它还携带 `loopGuard`:任务层自己持有一个跨 Attempt 的实例,避免每轮
|
|
54
|
+
* 重置循环防护的计数(见下方注释)。 */
|
|
55
|
+
runLoop(session: SessionInfo, input: PromptInput, acceptedUserId?: string, taskContext?: {
|
|
56
|
+
task: TaskRecord;
|
|
57
|
+
advisory?: string;
|
|
58
|
+
continuation?: boolean;
|
|
59
|
+
loopGuard?: LoopGuard;
|
|
60
|
+
} | null): Promise<RunOutcome>;
|
|
61
|
+
/** 任务终态小结(N5):run 收尾时用 summary 模型生成一句自然语言总结,
|
|
62
|
+
* 附本轮结构化统计,发布 session.summary 事件供前端渲染「任务完成卡」。
|
|
63
|
+
* 失败/中断也发(kind 区分),让 UI 的收尾永远有明确落点。生成失败或
|
|
64
|
+
* 无 summaryModel 时静默跳过(不阻塞 run 收尾)。 */
|
|
65
|
+
private summarizeRun;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=attempt-executor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attempt-executor.d.ts","sourceRoot":"","sources":["../../../src/core/runtime/attempt-executor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAiB,MAAM,yBAAyB,CAAC;AAG1E,OAAO,EAAE,SAAS,EAAiC,MAAM,iBAAiB,CAAC;AAE3E,OAAO,KAAK,EAA2B,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAY1D,OAAO,EAAoB,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC5F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAK3D,OAAO,KAAK,EAAE,UAAU,EAAoB,MAAM,kBAAkB,CAAC;AAgDrE;;6DAE6D;AAC7D;qDACqD;AACrD,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,aAAa,CAAC;IACzB,SAAS,EAAE,YAAY,CAAC;IACxB,cAAc,EAAE,cAAc,CAAC;IAC/B,OAAO,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,OAAO,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E,mBAAmB,CAAC,EAAE,OAAO,6BAA6B,EAAE,mBAAmB,CAAC;IAChF,aAAa,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,KAAK,OAAO,CAAC;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAA;KAAE,CAAC,CAAC;CACrR,CAAC;AAEF,qBAAa,eAAe;;IAQd,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAoC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAN7F,2DAA2D;IAC3D,OAAO,KAAK,KAAK,GAGhB;gBAE4B,IAAI,EAAE,OAAO,aAAa,EAAE,UAAU,EAAmB,OAAO,EAAE,oBAAoB;IAEnH;iDAC6C;IACvC,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IAU/D;;iDAE6C;YAC/B,gBAAgB;IAS9B;;;;;;4BAMwB;IAClB,OAAO,CACX,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,WAAW,EAClB,cAAc,CAAC,EAAE,MAAM,EACvB,WAAW,CAAC,EAAE;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,SAAS,CAAA;KAAE,GAAG,IAAI,GAC1G,OAAO,CAAC,UAAU,CAAC;IAggBtB;;;4CAGwC;YAC1B,YAAY;CA0E3B"}
|