opencode-swarm 7.184.10 → 7.184.12
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/README.md +26 -24
- package/binaries/win32-arm64/swarm-sandbox-runner.exe +0 -0
- package/binaries/win32-x64/swarm-sandbox-runner.exe +0 -0
- package/dist/background/delegation-lifecycle.d.ts +6 -2
- package/dist/background/pending-delegations.d.ts +23 -1
- package/dist/cli/auto-checkpoint-7y3x5cv2.js +183 -0
- package/dist/cli/checkpoint-j39f718z.js +51 -0
- package/dist/cli/{coder-settlement-b47vmcm9.js → coder-settlement-12ytzqvs.js} +13 -11
- package/dist/cli/{config-doctor-3j3m2ccc.js → config-doctor-vphp4shw.js} +2 -2
- package/dist/cli/{core-td5kj2w8.js → core-5a1awn37.js} +3 -3
- package/dist/cli/{curation-policy-xe77n9zj.js → curation-policy-1rzheh1x.js} +6 -5
- package/dist/cli/{curator-drift-wxyhgz7y.js → curator-drift-ex0qxt9p.js} +9 -9
- package/dist/cli/curator-llm-factory-ktkat73z.js +81 -0
- package/dist/cli/{curator-c7we2apv.js → curator-x2hxjdac.js} +48 -42
- package/dist/cli/{dispatch-cv89p2y1.js → dispatch-0ejzwb45.js} +2 -1
- package/dist/cli/{evidence-summary-service-2t1ttdgj.js → evidence-summary-service-pfksvp16.js} +24 -19
- package/dist/cli/{gate-evidence-5w2q1h5w.js → gate-evidence-8n8kb8tb.js} +8 -6
- package/dist/cli/guardrail-explain-px94swcz.js +82 -0
- package/dist/cli/{guardrail-log-5zwqdhaf.js → guardrail-log-xevw9xht.js} +7 -7
- package/dist/cli/{guardrail-reset-qnq1swzf.js → guardrail-reset-18wvqbga.js} +48 -42
- package/dist/cli/hive-promoter-5r35f3ap.js +96 -0
- package/dist/cli/{index-260174fq.js → index-27wzbb3n.js} +4 -4
- package/dist/cli/{index-b6saxkqj.js → index-2cbt4b7t.js} +2 -2
- package/dist/cli/{index-tzyppdv7.js → index-2p1an48j.js} +3 -3
- package/dist/cli/index-2y9b45jj.js +24 -0
- package/dist/cli/index-34ysgky0.js +954 -0
- package/dist/cli/{index-1g2bm6ht.js → index-39ng38sp.js} +1 -1
- package/dist/cli/{index-hk0eh9qb.js → index-4g4sr4ah.js} +1 -1
- package/dist/cli/{index-cjh92zm9.js → index-53fy0aq2.js} +52 -46
- package/dist/cli/{index-7849gy4s.js → index-5w404j07.js} +8 -6
- package/dist/cli/index-5y1qxw0x.js +963 -0
- package/dist/cli/{index-35cdceqf.js → index-6cjpmvpa.js} +2 -20
- package/dist/cli/{index-yyvkeev1.js → index-74e43s33.js} +4 -4
- package/dist/cli/index-7bxssqaf.js +2676 -0
- package/dist/cli/index-7pmbnjvj.js +11 -0
- package/dist/cli/{index-j4efx148.js → index-7r3pkgma.js} +5 -5
- package/dist/cli/{index-kg2mb1m5.js → index-7rzgdcvc.js} +2 -2
- package/dist/cli/{index-hamqvzqn.js → index-9nyqt3kb.js} +10 -2682
- package/dist/cli/{index-hs26e3k6.js → index-a53f5t61.js} +2 -2
- package/dist/cli/{index-ta2kp4xy.js → index-azyhws0s.js} +9 -9
- package/dist/cli/{index-0mj7hc2z.js → index-bntwj2tp.js} +5 -5
- package/dist/cli/{index-aae38s4x.js → index-cftva3pa.js} +2 -11
- package/dist/cli/{index-8n2dh26k.js → index-cvam011t.js} +1 -1
- package/dist/cli/{index-3rfc2v1d.js → index-d42kjvwy.js} +2 -2
- package/dist/cli/{index-gnryhmak.js → index-dftztz4y.js} +1 -1
- package/dist/cli/{index-45h58v8d.js → index-dze05t9h.js} +7 -7
- package/dist/cli/{index-54f1payv.js → index-eqfmabtd.js} +2 -2
- package/dist/cli/{index-4szb7qpv.js → index-fbp7dqfe.js} +10 -38
- package/dist/cli/{index-0ajyhjht.js → index-fxf3zhtq.js} +1 -1
- package/dist/cli/index-g4fs6z4e.js +37 -0
- package/dist/cli/{index-bt1k1ek3.js → index-hfs97j0c.js} +1 -1
- package/dist/cli/{index-nh5fxxc9.js → index-jtg0zsnx.js} +4 -2
- package/dist/cli/{index-9jz73x8x.js → index-kcbkce43.js} +48 -42
- package/dist/cli/{index-07fqfseh.js → index-m1pqenq9.js} +2 -2
- package/dist/cli/{index-be5h97z8.js → index-mfqge140.js} +1 -1
- package/dist/cli/{index-3wgvpxmv.js → index-n572fdtf.js} +2969 -3838
- package/dist/cli/{index-5m1b70z3.js → index-pwcbtbhd.js} +4 -4
- package/dist/cli/{index-95vytkv6.js → index-rbvndg2d.js} +3 -3
- package/dist/cli/{index-thcyqqdq.js → index-ryafwy2b.js} +1 -1
- package/dist/cli/{index-0d7e94zg.js → index-s7rap90y.js} +7 -7
- package/dist/cli/{index-q7q00ppx.js → index-tyzmjw2s.js} +7 -7
- package/dist/cli/{index-bhj3zx43.js → index-vk49btd6.js} +1 -1
- package/dist/cli/{index-fn1y9jpv.js → index-w33zgxn6.js} +3 -3
- package/dist/cli/{index-x1gyqgze.js → index-w6w6ny06.js} +2 -2
- package/dist/cli/{index-f336fv53.js → index-x0jybm74.js} +3 -3
- package/dist/cli/{index-pj877ads.js → index-ymhs7hng.js} +5 -5
- package/dist/cli/{index-19e61hgv.js → index-yvmvsej2.js} +55 -971
- package/dist/cli/{index-x119gdak.js → index-yx5z4200.js} +2 -2
- package/dist/cli/{index-dqpq8m9w.js → index-yydv4jfy.js} +2 -2
- package/dist/cli/{index-fxtgxe04.js → index-zmtpnyff.js} +8 -8
- package/dist/cli/{index-djnxehe7.js → index-zzebc1td.js} +44 -16
- package/dist/cli/index.js +49 -43
- package/dist/cli/{knowledge-escalator-912nwxb4.js → knowledge-escalator-z5qb6y6s.js} +13 -12
- package/dist/cli/{knowledge-events-hvzj872f.js → knowledge-events-gv173j4d.js} +11 -10
- package/dist/cli/{knowledge-link-8tetyje0.js → knowledge-link-vvyfhhmr.js} +5 -4
- package/dist/cli/{knowledge-store-sqx0axb6.js → knowledge-store-g4sjhep5.js} +6 -5
- package/dist/cli/{knowledge-validator-d8m7p2vg.js → knowledge-validator-8whkrsrb.js} +8 -7
- package/dist/cli/{mcp-nxxy0dq0.js → mcp-x25b3q1g.js} +1 -1
- package/dist/cli/{model-preflight-2mmep72y.js → model-preflight-b21njmda.js} +48 -42
- package/dist/cli/{pending-delegations-fat9r7w1.js → pending-delegations-f6rmrqzn.js} +16 -12
- package/dist/cli/{pr-subscriptions-8xv7gaeb.js → pr-subscriptions-nmbme4kp.js} +14 -12
- package/dist/cli/{pr-workflow-gate-g9exsspv.js → pr-workflow-gate-mtzfsmkg.js} +48 -42
- package/dist/cli/{runner-ff0bj9w0.js → runner-cwmgb9rw.js} +6 -5
- package/dist/cli/{scan-cursor-h9tza4z6.js → scan-cursor-gmpjsr3a.js} +7 -6
- package/dist/cli/{schema-1p9cw863.js → schema-rvxnxp4n.js} +1 -1
- package/dist/cli/{scope-persistence-xv6b7daq.js → scope-persistence-fqenprq7.js} +17 -15
- package/dist/cli/{server-z5401cje.js → server-ws1my2dz.js} +62 -54
- package/dist/cli/{skill-generator-72n07p92.js → skill-generator-pt1epeer.js} +15 -14
- package/dist/cli/{snapshot-coordination-init-xjyv8kxx.js → snapshot-coordination-init-9zrktnh5.js} +48 -42
- package/dist/cli/{speckit-checkoff-828xrjfd.js → speckit-checkoff-k13zhgh5.js} +4 -4
- package/dist/cli/{telemetry-39zmx4fp.js → telemetry-n6y2sjhg.js} +1 -1
- package/dist/cli/{workspace-snapshot-nrbvjh1c.js → workspace-snapshot-gnwak61t.js} +3 -3
- package/dist/cli/{worktree-collision-ownership-cr6vv3xk.js → worktree-collision-ownership-mw3rkc4v.js} +18 -16
- package/dist/cli/{worktree-isolation-6yycqkc6.js → worktree-isolation-0rtrpf0b.js} +48 -42
- package/dist/index.js +541 -541
- package/dist/plan/auto-checkpoint.d.ts +56 -0
- package/dist/plan/manager.d.ts +8 -12
- package/package.json +1 -1
- package/dist/cli/curator-llm-factory-1260n9ty.js +0 -75
- package/dist/cli/guardrail-explain-qeywnmza.js +0 -76
- package/dist/cli/hive-promoter-c3c6tz3b.js +0 -90
package/README.md
CHANGED
|
@@ -505,7 +505,7 @@ Configure via:
|
|
|
505
505
|
}
|
|
506
506
|
```
|
|
507
507
|
|
|
508
|
-
> **Note:**
|
|
508
|
+
> **Note:** Both `max_trajectory_lines` and `escalation_enabled` are enforced at runtime. `max_trajectory_lines` is the one knob bounding the session trajectory store — the cold-session read, the append-path compaction, and denied-call recording all use it; `escalation_enabled` gates the escalation ladder (advisory → hard stop). Terminal/cooldown semantics live in `docs/configuration.md` (Hard-stop episode state machine).
|
|
509
509
|
|
|
510
510
|
### Persistent Memory
|
|
511
511
|
|
|
@@ -565,11 +565,12 @@ The Context Budget Guard monitors how full the model's context window is getting
|
|
|
565
565
|
### Default Behavior
|
|
566
566
|
|
|
567
567
|
- **Enabled automatically** — No setup required. Swarm starts tracking context usage right away.
|
|
568
|
-
- **What it measures** — The
|
|
568
|
+
- **What it measures** — The total tokens across **all** messages in the conversation (every text part of every message — your prompts, the model's responses, and injected content alike), divided by the model's context window. It does **not** measure only swarm-injected content, and it does **not** read `max_injection_tokens`. Token counts come from one canonical estimator, `estimateTokens` in `src/hooks/utils.ts` (flat ~0.33 tokens/char), unless provider-reported usage is available for the turn, which stays authoritative.
|
|
569
569
|
- **Where the window comes from** — Your **live model**, not a constant. Resolution order: an explicit `context_budget.model_limits` entry (`"<provider>/<model>"`, then `"<model>"`, then `"default"`) → the context window the OpenCode host reports for the model you are running (`model.limit.context`, already provider-specific, so a Copilot entry and a first-party entry for the same model resolve differently) → a static fallback table → `128000` as a last resort when nothing else is known. Set a `model_limits` entry only if you want a **smaller working budget** than your model's real window.
|
|
570
|
-
- **Warning threshold (0.7 ratio)** — When total conversation tokens reach 70% of the model context window (e.g. ~89,600 on a 128k model, ~700,000 on a 1M model), the architect receives a
|
|
571
|
-
- **Critical threshold (0.9 ratio)** — When total conversation tokens reach 90% of the model context window (e.g. ~115,200 on a 128k model, ~900,000 on a 1M model), the architect receives a critical alert
|
|
572
|
-
- **
|
|
570
|
+
- **Warning threshold (0.7 ratio)** — When total conversation tokens reach 70% of the model context window (e.g. ~89,600 on a 128k model, ~700,000 on a 1M model), the architect receives an advisory warning recommending a summary offload to `.swarm/context.md`. This is informational by itself — execution continues normally.
|
|
571
|
+
- **Critical threshold (0.9 ratio)** — When total conversation tokens reach 90% of the model context window (e.g. ~115,200 on a 128k model, ~900,000 on a 1M model), the architect receives a critical alert recommending `/swarm handoff` — and, when `enforce` is `true` (the default), the guard also prunes the outgoing request (see the next bullet).
|
|
572
|
+
- **Hard enforcement (default on)** — With `enforce: true` (default), crossing the critical threshold masks eligible completed tool outputs (those older than `recent_window` turns OR longer than `tool_output_mask_threshold` characters, in turns not protected by `preserve_last_n_turns`) and prunes lower-priority messages toward `prune_target` of the window (best-effort: pruning stops at the target or when no eligible removable message remains, whichever comes first). All of this happens **in the outgoing request only** — the current turn's message array as sent to the provider. Your **persisted history** is never rewritten: stored conversation, `.swarm/` artifacts, and tool results on disk are untouched. External data — provider-reported usage and the live model limit — is read, never written.
|
|
573
|
+
- **Warnings repeat while above threshold** — The warning text is prepended to the current user message on every turn above the threshold; there is no once-per-session suppression. Pruning and masking likewise re-apply each turn while usage stays above the critical threshold.
|
|
573
574
|
- **Who sees warnings** — Only the architect receives these warnings. Other agents are unaware of the budget.
|
|
574
575
|
|
|
575
576
|
To disable entirely, set `context_budget.enabled: false` in your swarm config.
|
|
@@ -737,15 +738,15 @@ Every candidate passes a 3-gate pipeline before entering quarantine:
|
|
|
737
738
|
| `context_budget.max_injection_tokens` | number | `4000` | Separate per-turn cap on system-enhancer injection. It is NOT the guard's budget — the guard measures total conversation tokens against `model_limits`, not this value |
|
|
738
739
|
| `context_budget.warn_threshold` | number | `0.7` | Ratio (0.0-1.0) of the model context window at which total conversation tokens trigger a warning advisory |
|
|
739
740
|
| `context_budget.critical_threshold` | number | `0.9` | Ratio (0.0-1.0) of the model context window at which total conversation tokens trigger a critical alert with handoff recommendation |
|
|
740
|
-
| `context_budget.enforce` | boolean | `true` | When true,
|
|
741
|
-
| `context_budget.prune_target` | number | `0.7` | Ratio (0.0-1.0) of context
|
|
742
|
-
| `context_budget.preserve_last_n_turns` | number | `4` | Number of recent turns
|
|
743
|
-
| `context_budget.recent_window` | number | `10` |
|
|
741
|
+
| `context_budget.enforce` | boolean | `true` | When true (default), crossing the critical threshold masks large completed tool outputs and prunes lower-priority messages in the **outgoing request** toward `prune_target`. Execution is never blocked or aborted |
|
|
742
|
+
| `context_budget.prune_target` | number | `0.7` | Ratio (0.0-1.0) of the context window the outgoing request is pruned toward when enforcement runs |
|
|
743
|
+
| `context_budget.preserve_last_n_turns` | number | `4` | Number of recent turns protected from pruning |
|
|
744
|
+
| `context_budget.recent_window` | number | `10` | Age (in turns) beyond which a completed tool output becomes eligible for masking during enforcement; the latest `preserve_last_n_turns` turns are always protected |
|
|
744
745
|
| `context_budget.tracked_agents` | string[] | `['architect']` | Agents to track for context budget warnings |
|
|
745
746
|
| `context_budget.enforce_on_agent_switch` | boolean | `true` | Enforce budget limits when switching agents |
|
|
746
747
|
| `context_budget.model_limits` | record | `{}` | Per-model token limit **overrides**, keyed by `"<provider>/<model>"`, `"<model>"`, or `"default"`. Empty by default so the live model's own context window is used; set an entry only to impose a smaller working budget |
|
|
747
748
|
| `context_budget.unified_injection_tokens` | number | `undefined` | Opt-in unified ceiling (tokens) for combined system-enhancer + knowledge-injector injection per turn. When set, both hooks share this budget with proportional split |
|
|
748
|
-
| `context_budget.tool_output_mask_threshold` | number | `2000` |
|
|
749
|
+
| `context_budget.tool_output_mask_threshold` | number | `2000` | Character threshold (chars, not tokens): during enforcement, a completed tool output in a non-protected turn is masked when it is **older than `recent_window` turns OR longer than this many characters** (either condition) |
|
|
749
750
|
| `skills.enabled` | boolean | `false` | Gates the 7 skill-management tools (`skill_generate`, `skill_list`, `skill_apply`, `skill_inspect`, `skill_regenerate`, `skill_retire`, `skill_improve`) behind an opt-in flag. When `false` (default), these tools are host-denied for every agent except `skill_improver` — genuinely unreachable at request time (issue #2528). |
|
|
750
751
|
| `skill_opt.enabled` | boolean | `false` | Master opt-in for the governed skill optimizer (`/swarm skill-opt`). `run` also requires `--confirm`; `plan`/`status`/`diff`/`history` are always available. See `docs/skill-optimizer.md`. |
|
|
751
752
|
| `skill_opt.deadband` | number | `0` | Promotion policy deadband forwarded to the evaluation substrate. |
|
|
@@ -753,9 +754,9 @@ Every candidate passes a 3-gate pipeline before entering quarantine:
|
|
|
753
754
|
| `skill_opt.max_transient_retries` | number | `5` | Max transient-infra retries before an infra failure becomes inconclusive. |
|
|
754
755
|
| `context_budget.scoring.enabled` | boolean | `false` | Enable context scoring/ranking |
|
|
755
756
|
| `context_budget.scoring.max_candidates` | number | `100` | Maximum items to score (10-500) |
|
|
756
|
-
| `context_budget.scoring.weights` | object | `{
|
|
757
|
-
| `context_budget.scoring.decision_decay` | object | `{ mode: 'exponential', half_life_hours: 24 }` | Decision relevance decay |
|
|
758
|
-
| `context_budget.scoring.token_ratios` | object | `{ prose: 0.25, code: 0.4,
|
|
757
|
+
| `context_budget.scoring.weights` | object | `{ phase: 1.0, current_task: 2.0, blocked_task: 1.5, recent_failure: 2.5, recent_success: 0.5, evidence_presence: 1.0, decision_recency: 1.5, dependency_proximity: 1.0 }` | Per-signal priority weights (each 0-5). Only these eight keys are read |
|
|
758
|
+
| `context_budget.scoring.decision_decay` | object | `{ mode: 'exponential', half_life_hours: 24 }` | Decision relevance decay (`mode`: linear or exponential; `half_life_hours` 1-168) |
|
|
759
|
+
| `context_budget.scoring.token_ratios` | object | `{ prose: 0.25, code: 0.4, markdown: 0.3, json: 0.35 }` | Accepted for backward compatibility only; deprecated and inert at runtime — never read. Token costs always use the canonical flat estimator (`estimateTokens`, ~0.33 tokens/char), never per-content ratios |
|
|
759
760
|
|
|
760
761
|
### Example Configurations
|
|
761
762
|
|
|
@@ -787,14 +788,14 @@ Every candidate passes a 3-gate pipeline before entering quarantine:
|
|
|
787
788
|
"scoring": {
|
|
788
789
|
"enabled": false,
|
|
789
790
|
"max_candidates": 100,
|
|
790
|
-
"
|
|
791
|
-
"decision_decay": { "mode": "exponential", "half_life_hours": 24 },
|
|
792
|
-
"token_ratios": { "prose": 0.25, "code": 0.4, "json": 0.6, "logs": 0.1 }
|
|
791
|
+
"decision_decay": { "mode": "exponential", "half_life_hours": 24 }
|
|
793
792
|
}
|
|
794
793
|
}
|
|
795
794
|
}
|
|
796
795
|
```
|
|
797
796
|
|
|
797
|
+
(Omitted keys — `weights` above — take the schema defaults listed in the table; only the eight documented weight keys are read.)
|
|
798
|
+
|
|
798
799
|
**Aggressive (for long-running sessions):**
|
|
799
800
|
```json
|
|
800
801
|
{
|
|
@@ -814,21 +815,22 @@ Every candidate passes a 3-gate pipeline before entering quarantine:
|
|
|
814
815
|
"scoring": {
|
|
815
816
|
"enabled": true,
|
|
816
817
|
"max_candidates": 50,
|
|
817
|
-
"weights": { "
|
|
818
|
-
"decision_decay": { "mode": "linear", "half_life_hours": 12 }
|
|
819
|
-
"token_ratios": { "prose": 0.2, "code": 0.35, "json": 0.5, "logs": 0.05 }
|
|
818
|
+
"weights": { "phase": 1.5, "current_task": 3.0, "recent_failure": 3.0, "recent_success": 0.3, "decision_recency": 2.0 },
|
|
819
|
+
"decision_decay": { "mode": "linear", "half_life_hours": 12 }
|
|
820
820
|
}
|
|
821
821
|
}
|
|
822
822
|
}
|
|
823
823
|
```
|
|
824
824
|
|
|
825
|
+
> **Note on `scoring.token_ratios`:** the key is still accepted by the config schema for backward compatibility, but it is deprecated and inert — no runtime code reads it, and per-content token ratios are deliberately not used. Token costs for both normal and scoring accounting always come from the one canonical estimator (`estimateTokens` in `src/hooks/utils.ts`, flat ~0.33 tokens/char); when the provider reports token usage, that figure stays authoritative.
|
|
826
|
+
|
|
825
827
|
### What This Does NOT Do
|
|
826
828
|
|
|
827
|
-
- **Does NOT
|
|
828
|
-
- **Does NOT modify
|
|
829
|
-
- **Does NOT
|
|
830
|
-
- **Does NOT interact with compaction.auto** — Separate feature with separate configuration
|
|
831
|
-
- **
|
|
829
|
+
- **Does NOT block execution** — The guard never aborts or stops the pipeline. Enforcement trims the request, not the run.
|
|
830
|
+
- **Does NOT modify persisted history** — Masking and pruning mutate only the **outgoing request** for the current turn (the message array sent to the provider). Stored conversation, `.swarm/` artifacts, and tool results on disk are untouched.
|
|
831
|
+
- **Does NOT rewrite tool results** — A masked tool output is a placeholder in the current request; the tool's stored result is unchanged.
|
|
832
|
+
- **Does NOT interact with compaction.auto** — Separate feature with separate configuration.
|
|
833
|
+
- **Does NOT measure only swarm-injected context** — It measures the whole conversation against the model's context window, using provider-reported usage when available and the canonical flat estimator (`estimateTokens`, ~0.33 tokens/char) otherwise.
|
|
832
834
|
|
|
833
835
|
</details>
|
|
834
836
|
|
|
Binary file
|
|
Binary file
|
|
@@ -21,8 +21,12 @@
|
|
|
21
21
|
*/
|
|
22
22
|
import { type PricingConfig } from '../services/cost-accounting.js';
|
|
23
23
|
import { type BackgroundDelegationRecord, type BackgroundDelegationResult, type BackgroundTerminalResult, claimTerminalResult, findByCorrelationId, findByCorrelationIdDetailed } from './pending-delegations.js';
|
|
24
|
-
/**
|
|
25
|
-
|
|
24
|
+
/**
|
|
25
|
+
* Terminal statuses a shared settle may establish (mirrors Task semantics).
|
|
26
|
+
* `'stale'` (issue #2700) admits the eventless-abandonment settles — the idle
|
|
27
|
+
* host flip and equivalent producers — through the same typed claim.
|
|
28
|
+
*/
|
|
29
|
+
export type DelegationTerminalStatus = 'completed' | 'error' | 'cancelled' | 'stale';
|
|
26
30
|
/**
|
|
27
31
|
* Why `settleDelegationTerminal` returned without a fresh claim.
|
|
28
32
|
*
|
|
@@ -352,7 +352,13 @@ export interface BackgroundDelegationResult {
|
|
|
352
352
|
export interface BackgroundTerminalResult {
|
|
353
353
|
/** Stable identity derived from trusted correlation + immutable result metadata. */
|
|
354
354
|
eventId: string;
|
|
355
|
-
|
|
355
|
+
/**
|
|
356
|
+
* `'stale'` (issue #2700) is the typed terminal the eventless settle paths
|
|
357
|
+
* (stale sweep, idle-host flip, parent-repair backfill) establish; the
|
|
358
|
+
* event's status always equals the durable record status it was written
|
|
359
|
+
* with, preserving the status-agreement invariants consumers rely on.
|
|
360
|
+
*/
|
|
361
|
+
status: 'completed' | 'error' | 'cancelled' | 'rejected' | 'stale';
|
|
356
362
|
recordedAt: number;
|
|
357
363
|
result: BackgroundDelegationResult;
|
|
358
364
|
}
|
|
@@ -644,6 +650,13 @@ export declare function appendDelegationTransition(directory: string, correlatio
|
|
|
644
650
|
/** Test/recovery seam for replaying a persisted timestamp exactly. */
|
|
645
651
|
updatedAt?: number;
|
|
646
652
|
expectedCurrentStatuses?: readonly BackgroundDelegationStatus[];
|
|
653
|
+
/**
|
|
654
|
+
* Issue #2700: the typed terminal event to write atomically with a
|
|
655
|
+
* terminal status flip. Ignored when the record already carries a
|
|
656
|
+
* `terminalResult` (the first typed event can never be erased, #2045)
|
|
657
|
+
* or when the transition is not to a terminal status.
|
|
658
|
+
*/
|
|
659
|
+
terminalResult?: BackgroundTerminalResult;
|
|
647
660
|
}): Promise<BackgroundDelegationRecord | null>;
|
|
648
661
|
export type PublishPrReviewResultReceiptOutcome = {
|
|
649
662
|
status: 'recorded';
|
|
@@ -698,6 +711,15 @@ export interface BuildBackgroundCompletionEventIdInput {
|
|
|
698
711
|
}
|
|
699
712
|
/** Build the stable inbox/terminal identity without timestamps or process state. */
|
|
700
713
|
export declare function buildBackgroundCompletionEventId(input: BuildBackgroundCompletionEventIdInput): string;
|
|
714
|
+
/**
|
|
715
|
+
* Build the typed terminal event for a settle path that establishes a terminal
|
|
716
|
+
* disposition outside the interactive claim (issue #2700): the stale sweep's
|
|
717
|
+
* under-lock flip, the generic transition writer's derivation, and the
|
|
718
|
+
* parent-repair publish backfill all construct their event here so every
|
|
719
|
+
* producer emits the byte-identical shape the claim path would have written —
|
|
720
|
+
* same eventId identity material, same status-equals-record guarantee.
|
|
721
|
+
*/
|
|
722
|
+
export declare function buildTypedDelegationTerminal(record: Pick<BackgroundDelegationRecord, 'correlationId' | 'jobId'>, status: BackgroundTerminalResult['status'], result: BackgroundDelegationResult, now: number): BackgroundTerminalResult;
|
|
701
723
|
export type TerminalClaimDisposition = 'claimed' | 'resume_settlement' | 'retry_ingestion' | 'preserved' | 'consumed' | 'duplicate';
|
|
702
724
|
export interface TerminalClaim {
|
|
703
725
|
disposition: TerminalClaimDisposition;
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import"./index-d42kjvwy.js";
|
|
3
|
+
import"./index-frcemc0b.js";
|
|
4
|
+
import"./index-0725jpp7.js";
|
|
5
|
+
import {
|
|
6
|
+
derivePlanIdentityHash
|
|
7
|
+
} from "./index-7pmbnjvj.js";
|
|
8
|
+
import"./index-gx2vp8gx.js";
|
|
9
|
+
import {
|
|
10
|
+
loadPluginConfigWithMeta
|
|
11
|
+
} from "./index-vk49btd6.js";
|
|
12
|
+
import {
|
|
13
|
+
init_git_executable,
|
|
14
|
+
resolveGitExecutable
|
|
15
|
+
} from "./index-zxdawwc7.js";
|
|
16
|
+
import"./index-39ng38sp.js";
|
|
17
|
+
import"./index-48jvqqfa.js";
|
|
18
|
+
import"./index-bk5tah7q.js";
|
|
19
|
+
import"./index-gknz3bv1.js";
|
|
20
|
+
import"./index-zpsr8rpc.js";
|
|
21
|
+
import"./index-zgwm4ryv.js";
|
|
22
|
+
import {
|
|
23
|
+
__require
|
|
24
|
+
} from "./index-a76rekgs.js";
|
|
25
|
+
|
|
26
|
+
// src/plan/auto-checkpoint.ts
|
|
27
|
+
import * as child_process from "child_process";
|
|
28
|
+
import * as fs from "fs";
|
|
29
|
+
import * as path from "path";
|
|
30
|
+
init_git_executable();
|
|
31
|
+
var DEFAULT_AUTO_CHECKPOINT_THRESHOLD = 3;
|
|
32
|
+
var MAX_LABEL_GENERATIONS = 20;
|
|
33
|
+
var GIT_PROBE_TIMEOUT_MS = 1e4;
|
|
34
|
+
function countCompletedTasks(plan) {
|
|
35
|
+
return plan.phases.reduce((total, phase) => total + phase.tasks.filter((task) => task.status === "completed").length, 0);
|
|
36
|
+
}
|
|
37
|
+
function buildAutoCheckpointLabel(plan, completedCount, generation = 1) {
|
|
38
|
+
const identity = derivePlanIdentityHash(plan).slice(0, 12);
|
|
39
|
+
const base = `auto-task-checkpoint-${identity}-${String(completedCount).padStart(3, "0")}`;
|
|
40
|
+
return generation <= 1 ? base : `${base}-g${generation}`;
|
|
41
|
+
}
|
|
42
|
+
function evaluateAutoCheckpoint(input) {
|
|
43
|
+
const { plan, completedCount, enabled } = input;
|
|
44
|
+
const threshold = Number.isInteger(input.threshold) && input.threshold >= 1 ? input.threshold : DEFAULT_AUTO_CHECKPOINT_THRESHOLD;
|
|
45
|
+
if (enabled === false) {
|
|
46
|
+
return {
|
|
47
|
+
shouldSave: false,
|
|
48
|
+
completedCount,
|
|
49
|
+
threshold,
|
|
50
|
+
skipReason: "disabled"
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
if (completedCount <= 0 || completedCount % threshold !== 0) {
|
|
54
|
+
return {
|
|
55
|
+
shouldSave: false,
|
|
56
|
+
completedCount,
|
|
57
|
+
threshold,
|
|
58
|
+
skipReason: "below_threshold"
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
shouldSave: true,
|
|
63
|
+
completedCount,
|
|
64
|
+
threshold,
|
|
65
|
+
label: buildAutoCheckpointLabel(plan, completedCount)
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
function resolveHead(directory) {
|
|
69
|
+
let result;
|
|
70
|
+
try {
|
|
71
|
+
result = child_process.spawnSync(resolveGitExecutable(), ["rev-parse", "HEAD"], {
|
|
72
|
+
cwd: directory,
|
|
73
|
+
encoding: "utf-8",
|
|
74
|
+
timeout: GIT_PROBE_TIMEOUT_MS,
|
|
75
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
76
|
+
windowsHide: true
|
|
77
|
+
});
|
|
78
|
+
} catch {
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
if (result.error || result.status !== 0)
|
|
82
|
+
return null;
|
|
83
|
+
const sha = (result.stdout ?? "").trim();
|
|
84
|
+
return /^[0-9a-f]{40}$/i.test(sha) ? sha : null;
|
|
85
|
+
}
|
|
86
|
+
function readCheckpointEntries(directory) {
|
|
87
|
+
try {
|
|
88
|
+
const logPath = path.join(directory, ".swarm", "checkpoints.json");
|
|
89
|
+
if (!fs.existsSync(logPath))
|
|
90
|
+
return [];
|
|
91
|
+
const parsed = JSON.parse(fs.readFileSync(logPath, "utf-8"));
|
|
92
|
+
if (!Array.isArray(parsed.checkpoints))
|
|
93
|
+
return [];
|
|
94
|
+
return parsed.checkpoints.filter((entry) => typeof entry?.label === "string" && typeof entry?.sha === "string").map((entry) => ({ label: entry.label, sha: entry.sha }));
|
|
95
|
+
} catch {
|
|
96
|
+
return [];
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
async function maybeSaveAutoCheckpoint(directory, plan) {
|
|
100
|
+
let enabled = true;
|
|
101
|
+
let threshold = DEFAULT_AUTO_CHECKPOINT_THRESHOLD;
|
|
102
|
+
try {
|
|
103
|
+
const { config } = loadPluginConfigWithMeta(directory);
|
|
104
|
+
if (config.checkpoint?.enabled === false) {
|
|
105
|
+
enabled = false;
|
|
106
|
+
}
|
|
107
|
+
if (config.checkpoint?.auto_checkpoint_threshold !== undefined) {
|
|
108
|
+
threshold = config.checkpoint.auto_checkpoint_threshold;
|
|
109
|
+
}
|
|
110
|
+
} catch {}
|
|
111
|
+
const completedCount = countCompletedTasks(plan);
|
|
112
|
+
const decision = evaluateAutoCheckpoint({
|
|
113
|
+
plan,
|
|
114
|
+
completedCount,
|
|
115
|
+
threshold,
|
|
116
|
+
enabled
|
|
117
|
+
});
|
|
118
|
+
if (!decision.shouldSave || !decision.label) {
|
|
119
|
+
return { ...decision, saved: false };
|
|
120
|
+
}
|
|
121
|
+
const head = resolveHead(directory);
|
|
122
|
+
if (head === null) {
|
|
123
|
+
return {
|
|
124
|
+
...decision,
|
|
125
|
+
shouldSave: false,
|
|
126
|
+
saved: false,
|
|
127
|
+
skipReason: "no_restorable_head"
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
const existing = readCheckpointEntries(directory);
|
|
131
|
+
const baseLabel = decision.label;
|
|
132
|
+
const sameFamily = existing.filter((entry) => parseLabelGeneration(baseLabel, entry.label) !== null);
|
|
133
|
+
if (sameFamily.some((entry) => entry.sha === head)) {
|
|
134
|
+
return { ...decision, saved: true, skipReason: "already_current" };
|
|
135
|
+
}
|
|
136
|
+
const taken = new Set(existing.map((entry) => entry.label));
|
|
137
|
+
let generation = 1;
|
|
138
|
+
let label = baseLabel;
|
|
139
|
+
while (taken.has(label)) {
|
|
140
|
+
generation += 1;
|
|
141
|
+
if (generation > MAX_LABEL_GENERATIONS) {
|
|
142
|
+
return {
|
|
143
|
+
...decision,
|
|
144
|
+
saved: false,
|
|
145
|
+
warning: `auto-checkpoint label generations exhausted for ${baseLabel}`
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
label = buildAutoCheckpointLabel(plan, completedCount, generation);
|
|
149
|
+
}
|
|
150
|
+
const { saveCheckpointRecord } = await import("./checkpoint-j39f718z.js");
|
|
151
|
+
const result = await saveCheckpointRecord(label, directory);
|
|
152
|
+
if (result.success) {
|
|
153
|
+
return { ...decision, label, saved: true };
|
|
154
|
+
}
|
|
155
|
+
const afterSave = readCheckpointEntries(directory);
|
|
156
|
+
if (afterSave.some((entry) => entry.sha === head && parseLabelGeneration(baseLabel, entry.label) !== null)) {
|
|
157
|
+
return { ...decision, label, saved: true, skipReason: "already_current" };
|
|
158
|
+
}
|
|
159
|
+
return {
|
|
160
|
+
...decision,
|
|
161
|
+
label,
|
|
162
|
+
saved: false,
|
|
163
|
+
warning: result.warning ?? result.error
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
function parseLabelGeneration(baseLabel, label) {
|
|
167
|
+
if (label === baseLabel)
|
|
168
|
+
return 1;
|
|
169
|
+
if (!label.startsWith(baseLabel))
|
|
170
|
+
return null;
|
|
171
|
+
const match = /^-g(\d{1,3})$/.exec(label.slice(baseLabel.length));
|
|
172
|
+
if (!match)
|
|
173
|
+
return null;
|
|
174
|
+
const generation = Number(match[1]);
|
|
175
|
+
return generation >= 2 && generation <= MAX_LABEL_GENERATIONS ? generation : null;
|
|
176
|
+
}
|
|
177
|
+
export {
|
|
178
|
+
maybeSaveAutoCheckpoint,
|
|
179
|
+
evaluateAutoCheckpoint,
|
|
180
|
+
countCompletedTasks,
|
|
181
|
+
buildAutoCheckpointLabel,
|
|
182
|
+
DEFAULT_AUTO_CHECKPOINT_THRESHOLD
|
|
183
|
+
};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import {
|
|
3
|
+
_internals,
|
|
4
|
+
checkpoint,
|
|
5
|
+
saveCheckpointRecord
|
|
6
|
+
} from "./index-5y1qxw0x.js";
|
|
7
|
+
import"./index-yvmvsej2.js";
|
|
8
|
+
import"./index-6b295cas.js";
|
|
9
|
+
import"./index-9nyqt3kb.js";
|
|
10
|
+
import"./index-cvam011t.js";
|
|
11
|
+
import"./index-zsrtt42s.js";
|
|
12
|
+
import"./index-2cbt4b7t.js";
|
|
13
|
+
import"./index-g4fs6z4e.js";
|
|
14
|
+
import"./index-dftztz4y.js";
|
|
15
|
+
import"./index-2s7dvzff.js";
|
|
16
|
+
import"./index-d42kjvwy.js";
|
|
17
|
+
import"./index-frcemc0b.js";
|
|
18
|
+
import"./index-0725jpp7.js";
|
|
19
|
+
import"./index-azyhws0s.js";
|
|
20
|
+
import"./index-7rzgdcvc.js";
|
|
21
|
+
import"./index-cftva3pa.js";
|
|
22
|
+
import"./index-pwcbtbhd.js";
|
|
23
|
+
import"./index-ry16d01s.js";
|
|
24
|
+
import"./index-rdm3px0g.js";
|
|
25
|
+
import"./index-7pmbnjvj.js";
|
|
26
|
+
import"./index-yx5z4200.js";
|
|
27
|
+
import"./index-6cjpmvpa.js";
|
|
28
|
+
import"./index-t7hmqgjy.js";
|
|
29
|
+
import"./index-w6w6ny06.js";
|
|
30
|
+
import"./index-mc72pk74.js";
|
|
31
|
+
import"./index-c1ggtmpm.js";
|
|
32
|
+
import"./index-ejhxgyvm.js";
|
|
33
|
+
import"./index-7g4c7s5r.js";
|
|
34
|
+
import"./index-bntwj2tp.js";
|
|
35
|
+
import"./index-gx2vp8gx.js";
|
|
36
|
+
import"./index-vk49btd6.js";
|
|
37
|
+
import"./index-zxdawwc7.js";
|
|
38
|
+
import"./index-39ng38sp.js";
|
|
39
|
+
import"./index-48jvqqfa.js";
|
|
40
|
+
import"./index-bk5tah7q.js";
|
|
41
|
+
import"./index-gknz3bv1.js";
|
|
42
|
+
import"./index-zpsr8rpc.js";
|
|
43
|
+
import"./index-wvghb3x6.js";
|
|
44
|
+
import"./index-9rwhas09.js";
|
|
45
|
+
import"./index-zgwm4ryv.js";
|
|
46
|
+
import"./index-a76rekgs.js";
|
|
47
|
+
export {
|
|
48
|
+
saveCheckpointRecord,
|
|
49
|
+
checkpoint,
|
|
50
|
+
_internals
|
|
51
|
+
};
|
|
@@ -14,23 +14,25 @@ import {
|
|
|
14
14
|
releaseCoderDispatchOwnership,
|
|
15
15
|
settleCoderDispatch,
|
|
16
16
|
transferCoderSettlementToBackground
|
|
17
|
-
} from "./index-
|
|
18
|
-
import"./index-
|
|
19
|
-
import"./index-
|
|
20
|
-
import"./index-
|
|
21
|
-
import"./index-
|
|
22
|
-
import"./index-
|
|
17
|
+
} from "./index-s7rap90y.js";
|
|
18
|
+
import"./index-m1pqenq9.js";
|
|
19
|
+
import"./index-yydv4jfy.js";
|
|
20
|
+
import"./index-fbp7dqfe.js";
|
|
21
|
+
import"./index-rbvndg2d.js";
|
|
22
|
+
import"./index-g4fs6z4e.js";
|
|
23
|
+
import"./index-dftztz4y.js";
|
|
23
24
|
import"./index-2s7dvzff.js";
|
|
24
|
-
import"./index-
|
|
25
|
-
import"./index-
|
|
26
|
-
import"./index-
|
|
25
|
+
import"./index-7rzgdcvc.js";
|
|
26
|
+
import"./index-yx5z4200.js";
|
|
27
|
+
import"./index-2y9b45jj.js";
|
|
28
|
+
import"./index-6cjpmvpa.js";
|
|
27
29
|
import"./index-t7hmqgjy.js";
|
|
28
|
-
import"./index-
|
|
30
|
+
import"./index-w6w6ny06.js";
|
|
29
31
|
import"./index-mc72pk74.js";
|
|
30
32
|
import"./index-c1ggtmpm.js";
|
|
31
33
|
import"./index-ejhxgyvm.js";
|
|
32
34
|
import"./index-7g4c7s5r.js";
|
|
33
|
-
import"./index-
|
|
35
|
+
import"./index-bntwj2tp.js";
|
|
34
36
|
import"./index-zxdawwc7.js";
|
|
35
37
|
import"./index-48jvqqfa.js";
|
|
36
38
|
import"./index-gknz3bv1.js";
|
|
@@ -16,11 +16,11 @@ import {
|
|
|
16
16
|
shouldRunOnStartup,
|
|
17
17
|
writeBackupArtifact,
|
|
18
18
|
writeDoctorArtifact
|
|
19
|
-
} from "./index-
|
|
19
|
+
} from "./index-ryafwy2b.js";
|
|
20
20
|
import"./index-6b295cas.js";
|
|
21
21
|
import"./index-ry16d01s.js";
|
|
22
22
|
import"./index-c1ggtmpm.js";
|
|
23
|
-
import"./index-
|
|
23
|
+
import"./index-39ng38sp.js";
|
|
24
24
|
import"./index-48jvqqfa.js";
|
|
25
25
|
import"./index-bk5tah7q.js";
|
|
26
26
|
import"./index-gknz3bv1.js";
|
|
@@ -14,12 +14,12 @@ import {
|
|
|
14
14
|
resolveWorktreeBaseDir,
|
|
15
15
|
shortenWorktreePath,
|
|
16
16
|
writeLaneProfileToDiskReal
|
|
17
|
-
} from "./index-
|
|
18
|
-
import"./index-
|
|
17
|
+
} from "./index-rbvndg2d.js";
|
|
18
|
+
import"./index-dftztz4y.js";
|
|
19
19
|
import"./index-2s7dvzff.js";
|
|
20
20
|
import"./index-mc72pk74.js";
|
|
21
21
|
import"./index-c1ggtmpm.js";
|
|
22
|
-
import"./index-
|
|
22
|
+
import"./index-bntwj2tp.js";
|
|
23
23
|
import"./index-zxdawwc7.js";
|
|
24
24
|
import"./index-48jvqqfa.js";
|
|
25
25
|
import"./index-zpsr8rpc.js";
|
|
@@ -5,18 +5,19 @@ import {
|
|
|
5
5
|
authorizeCuration,
|
|
6
6
|
buildConfigFingerprintInput,
|
|
7
7
|
readCohortConfigFingerprint
|
|
8
|
-
} from "./index-
|
|
8
|
+
} from "./index-fxf3zhtq.js";
|
|
9
9
|
import"./index-rtry5xyf.js";
|
|
10
10
|
import"./index-vzm6zre7.js";
|
|
11
|
-
import"./index-
|
|
12
|
-
import"./index-
|
|
11
|
+
import"./index-4g4sr4ah.js";
|
|
12
|
+
import"./index-2y9b45jj.js";
|
|
13
|
+
import"./index-6cjpmvpa.js";
|
|
13
14
|
import"./index-t7hmqgjy.js";
|
|
14
|
-
import"./index-
|
|
15
|
+
import"./index-w6w6ny06.js";
|
|
15
16
|
import"./index-mc72pk74.js";
|
|
16
17
|
import"./index-c1ggtmpm.js";
|
|
17
18
|
import"./index-ejhxgyvm.js";
|
|
18
19
|
import"./index-7g4c7s5r.js";
|
|
19
|
-
import"./index-
|
|
20
|
+
import"./index-bntwj2tp.js";
|
|
20
21
|
import"./index-gknz3bv1.js";
|
|
21
22
|
import"./index-zpsr8rpc.js";
|
|
22
23
|
import"./index-zgwm4ryv.js";
|
|
@@ -5,23 +5,23 @@ import {
|
|
|
5
5
|
readPriorDriftReports,
|
|
6
6
|
runDeterministicDriftCheck,
|
|
7
7
|
writeDriftReport
|
|
8
|
-
} from "./index-
|
|
9
|
-
import"./index-
|
|
10
|
-
import"./index-
|
|
11
|
-
import"./index-
|
|
8
|
+
} from "./index-w33zgxn6.js";
|
|
9
|
+
import"./index-cvam011t.js";
|
|
10
|
+
import"./index-2cbt4b7t.js";
|
|
11
|
+
import"./index-dftztz4y.js";
|
|
12
12
|
import"./index-2s7dvzff.js";
|
|
13
13
|
import"./index-0725jpp7.js";
|
|
14
|
-
import"./index-
|
|
15
|
-
import"./index-rdm3px0g.js";
|
|
14
|
+
import"./index-pwcbtbhd.js";
|
|
16
15
|
import"./index-ry16d01s.js";
|
|
16
|
+
import"./index-rdm3px0g.js";
|
|
17
17
|
import"./index-mc72pk74.js";
|
|
18
18
|
import"./index-c1ggtmpm.js";
|
|
19
19
|
import"./index-ejhxgyvm.js";
|
|
20
20
|
import"./index-7g4c7s5r.js";
|
|
21
|
-
import"./index-
|
|
22
|
-
import"./index-
|
|
21
|
+
import"./index-bntwj2tp.js";
|
|
22
|
+
import"./index-vk49btd6.js";
|
|
23
23
|
import"./index-zxdawwc7.js";
|
|
24
|
-
import"./index-
|
|
24
|
+
import"./index-39ng38sp.js";
|
|
25
25
|
import"./index-48jvqqfa.js";
|
|
26
26
|
import"./index-bk5tah7q.js";
|
|
27
27
|
import"./index-gknz3bv1.js";
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import {
|
|
3
|
+
createCuratorLLMDelegate
|
|
4
|
+
} from "./index-n572fdtf.js";
|
|
5
|
+
import"./index-2p1an48j.js";
|
|
6
|
+
import"./index-ryafwy2b.js";
|
|
7
|
+
import"./index-34ysgky0.js";
|
|
8
|
+
import"./index-7bxssqaf.js";
|
|
9
|
+
import"./index-mfqge140.js";
|
|
10
|
+
import"./index-jtg0zsnx.js";
|
|
11
|
+
import"./index-txdagbh7.js";
|
|
12
|
+
import"./index-eqfmabtd.js";
|
|
13
|
+
import"./index-rdec0y3z.js";
|
|
14
|
+
import"./index-w33zgxn6.js";
|
|
15
|
+
import"./index-s7rap90y.js";
|
|
16
|
+
import"./index-74e43s33.js";
|
|
17
|
+
import"./index-ymhs7hng.js";
|
|
18
|
+
import"./index-m1pqenq9.js";
|
|
19
|
+
import"./index-tyzmjw2s.js";
|
|
20
|
+
import"./index-cjapb4hy.js";
|
|
21
|
+
import"./index-yydv4jfy.js";
|
|
22
|
+
import"./index-pt7h91zc.js";
|
|
23
|
+
import"./index-q7sjgr1y.js";
|
|
24
|
+
import"./index-5y1qxw0x.js";
|
|
25
|
+
import"./index-yvmvsej2.js";
|
|
26
|
+
import"./index-6b295cas.js";
|
|
27
|
+
import"./index-9nyqt3kb.js";
|
|
28
|
+
import"./index-cvam011t.js";
|
|
29
|
+
import"./index-zsrtt42s.js";
|
|
30
|
+
import"./index-2cbt4b7t.js";
|
|
31
|
+
import"./index-fbp7dqfe.js";
|
|
32
|
+
import"./index-rbvndg2d.js";
|
|
33
|
+
import"./index-g4fs6z4e.js";
|
|
34
|
+
import"./index-zzebc1td.js";
|
|
35
|
+
import"./index-zmtpnyff.js";
|
|
36
|
+
import"./index-dftztz4y.js";
|
|
37
|
+
import"./index-2s7dvzff.js";
|
|
38
|
+
import"./index-27wzbb3n.js";
|
|
39
|
+
import"./index-fxf3zhtq.js";
|
|
40
|
+
import"./index-rtry5xyf.js";
|
|
41
|
+
import"./index-d42kjvwy.js";
|
|
42
|
+
import"./index-frcemc0b.js";
|
|
43
|
+
import"./index-0725jpp7.js";
|
|
44
|
+
import"./index-5w404j07.js";
|
|
45
|
+
import"./index-azyhws0s.js";
|
|
46
|
+
import"./index-7rzgdcvc.js";
|
|
47
|
+
import"./index-7r3pkgma.js";
|
|
48
|
+
import"./index-cftva3pa.js";
|
|
49
|
+
import"./index-pwcbtbhd.js";
|
|
50
|
+
import"./index-ry16d01s.js";
|
|
51
|
+
import"./index-rdm3px0g.js";
|
|
52
|
+
import"./index-7pmbnjvj.js";
|
|
53
|
+
import"./index-yx5z4200.js";
|
|
54
|
+
import"./index-dze05t9h.js";
|
|
55
|
+
import"./index-vzm6zre7.js";
|
|
56
|
+
import"./index-ae75rja9.js";
|
|
57
|
+
import"./index-4g4sr4ah.js";
|
|
58
|
+
import"./index-2y9b45jj.js";
|
|
59
|
+
import"./index-6cjpmvpa.js";
|
|
60
|
+
import"./index-t7hmqgjy.js";
|
|
61
|
+
import"./index-w6w6ny06.js";
|
|
62
|
+
import"./index-mc72pk74.js";
|
|
63
|
+
import"./index-c1ggtmpm.js";
|
|
64
|
+
import"./index-ejhxgyvm.js";
|
|
65
|
+
import"./index-7g4c7s5r.js";
|
|
66
|
+
import"./index-bntwj2tp.js";
|
|
67
|
+
import"./index-gx2vp8gx.js";
|
|
68
|
+
import"./index-vk49btd6.js";
|
|
69
|
+
import"./index-zxdawwc7.js";
|
|
70
|
+
import"./index-39ng38sp.js";
|
|
71
|
+
import"./index-48jvqqfa.js";
|
|
72
|
+
import"./index-bk5tah7q.js";
|
|
73
|
+
import"./index-gknz3bv1.js";
|
|
74
|
+
import"./index-zpsr8rpc.js";
|
|
75
|
+
import"./index-wvghb3x6.js";
|
|
76
|
+
import"./index-9rwhas09.js";
|
|
77
|
+
import"./index-zgwm4ryv.js";
|
|
78
|
+
import"./index-a76rekgs.js";
|
|
79
|
+
export {
|
|
80
|
+
createCuratorLLMDelegate
|
|
81
|
+
};
|