@bolloon/bolloon-agent 0.4.32 → 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/chain/explorer.js +52 -0
- package/dist/agents/chain/index.js +2 -0
- package/dist/agents/chain/onchain-trade.js +15 -1
- 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 +525 -27
- 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-onchain-runner.js +19 -1
- package/dist/agents/task/task-runner.js +36 -6
- package/dist/agents/task-board.js +702 -0
- package/dist/agents/task-group.js +524 -0
- package/dist/agents/task-public-text.js +89 -0
- package/dist/cli/commands/index.js +3 -0
- package/dist/cli/commands/tasks.js +977 -8
- package/dist/cli/identity-command.js +177 -0
- package/dist/cli/protocol-envelope.js +4 -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/chain/explorer.js +59 -0
- package/dist/electron-build/agents/chain/explorer.js.map +1 -0
- 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/local-signer.js +101 -0
- package/dist/electron-build/agents/local-signer.js.map +1 -0
- package/dist/electron-build/agents/network-pulse.js +531 -28
- 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 +35 -5
- package/dist/electron-build/agents/task/task-runner.js.map +1 -1
- package/dist/electron-build/agents/task-board.js +761 -0
- package/dist/electron-build/agents/task-board.js.map +1 -0
- package/dist/electron-build/agents/task-contract.js +382 -0
- package/dist/electron-build/agents/task-contract.js.map +1 -0
- 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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"}
|