@tea-agent/loop-agent 0.40.0-next.8 → 0.40.0-next.9
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 +2 -1
- package/dist/build-stamp.json +3 -3
- package/dist/executors/dag-pi-executor.js +3 -0
- package/dist/executors/pi-executor.js +4 -2
- package/dist/executors/pi-sdk-executor.js +46 -1
- package/dist/worker/console/static/assets/{abnfDiagram-N423BO3Z-BYBmDfPW.js → abnfDiagram-N423BO3Z-Bs-CDAXM.js} +1 -1
- package/dist/worker/console/static/assets/{arc-BKMmxpGF.js → arc-CAkA3We3.js} +1 -1
- package/dist/worker/console/static/assets/{architectureDiagram-T3A2C74G-DJpwxr1d.js → architectureDiagram-T3A2C74G-DEmI_zqr.js} +1 -1
- package/dist/worker/console/static/assets/{blockDiagram-VBNYF7ZC-BaPj_ZlY.js → blockDiagram-VBNYF7ZC-uDHANebE.js} +1 -1
- package/dist/worker/console/static/assets/{c4Diagram-5PPSVZJV-B8iGmHlm.js → c4Diagram-5PPSVZJV-Bv97b4_B.js} +1 -1
- package/dist/worker/console/static/assets/channel-amxUpk7o.js +1 -0
- package/dist/worker/console/static/assets/{chunk-2GRJ4B5K-DaxXQayc.js → chunk-2GRJ4B5K-shmQKsFz.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-2Q5K7J3B-DqQKGA7q.js → chunk-2Q5K7J3B-BAraNvcN.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-5RXB4S5H-CgMKpJBB.js → chunk-5RXB4S5H-BirhxUop.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-5VM5RSS4-BpToUlaW.js → chunk-5VM5RSS4-C9LgUJpR.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-6Q2QTUOP-BsEWOHxv.js → chunk-6Q2QTUOP-DrU-s-t7.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-GF5L2VYU-CKGSCe71.js → chunk-GF5L2VYU-Tx-H_FA2.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-JWPE2WC7-Bm1U5299.js → chunk-JWPE2WC7-BjLtNFrR.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-KBJHAD2P-BI0ov870.js → chunk-KBJHAD2P-UNLVwSsy.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-RYQCIY6F-BmnQo0iJ.js → chunk-RYQCIY6F-CBEUX8XD.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-XXDRQBXY-BJBqa6Xc.js → chunk-XXDRQBXY-WTL7IZOq.js} +1 -1
- package/dist/worker/console/static/assets/classDiagram-JCYQIIEL-bejwBVIz.js +1 -0
- package/dist/worker/console/static/assets/classDiagram-v2-OCEON4UE-bejwBVIz.js +1 -0
- package/dist/worker/console/static/assets/{cose-bilkent-JH36ORCC-BuN9-7AR.js → cose-bilkent-JH36ORCC-CkHG6W3s.js} +1 -1
- package/dist/worker/console/static/assets/{cynefin-VYW2F7L2-Bw22jc2k.js → cynefin-VYW2F7L2-BRzFqTaL.js} +1 -1
- package/dist/worker/console/static/assets/{cynefinDiagram-MW4NZA55-BHnSH8Dr.js → cynefinDiagram-MW4NZA55-2_CFp_i7.js} +1 -1
- package/dist/worker/console/static/assets/{dagre-VZM6K2ZE-BoXXIegj.js → dagre-VZM6K2ZE-BJtsmdkE.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-7IWD3JNH-CU8qyPhT.js → diagram-7IWD3JNH-DNEFFo6w.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-B4RE2ZJO-lrjhF0S8.js → diagram-B4RE2ZJO-B_IWV7eo.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-LBJQPF4R-DL0QDEpo.js → diagram-LBJQPF4R-DvvRx2dz.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-Q27KOJAE-DxVMJMBH.js → diagram-Q27KOJAE-CsibsWLg.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-UB23O5K3-CFg9FzvG.js → diagram-UB23O5K3-les_djBQ.js} +1 -1
- package/dist/worker/console/static/assets/{ebnfDiagram-BXEA7PRR-CQgP9fTG.js → ebnfDiagram-BXEA7PRR-BEm2n7qJ.js} +1 -1
- package/dist/worker/console/static/assets/{erDiagram-JOGREHBK-A5vQXx9U.js → erDiagram-JOGREHBK-BI7vHHVm.js} +1 -1
- package/dist/worker/console/static/assets/{flowDiagram-UKHOOZJN-ytXnLyXD.js → flowDiagram-UKHOOZJN-CUFCERrB.js} +1 -1
- package/dist/worker/console/static/assets/{ganttDiagram-PKOTCBZU-CYuksfnS.js → ganttDiagram-PKOTCBZU-wxyLiGWt.js} +1 -1
- package/dist/worker/console/static/assets/{gitGraphDiagram-DS77QQ5N-f_jW3zgU.js → gitGraphDiagram-DS77QQ5N-Bt897K8Z.js} +1 -1
- package/dist/worker/console/static/assets/{index-BB6KxwT_.css → index-BHhUOTri.css} +1 -1
- package/dist/worker/console/static/assets/index-DqJbO3-p.js +407 -0
- package/dist/worker/console/static/assets/{infoDiagram-6WML65LV-C3HLE-xV.js → infoDiagram-6WML65LV-DYNx_IPv.js} +1 -1
- package/dist/worker/console/static/assets/{ishikawaDiagram-WSZJBQD7-DwpgejS6.js → ishikawaDiagram-WSZJBQD7-CzpLNEu6.js} +1 -1
- package/dist/worker/console/static/assets/{journeyDiagram-NVQOT4AX-ll0YWX1y.js → journeyDiagram-NVQOT4AX-97f9owNU.js} +1 -1
- package/dist/worker/console/static/assets/{kanban-definition-27J2QSJJ-Hq3rchvU.js → kanban-definition-27J2QSJJ-BxM9hyBn.js} +1 -1
- package/dist/worker/console/static/assets/{linear-BaGjJx8z.js → linear-ByuxcHvp.js} +1 -1
- package/dist/worker/console/static/assets/{mermaid.core-CKGQHWX_.js → mermaid.core-DwPGvpCv.js} +5 -5
- package/dist/worker/console/static/assets/{mindmap-definition-FAOFIHXS-DM1FA6Dr.js → mindmap-definition-FAOFIHXS-DCoqG9RT.js} +1 -1
- package/dist/worker/console/static/assets/{pegDiagram-VL7TDLO6-Xa9fHkE2.js → pegDiagram-VL7TDLO6-BLSBmBMx.js} +1 -1
- package/dist/worker/console/static/assets/{pieDiagram-7S7Q4E2Y-pCd4PDqJ.js → pieDiagram-7S7Q4E2Y-B0t_0oJW.js} +1 -1
- package/dist/worker/console/static/assets/{quadrantDiagram-CIZ2JOQS-KqjpEBLk.js → quadrantDiagram-CIZ2JOQS-sTzDk7Nt.js} +1 -1
- package/dist/worker/console/static/assets/{railroadDiagram-AXF67PYL-DgvR7LZD.js → railroadDiagram-AXF67PYL-B3jRdATC.js} +1 -1
- package/dist/worker/console/static/assets/{requirementDiagram-LRYGKXZP-Bys1UCWA.js → requirementDiagram-LRYGKXZP-D-cTtXEN.js} +1 -1
- package/dist/worker/console/static/assets/{sankeyDiagram-W5VNT64P-Ms9npnZt.js → sankeyDiagram-W5VNT64P-B25igJRE.js} +1 -1
- package/dist/worker/console/static/assets/{sequenceDiagram-SI44F4Z6-DEIWrtQZ.js → sequenceDiagram-SI44F4Z6-jW_lM1_D.js} +1 -1
- package/dist/worker/console/static/assets/{sizeCapture-X5ZJPWSS-DELJ0AhZ.js → sizeCapture-X5ZJPWSS-CrzTgsHE.js} +1 -1
- package/dist/worker/console/static/assets/{stateDiagram-OKZ733FA-BpHt9wKh.js → stateDiagram-OKZ733FA-B01MvlqE.js} +1 -1
- package/dist/worker/console/static/assets/stateDiagram-v2-UEYNNEHI-BvFKEtm2.js +1 -0
- package/dist/worker/console/static/assets/{swimlanes-SLNWSIFB-GKRsBluT.js → swimlanes-SLNWSIFB-YcF12FiU.js} +2 -2
- package/dist/worker/console/static/assets/swimlanesDiagram-ULZ7WXOC-DIB2eVg-.js +8 -0
- package/dist/worker/console/static/assets/{timeline-definition-Z64GVDOM-Cwsq1DxL.js → timeline-definition-Z64GVDOM-ClnRcg2s.js} +1 -1
- package/dist/worker/console/static/assets/{vennDiagram-T6HMQDX7-CfaqtKx0.js → vennDiagram-T6HMQDX7-B6gr_z-q.js} +1 -1
- package/dist/worker/console/static/assets/{wardleyDiagram-T6FBY63Y-BlEUtK_g.js → wardleyDiagram-T6FBY63Y-CvSgguGH.js} +1 -1
- package/dist/worker/console/static/assets/{xychartDiagram-ELKLHX3M-CHSRXPvO.js → xychartDiagram-ELKLHX3M-23OtSZCb.js} +1 -1
- package/dist/worker/console/static/index.html +2 -2
- package/dist/worker/console/static-src/operator-chat/spatial-overlay.js +1 -2
- package/dist/workflows/dag/backend-test-writer-completeness.js +7 -12
- package/dist/workflows/dag/init-hybrid.js +27 -5
- package/dist/workflows/dag/types.js +13 -0
- package/docs/templates/agent-dag.schema.json +18 -0
- package/docs/templates/backend-test-dag.json +22 -5
- package/package.json +1 -1
- package/dist/worker/console/static/assets/channel-CrzAa3FA.js +0 -1
- package/dist/worker/console/static/assets/classDiagram-JCYQIIEL-B7QwCCb4.js +0 -1
- package/dist/worker/console/static/assets/classDiagram-v2-OCEON4UE-B7QwCCb4.js +0 -1
- package/dist/worker/console/static/assets/index-D_wxbadT.js +0 -407
- package/dist/worker/console/static/assets/stateDiagram-v2-UEYNNEHI-BEeSswlv.js +0 -1
- package/dist/worker/console/static/assets/swimlanesDiagram-ULZ7WXOC-B2m_wca8.js +0 -8
- package/dist/worker/console/static-src/operator-chat/activity-rail-presentation.js +0 -73
- package/dist/worker/console/static-src/operator-chat/useActivityRailTransition.js +0 -59
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
### 重点更新
|
|
6
6
|
|
|
7
|
+
- backend-test 的 pytest repair 现在继续使用 run-owned plan,不再搜索测试目录 README;correspondence finding 会直接指向 docstring、参数 ID、符号、脚本或 payload 的修复位置,collection/scenario repair 与 generated-local Python 写边界保持一致,并在单次 Pi 会话达到 24 轮或 80K 最大 usage snapshot 前受控返回 partial failure。
|
|
7
8
|
- Operator Chat 现在可以在同一个页面管理多个工作区;每个会话始终使用创建它的工作区,切换对话时地址栏保持简洁稳定。
|
|
8
9
|
- 对话消息流整体调整为更紧凑、清晰的布局,思考过程、工具执行、阶段性结果和最终回答会按真实发生顺序展示。
|
|
9
10
|
- 上下文过大时会自动压缩并继续原请求,消息流会依次展示触发原因、压缩进度和压缩结果;手动压缩也使用同一套展示方式。
|
|
@@ -11,7 +12,7 @@
|
|
|
11
12
|
|
|
12
13
|
### 新增
|
|
13
14
|
|
|
14
|
-
-
|
|
15
|
+
- 右侧辅助栏统一承载文件、上下文、调用记录、运行活动和当前 DAG;点击消息流中的运行状态即可在同一侧栏查看运行、门禁与产物,并可自由调整侧栏宽度。
|
|
15
16
|
- 新增任务清单与结构化提问卡片,让长任务的进度和需要用户选择的内容更容易理解。
|
|
16
17
|
- 「对话 / 操作 / 观测」使用统一导航;操作和观测页面可以切换工作区查看对应数据。
|
|
17
18
|
|
package/dist/build-stamp.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"version": "0.40.0-next.
|
|
4
|
-
"gitSha": "
|
|
5
|
-
"builtAt": "2026-08-
|
|
3
|
+
"version": "0.40.0-next.9",
|
|
4
|
+
"gitSha": "772282937d5cddad444b25c58265d2d368491287",
|
|
5
|
+
"builtAt": "2026-08-28T00:59:36.332Z"
|
|
6
6
|
}
|
|
@@ -655,6 +655,9 @@ export async function executeDagPiNode(input, meta, piStepFn = executePiStep, wr
|
|
|
655
655
|
timeoutMs: input.timeoutMs,
|
|
656
656
|
stallTimeoutMs: input.stallTimeoutMs,
|
|
657
657
|
abortGraceMs: input.abortGraceMs,
|
|
658
|
+
...(input.task.contextBudget
|
|
659
|
+
? { contextBudget: input.task.contextBudget }
|
|
660
|
+
: {}),
|
|
658
661
|
...(writerToolPolicy ? { writerToolPolicy } : {}),
|
|
659
662
|
...(piExtensionPaths && piExtensionPaths.length > 0
|
|
660
663
|
? { piExtensionPaths }
|
|
@@ -1005,12 +1005,14 @@ export function shouldRetryWithFallback(stderr, stdout) {
|
|
|
1005
1005
|
return ["quota", "rate-limit", "unavailable", "network"].includes(category);
|
|
1006
1006
|
}
|
|
1007
1007
|
export function classifyPiFailure(input) {
|
|
1008
|
+
if (input.exitCode === 0 && input.assistantText.trim())
|
|
1009
|
+
return "success";
|
|
1010
|
+
if (input.stderr.toLowerCase().includes("context-budget-exhausted:"))
|
|
1011
|
+
return "context-budget-exhausted";
|
|
1008
1012
|
if (input.timedOut)
|
|
1009
1013
|
return "timeout";
|
|
1010
1014
|
if (input.outputTooLarge)
|
|
1011
1015
|
return "output-too-large";
|
|
1012
|
-
if (input.exitCode === 0 && input.assistantText.trim())
|
|
1013
|
-
return "success";
|
|
1014
1016
|
const combined = `${input.stderr}\n${input.stdout}`.toLowerCase();
|
|
1015
1017
|
// Prefer explicit rate-limit / HTTP 429 before generic "limit" quota phrases.
|
|
1016
1018
|
// Chinese gateways often say "请求频率已达到限制" without English "rate limit".
|
|
@@ -485,6 +485,9 @@ function extractSdkUsageSample(event) {
|
|
|
485
485
|
const responseKey = responseKeyCandidates.find((value) => typeof value === "string" && value.length > 0);
|
|
486
486
|
return responseKey ? { responseKey, tokens } : { tokens };
|
|
487
487
|
}
|
|
488
|
+
function maxSdkContextTokens(samples) {
|
|
489
|
+
return samples.reduce((maximum, sample) => Math.max(maximum, sample.tokens), 0);
|
|
490
|
+
}
|
|
488
491
|
function aggregateSdkTokenUsage(samples) {
|
|
489
492
|
const identified = new Map();
|
|
490
493
|
let anonymousMaximum = 0;
|
|
@@ -537,6 +540,9 @@ export async function executeSingleSdkAttempt(options) {
|
|
|
537
540
|
const stdoutPreview = new BoundedTextPreview("stdout");
|
|
538
541
|
const stdoutCollector = createPiJsonlStreamCollector();
|
|
539
542
|
const usageSamples = [];
|
|
543
|
+
let observedTurns = 0;
|
|
544
|
+
let contextBudgetExhausted = false;
|
|
545
|
+
let contextBudgetDetail = "";
|
|
540
546
|
// Writer-thinking-exhausted diagnosis evidence (AC-002). Collected in the
|
|
541
547
|
// subscribe callback regardless of shouldPersistSessionEvent filtering, so a
|
|
542
548
|
// length-stopped thinking-only attempt with no persisted write tool calls is
|
|
@@ -625,6 +631,7 @@ export async function executeSingleSdkAttempt(options) {
|
|
|
625
631
|
});
|
|
626
632
|
let resolveStall;
|
|
627
633
|
let resolveSettlement;
|
|
634
|
+
let resolveContextBudget;
|
|
628
635
|
let settled = false;
|
|
629
636
|
let abortConfirmed = true;
|
|
630
637
|
const persistRuntimeNote = (event) => {
|
|
@@ -655,6 +662,30 @@ export async function executeSingleSdkAttempt(options) {
|
|
|
655
662
|
clearTimeout(stallHandle);
|
|
656
663
|
stallHandle = setTimeout(() => resolveStall?.("stall"), stallTimeoutMs);
|
|
657
664
|
};
|
|
665
|
+
const checkContextBudget = () => {
|
|
666
|
+
if (contextBudgetExhausted || !options.contextBudget)
|
|
667
|
+
return;
|
|
668
|
+
// Context protection follows the largest provider-reported response
|
|
669
|
+
// snapshot, not cumulative billing usage across turns. Summing repeated
|
|
670
|
+
// input contexts would abort healthy multi-turn sessions far below the
|
|
671
|
+
// model's actual context window.
|
|
672
|
+
const observedTokens = maxSdkContextTokens(usageSamples);
|
|
673
|
+
const turnExceeded = options.contextBudget.maxTurns !== undefined &&
|
|
674
|
+
observedTurns >= options.contextBudget.maxTurns;
|
|
675
|
+
const tokenExceeded = options.contextBudget.maxTokens !== undefined &&
|
|
676
|
+
observedTokens >= options.contextBudget.maxTokens;
|
|
677
|
+
if (!turnExceeded && !tokenExceeded)
|
|
678
|
+
return;
|
|
679
|
+
contextBudgetExhausted = true;
|
|
680
|
+
contextBudgetDetail = [
|
|
681
|
+
"context-budget-exhausted:",
|
|
682
|
+
`observedTurns=${observedTurns}`,
|
|
683
|
+
`observedTokens=${observedTokens}`,
|
|
684
|
+
`maxTurns=${options.contextBudget.maxTurns ?? "unbounded"}`,
|
|
685
|
+
`maxTokens=${options.contextBudget.maxTokens ?? "unbounded"}`,
|
|
686
|
+
].join(" ");
|
|
687
|
+
resolveContextBudget?.("context-budget");
|
|
688
|
+
};
|
|
658
689
|
unsubscribe = session.subscribe((event) => {
|
|
659
690
|
if (event.type === "agent_settled" && !settled) {
|
|
660
691
|
settled = true;
|
|
@@ -678,6 +709,9 @@ export async function executeSingleSdkAttempt(options) {
|
|
|
678
709
|
const usageSample = extractSdkUsageSample(event);
|
|
679
710
|
if (usageSample)
|
|
680
711
|
usageSamples.push(usageSample);
|
|
712
|
+
if (event.type === "turn_end")
|
|
713
|
+
observedTurns += 1;
|
|
714
|
+
checkContextBudget();
|
|
681
715
|
// Capture writer-thinking-exhausted evidence BEFORE the
|
|
682
716
|
// shouldPersistSessionEvent filter: thinking_delta is intentionally
|
|
683
717
|
// excluded from persisted JSONL, but must still count toward the
|
|
@@ -700,6 +734,11 @@ export async function executeSingleSdkAttempt(options) {
|
|
|
700
734
|
const runTurn = async (userMessage) => {
|
|
701
735
|
const settlementPromise = resetSettlement();
|
|
702
736
|
const stallPromise = resetStallPromise();
|
|
737
|
+
const contextBudgetPromise = options.contextBudget
|
|
738
|
+
? new Promise((resolve) => {
|
|
739
|
+
resolveContextBudget = resolve;
|
|
740
|
+
})
|
|
741
|
+
: null;
|
|
703
742
|
const promptPromise = session.prompt(userMessage);
|
|
704
743
|
// A settlement event is permitted to win the race while prompt() remains
|
|
705
744
|
// pending. Observe a later rejection so it never becomes unhandled.
|
|
@@ -710,6 +749,7 @@ export async function executeSingleSdkAttempt(options) {
|
|
|
710
749
|
settlementPromise,
|
|
711
750
|
...(timeoutPromise ? [timeoutPromise] : []),
|
|
712
751
|
...(stallPromise ? [stallPromise] : []),
|
|
752
|
+
...(contextBudgetPromise ? [contextBudgetPromise] : []),
|
|
713
753
|
]);
|
|
714
754
|
};
|
|
715
755
|
const disposeSession = async () => {
|
|
@@ -737,7 +777,12 @@ export async function executeSingleSdkAttempt(options) {
|
|
|
737
777
|
: options.userMessage;
|
|
738
778
|
let continuesSent = 0;
|
|
739
779
|
let raced = await runTurn(promptMessage);
|
|
740
|
-
if (raced === "
|
|
780
|
+
if (raced === "context-budget") {
|
|
781
|
+
appendStderr(contextBudgetDetail);
|
|
782
|
+
abortConfirmed = await runSessionActionWithGrace("abort", () => session.abort());
|
|
783
|
+
await disposeSession();
|
|
784
|
+
}
|
|
785
|
+
else if (raced === "stall") {
|
|
741
786
|
abortConfirmed = await runSessionActionWithGrace("abort", () => session.abort());
|
|
742
787
|
const withinAbsoluteTimeout = timeoutMs <= 0 || Date.now() - startedAt < timeoutMs;
|
|
743
788
|
const canContinue = abortConfirmed &&
|
|
@@ -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-DrU-s-t7.js";import{p as f}from"./chunk-JWPE2WC7-BjLtNFrR.js";import{_ as n,l as o}from"./mermaid.core-DwPGvpCv.js";import{M as c,b as d}from"./cynefin-VYW2F7L2-BRzFqTaL.js";import"./index-DqJbO3-p.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-DwPGvpCv.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};
|