@bolloon/bolloon-agent 0.4.33 → 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/dist/agents/contacts/chain.js +27 -7
- package/dist/agents/execution-supervisor.js +493 -35
- package/dist/agents/external-events.js +35 -6
- package/dist/agents/gateway-group.js +100 -12
- package/dist/agents/goal-criteria.js +10 -3
- package/dist/agents/goal-flywheel/block-executor.js +346 -0
- package/dist/agents/goal-flywheel/continuation-decision.js +592 -0
- package/dist/agents/goal-flywheel/goal-change.js +754 -0
- package/dist/agents/goal-flywheel/index.js +26 -0
- package/dist/agents/goal-flywheel/memory-layers.js +227 -0
- package/dist/agents/goal-flywheel/run-closure.js +809 -0
- package/dist/agents/goal-flywheel/skill-candidate.js +628 -0
- package/dist/agents/goal-flywheel/types.js +329 -0
- package/dist/agents/goal-flywheel/wiring/change.js +288 -0
- package/dist/agents/goal-flywheel/wiring/closure.js +697 -0
- package/dist/agents/goal-flywheel/wiring/continuation.js +432 -0
- package/dist/agents/goal-flywheel/wiring/contract.js +270 -0
- package/dist/agents/goal-flywheel/wiring/index.js +26 -0
- package/dist/agents/goal-flywheel/wiring/monitor.js +254 -0
- package/dist/agents/goal-flywheel/wiring/seams.js +592 -0
- package/dist/agents/goal-flywheel/work-contract.js +478 -0
- package/dist/agents/goal-flywheel/work-monitor.js +488 -0
- package/dist/agents/goal-flywheel-wiring.js +1870 -0
- package/dist/agents/goal-state-reducer.js +406 -0
- package/dist/agents/goal-store.js +35 -1
- package/dist/agents/mobile-flywheel-view.js +144 -0
- package/dist/agents/mobile-task-actions-verify.js +74 -0
- package/dist/agents/mobile-task-actions.js +178 -0
- package/dist/agents/mobile-task-views.js +199 -0
- package/dist/agents/network-pulse.js +304 -18
- package/dist/agents/pi-sdk.js +75 -20
- package/dist/agents/run-store.js +18 -5
- package/dist/agents/skill-readiness.js +52 -10
- package/dist/agents/subagent-manager.js +209 -3
- package/dist/agents/task/task-runner.js +9 -3
- package/dist/agents/task-group.js +8 -51
- package/dist/agents/task-public-text.js +89 -0
- package/dist/cli/commands/index.js +1 -0
- package/dist/cli/commands/tasks.js +350 -2
- package/dist/cli/identity-command.js +177 -0
- package/dist/cli/setup-wizard.js +71 -0
- package/dist/cli/update-commands.js +150 -24
- package/dist/cli-entry.js +12 -2
- package/dist/electron-build/agents/contacts/chain.js +26 -6
- package/dist/electron-build/agents/contacts/chain.js.map +1 -1
- package/dist/electron-build/agents/execution-supervisor.js +492 -34
- package/dist/electron-build/agents/execution-supervisor.js.map +1 -1
- package/dist/electron-build/agents/external-events.js +34 -5
- package/dist/electron-build/agents/external-events.js.map +1 -1
- package/dist/electron-build/agents/goal-criteria.js +10 -3
- package/dist/electron-build/agents/goal-criteria.js.map +1 -1
- package/dist/electron-build/agents/goal-flywheel/continuation-decision.js +598 -0
- package/dist/electron-build/agents/goal-flywheel/continuation-decision.js.map +1 -0
- package/dist/electron-build/agents/goal-flywheel/goal-change.js +773 -0
- package/dist/electron-build/agents/goal-flywheel/goal-change.js.map +1 -0
- package/dist/electron-build/agents/goal-flywheel/memory-layers.js +269 -0
- package/dist/electron-build/agents/goal-flywheel/memory-layers.js.map +1 -0
- package/dist/electron-build/agents/goal-flywheel/run-closure.js +818 -0
- package/dist/electron-build/agents/goal-flywheel/run-closure.js.map +1 -0
- package/dist/electron-build/agents/goal-flywheel/skill-candidate.js +642 -0
- package/dist/electron-build/agents/goal-flywheel/skill-candidate.js.map +1 -0
- package/dist/electron-build/agents/goal-flywheel/types.js +333 -0
- package/dist/electron-build/agents/goal-flywheel/types.js.map +1 -0
- package/dist/electron-build/agents/goal-flywheel/wiring/change.js +294 -0
- package/dist/electron-build/agents/goal-flywheel/wiring/change.js.map +1 -0
- package/dist/electron-build/agents/goal-flywheel/wiring/closure.js +742 -0
- package/dist/electron-build/agents/goal-flywheel/wiring/closure.js.map +1 -0
- package/dist/electron-build/agents/goal-flywheel/wiring/continuation.js +444 -0
- package/dist/electron-build/agents/goal-flywheel/wiring/continuation.js.map +1 -0
- package/dist/electron-build/agents/goal-flywheel/wiring/contract.js +279 -0
- package/dist/electron-build/agents/goal-flywheel/wiring/contract.js.map +1 -0
- package/dist/electron-build/agents/goal-flywheel/wiring/index.js +111 -0
- package/dist/electron-build/agents/goal-flywheel/wiring/index.js.map +1 -0
- package/dist/electron-build/agents/goal-flywheel/wiring/monitor.js +264 -0
- package/dist/electron-build/agents/goal-flywheel/wiring/monitor.js.map +1 -0
- package/dist/electron-build/agents/goal-flywheel/wiring/seams.js +612 -0
- package/dist/electron-build/agents/goal-flywheel/wiring/seams.js.map +1 -0
- package/dist/electron-build/agents/goal-flywheel/work-contract.js +488 -0
- package/dist/electron-build/agents/goal-flywheel/work-contract.js.map +1 -0
- package/dist/electron-build/agents/goal-flywheel/work-monitor.js +501 -0
- package/dist/electron-build/agents/goal-flywheel/work-monitor.js.map +1 -0
- package/dist/electron-build/agents/goal-flywheel-wiring.js +1962 -0
- package/dist/electron-build/agents/goal-flywheel-wiring.js.map +1 -0
- package/dist/electron-build/agents/goal-state-reducer.js +414 -0
- package/dist/electron-build/agents/goal-state-reducer.js.map +1 -0
- package/dist/electron-build/agents/goal-store.js +35 -1
- package/dist/electron-build/agents/goal-store.js.map +1 -1
- package/dist/electron-build/agents/network-pulse.js +307 -19
- package/dist/electron-build/agents/network-pulse.js.map +1 -1
- package/dist/electron-build/agents/pi-sdk.js +74 -19
- package/dist/electron-build/agents/pi-sdk.js.map +1 -1
- package/dist/electron-build/agents/run-store.js +20 -5
- package/dist/electron-build/agents/run-store.js.map +1 -1
- package/dist/electron-build/agents/skill-readiness.js +52 -9
- package/dist/electron-build/agents/skill-readiness.js.map +1 -1
- package/dist/electron-build/agents/task/task-runner.js +8 -2
- package/dist/electron-build/agents/task/task-runner.js.map +1 -1
- package/dist/electron-build/orbitdb/cid-database.js +83 -17
- package/dist/electron-build/orbitdb/cid-database.js.map +1 -1
- package/dist/electron-build/orbitdb/ipfs-node.js +31 -2
- package/dist/electron-build/orbitdb/ipfs-node.js.map +1 -1
- package/dist/electron-build/utils/dual-source.js +471 -0
- package/dist/electron-build/utils/dual-source.js.map +1 -0
- package/dist/electron-build/utils/update-manager.js +331 -57
- package/dist/electron-build/utils/update-manager.js.map +1 -1
- package/dist/electron-build/utils/update-state.js +16 -1
- package/dist/electron-build/utils/update-state.js.map +1 -1
- package/dist/electron-build/utils/version-info.js +82 -2
- package/dist/electron-build/utils/version-info.js.map +1 -1
- package/dist/index.js +103 -12
- package/dist/ios/chain-explorer.js +617 -0
- package/dist/ios/explorer.html +163 -0
- package/dist/ios/index.html +96 -0
- package/dist/ios/mobile-agent.js +2 -2
- package/dist/ios/mobile-contacts.js +329 -0
- package/dist/ios/mobile-core.js +1379 -226
- package/dist/ios/mobile-privacy.js +185 -0
- package/dist/ios/mobile.css +19 -0
- package/dist/ios/mobile.html +96 -0
- package/dist/ios/mobile.js +706 -7
- package/dist/ios/routes-chain-index.js +108 -0
- package/dist/ios/routes-contacts.js +420 -0
- package/dist/ios/routes-onchain-trade.js +99 -0
- package/dist/ios/routes-x402-info.js +1 -0
- package/dist/ios/server.js +762 -0
- package/dist/ios/task-frame-server.js +211 -0
- package/dist/orbitdb/cid-database.js +81 -16
- package/dist/orbitdb/ipfs-node.js +31 -2
- package/dist/utils/dual-source.js +426 -0
- package/dist/utils/update-cli.js +16 -21
- package/dist/utils/update-health.js +35 -5
- package/dist/utils/update-manager.js +329 -57
- package/dist/utils/update-state.js +16 -1
- package/dist/utils/version-info.js +75 -1
- package/dist/web/mobile-contacts.js +44 -11
- package/dist/web/mobile-core.js +1197 -513
- package/dist/web/mobile-tasks.js +339 -0
- package/dist/web/mobile.css +19 -0
- package/dist/web/mobile.html +64 -0
- package/dist/web/mobile.js +531 -1
- package/dist/web/routes-mobile-tasks.js +353 -0
- package/dist/web/server.js +163 -4
- package/package.json +3 -1
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* wiring/contract.ts — 接缝 ③「这一步该派给谁, 回报算不算完成?」 (**M3 独占**)
|
|
4
|
+
*
|
|
5
|
+
* 归属: `seams.ts` 的 `SEAM_ROSTER` 里 `id: 'contract'`, `stage: 'M3'`。
|
|
6
|
+
* M3 只准改本文件 + `wiring/monitor.ts` + 声明的 `wiringPoints`
|
|
7
|
+
* (`goal-flywheel/work-contract.ts` · `subagent-manager.ts`)。
|
|
8
|
+
*
|
|
9
|
+
* ## 这条接缝钉住的冻结规则
|
|
10
|
+
*
|
|
11
|
+
* **规则 ⑤ 子 Agent 不能直接改 Goal**。
|
|
12
|
+
* 钉法: 派活与收回报**都只经过父侧** (`issueWork` / `acceptReport` / `dispatchWorker`), 且接缝自己做三件事:
|
|
13
|
+
* ① 拒绝 `caller='child_agent'` 的派活 (子不许派生无限子任务);
|
|
14
|
+
* ② 回报一律先过 `validateChildReport` + `acceptsAsComplete` —— **漂亮但没有逐条证据的
|
|
15
|
+
* 回报不算完成** (P5 强负例 7); 子 Agent 侧因此没有任何写 Goal 的路径;
|
|
16
|
+
* ③ **派前必须有工作合同** (M3 新增): `dispatchWorker` 是"签合同 + 交给派遣器"的**唯一**入口 ——
|
|
17
|
+
* 合同签不出来 (缺判据 / 缺目标 / deadline 早于 now / 金额没币种 / 没注入签发面) 就**不派**,
|
|
18
|
+
* 而且派遣端口**一次都不调**。今天 `SubAgentManager` 的旧形状是"签合同失败 → 记个 error 照样派出去",
|
|
19
|
+
* 那正是"派前必须有合同"被绕过的地方 (本文件 + `subagent-manager.ts` 一起堵)。
|
|
20
|
+
*
|
|
21
|
+
* ## 为什么接缝自己带 P2 的核验口径 (`realReportVerdict` / `createContractSeamFromLogic`)
|
|
22
|
+
*
|
|
23
|
+
* 接缝只依赖三样东西: 本目录 `seams.ts` 的接口 · `../types.js` 的冻结类型 · **自己那个阶段**的实现模块。
|
|
24
|
+
* P2 的实现模块就是 `../work-contract.js` (纯函数, 零 I/O)。把它接进来意味着:
|
|
25
|
+
* · 判定口径**全仓一份** —— 接缝不重新实现"算不算完成", 而是直接调真 P2 的那两个函数;
|
|
26
|
+
* · 接缝可以**独立于 M0 组合层**使用 (测试与其它宿主只需注入落盘/读盘这两个端口),
|
|
27
|
+
* 而不是"必须有 `goal-flywheel-wiring.ts` 才能用"。
|
|
28
|
+
* 落盘/读盘仍按参数注入 (接缝不做 I/O, 与 `../work-contract.js` 的边界一致)。
|
|
29
|
+
*/
|
|
30
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31
|
+
exports.CONTRACT_REFUSAL_CODES = exports.CONTRACT_SEAM_ID = void 0;
|
|
32
|
+
exports.realIssueContract = realIssueContract;
|
|
33
|
+
exports.realReportVerdict = realReportVerdict;
|
|
34
|
+
exports.createContractSeamFromLogic = createContractSeamFromLogic;
|
|
35
|
+
exports.childMatchesContract = childMatchesContract;
|
|
36
|
+
exports.createContractSeam = createContractSeam;
|
|
37
|
+
const work_contract_js_1 = require("../work-contract.js");
|
|
38
|
+
const seams_js_1 = require("./seams.js");
|
|
39
|
+
exports.CONTRACT_SEAM_ID = 'contract';
|
|
40
|
+
/**
|
|
41
|
+
* 派活的拒绝码 (接缝自己的闭集)。
|
|
42
|
+
*
|
|
43
|
+
* 刻意**不**复用 `FrozenRule`: 六条冻结规则说的是"责任人是谁", 而这里是"这一步做不成的原因"。
|
|
44
|
+
* 把 `contract_invalid` 硬说成某条冻结规则 = 编一个规则号, 那会让日志与门都开始说谎。
|
|
45
|
+
* 只有真的越界 (`caller_not_allowed`) 才附 `refusal` (它确实违反规则 ⑤)。
|
|
46
|
+
*/
|
|
47
|
+
exports.CONTRACT_REFUSAL_CODES = [
|
|
48
|
+
'caller_not_allowed',
|
|
49
|
+
'no_criteria',
|
|
50
|
+
'contract_invalid',
|
|
51
|
+
'no_dispatch_port',
|
|
52
|
+
'dispatch_failed',
|
|
53
|
+
];
|
|
54
|
+
// ============================================================================
|
|
55
|
+
// §0. 与真 P2 模块的唯一耦合点 (判定口径全仓一份)
|
|
56
|
+
// ============================================================================
|
|
57
|
+
/** 用真 `issueWorkContract` 签发 —— 合同不合法时抛带 `issues` 的 `WorkContractError` (接缝抓它转成结构化拒绝) */
|
|
58
|
+
function realIssueContract(input) {
|
|
59
|
+
return (0, work_contract_js_1.issueWorkContract)({
|
|
60
|
+
goalId: input.goalId,
|
|
61
|
+
parentRunId: input.parentRunId,
|
|
62
|
+
childAgentId: input.childAgentId,
|
|
63
|
+
capability: input.capability,
|
|
64
|
+
objective: input.objective,
|
|
65
|
+
inputs: input.inputs ?? {},
|
|
66
|
+
allowedTools: input.allowedTools ?? [],
|
|
67
|
+
budget: input.budget,
|
|
68
|
+
deadline: input.deadline ?? null,
|
|
69
|
+
successCriteria: input.successCriteria,
|
|
70
|
+
now: input.now,
|
|
71
|
+
issuedBy: input.issuedBy ?? 'supervisor',
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
/** 用真 `validateChildReport` + `acceptsAsComplete` 核验 —— 接缝不另写一套"算不算完成" */
|
|
75
|
+
function realReportVerdict(contract, report) {
|
|
76
|
+
const validation = (0, work_contract_js_1.validateChildReport)(contract, report);
|
|
77
|
+
const verdict = (0, work_contract_js_1.acceptsAsComplete)(contract, report);
|
|
78
|
+
return {
|
|
79
|
+
outcome: verdict.accepted ? 'accepted' : 'incomplete',
|
|
80
|
+
accepted: verdict.accepted,
|
|
81
|
+
reason: verdict.reason,
|
|
82
|
+
missingFields: validation.missingFields,
|
|
83
|
+
missingEvidence: validation.missingEvidence,
|
|
84
|
+
violation: validation.violation,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* 从**真 P2 逻辑** + 两个存储端口拼一条接缝 (M3 的自带适配器)。
|
|
89
|
+
*
|
|
90
|
+
* 为什么需要它: `createContractSeam` 要求宿主自己注入 `issue`/`accept` (M0 组合层注入的是
|
|
91
|
+
* `dispatchChildWork` / `handleChildReport`)。这条工厂让**其它宿主** (测试 / CLI / Web)
|
|
92
|
+
* 也能用同一条接缝, 而判定口径仍是 `../work-contract.js` 那一份 —— 不会出现"第二份判定"。
|
|
93
|
+
*
|
|
94
|
+
* 注意 `persistContract`: 合同**必须先落盘再派出** —— 子拿到合同的依据是盘上那份,
|
|
95
|
+
* 而不是父内存里那句口头约定 (否则子回报时核心验的是"合同存不存在"就永远对不上)。
|
|
96
|
+
*/
|
|
97
|
+
function createContractSeamFromLogic(ports) {
|
|
98
|
+
return createContractSeam({
|
|
99
|
+
issue: async (input) => {
|
|
100
|
+
const contract = realIssueContract(input);
|
|
101
|
+
await ports.persistContract(contract);
|
|
102
|
+
return contract;
|
|
103
|
+
},
|
|
104
|
+
accept: async (input) => {
|
|
105
|
+
const contract = await ports.loadContract({ goalId: input.goalId, workId: input.workId });
|
|
106
|
+
if (!contract) {
|
|
107
|
+
return {
|
|
108
|
+
outcome: 'no_contract', accepted: false,
|
|
109
|
+
reason: `没有找到合同 ${input.workId} → 没有合同的回报不核验也不接受`,
|
|
110
|
+
missingFields: [], missingEvidence: [], violation: null,
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
return realReportVerdict(contract, input.report);
|
|
114
|
+
},
|
|
115
|
+
dispatch: ports.dispatch,
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
// ============================================================================
|
|
119
|
+
// §1. 合同与派遣的边界判定 (纯函数 —— 接线层 / SubAgentManager 直接复用, 不重写一套)
|
|
120
|
+
// ============================================================================
|
|
121
|
+
/**
|
|
122
|
+
* 换人必须重签合同 (M3)。
|
|
123
|
+
*
|
|
124
|
+
* 合同把 `childAgentId` 钉死了 (`validateChildReport` 要求 `report.childAgentId === contract.childAgentId`),
|
|
125
|
+
* 所以"把同一份合同指给另一个子 Agent"不是改个字段: 新子回报必然对不上合同 → 旧的合规判定直接失效
|
|
126
|
+
* (要么假红, 要么被人放宽判据 —— 两条都是两套事实)。
|
|
127
|
+
* 结论: **换人 = 换合同**。本函数是那条规则的唯一判据。
|
|
128
|
+
*/
|
|
129
|
+
function childMatchesContract(contract, childAgentId) {
|
|
130
|
+
const next = String(childAgentId ?? '').trim();
|
|
131
|
+
if (!next)
|
|
132
|
+
return { ok: false, reason: '新执行者没有 id —— 合同无法绑定到具体执行者 (换人必须重签)' };
|
|
133
|
+
if (next === contract.childAgentId) {
|
|
134
|
+
return { ok: true, reason: `执行者未变 (${next}), 合同 ${contract.workId} 仍然有效` };
|
|
135
|
+
}
|
|
136
|
+
return {
|
|
137
|
+
ok: false,
|
|
138
|
+
reason: `合同 ${contract.workId} 绑定的执行者是 ${contract.childAgentId}, 不是 ${next} `
|
|
139
|
+
+ '—— 换人必须重签合同 (否则新子 Agent 的回报与合同对不上, 合规判定失效)',
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
// ============================================================================
|
|
143
|
+
// §2. 接缝本体
|
|
144
|
+
// ============================================================================
|
|
145
|
+
function errText(e) {
|
|
146
|
+
return String(e?.message || e).slice(0, 400);
|
|
147
|
+
}
|
|
148
|
+
/** 抓签发失败的结构化原因 (WorkContractError 带 issues; 其它错误只带 message) */
|
|
149
|
+
function issueFailure(input, e) {
|
|
150
|
+
const issues = e?.issues;
|
|
151
|
+
if (Array.isArray(issues) && issues.length > 0) {
|
|
152
|
+
return {
|
|
153
|
+
code: 'contract_invalid',
|
|
154
|
+
reason: `合同不合法, 拒签也拒派 (${input.capability} → ${input.childAgentId}): ${issues.join('; ')}`,
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
return { code: 'contract_invalid', reason: `合同签发失败, 拒派: ${errText(e)}` };
|
|
158
|
+
}
|
|
159
|
+
function createContractSeam(deps) {
|
|
160
|
+
return {
|
|
161
|
+
id: exports.CONTRACT_SEAM_ID,
|
|
162
|
+
stage: 'M3',
|
|
163
|
+
async issueWork(input) {
|
|
164
|
+
if (input.caller === 'child_agent') {
|
|
165
|
+
return (0, seams_js_1.refuse)('child_cannot_mutate_goal', `拒绝: 子 Agent (${input.childAgentId}) 想给「${input.capability}」派活 —— `
|
|
166
|
+
+ '子 Agent 不许派生无限子任务, 也不许改父 Goal 的派遣面 (CHILD_PROHIBITIONS.spawn_unbounded_subtasks)');
|
|
167
|
+
}
|
|
168
|
+
if (!input.successCriteria?.length) {
|
|
169
|
+
return (0, seams_js_1.refuse)('child_cannot_mutate_goal', '拒绝: 合同没有成功判据 —— 子 Agent 会自己定义"算完成"');
|
|
170
|
+
}
|
|
171
|
+
return deps.issue(input);
|
|
172
|
+
},
|
|
173
|
+
async acceptReport(input) {
|
|
174
|
+
if (!input.workId) {
|
|
175
|
+
return (0, seams_js_1.refuse)('child_cannot_mutate_goal', '拒绝: 没有 workId 的回报无法对合同核验 → 不接受为完成');
|
|
176
|
+
}
|
|
177
|
+
const verdict = await deps.accept({ goalId: input.goalId, workId: input.workId, report: input.report, now: input.now });
|
|
178
|
+
// 无证据的漂亮回报: 显式拒绝, 并说清缺什么 (不许静默降级成"完成")
|
|
179
|
+
if (verdict.outcome === 'incomplete' && !verdict.reason) {
|
|
180
|
+
return { ...verdict, reason: '报告不完整 → 不接受为完成 (缺字段/缺证据)' };
|
|
181
|
+
}
|
|
182
|
+
return verdict;
|
|
183
|
+
},
|
|
184
|
+
/**
|
|
185
|
+
* 派前必须有工作合同 (M3 唯一派遣入口)。
|
|
186
|
+
*
|
|
187
|
+
* 顺序固定 (便于复现与断言):
|
|
188
|
+
* ① 权限: 子 Agent 不许派活 → 拒 (附冻结规则 ⑤, 端口零调用);
|
|
189
|
+
* ② 判据: 没有成功判据 → 拒 (没有"完成"的定义, 派出去只能扯皮);
|
|
190
|
+
* ③ 派遣面: 没注入 `dispatch` → 拒 (**不假装派过**);
|
|
191
|
+
* ④ 签合同: 真签 (`deps.issue`)。签不出 → 拒, 派遣端口**零调用** (这是"派前必须有合同"的硬点);
|
|
192
|
+
* ⑤ 真派: 调 `dispatch`。端口抛错 / 回 `dispatched:false` → 如实拒绝 + 把人叫上 (不静默降级成"派出去了")。
|
|
193
|
+
*
|
|
194
|
+
* 合同**先落盘再派出**由 `deps.issue` 的宿主保证 (M0: `dispatchChildWork` 先写 goal-works/ 再写 pendingReports)。
|
|
195
|
+
*/
|
|
196
|
+
async dispatchWorker(input) {
|
|
197
|
+
if (input.caller === 'child_agent') {
|
|
198
|
+
return {
|
|
199
|
+
ok: false,
|
|
200
|
+
code: 'caller_not_allowed',
|
|
201
|
+
reason: `拒绝派遣: 调用者是子 Agent (${input.childAgentId} → 「${input.capability}」) —— `
|
|
202
|
+
+ '子 Agent 不许派生无限子任务 (CHILD_PROHIBITIONS.spawn_unbounded_subtasks)',
|
|
203
|
+
refusal: (0, seams_js_1.refuse)('child_cannot_mutate_goal', '子 Agent 不许派生无限子任务 / 不许改父 Goal 的派遣面'),
|
|
204
|
+
detail: 'no_dispatch: 未签发合同, 派遣端口零调用',
|
|
205
|
+
contract: null,
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
if (!input.successCriteria?.length) {
|
|
209
|
+
return {
|
|
210
|
+
ok: false,
|
|
211
|
+
code: 'no_criteria',
|
|
212
|
+
reason: `拒绝派遣「${input.capability}」: 合同没有成功判据 —— 没有"完成"的定义就不许派 `
|
|
213
|
+
+ '(子 Agent 会自己定义"算完成")',
|
|
214
|
+
refusal: null,
|
|
215
|
+
detail: 'no_dispatch: 未签发合同, 派遣端口零调用',
|
|
216
|
+
contract: null,
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
const dispatch = deps.dispatch;
|
|
220
|
+
if (typeof dispatch !== 'function') {
|
|
221
|
+
return {
|
|
222
|
+
ok: false,
|
|
223
|
+
code: 'no_dispatch_port',
|
|
224
|
+
reason: `拒绝派遣「${input.capability}」: 宿主没有注入派遣面 (端口缺失) —— 拿不到"真派出去了"的事实, `
|
|
225
|
+
+ '不许把签发当成已派遣',
|
|
226
|
+
refusal: null,
|
|
227
|
+
detail: 'no_dispatch: 未签发合同, 派遣端口零调用',
|
|
228
|
+
contract: null,
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
let contract;
|
|
232
|
+
try {
|
|
233
|
+
contract = await deps.issue(input);
|
|
234
|
+
}
|
|
235
|
+
catch (e) {
|
|
236
|
+
const fail = issueFailure(input, e);
|
|
237
|
+
return {
|
|
238
|
+
ok: false,
|
|
239
|
+
code: fail.code,
|
|
240
|
+
reason: fail.reason,
|
|
241
|
+
refusal: null,
|
|
242
|
+
detail: 'no_dispatch: 合同没签成, 派遣端口零调用',
|
|
243
|
+
contract: null,
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
try {
|
|
247
|
+
const receipt = await dispatch({ contract, caller: input.caller, now: input.now });
|
|
248
|
+
if (receipt?.dispatched !== true) {
|
|
249
|
+
return {
|
|
250
|
+
ok: false,
|
|
251
|
+
code: 'dispatch_failed',
|
|
252
|
+
reason: `合同 ${contract.workId} 已签发, 但派遣端口回"没派出去": ${receipt?.detail ?? '(端口没给原因)'}`,
|
|
253
|
+
refusal: null,
|
|
254
|
+
detail: `dispatched=false (workId=${contract.workId})`,
|
|
255
|
+
contract,
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
return {
|
|
259
|
+
ok: true,
|
|
260
|
+
contract,
|
|
261
|
+
dispatched: true,
|
|
262
|
+
detail: receipt.detail,
|
|
263
|
+
receipt: receipt.receipt ?? null,
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
catch (e) {
|
|
267
|
+
return {
|
|
268
|
+
ok: false,
|
|
269
|
+
code: 'dispatch_failed',
|
|
270
|
+
reason: `合同 ${contract.workId} 已签发, 但派遣端口抛错: ${errText(e)}`,
|
|
271
|
+
refusal: null,
|
|
272
|
+
detail: `dispatch 抛错: ${errText(e)}`,
|
|
273
|
+
contract,
|
|
274
|
+
};
|
|
275
|
+
}
|
|
276
|
+
},
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
//# sourceMappingURL=contract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../../../../../src/agents/goal-flywheel/wiring/contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* goal-flywheel/wiring/index.ts — 接线接缝的对外入口 (M0)
|
|
4
|
+
*
|
|
5
|
+
* 只做转发: 接缝名册在 `seams.ts` (M0 冻结), 五个接缝实现各归各的阶段文件。
|
|
6
|
+
* 这里**不定义任何函数** —— 与 `../index.ts` 同一纪律 (转发行, 不夹带实现)。
|
|
7
|
+
*
|
|
8
|
+
* M1–M4 各自只 import 自己那个接缝文件; 想拿到接缝实例请走 M0 接线层
|
|
9
|
+
* (`src/agents/goal-flywheel-wiring.ts` 的 `flywheelSeams()`), 它负责注入真依赖。
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.closureTerminalKindFor = exports.auditTerminalCoverage = exports.auditClosureOutcome = exports.CLOSURE_TERMINAL_KINDS = exports.CLOSURE_SEAM_ID = exports.CLOSURE_IDEMPOTENCY_NOTE = exports.scanContinuationSeamRhythm = exports.safetyCapsFrom = exports.rhythmicDecision = exports.planRhythm = exports.judgeLegacyStop = exports.judgeInjectedOutcome = exports.createContinuationSeam = exports.bindingCaps = exports.SEAM_ROUNDS_AS_RHYTHM = exports.SEAM_RHYTHM_REQUIRED = exports.SEAM_CAP_DEFAULTS = exports.SAFETY_CAP_TEXT = exports.SAFETY_CAPS = exports.RHYTHM_BASIS_TEXT = exports.CONTINUATION_SEAM_ID = exports.stageOf = exports.scanTerminalPaths = exports.scanSkillChannel = exports.scanOnlySupervisorDecides = exports.scanOnlyGoalReducerWritesState = exports.scanOnlyCloseRunCloses = exports.scanFunnelAliases = exports.scanChildCannotMutateGoal = exports.seamRosterViolations = exports.seamOf = exports.seamModuleOf = exports.refuse = exports.isRefusal = exports.filesOfStage = exports.canRunStagesInParallel = exports.WIRING_STAGES = exports.WIRING_CALLERS = exports.TERMINAL_PATHS = exports.SKILL_CHANNEL_EVIDENCE = exports.SEAM_ROSTER = exports.SEAM_MODULES = exports.SEAM_IDS = exports.SCANNED_SOURCES = exports.FUNNEL_ENTRY = exports.FUNNEL_CALL_RE = exports.FUNNEL_ALIASES = exports.FROZEN_RULE_TEXT = exports.FROZEN_RULES = exports.DEFAULT_ALLOW = void 0;
|
|
13
|
+
exports.USER_VISIBLE_STATES = exports.planChangeInjection = exports.toUserVisibleState = exports.normalizeContinuationRecord = exports.createChangeSeam = exports.changeVisibleState = exports.USER_ONLY_CHANGE_KINDS = exports.CHANGE_SEAM_ID = exports.userFacingState = exports.scanInternalLeak = exports.isUserVisibleState = exports.describeVisibleState = exports.createVisibleStateProbe = exports.createMonitorSeam = exports.USER_FACING_STATES = exports.MONITOR_SWEEP_MAX_LIMIT = exports.MONITOR_SWEEP_DEFAULT_LIMIT = exports.MONITOR_SEAM_ID = exports.INTERNAL_VISIBLE_WORDS = exports.realReportVerdict = exports.realIssueContract = exports.createContractSeamFromLogic = exports.createContractSeam = exports.childMatchesContract = exports.CONTRACT_REFUSAL_CODES = exports.CONTRACT_SEAM_ID = exports.terminalRegistryCoverage = exports.terminalKindAccepts = exports.probeClosureArtifacts = exports.createClosureSeam = void 0;
|
|
14
|
+
var seams_js_1 = require("./seams.js");
|
|
15
|
+
Object.defineProperty(exports, "DEFAULT_ALLOW", { enumerable: true, get: function () { return seams_js_1.DEFAULT_ALLOW; } });
|
|
16
|
+
Object.defineProperty(exports, "FROZEN_RULES", { enumerable: true, get: function () { return seams_js_1.FROZEN_RULES; } });
|
|
17
|
+
Object.defineProperty(exports, "FROZEN_RULE_TEXT", { enumerable: true, get: function () { return seams_js_1.FROZEN_RULE_TEXT; } });
|
|
18
|
+
Object.defineProperty(exports, "FUNNEL_ALIASES", { enumerable: true, get: function () { return seams_js_1.FUNNEL_ALIASES; } });
|
|
19
|
+
Object.defineProperty(exports, "FUNNEL_CALL_RE", { enumerable: true, get: function () { return seams_js_1.FUNNEL_CALL_RE; } });
|
|
20
|
+
Object.defineProperty(exports, "FUNNEL_ENTRY", { enumerable: true, get: function () { return seams_js_1.FUNNEL_ENTRY; } });
|
|
21
|
+
Object.defineProperty(exports, "SCANNED_SOURCES", { enumerable: true, get: function () { return seams_js_1.SCANNED_SOURCES; } });
|
|
22
|
+
Object.defineProperty(exports, "SEAM_IDS", { enumerable: true, get: function () { return seams_js_1.SEAM_IDS; } });
|
|
23
|
+
Object.defineProperty(exports, "SEAM_MODULES", { enumerable: true, get: function () { return seams_js_1.SEAM_MODULES; } });
|
|
24
|
+
Object.defineProperty(exports, "SEAM_ROSTER", { enumerable: true, get: function () { return seams_js_1.SEAM_ROSTER; } });
|
|
25
|
+
Object.defineProperty(exports, "SKILL_CHANNEL_EVIDENCE", { enumerable: true, get: function () { return seams_js_1.SKILL_CHANNEL_EVIDENCE; } });
|
|
26
|
+
Object.defineProperty(exports, "TERMINAL_PATHS", { enumerable: true, get: function () { return seams_js_1.TERMINAL_PATHS; } });
|
|
27
|
+
Object.defineProperty(exports, "WIRING_CALLERS", { enumerable: true, get: function () { return seams_js_1.WIRING_CALLERS; } });
|
|
28
|
+
Object.defineProperty(exports, "WIRING_STAGES", { enumerable: true, get: function () { return seams_js_1.WIRING_STAGES; } });
|
|
29
|
+
Object.defineProperty(exports, "canRunStagesInParallel", { enumerable: true, get: function () { return seams_js_1.canRunStagesInParallel; } });
|
|
30
|
+
Object.defineProperty(exports, "filesOfStage", { enumerable: true, get: function () { return seams_js_1.filesOfStage; } });
|
|
31
|
+
Object.defineProperty(exports, "isRefusal", { enumerable: true, get: function () { return seams_js_1.isRefusal; } });
|
|
32
|
+
Object.defineProperty(exports, "refuse", { enumerable: true, get: function () { return seams_js_1.refuse; } });
|
|
33
|
+
Object.defineProperty(exports, "seamModuleOf", { enumerable: true, get: function () { return seams_js_1.seamModuleOf; } });
|
|
34
|
+
Object.defineProperty(exports, "seamOf", { enumerable: true, get: function () { return seams_js_1.seamOf; } });
|
|
35
|
+
Object.defineProperty(exports, "seamRosterViolations", { enumerable: true, get: function () { return seams_js_1.seamRosterViolations; } });
|
|
36
|
+
Object.defineProperty(exports, "scanChildCannotMutateGoal", { enumerable: true, get: function () { return seams_js_1.scanChildCannotMutateGoal; } });
|
|
37
|
+
Object.defineProperty(exports, "scanFunnelAliases", { enumerable: true, get: function () { return seams_js_1.scanFunnelAliases; } });
|
|
38
|
+
Object.defineProperty(exports, "scanOnlyCloseRunCloses", { enumerable: true, get: function () { return seams_js_1.scanOnlyCloseRunCloses; } });
|
|
39
|
+
Object.defineProperty(exports, "scanOnlyGoalReducerWritesState", { enumerable: true, get: function () { return seams_js_1.scanOnlyGoalReducerWritesState; } });
|
|
40
|
+
Object.defineProperty(exports, "scanOnlySupervisorDecides", { enumerable: true, get: function () { return seams_js_1.scanOnlySupervisorDecides; } });
|
|
41
|
+
Object.defineProperty(exports, "scanSkillChannel", { enumerable: true, get: function () { return seams_js_1.scanSkillChannel; } });
|
|
42
|
+
Object.defineProperty(exports, "scanTerminalPaths", { enumerable: true, get: function () { return seams_js_1.scanTerminalPaths; } });
|
|
43
|
+
Object.defineProperty(exports, "stageOf", { enumerable: true, get: function () { return seams_js_1.stageOf; } });
|
|
44
|
+
var continuation_js_1 = require("./continuation.js");
|
|
45
|
+
Object.defineProperty(exports, "CONTINUATION_SEAM_ID", { enumerable: true, get: function () { return continuation_js_1.CONTINUATION_SEAM_ID; } });
|
|
46
|
+
Object.defineProperty(exports, "RHYTHM_BASIS_TEXT", { enumerable: true, get: function () { return continuation_js_1.RHYTHM_BASIS_TEXT; } });
|
|
47
|
+
Object.defineProperty(exports, "SAFETY_CAPS", { enumerable: true, get: function () { return continuation_js_1.SAFETY_CAPS; } });
|
|
48
|
+
Object.defineProperty(exports, "SAFETY_CAP_TEXT", { enumerable: true, get: function () { return continuation_js_1.SAFETY_CAP_TEXT; } });
|
|
49
|
+
Object.defineProperty(exports, "SEAM_CAP_DEFAULTS", { enumerable: true, get: function () { return continuation_js_1.SEAM_CAP_DEFAULTS; } });
|
|
50
|
+
Object.defineProperty(exports, "SEAM_RHYTHM_REQUIRED", { enumerable: true, get: function () { return continuation_js_1.SEAM_RHYTHM_REQUIRED; } });
|
|
51
|
+
Object.defineProperty(exports, "SEAM_ROUNDS_AS_RHYTHM", { enumerable: true, get: function () { return continuation_js_1.SEAM_ROUNDS_AS_RHYTHM; } });
|
|
52
|
+
Object.defineProperty(exports, "bindingCaps", { enumerable: true, get: function () { return continuation_js_1.bindingCaps; } });
|
|
53
|
+
Object.defineProperty(exports, "createContinuationSeam", { enumerable: true, get: function () { return continuation_js_1.createContinuationSeam; } });
|
|
54
|
+
Object.defineProperty(exports, "judgeInjectedOutcome", { enumerable: true, get: function () { return continuation_js_1.judgeInjectedOutcome; } });
|
|
55
|
+
Object.defineProperty(exports, "judgeLegacyStop", { enumerable: true, get: function () { return continuation_js_1.judgeLegacyStop; } });
|
|
56
|
+
Object.defineProperty(exports, "planRhythm", { enumerable: true, get: function () { return continuation_js_1.planRhythm; } });
|
|
57
|
+
Object.defineProperty(exports, "rhythmicDecision", { enumerable: true, get: function () { return continuation_js_1.rhythmicDecision; } });
|
|
58
|
+
Object.defineProperty(exports, "safetyCapsFrom", { enumerable: true, get: function () { return continuation_js_1.safetyCapsFrom; } });
|
|
59
|
+
Object.defineProperty(exports, "scanContinuationSeamRhythm", { enumerable: true, get: function () { return continuation_js_1.scanContinuationSeamRhythm; } });
|
|
60
|
+
var closure_js_1 = require("./closure.js");
|
|
61
|
+
Object.defineProperty(exports, "CLOSURE_IDEMPOTENCY_NOTE", { enumerable: true, get: function () { return closure_js_1.CLOSURE_IDEMPOTENCY_NOTE; } });
|
|
62
|
+
Object.defineProperty(exports, "CLOSURE_SEAM_ID", { enumerable: true, get: function () { return closure_js_1.CLOSURE_SEAM_ID; } });
|
|
63
|
+
Object.defineProperty(exports, "CLOSURE_TERMINAL_KINDS", { enumerable: true, get: function () { return closure_js_1.CLOSURE_TERMINAL_KINDS; } });
|
|
64
|
+
Object.defineProperty(exports, "auditClosureOutcome", { enumerable: true, get: function () { return closure_js_1.auditClosureOutcome; } });
|
|
65
|
+
Object.defineProperty(exports, "auditTerminalCoverage", { enumerable: true, get: function () { return closure_js_1.auditTerminalCoverage; } });
|
|
66
|
+
Object.defineProperty(exports, "closureTerminalKindFor", { enumerable: true, get: function () { return closure_js_1.closureTerminalKindFor; } });
|
|
67
|
+
Object.defineProperty(exports, "createClosureSeam", { enumerable: true, get: function () { return closure_js_1.createClosureSeam; } });
|
|
68
|
+
Object.defineProperty(exports, "probeClosureArtifacts", { enumerable: true, get: function () { return closure_js_1.probeClosureArtifacts; } });
|
|
69
|
+
Object.defineProperty(exports, "terminalKindAccepts", { enumerable: true, get: function () { return closure_js_1.terminalKindAccepts; } });
|
|
70
|
+
Object.defineProperty(exports, "terminalRegistryCoverage", { enumerable: true, get: function () { return closure_js_1.terminalRegistryCoverage; } });
|
|
71
|
+
var contract_js_1 = require("./contract.js");
|
|
72
|
+
Object.defineProperty(exports, "CONTRACT_SEAM_ID", { enumerable: true, get: function () { return contract_js_1.CONTRACT_SEAM_ID; } });
|
|
73
|
+
Object.defineProperty(exports, "CONTRACT_REFUSAL_CODES", { enumerable: true, get: function () { return contract_js_1.CONTRACT_REFUSAL_CODES; } });
|
|
74
|
+
Object.defineProperty(exports, "childMatchesContract", { enumerable: true, get: function () { return contract_js_1.childMatchesContract; } });
|
|
75
|
+
Object.defineProperty(exports, "createContractSeam", { enumerable: true, get: function () { return contract_js_1.createContractSeam; } });
|
|
76
|
+
Object.defineProperty(exports, "createContractSeamFromLogic", { enumerable: true, get: function () { return contract_js_1.createContractSeamFromLogic; } });
|
|
77
|
+
Object.defineProperty(exports, "realIssueContract", { enumerable: true, get: function () { return contract_js_1.realIssueContract; } });
|
|
78
|
+
Object.defineProperty(exports, "realReportVerdict", { enumerable: true, get: function () { return contract_js_1.realReportVerdict; } });
|
|
79
|
+
var monitor_js_1 = require("./monitor.js");
|
|
80
|
+
Object.defineProperty(exports, "INTERNAL_VISIBLE_WORDS", { enumerable: true, get: function () { return monitor_js_1.INTERNAL_VISIBLE_WORDS; } });
|
|
81
|
+
Object.defineProperty(exports, "MONITOR_SEAM_ID", { enumerable: true, get: function () { return monitor_js_1.MONITOR_SEAM_ID; } });
|
|
82
|
+
Object.defineProperty(exports, "MONITOR_SWEEP_DEFAULT_LIMIT", { enumerable: true, get: function () { return monitor_js_1.MONITOR_SWEEP_DEFAULT_LIMIT; } });
|
|
83
|
+
Object.defineProperty(exports, "MONITOR_SWEEP_MAX_LIMIT", { enumerable: true, get: function () { return monitor_js_1.MONITOR_SWEEP_MAX_LIMIT; } });
|
|
84
|
+
Object.defineProperty(exports, "USER_FACING_STATES", { enumerable: true, get: function () { return monitor_js_1.USER_FACING_STATES; } });
|
|
85
|
+
Object.defineProperty(exports, "createMonitorSeam", { enumerable: true, get: function () { return monitor_js_1.createMonitorSeam; } });
|
|
86
|
+
Object.defineProperty(exports, "createVisibleStateProbe", { enumerable: true, get: function () { return monitor_js_1.createVisibleStateProbe; } });
|
|
87
|
+
Object.defineProperty(exports, "describeVisibleState", { enumerable: true, get: function () { return monitor_js_1.describeVisibleState; } });
|
|
88
|
+
Object.defineProperty(exports, "isUserVisibleState", { enumerable: true, get: function () { return monitor_js_1.isUserVisibleState; } });
|
|
89
|
+
Object.defineProperty(exports, "scanInternalLeak", { enumerable: true, get: function () { return monitor_js_1.scanInternalLeak; } });
|
|
90
|
+
Object.defineProperty(exports, "userFacingState", { enumerable: true, get: function () { return monitor_js_1.userFacingState; } });
|
|
91
|
+
var change_js_1 = require("./change.js");
|
|
92
|
+
Object.defineProperty(exports, "CHANGE_SEAM_ID", { enumerable: true, get: function () { return change_js_1.CHANGE_SEAM_ID; } });
|
|
93
|
+
Object.defineProperty(exports, "USER_ONLY_CHANGE_KINDS", { enumerable: true, get: function () { return change_js_1.USER_ONLY_CHANGE_KINDS; } });
|
|
94
|
+
Object.defineProperty(exports, "changeVisibleState", { enumerable: true, get: function () { return change_js_1.changeVisibleState; } });
|
|
95
|
+
Object.defineProperty(exports, "createChangeSeam", { enumerable: true, get: function () { return change_js_1.createChangeSeam; } });
|
|
96
|
+
// ---------------------------------------------------------------------------
|
|
97
|
+
// 跨阶段的**纯函数面** (2026-09-25 串行收口): 接缝与宿主都用的判定/归一化在这里一并转发 ——
|
|
98
|
+
// 宿主与界面要的是"同一份口径", 不该各自深入阶段目录再 import 一遍 (M3 报的"index 补导"的完整形态)。
|
|
99
|
+
//
|
|
100
|
+
// 转发的是**同一个函数对象**, 不是同名的壳: 见 `goal-flywheel-m0-serial-hooks.test.ts` ⑥ 的恒等断言。
|
|
101
|
+
// 尤其 `toUserVisibleState` / `normalizeContinuationRecord` —— 工作监控与 web 路由直传**部分**
|
|
102
|
+
// continuation 时必须读同一份归一化 (2026-09-25 跨阶段真问题 ①)。
|
|
103
|
+
// ---------------------------------------------------------------------------
|
|
104
|
+
var work_monitor_js_1 = require("../work-monitor.js");
|
|
105
|
+
Object.defineProperty(exports, "normalizeContinuationRecord", { enumerable: true, get: function () { return work_monitor_js_1.normalizeContinuationRecord; } });
|
|
106
|
+
Object.defineProperty(exports, "toUserVisibleState", { enumerable: true, get: function () { return work_monitor_js_1.toUserVisibleState; } });
|
|
107
|
+
var goal_change_js_1 = require("../goal-change.js");
|
|
108
|
+
Object.defineProperty(exports, "planChangeInjection", { enumerable: true, get: function () { return goal_change_js_1.planChangeInjection; } });
|
|
109
|
+
var types_js_1 = require("../types.js");
|
|
110
|
+
Object.defineProperty(exports, "USER_VISIBLE_STATES", { enumerable: true, get: function () { return types_js_1.USER_VISIBLE_STATES; } });
|
|
111
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/agents/goal-flywheel/wiring/index.ts"],"names":[],"mappings":"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"}
|