@tea-agent/loop-agent 0.39.0-next.17 → 0.39.0-next.19
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/CHANGELOG.md +12 -0
- package/dist/build-stamp.json +2 -2
- package/dist/commands/init.js +2 -14
- package/dist/governance/manifest-types.js +0 -2
- package/dist/worker/console/harness-pi-model-matrix.js +2 -11
- package/dist/worker/console/pi-readiness.js +1 -0
- package/dist/worker/console/static/assets/{abnfDiagram-N423BO3Z-B_oUmMOh.js → abnfDiagram-N423BO3Z-DwiNHTdC.js} +1 -1
- package/dist/worker/console/static/assets/{arc-ftlOud1c.js → arc-CqaEjHku.js} +1 -1
- package/dist/worker/console/static/assets/{architectureDiagram-T3A2C74G-DjW1pNpm.js → architectureDiagram-T3A2C74G-BoztYl-Q.js} +1 -1
- package/dist/worker/console/static/assets/{blockDiagram-VBNYF7ZC-BIKIhuQ2.js → blockDiagram-VBNYF7ZC-BR6kEDU-.js} +1 -1
- package/dist/worker/console/static/assets/{c4Diagram-5PPSVZJV-gQPyScnQ.js → c4Diagram-5PPSVZJV-x8RjYRwv.js} +1 -1
- package/dist/worker/console/static/assets/channel-1N7RyL5T.js +1 -0
- package/dist/worker/console/static/assets/{chunk-2GRJ4B5K-DbYJpklA.js → chunk-2GRJ4B5K-_HKgW9Gv.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-2Q5K7J3B-B2EimXhx.js → chunk-2Q5K7J3B-BF0MICQ6.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-5RXB4S5H-CRl4qEu8.js → chunk-5RXB4S5H-CwMHVJ8a.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-5VM5RSS4-aCdt3uIm.js → chunk-5VM5RSS4-BsAqLAeh.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-6Q2QTUOP-upQU37XN.js → chunk-6Q2QTUOP-IdBfnQF8.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-GF5L2VYU-CTNubrNg.js → chunk-GF5L2VYU-CmnTA6PM.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-JWPE2WC7-CzhqBe80.js → chunk-JWPE2WC7-DDC1y-tm.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-KBJHAD2P-51xTGTO2.js → chunk-KBJHAD2P-Df-jjFHX.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-RYQCIY6F-CCYvtwPn.js → chunk-RYQCIY6F-DXHlHej7.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-XXDRQBXY-Ct6GraPo.js → chunk-XXDRQBXY-BJUMTtaD.js} +1 -1
- package/dist/worker/console/static/assets/classDiagram-JCYQIIEL-BEne8l1a.js +1 -0
- package/dist/worker/console/static/assets/classDiagram-v2-OCEON4UE-BEne8l1a.js +1 -0
- package/dist/worker/console/static/assets/{cose-bilkent-JH36ORCC-DB-ntLzq.js → cose-bilkent-JH36ORCC-DvfSBnQA.js} +1 -1
- package/dist/worker/console/static/assets/{cynefin-VYW2F7L2-BHujm5FN.js → cynefin-VYW2F7L2-BXe-YrAg.js} +1 -1
- package/dist/worker/console/static/assets/{cynefinDiagram-MW4NZA55-Cx5wZ3Lb.js → cynefinDiagram-MW4NZA55-C25KAXmE.js} +1 -1
- package/dist/worker/console/static/assets/{dagre-VZM6K2ZE-CZspWvZB.js → dagre-VZM6K2ZE-DvTVWxGT.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-7IWD3JNH-B8eB7kJZ.js → diagram-7IWD3JNH-e_4e-pmQ.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-B4RE2ZJO-IPXv9g8R.js → diagram-B4RE2ZJO-vG09145o.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-LBJQPF4R-BGnjGtYW.js → diagram-LBJQPF4R-DlqSYoTs.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-Q27KOJAE-hEQoyS1K.js → diagram-Q27KOJAE-BI-4PyfE.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-UB23O5K3-C5mG8Xwz.js → diagram-UB23O5K3-C9dLNlyM.js} +1 -1
- package/dist/worker/console/static/assets/{ebnfDiagram-BXEA7PRR-D3xfcbnF.js → ebnfDiagram-BXEA7PRR-CuqayYwb.js} +1 -1
- package/dist/worker/console/static/assets/{erDiagram-JOGREHBK-CcLL1SM0.js → erDiagram-JOGREHBK-Cjt_WoXR.js} +1 -1
- package/dist/worker/console/static/assets/{flowDiagram-UKHOOZJN-CSuAfPiR.js → flowDiagram-UKHOOZJN-DI5LAkdd.js} +1 -1
- package/dist/worker/console/static/assets/{ganttDiagram-PKOTCBZU-DLqDAAke.js → ganttDiagram-PKOTCBZU-BNulKWJe.js} +1 -1
- package/dist/worker/console/static/assets/{gitGraphDiagram-DS77QQ5N-DAZsLAah.js → gitGraphDiagram-DS77QQ5N-BjWpiSad.js} +1 -1
- package/dist/worker/console/static/assets/{index-BTNvk20w.js → index-DAAlqKAz.js} +57 -57
- package/dist/worker/console/static/assets/{infoDiagram-6WML65LV-DXSlZAx8.js → infoDiagram-6WML65LV-C2z-HyGf.js} +1 -1
- package/dist/worker/console/static/assets/{ishikawaDiagram-WSZJBQD7-DhBkRCya.js → ishikawaDiagram-WSZJBQD7-BqiVeYz0.js} +1 -1
- package/dist/worker/console/static/assets/{journeyDiagram-NVQOT4AX-C-RZUWu7.js → journeyDiagram-NVQOT4AX-jEOZ2ROo.js} +1 -1
- package/dist/worker/console/static/assets/{kanban-definition-27J2QSJJ-B2kKlMxE.js → kanban-definition-27J2QSJJ-CArokfSN.js} +1 -1
- package/dist/worker/console/static/assets/{linear-DMke1BBn.js → linear-Bq9c9mgI.js} +1 -1
- package/dist/worker/console/static/assets/{mermaid.core-DeA6yB6l.js → mermaid.core-CD1Q-FZj.js} +5 -5
- package/dist/worker/console/static/assets/{mindmap-definition-FAOFIHXS-BZ6xfhel.js → mindmap-definition-FAOFIHXS-C3_TRMVq.js} +1 -1
- package/dist/worker/console/static/assets/{pegDiagram-VL7TDLO6-DTAzpGRC.js → pegDiagram-VL7TDLO6-d6-3C5eP.js} +1 -1
- package/dist/worker/console/static/assets/{pieDiagram-7S7Q4E2Y-BX_T9L06.js → pieDiagram-7S7Q4E2Y-rBMZEugn.js} +1 -1
- package/dist/worker/console/static/assets/{quadrantDiagram-CIZ2JOQS-Cj4UGUTS.js → quadrantDiagram-CIZ2JOQS-B1oYGuOW.js} +1 -1
- package/dist/worker/console/static/assets/{railroadDiagram-AXF67PYL-Hcvjh9D4.js → railroadDiagram-AXF67PYL-CduEVeL8.js} +1 -1
- package/dist/worker/console/static/assets/{requirementDiagram-LRYGKXZP-PEuuqrN2.js → requirementDiagram-LRYGKXZP-BX1CnUrJ.js} +1 -1
- package/dist/worker/console/static/assets/{sankeyDiagram-W5VNT64P-Mb_IOENk.js → sankeyDiagram-W5VNT64P-Cf5q1crB.js} +1 -1
- package/dist/worker/console/static/assets/{sequenceDiagram-SI44F4Z6-DGbthBV4.js → sequenceDiagram-SI44F4Z6-D84Udu8j.js} +1 -1
- package/dist/worker/console/static/assets/{sizeCapture-X5ZJPWSS-Ctp2tKYQ.js → sizeCapture-X5ZJPWSS-BGbReoBj.js} +1 -1
- package/dist/worker/console/static/assets/{stateDiagram-OKZ733FA-CHTwWXQq.js → stateDiagram-OKZ733FA-CW1DYgTf.js} +1 -1
- package/dist/worker/console/static/assets/stateDiagram-v2-UEYNNEHI-BPT5G0Dj.js +1 -0
- package/dist/worker/console/static/assets/{swimlanes-SLNWSIFB-MfdGy8FB.js → swimlanes-SLNWSIFB-B0Ps2tSZ.js} +2 -2
- package/dist/worker/console/static/assets/swimlanesDiagram-ULZ7WXOC-BGMpptSy.js +8 -0
- package/dist/worker/console/static/assets/{timeline-definition-Z64GVDOM-oVHobrn4.js → timeline-definition-Z64GVDOM-CAvdUBWu.js} +1 -1
- package/dist/worker/console/static/assets/{vennDiagram-T6HMQDX7-CJ-FRNVZ.js → vennDiagram-T6HMQDX7-Cc5Qi527.js} +1 -1
- package/dist/worker/console/static/assets/{wardleyDiagram-T6FBY63Y-HTiTkCdT.js → wardleyDiagram-T6FBY63Y-m_CGFXYN.js} +1 -1
- package/dist/worker/console/static/assets/{xychartDiagram-ELKLHX3M-DiuS-VLK.js → xychartDiagram-ELKLHX3M-DNfoFR4W.js} +1 -1
- package/dist/worker/console/static/index.html +1 -1
- package/dist/worker/console/static-src/app/console-types.js +0 -12
- package/dist/workflows/dag/contract-validator-registrations.js +2 -1
- package/dist/workflows/dag/dynamic-runtime/shared.js +1 -1
- package/dist/workflows/dag/frontend-implementation-contract.js +236 -8
- package/dist/workflows/dag/frontend-prewrite-gate.js +89 -32
- package/dist/workflows/dag/init-hybrid.js +20 -30
- package/dist/workflows/dag/node-execution.js +45 -18
- package/dist/workflows/dag/types.js +18 -0
- package/docs/templates/harness.schema.json +0 -8
- package/harness.json +1 -8
- package/package.json +1 -1
- package/skills/frontend-implementation/references/node-contracts.md +2 -2
- package/dist/worker/console/static/assets/channel-Kf0dWmvg.js +0 -1
- package/dist/worker/console/static/assets/classDiagram-JCYQIIEL-DvMFMDx0.js +0 -1
- package/dist/worker/console/static/assets/classDiagram-v2-OCEON4UE-DvMFMDx0.js +0 -1
- package/dist/worker/console/static/assets/stateDiagram-v2-UEYNNEHI-GwsFii7W.js +0 -1
- package/dist/worker/console/static/assets/swimlanesDiagram-ULZ7WXOC-D603UkUt.js +0 -8
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
### 变更
|
|
6
|
+
|
|
7
|
+
- npm `next` 渠道发布改为提交数节流:main push 仅当距上次 next 发布的 source commit ≥ 5 个 commit 时才自动发布(新增 `scripts/next-publish-gate.mjs`,读已发布 tarball build-stamp 对比 HEAD);不足阈值时 workflow 绿色跳过,手动 `workflow_dispatch` 不受限(切 release 线前强制出包 / 紧急补发)。发布文档真源 §4.1/§5.1/§7/§12 同步。
|
|
8
|
+
|
|
5
9
|
### 新增
|
|
6
10
|
|
|
7
11
|
- backend-test 适配 A–D:可配置 `backendTest` 布局(`testRoot`/`markdownRel`/`scriptRel`)、用户公共前置文档引用与模块顶部 `user_shared_setup`(不写 conftest)、查询轴 Scenario Partitions 确定性展开与 fail-closed 门禁、`mode=gap-fill` 13 节点增量 DAG。Slot ID 以声明的 Partition ID 为真源(`TP-<Partition ID>-...`)。
|
|
@@ -24,6 +28,7 @@
|
|
|
24
28
|
|
|
25
29
|
### 改进
|
|
26
30
|
|
|
31
|
+
- `frontend-plan-pi` 改为 runtime skeleton + editable RFC 7386 patch:`schemaVersion`、source binding、risk、writer target files 与生产 Mock 安全位由 DAG 冻结且不可被 plan/revision 覆盖;节点 validator 将补丁编译为 canonical 完整契约后再交给 review/prewrite,并在 `contracts/candidates/<nodeId>/` 保存每次 raw/extracted/normalized/validation 证据。任务提示与三类结构化重试(invalid-output / provider length 截断 / output-too-large)同步收敛为单一 patch + 唯一 `openspec-citations`;无法在声明文件中解析的可选 verification symbol 会被确定性移除并留下 normalization action,避免格式冲突、完整契约重复输出和说明性 symbol 延迟到 trace 才失败。
|
|
27
32
|
- Operator Chat 恢复工具对齐真实能力:系统提示改用 `dagReport` / `dagRerunPlan` / `dagRerun` / `standaloneTaskRerun` / `workerTaskRetry` 真名,不再写 `operator_*` 或把 `dagResume` 当成模型可执行项;`dagDoctor` / `dagStatus` / `workerPoolDoctor` 改为 typed `runId`/`taskId`,不再让模型猜 CLI `args[]`。ADR 0013 自定义 base prompt 上限由 1900 统一调整为 2500(2026-08-18,废止 0.8×2498 比例),预算用于写清节点续跑 / 整单重生 / Worker 重排队分流,以及多轮迭代恢复纪律(先一句话总结上一轮错误、修根因不修症状、禁止原样重交、同错两轮后停下报告)。
|
|
28
33
|
|
|
29
34
|
- Operator Chat 对齐 pi-web:建会话不再传封闭 `tools` 白名单(避免 SDK 把扩展 MCP 工具滤出 registry),创建后 `bindExtensions` 发 `session_start`,再钉激活集。扩展注册的 MCP 工具可被模型调用;`apply_patch` / `full-tools` / `shell` / `coding-chat` 仍排除。
|
|
@@ -43,6 +48,7 @@
|
|
|
43
48
|
- scenario-param 确定性 rewrite 的 Python 语法校验:Windows 优先 `python`,并把 Microsoft Store `python3` 空壳(非 0 且无语法诊断)视为解释器不可用后回退,避免误回滚合法 rewrite。
|
|
44
49
|
- `frontend-plan-revision-pi` 节点级校验与 merge-patch 输出协议矛盾修复:新增 schemaId `frontend-implementation-contract-revision-patch-v1` 与格式级宽松校验 `validateFrontendRevisionPatchNodeOutput`(至少一个 `openspec-citations` 块 + 剥离引用块后恰好一个 JSON 对象,不做完整契约 schema 校验),revision 节点 `structuredContractOutput.schemaId` 切换(plan-pi 仍为 v1);node-execution 的 invalid-output retry 指令按 schemaId 分支,patch 协议提示 merge-patch delta + 引用块,消除「prompt 要求 patch、retry 要求完整契约」的 retryable 死循环;gate 仍是唯一权威合并/校验点(零改动)。ADR 0015 补「节点级校验」决策 7
|
|
45
50
|
- `frontend-implementation-contract.schema.json` 的 `uiComponentChoices` items 补 `if/then` 决策语义(`specified` ⇒ `specReference` 必填非 null;`new` ⇒ `specReference` 为 null/缺失);`frontend-plan-render.ts` 空 `section` 不再渲染尾随 `#`;ADR 0016 增补「门禁边界」小节
|
|
51
|
+
- 前端 gate 内容驱动 revisionPatch 兼容 + verdict 归一化统一:旧 DAG(缺 `revisionPatch` 字段)但 revision 节点按协议输出 merge-patch 时,gate 按内容判定自动合并原始契约并走既有校验(不再因 `missing targets.files` 进入 retryable 死循环);patch 形态但无法合并(fallback 缺失/自身、原始节点不可读或非完整契约、apply 失败)→ `blocked` + 新增 `revision-patch-unmergeable`(错误信息含重新生成 DAG 指引);`normalizeVerdictCandidateLine` 增强 backtick 强调剥离,gate 的 `firstNonEmptyVerdictLine` 复用共享 normalize,runIf / output-protocol / gate 三处一致
|
|
46
52
|
|
|
47
53
|
### 文档
|
|
48
54
|
|
|
@@ -58,6 +64,7 @@
|
|
|
58
64
|
- 强化 backend-test correspondence、scenario-param、Markdown/pytest writer、collection repair、日志审计和 Windows pytest argfile 执行链,稳定区分 controller TestBug、generated TestBug 与真实 API ProductBug
|
|
59
65
|
|
|
60
66
|
### 改进
|
|
67
|
+
|
|
61
68
|
- backend-test correspondence 只分析目标请求实际绑定的 body/payload,忽略 `scenario` 元数据与 setup-only payload;对 `scenario["body"]` 保留字段 shape,并把 intentional invalid enum 交由 scenario-param 门禁判断;同时识别下划线前缀 pytest 参数集合与带说明的 `Payload Contract: none(…)`,避免零 eligible 的 payload/parameter 误阻断
|
|
62
69
|
- backend-test correspondence 继续解析模块内 transport wrapper 的位置 payload 与 wrapper 构造 body,并清理 `Payload Enum` 值后的中文说明,避免 PUT/lifecycle 合法载荷误报;Markdown/pytest writer 同步禁止臆测响应 ID 类型,并在路径 ID 类型未声明时使用 create-delete 派生的合法 missing ID,避免把测试资产缺陷误分类为产品 400/404 缺陷
|
|
63
70
|
- backend-test correspondence 可还原 `_apply_patch(_base_body(...), patch)` 等 transport-body 组合表达式,并把 setup wrapper payload 限定为有 body 契约时的 fallback;traceability 接受经递归脱敏和有界输出的结构化 request/response 日志,scenario-param 支持带显式例值的 string wrong-type;pytest writer/repair 同步禁止把 path/query/control `id` 混入 DTO patch
|
|
@@ -239,6 +246,7 @@
|
|
|
239
246
|
|
|
240
247
|
- 修复「处理详情」思考折叠块背景引用未定义样式变量 --panel 的问题,改为确定性透明背景,消除 Console 样式变量完整性门禁对发布的拦截(视觉无变化)
|
|
241
248
|
- 移除自指的 /help 命令项:输入 / 已弹出命令面板,不再单独提供重复的帮助入口
|
|
249
|
+
|
|
242
250
|
## [0.35.1] - 2026-08-15
|
|
243
251
|
|
|
244
252
|
### 重点更新
|
|
@@ -472,19 +480,23 @@
|
|
|
472
480
|
## [0.33.7-beta.2] - 2026-08-13
|
|
473
481
|
|
|
474
482
|
### Fixed
|
|
483
|
+
|
|
475
484
|
- scenario-param 解析 `bound=LEN100`、解引用 `_STATUS_ACTIVE` 等 Python 字符串常量,识别 `"x" * _TITLE_MAX_LENGTH` 长度表达式
|
|
476
485
|
- correspondence 忽略 pytest payload 中的 `expect`/`echo_*` 辅助键,避免假 PAYLOAD_SHAPE_MISMATCH
|
|
477
486
|
|
|
478
487
|
### Changed
|
|
488
|
+
|
|
479
489
|
- my-webapp 五轮 backend-test 全流程 live campaign 归档(R1–R5 均 finished;R5 correspondence PASS)
|
|
480
490
|
|
|
481
491
|
## [0.33.7-beta.1] - 2026-08-12
|
|
482
492
|
|
|
483
493
|
### Fixed
|
|
494
|
+
|
|
484
495
|
- scenario-param 识别 `_*_MAX_LENGTH` / `_*_OVER_LENGTH` 等长度 helper 名,明确 `custom-literal:trim` 不能是全空白,并把无 pytest.param 的 request-level/health nominal 记为 MATCH 以免污染 eligibility
|
|
485
496
|
- backend-test writer 合同明确:`enum-invalid` 必须使用具体非法字面量且禁止 `_OMIT`/missing-key;`custom-literal:trim|ACTIVE|ARCHIVED` 必须使用真实 padded/enum 字面量;max/min/max+1 应用长度表达式/helper
|
|
486
497
|
|
|
487
498
|
### Changed
|
|
499
|
+
|
|
488
500
|
- 归档 R108–R110 live campaign 证据与 residual 收紧结果
|
|
489
501
|
|
|
490
502
|
## [0.33.7-beta.0] - 2026-08-11
|
package/dist/build-stamp.json
CHANGED
package/dist/commands/init.js
CHANGED
|
@@ -1362,13 +1362,7 @@ async function readExistingSurfaceState(repoRoot) {
|
|
|
1362
1362
|
}
|
|
1363
1363
|
/** The IDE schema reference remains a structural update signal. */
|
|
1364
1364
|
const HARNESS_STRUCTURAL_VALUE_KEYS = new Set(["$schema"]);
|
|
1365
|
-
const PI_MODEL_ROUTING_KEYS = new Set([
|
|
1366
|
-
"LOW",
|
|
1367
|
-
"MED",
|
|
1368
|
-
"HIGH",
|
|
1369
|
-
"defaultModel",
|
|
1370
|
-
"modelOptions",
|
|
1371
|
-
]);
|
|
1365
|
+
const PI_MODEL_ROUTING_KEYS = new Set(["LOW", "MED", "HIGH", "defaultModel"]);
|
|
1372
1366
|
function isPiModelRoutingPath(path) {
|
|
1373
1367
|
return path.length === 2 && path[0] === "executors" && path[1] === "pi";
|
|
1374
1368
|
}
|
|
@@ -1733,13 +1727,7 @@ function assessHarnessModelMigration(harness) {
|
|
|
1733
1727
|
const hasDefaultModel = "defaultModel" in pi;
|
|
1734
1728
|
const hasTier = PI_MODEL_TIERS.some((tier) => tier in pi);
|
|
1735
1729
|
if (["requiresApiKey", "provider", "model"].some((field) => field in pi) ||
|
|
1736
|
-
Object.keys(pi).some((field) => ![
|
|
1737
|
-
"description",
|
|
1738
|
-
"enabled",
|
|
1739
|
-
"defaultModel",
|
|
1740
|
-
"modelOptions",
|
|
1741
|
-
...PI_MODEL_TIERS,
|
|
1742
|
-
].includes(field))) {
|
|
1730
|
+
Object.keys(pi).some((field) => !["description", "enabled", "defaultModel", ...PI_MODEL_TIERS].includes(field))) {
|
|
1743
1731
|
return {
|
|
1744
1732
|
kind: "ambiguous",
|
|
1745
1733
|
reason: "executors.pi contains unknown or deprecated model semantics",
|
|
@@ -78,8 +78,6 @@ export const executorManifestSchema = z
|
|
|
78
78
|
LOW: executorTierModelSchema.optional(),
|
|
79
79
|
MED: executorTierModelSchema.optional(),
|
|
80
80
|
HIGH: executorTierModelSchema.optional(),
|
|
81
|
-
/** Console 模型矩阵下拉专用列表;仅供 UI 使用,不参与 DAG 模型路由。 */
|
|
82
|
-
modelOptions: z.array(z.string().min(1)).optional(),
|
|
83
81
|
})
|
|
84
82
|
.strict();
|
|
85
83
|
export const workflowPolicyProfileNameSchema = z.enum([
|
|
@@ -82,16 +82,8 @@ export async function readPiModelMatrixProjection(repoRoot) {
|
|
|
82
82
|
const manifest = await readHarnessJson(repoRoot);
|
|
83
83
|
const pi = manifest?.executors?.pi;
|
|
84
84
|
const projection = {};
|
|
85
|
-
const options = new Set();
|
|
86
85
|
if (!pi || typeof pi !== "object")
|
|
87
|
-
return
|
|
88
|
-
const configuredOptions = Array.isArray(pi.modelOptions)
|
|
89
|
-
? pi.modelOptions.filter((item) => typeof item === "string" &&
|
|
90
|
-
item.trim().length > 0 &&
|
|
91
|
-
item.trim() === item)
|
|
92
|
-
: [];
|
|
93
|
-
for (const option of configuredOptions)
|
|
94
|
-
options.add(option);
|
|
86
|
+
return projection;
|
|
95
87
|
for (const tier of PI_MODEL_TIERS) {
|
|
96
88
|
const selection = normalizeExecutorTierValue(pi[tier]);
|
|
97
89
|
if (!selection)
|
|
@@ -103,9 +95,8 @@ export async function readPiModelMatrixProjection(repoRoot) {
|
|
|
103
95
|
? `${selection.provider}/${selection.model}`
|
|
104
96
|
: selection.model,
|
|
105
97
|
};
|
|
106
|
-
options.add(projection[tier].value);
|
|
107
98
|
}
|
|
108
|
-
return
|
|
99
|
+
return projection;
|
|
109
100
|
}
|
|
110
101
|
/**
|
|
111
102
|
* 原子更新 harness.json executors.pi.LOW/MED/HIGH:
|
|
@@ -222,6 +222,7 @@ export async function discoverPiReadinessProbe(options) {
|
|
|
222
222
|
authReady,
|
|
223
223
|
modelsAvailable,
|
|
224
224
|
interviewSessionOk,
|
|
225
|
+
piAvailableModels: availableModels,
|
|
225
226
|
details: {
|
|
226
227
|
sdkMessage: `Pi SDK 0.80.10 contract available (agentDir=${agentDir})`,
|
|
227
228
|
authMessage: authReady
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{g as p,r as u,d as a}from"./chunk-6Q2QTUOP-
|
|
1
|
+
import{g as p,r as u,d as a}from"./chunk-6Q2QTUOP-IdBfnQF8.js";import{p as f}from"./chunk-JWPE2WC7-DDC1y-tm.js";import{_ as n,l as o}from"./mermaid.core-CD1Q-FZj.js";import{M as c,b as d}from"./cynefin-VYW2F7L2-BXe-YrAg.js";import"./index-DAAlqKAz.js";var v=d().RailroadAbnf.parser.LangiumParser,i=n(e=>{const r=e.alternatives.map(g);return r.length===1?r[0]:{type:"choice",alternatives:r}},"transformAlternation"),g=n(e=>{const r=e.elements.map(y);return r.length===1?r[0]:{type:"sequence",elements:r}},"transformConcatenation"),b=n(e=>{if(e.includes("*")){const[t,s]=e.split("*"),l=t?parseInt(t,10):0,m=s?parseInt(s,10):1/0;return{min:l,max:m}}const r=parseInt(e,10);return{min:r,max:r}},"parseRepeat"),y=n(e=>{const r=A(e.primary);if(!e.repeat)return r;const{min:t,max:s}=b(e.repeat);return t===0&&s===1?{type:"optional",element:r}:{type:"repetition",element:r,min:t,max:s}},"transformElement"),A=n(e=>{switch(e.$type){case"AbnfStringLiteral":return{type:"terminal",value:e.value};case"AbnfNumVal":return{type:"terminal",value:e.value};case"AbnfRuleName":return{type:"nonterminal",name:e.name};case"AbnfGroup":return i(e.element);case"AbnfOptionalGroup":return{type:"optional",element:i(e.element)};default:throw new Error(`Unsupported ABNF primary node: ${e.$type}`)}},"transformPrimary"),P=n(e=>({name:e.name,definition:i(e.definition)}),"transformRule"),h=n(e=>{f(e,a),e.title&&a.setTitle(e.title),e.rules.map(r=>a.addRule(P(r)))},"populateDb"),R={parse:n(e=>{a.clear(),o.debug("[ABNF Parser] Starting Langium parse");const r=v.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new c(r);const t=r.value;o.debug("[ABNF Parser] Parsed rules:",t.rules.length),h(t),o.debug("[ABNF Parser] Parse complete")},"parse"),parser:{yy:a}},B={parser:R,db:a,renderer:u,styles:p};export{B as diagram};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Y as ln,$ as an,a0 as F,a1 as q,a2 as j,a3 as un,a4 as y,a5 as tn,a6 as J,a7 as _,a8 as rn,a9 as o,aa as on,ab as sn,ac as fn}from"./mermaid.core-
|
|
1
|
+
import{Y as ln,$ as an,a0 as F,a1 as q,a2 as j,a3 as un,a4 as y,a5 as tn,a6 as J,a7 as _,a8 as rn,a9 as o,aa as on,ab as sn,ac as fn}from"./mermaid.core-CD1Q-FZj.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,I,D,v,A,z,a){var O=I-l,i=D-h,n=z-v,d=a-A,u=d*O-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*O,h+u*i]}function U(l,h,I,D,v,A,z){var a=l-I,O=h-D,i=(z?A:-A)/J(a*a+O*O),n=i*O,d=-i*a,u=l+n,s=h+d,f=I+n,c=D+d,B=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,R=m*m+g*g,T=v-A,P=u*c-f*s,S=(g<0?-1:1)*J(on(0,T*T*R-P*P)),Y=(P*g-m*S)/R,$=(-P*m-g*S)/R,w=(P*g+m*S)/R,p=(-P*m+g*S)/R,x=Y-B,e=$-t,r=w-B,C=p-t;return x*x+e*e>r*r+C*C&&(Y=w,$=p),{cx:Y,cy:$,x01:-n,y01:-d,x11:Y*(v/T-1),y11:$*(v/T-1)}}function hn(){var l=cn,h=yn,I=j(0),D=null,v=gn,A=dn,z=mn,a=null,O=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-un,c=A.apply(this,arguments)-un,B=rn(c-f),t=c>f;if(a||(a=n=O()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(B>tn-y)a.moveTo(s*F(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*F(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=B,S=B,Y=z.apply(this,arguments)/2,$=Y>y&&(D?+D.apply(this,arguments):J(u*u+s*s)),w=_(rn(s-u)/2,+I.apply(this,arguments)),p=w,x=w,e,r;if($>y){var C=sn($/u*q(Y)),K=sn($/s*q(Y));(P-=C*2)>y?(C*=t?1:-1,R+=C,T-=C):(P=0,R=T=(f+c)/2),(S-=K*2)>y?(K*=t?1:-1,m+=K,g-=K):(S=0,m=g=(f+c)/2)}var G=s*F(m),H=s*q(m),L=u*F(T),M=u*q(T);if(w>y){var N=s*F(g),Q=s*q(g),V=u*F(R),W=u*q(R),E;if(B<an)if(E=pn(G,H,V,W,N,Q,L,M)){var X=G-E[0],Z=H-E[1],b=N-E[0],k=Q-E[1],nn=1/q(fn((X*b+Z*k)/(J(X*X+Z*Z)*J(b*b+k*k)))/2),en=J(E[0]*E[0]+E[1]*E[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}S>y?x>y?(e=U(V,W,G,H,s,x,t),r=U(N,Q,L,M,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(G,H),a.arc(0,0,s,m,g,!t)):a.moveTo(G,H),!(u>y)||!(P>y)?a.lineTo(L,M):p>y?(e=U(L,M,N,Q,u,-p,t),r=U(G,H,V,W,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,R,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-an/2;return[F(d)*n,q(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:j(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:j(+n),i):h},i.cornerRadius=function(n){return arguments.length?(I=typeof n=="function"?n:j(+n),i):I},i.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:j(+n),i):D},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:j(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:j(+n),i):A},i.padAngle=function(n){return arguments.length?(z=typeof n=="function"?n:j(+n),i):z},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
|