mlx-bun 0.4.0 → 1.0.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/README.md +1453 -88
- package/THIRD_PARTY_NOTICES.md +882 -0
- package/bin/mlx-bun.convert.mjs +4 -0
- package/bin/mlx-bun.fuse.mjs +4 -0
- package/bin/mlx-bun.generate.mjs +4 -0
- package/bin/mlx-bun.lora.mjs +4 -0
- package/bin/mlx-bun.mjs +13 -21
- package/bin/mlx-bun.server.mjs +4 -0
- package/bin/mlx-bun.upload.mjs +4 -0
- package/dist/web/app.js +9584 -0
- package/package.json +50 -53
- package/src/cli/ane-install.ts +76 -0
- package/src/cli/args.ts +179 -0
- package/src/cli/engine-entry.ts +68 -0
- package/src/cli/inference.ts +214 -0
- package/src/cli/job-entry.ts +97 -0
- package/src/cli/library-host.ts +117 -0
- package/src/cli/main.ts +57 -0
- package/src/cli/memory-engine.ts +163 -0
- package/src/cli/memory.ts +36 -0
- package/src/cli/mlx-lm-aliases.ts +309 -0
- package/src/cli/model-choice.ts +33 -0
- package/src/cli/model-selection.ts +84 -0
- package/src/cli/module-host.ts +11 -0
- package/src/cli/module-verbs.ts +50 -0
- package/src/cli/numerical-policy.ts +12 -0
- package/src/cli/perplexity.ts +89 -0
- package/src/cli/serve-host.ts +423 -0
- package/src/cli/serve-isolated.ts +217 -0
- package/src/cli/serve-options.ts +106 -0
- package/src/cli/serve-state.ts +205 -0
- package/src/cli/serve.ts +500 -0
- package/src/cli/served-model-host.ts +102 -0
- package/src/cli/server-entry.ts +148 -0
- package/src/cli/serving-unit.ts +177 -0
- package/src/{tui.ts → cli/terminal.ts} +13 -8
- package/src/cli/worker-adapters.ts +34 -0
- package/src/cli/worker-entry.ts +272 -0
- package/src/cli/worker-unit.ts +179 -0
- package/src/engine/adapter-operation.ts +26 -0
- package/src/engine/cache-services.ts +114 -0
- package/src/engine/completion.ts +39 -0
- package/src/engine/generation-gateway.ts +358 -0
- package/src/engine/index.ts +59 -0
- package/src/engine/kv-budget.ts +120 -0
- package/src/engine/media-preparation.ts +232 -0
- package/src/engine/model-binding.ts +24 -0
- package/src/engine/model-host.ts +513 -0
- package/src/engine/model-serving.ts +89 -0
- package/src/{serve → engine}/preparation.ts +10 -8
- package/src/{serve → engine}/session-completion-engine.ts +6 -6
- package/src/engine/telemetry.ts +109 -0
- package/src/hub/downloads.ts +116 -0
- package/src/jobs/db.ts +16 -7
- package/src/jobs/events.ts +29 -0
- package/src/jobs/executable.ts +5 -0
- package/src/jobs/host.ts +51 -0
- package/src/jobs/in-process.ts +55 -0
- package/src/{contracts/jobs.ts → jobs/protocol.ts} +7 -9
- package/src/jobs/runner.ts +150 -231
- package/src/jobs/service.ts +75 -0
- package/src/jobs/sse.ts +59 -23
- package/src/jobs/worker-memory.ts +46 -0
- package/src/jobs/worker-process.ts +163 -0
- package/src/jobs/worker-supervisor.ts +258 -0
- package/src/modules.ts +58 -0
- package/src/publishing/catalog-hub.ts +18 -0
- package/src/publishing/credentials.ts +31 -0
- package/src/publishing/upload.ts +37 -0
- package/src/residency/leased-adapters.ts +21 -0
- package/src/residency/local-records.ts +16 -0
- package/src/residency/model-residency.ts +405 -0
- package/src/residency/record-index.ts +28 -0
- package/src/residency/resident-estimate.ts +50 -0
- package/src/{anthropic.ts → server/anthropic.ts} +3 -81
- package/src/server/cache-routes.ts +36 -0
- package/src/{serve → server}/chat-request.ts +12 -10
- package/src/{serve → server}/chat-stage.ts +27 -22
- package/src/{client.ts → server/client.ts} +28 -2
- package/src/{serve → server}/completion-executor.ts +42 -42
- package/src/server/decision-body.ts +55 -0
- package/src/server/decision-routes.ts +134 -0
- package/src/server/decision-wire.ts +228 -0
- package/src/{serve → server}/discovery-routes.ts +42 -83
- package/src/server/generated-token-history.ts +57 -0
- package/src/{serve → server}/http.ts +25 -13
- package/src/{serve → server}/inference-request.ts +5 -5
- package/src/server/job-routes.ts +20 -0
- package/src/server/media-prompt.ts +63 -0
- package/src/server/memory-completion-client.ts +46 -0
- package/src/server/model-routes.ts +192 -0
- package/src/{serve → server}/openai-wire.ts +3 -2
- package/src/{serve → server}/pipeline.ts +1 -1
- package/src/server/prompt-builder.ts +13 -0
- package/src/server/prompt-contracts.ts +17 -0
- package/src/server/proxy-routes.ts +187 -0
- package/src/server/publishing-routes.ts +41 -0
- package/src/{serve → server}/request-plan.ts +8 -8
- package/src/{serve → server}/request-prep.ts +82 -68
- package/src/{serve → server}/responses-client.ts +30 -13
- package/src/{responses.ts → server/responses.ts} +12 -93
- package/src/server/routes.ts +205 -0
- package/src/server/start.ts +72 -0
- package/src/server/status-routes.ts +108 -0
- package/src/{serve → server}/text-completion-stage.ts +25 -4
- package/src/server/text-prompt.ts +12 -0
- package/src/{serve → server}/token-streams.ts +36 -38
- package/src/server/worker-routes.ts +311 -0
- package/src/storage/paths.ts +61 -0
- package/src/web/assets.ts +37 -0
- package/src/web/{src → browser}/api.ts +5 -23
- package/src/web/browser/chat-host.ts +17 -0
- package/src/web/browser/installed-panels.ts +6 -0
- package/src/web/browser/main.ts +55 -0
- package/src/web/browser/markdown.ts +279 -0
- package/src/web/browser/memory-panel.ts +9 -0
- package/src/web/browser/palette.ts +64 -0
- package/src/web/browser/protocol.ts +13 -0
- package/src/web/browser/shell.ts +467 -0
- package/src/web/{src → browser}/status.ts +32 -36
- package/src/web/build.ts +51 -0
- package/src/web/public/app.html +1054 -0
- package/src/web/{sw.js → public/sw.js} +4 -3
- package/src/web/{vendor → public/vendor}/hljs-theme.css +2 -2
- package/src/web/{vendor → public/vendor}/hljs.js +2 -2
- package/THIRD_PARTY_LICENSES.md +0 -51
- package/docs/README.md +0 -94
- package/docs/archive/hlg-sampling.md +0 -350
- package/docs/archive/investigations/audio-input-plan.md +0 -356
- package/docs/archive/investigations/chunk-finetune-experiment.md +0 -84
- package/docs/archive/investigations/colibri-glm52-port.md +0 -1486
- package/docs/archive/investigations/colibri-oracle-pin.md +0 -1284
- package/docs/archive/investigations/curve-bisector-routing.md +0 -123
- package/docs/archive/investigations/decode-roofline-lookagain.md +0 -348
- package/docs/archive/investigations/diffusion-gemma-port.md +0 -602
- package/docs/archive/investigations/dspark-handoff.md +0 -224
- package/docs/archive/investigations/expert-offload-single-user-moe.md +0 -292
- package/docs/archive/investigations/faithful-l1-consolidation.md +0 -310
- package/docs/archive/investigations/hlg-sampling-investigation.md +0 -970
- package/docs/archive/investigations/indexshare-performance-spike.md +0 -357
- package/docs/archive/investigations/kernel-perf-review-2026-07.md +0 -171
- package/docs/archive/investigations/lab-build-journal.md +0 -157
- package/docs/archive/investigations/minicpm5-decode-megakernel.md +0 -489
- package/docs/archive/investigations/openjarvis-fit.md +0 -198
- package/docs/archive/investigations/openwiki-evaluation.md +0 -249
- package/docs/archive/investigations/optimization_plan.md +0 -346
- package/docs/archive/investigations/orpo-base-uf-experiment-and-directions.md +0 -120
- package/docs/archive/investigations/orpo-flash-cce-pin-leak.md +0 -167
- package/docs/archive/investigations/orpo-uf-testing-handoff.md +0 -126
- package/docs/archive/investigations/pareto-specialized-runtime-findings.md +0 -92
- package/docs/archive/investigations/pi-builtin-investigation.md +0 -308
- package/docs/archive/investigations/pre-colibri-stabilization.md +0 -329
- package/docs/archive/investigations/qwen38-27b-campaign-log.md +0 -1092
- package/docs/archive/investigations/segmented-backward-handoff.md +0 -148
- package/docs/archive/investigations/starter-model-port-handoff.md +0 -342
- package/docs/archive/investigations/steel-flash-cce-handoff.md +0 -489
- package/docs/archive/investigations/the-dreaming-handoff.md +0 -141
- package/docs/archive/investigations/trainer-validation-experiment.md +0 -173
- package/docs/archive/planning/chat-ui-vision-memory-first.md +0 -199
- package/docs/archive/planning/chat-ui-vision.md +0 -50
- package/docs/archive/planning/chunk-task-roadmap.md +0 -77
- package/docs/archive/planning/curve-sampler-research-plan.md +0 -331
- package/docs/archive/planning/journal.md +0 -316
- package/docs/archive/planning/memory-docs-and-dag-plan.md +0 -194
- package/docs/archive/planning/pi-integration-review.md +0 -178
- package/docs/archive/planning/release-notes-v0.0.10.md +0 -57
- package/docs/archive/planning/release-notes-v0.0.11.md +0 -239
- package/docs/archive/planning/release-notes-v0.0.12.md +0 -80
- package/docs/archive/planning/release-notes-v0.0.13.md +0 -77
- package/docs/archive/planning/release-notes-v0.0.9.md +0 -122
- package/docs/archive/planning/release-notes-v0.2.0.md +0 -49
- package/docs/archive/planning/release-notes-v0.3.0.md +0 -35
- package/docs/archive/planning/web-ui-pass-plan.md +0 -213
- package/docs/archive/planning/website-readme-pass-plan.md +0 -224
- package/docs/design/batching.md +0 -1841
- package/docs/design/decode-speed-program.md +0 -2349
- package/docs/design/dreaming-nightly-pipeline.md +0 -684
- package/docs/design/generic-model-support.md +0 -705
- package/docs/design/kv-cache.md +0 -824
- package/docs/design/orpo-training.md +0 -680
- package/docs/design/speculative-decoding.md +0 -1990
- package/docs/design/turboquant.md +0 -2212
- package/docs/design/unified-engine-frontier-plan.md +0 -1880
- package/docs/design/web-chat-redesign.md +0 -695
- package/docs/planning/PRODUCT_ROADMAP.md +0 -594
- package/docs/planning/ResearchTopics.md +0 -119
- package/docs/planning/release-notes-v0.4.0.md +0 -45
- package/docs/planning/video-series.md +0 -421
- package/docs/reference/benchmarks.md +0 -3613
- package/docs/reference/cli.md +0 -585
- package/docs/reference/distribution.md +0 -355
- package/docs/reference/environment.md +0 -398
- package/docs/reference/glossary.md +0 -39
- package/docs/reference/library-api.md +0 -674
- package/docs/reference/memory.md +0 -260
- package/docs/reference/models.md +0 -334
- package/docs/reference/server-api.md +0 -1775
- package/docs/reference/server-config.md +0 -846
- package/docs/reference/training.md +0 -462
- package/docs/reference/troubleshooting.md +0 -158
- package/src/admission-plan.ts +0 -18
- package/src/audio/conformer.ts +0 -647
- package/src/audio/decode.ts +0 -133
- package/src/audio/features.ts +0 -202
- package/src/audio/transcode.ts +0 -67
- package/src/backends/mlx/assistant-target.ts +0 -46
- package/src/backends/mlx/autoregressive-draft-rows.ts +0 -120
- package/src/backends/mlx/autoregressive.ts +0 -108
- package/src/backends/mlx/batch-group.ts +0 -1790
- package/src/backends/mlx/cache-attachment.ts +0 -67
- package/src/backends/mlx/cache-layout.ts +0 -31
- package/src/backends/mlx/checkpoint-state.ts +0 -53
- package/src/backends/mlx/continuation-persistence.ts +0 -106
- package/src/backends/mlx/continuation-request.ts +0 -43
- package/src/backends/mlx/continuation.ts +0 -77
- package/src/backends/mlx/diffusion.ts +0 -39
- package/src/backends/mlx/draft-target.ts +0 -32
- package/src/backends/mlx/evaluation.ts +0 -105
- package/src/backends/mlx/fill-append.ts +0 -45
- package/src/backends/mlx/full-kv-row-append.ts +0 -32
- package/src/backends/mlx/full-kv-row-donor.ts +0 -54
- package/src/backends/mlx/full-transitioning-kv-rows.ts +0 -65
- package/src/backends/mlx/gateway-binding.ts +0 -130
- package/src/backends/mlx/graph.ts +0 -38
- package/src/backends/mlx/kv-codec.ts +0 -9
- package/src/backends/mlx/kv-maintenance.ts +0 -133
- package/src/backends/mlx/kv-tensor-rows.ts +0 -212
- package/src/backends/mlx/memory-client.ts +0 -189
- package/src/backends/mlx/methods.ts +0 -90
- package/src/backends/mlx/model-prompt.ts +0 -164
- package/src/backends/mlx/model-serving.ts +0 -79
- package/src/backends/mlx/prefill-cohort.ts +0 -89
- package/src/backends/mlx/prefill-rows.ts +0 -200
- package/src/backends/mlx/prefill.ts +0 -33
- package/src/backends/mlx/projected-context-rows.ts +0 -72
- package/src/backends/mlx/request-policy.ts +0 -20
- package/src/backends/mlx/request-state-policy.ts +0 -41
- package/src/backends/mlx/rollback.ts +0 -89
- package/src/backends/mlx/row-sampling.ts +0 -49
- package/src/backends/mlx/serial-executor.ts +0 -242
- package/src/backends/mlx/speculative-group.ts +0 -359
- package/src/backends/mlx/speculative-round.ts +0 -161
- package/src/backends/mlx/speculative.ts +0 -114
- package/src/backends/mlx/state-rows.ts +0 -104
- package/src/backends/mlx/state-views.ts +0 -46
- package/src/backends/mlx/target-layout-capability.ts +0 -35
- package/src/backends/mlx/text-engine.ts +0 -73
- package/src/backends/mlx/transitioning-kv-rows.ts +0 -165
- package/src/chat-template.ts +0 -382
- package/src/cli.ts +0 -3168
- package/src/config.ts +0 -399
- package/src/contracts/completion.ts +0 -16
- package/src/contracts/execution.ts +0 -60
- package/src/contracts/generation.ts +0 -103
- package/src/contracts/host.ts +0 -7
- package/src/contracts/pi-provider.ts +0 -30
- package/src/contracts/pi.ts +0 -259
- package/src/contracts/prefix-cache.ts +0 -23
- package/src/contracts/resources.ts +0 -25
- package/src/contracts/sampling.ts +0 -23
- package/src/contracts/scheduling.ts +0 -45
- package/src/contracts/tsconfig.json +0 -14
- package/src/dataset/generators.ts +0 -1087
- package/src/dataset/index.ts +0 -12
- package/src/dataset/job.ts +0 -81
- package/src/dataset/llm.ts +0 -71
- package/src/dataset/registry.ts +0 -528
- package/src/diffusion/diffusion-generate.ts +0 -507
- package/src/download.ts +0 -505
- package/src/embed.ts +0 -77
- package/src/engine/admission.ts +0 -59
- package/src/engine/cancellation.ts +0 -38
- package/src/engine/engine.ts +0 -56
- package/src/engine/execution-coordinator.ts +0 -70
- package/src/engine/execution-plan.ts +0 -53
- package/src/engine/resources.ts +0 -53
- package/src/engine/scheduler.ts +0 -72
- package/src/engine/session.ts +0 -247
- package/src/eval/README.md +0 -130
- package/src/eval/ifeval.ts +0 -81
- package/src/eval/kl-prompts.ts +0 -29
- package/src/eval/kl.ts +0 -590
- package/src/eval/perplexity.ts +0 -164
- package/src/eval/quality-db.ts +0 -92
- package/src/eval/reference-logits.ts +0 -207
- package/src/eval/runner.ts +0 -124
- package/src/eval/score.ts +0 -49
- package/src/eval/tasks/bfcl.ts +0 -535
- package/src/eval/tasks/gsm8k.ts +0 -98
- package/src/eval/tasks/hashhop.ts +0 -139
- package/src/eval/tasks/humaneval.ts +0 -275
- package/src/eval/tasks/ifeval.ts +0 -525
- package/src/eval/tasks/mmlu.ts +0 -157
- package/src/eval/ultrafeedback.ts +0 -60
- package/src/evaldb.ts +0 -199
- package/src/expert-io.ts +0 -393
- package/src/expert-offload-build.ts +0 -77
- package/src/expert-offload.ts +0 -76
- package/src/expert-residency.ts +0 -1134
- package/src/expert-usage.ts +0 -415
- package/src/fill/echo-index.ts +0 -188
- package/src/fill/fill-session.ts +0 -452
- package/src/fill/proposal.ts +0 -68
- package/src/fill/schema-rows.ts +0 -506
- package/src/fill/tool-boundary.ts +0 -103
- package/src/fit.ts +0 -249
- package/src/generate.ts +0 -1346
- package/src/grammar.ts +0 -591
- package/src/harness-pi.ts +0 -184
- package/src/hf-push.ts +0 -628
- package/src/hub-rest.ts +0 -242
- package/src/index.ts +0 -63
- package/src/inference/denoising.ts +0 -17
- package/src/inference/draft-acceptance.ts +0 -41
- package/src/inference/draft-output.ts +0 -49
- package/src/inference/graph.ts +0 -33
- package/src/inference/prefill.ts +0 -39
- package/src/inference/rollback.ts +0 -7
- package/src/jobs/index.ts +0 -31
- package/src/jobs/job-entry.ts +0 -107
- package/src/jobs/task-client.ts +0 -19
- package/src/jobs/types.ts +0 -2
- package/src/kv-scheme.ts +0 -257
- package/src/kv-store.ts +0 -1099
- package/src/lab/README.md +0 -18
- package/src/lab/curve/curve-designer.html +0 -303
- package/src/lab/curve/curve-sampler.ts +0 -122
- package/src/lab/expert-trace/expert-trace.ts +0 -69
- package/src/lab/paged-kv/paged-kv-rows.ts +0 -83
- package/src/lab/paged-kv/paged-kv.ts +0 -270
- package/src/library.ts +0 -40
- package/src/lora.ts +0 -408
- package/src/md-modules.d.ts +0 -49
- package/src/media-fetch.ts +0 -442
- package/src/memory/article.ts +0 -558
- package/src/memory/chunk-validation.ts +0 -150
- package/src/memory/chunk.ts +0 -318
- package/src/memory/cluster.ts +0 -351
- package/src/memory/coverage.ts +0 -134
- package/src/memory/crosslink.ts +0 -0
- package/src/memory/db.ts +0 -253
- package/src/memory/entity.ts +0 -203
- package/src/memory/gate.ts +0 -187
- package/src/memory/history.ts +0 -152
- package/src/memory/ingest.ts +0 -335
- package/src/memory/model.ts +0 -183
- package/src/memory/normalize.ts +0 -671
- package/src/memory/parse.ts +0 -22
- package/src/memory/pipeline.ts +0 -275
- package/src/memory/prompts.ts +0 -65
- package/src/memory/query.ts +0 -334
- package/src/memory/reconcile.ts +0 -734
- package/src/memory/redirect.ts +0 -108
- package/src/memory/reindex.ts +0 -325
- package/src/memory/resolve.ts +0 -307
- package/src/memory/rest.ts +0 -245
- package/src/memory/route.ts +0 -272
- package/src/memory/schedule.ts +0 -165
- package/src/memory/stages.ts +0 -777
- package/src/memory/synthesize.ts +0 -1638
- package/src/memory/tools.ts +0 -749
- package/src/memory/vault.ts +0 -1194
- package/src/memory/wikify.ts +0 -1064
- package/src/mlx/array.ts +0 -388
- package/src/mlx/autograd.ts +0 -304
- package/src/mlx/checkpoint.ts +0 -149
- package/src/mlx/compile.ts +0 -168
- package/src/mlx/custom-vjp.ts +0 -188
- package/src/mlx/ffi.ts +0 -512
- package/src/mlx/materialize.ts +0 -23
- package/src/mlx/metal-kernel.ts +0 -159
- package/src/mlx/ops.ts +0 -1021
- package/src/mlx/quantized-rows.ts +0 -36
- package/src/mlx/token-bitmask.ts +0 -52
- package/src/mlx/turboquant-kv-decode.ts +0 -82
- package/src/mlx/turboquant-kv-inverse.ts +0 -122
- package/src/mlx/turboquant-ops.ts +0 -861
- package/src/mlx/turboquant-tables.ts +0 -237
- package/src/mmap.ts +0 -90
- package/src/model/artifact-identity.ts +0 -73
- package/src/model/batched-kv.ts +0 -235
- package/src/model/batched-mask.ts +0 -279
- package/src/model/batched-quant.ts +0 -212
- package/src/model/batched-quantized-kv.ts +0 -144
- package/src/model/batched-rotating-quant.ts +0 -353
- package/src/model/batched-rotating-state.ts +0 -149
- package/src/model/batched-rotating.ts +0 -338
- package/src/model/batched-row-storage.ts +0 -179
- package/src/model/batched-ssm.ts +0 -52
- package/src/model/batched-turboquant-kv.ts +0 -93
- package/src/model/compiled-decode.ts +0 -712
- package/src/model/decoded-kv-donor.ts +0 -12
- package/src/model/delayed-quantized-kv.ts +0 -72
- package/src/model/delayed-rotating-quantized-kv.ts +0 -93
- package/src/model/delayed-turboquant-kv.ts +0 -55
- package/src/model/diffusion-gemma.ts +0 -1026
- package/src/model/factory.ts +0 -189
- package/src/model/fingerprint.ts +0 -33
- package/src/model/flash-attention.ts +0 -694
- package/src/model/full-prefill-padding.ts +0 -56
- package/src/model/full-prefill-row.ts +0 -105
- package/src/model/gemma4-base.ts +0 -2351
- package/src/model/gemma4.ts +0 -1315
- package/src/model/generated/gemma4-12b.ts +0 -429
- package/src/model/generated/gemma4-26b.ts +0 -448
- package/src/model/generated/gemma4-e4b.ts +0 -717
- package/src/model/generated/index.ts +0 -18
- package/src/model/glm52-atlas.ts +0 -511
- package/src/model/glm52-cache.ts +0 -792
- package/src/model/glm52-config.ts +0 -262
- package/src/model/glm52-container.ts +0 -305
- package/src/model/glm52-coupling.ts +0 -388
- package/src/model/glm52-dsa.ts +0 -606
- package/src/model/glm52-expert-layout.ts +0 -253
- package/src/model/glm52-layout.ts +0 -152
- package/src/model/glm52-memory.ts +0 -500
- package/src/model/glm52-mla.ts +0 -792
- package/src/model/glm52-moe.ts +0 -223
- package/src/model/glm52-pilot.ts +0 -537
- package/src/model/glm52-reference.ts +0 -445
- package/src/model/glm52-residency.ts +0 -557
- package/src/model/glm52-resident-weights.ts +0 -135
- package/src/model/glm52-streamed-experts.ts +0 -453
- package/src/model/glm52-streamed-metal.ts +0 -610
- package/src/model/glm52-weights.ts +0 -503
- package/src/model/glm52.ts +0 -1132
- package/src/model/implementation.ts +0 -69
- package/src/model/kv-attention-view.ts +0 -67
- package/src/model/minicpm5.ts +0 -376
- package/src/model/profile.ts +0 -443
- package/src/model/qwen-append.ts +0 -12
- package/src/model/qwen-conv.ts +0 -52
- package/src/model/qwen3-delta-state.ts +0 -74
- package/src/model/qwen3-delta.ts +0 -451
- package/src/model/qwen3-moe.ts +0 -404
- package/src/model/qwen3-mrope.ts +0 -252
- package/src/model/qwen3.ts +0 -277
- package/src/model/qwen3_5-checkpoint.ts +0 -164
- package/src/model/qwen3_5.ts +0 -819
- package/src/model/rotating-kv-donor.ts +0 -35
- package/src/model/rotating-kv-layout.ts +0 -262
- package/src/model/rotating-row-transaction.ts +0 -35
- package/src/model/speculative-rotating-kv.ts +0 -101
- package/src/model/ssm-prefill-padding.ts +0 -39
- package/src/model/support.ts +0 -102
- package/src/model/trellis-balanced-scatter.ts +0 -51
- package/src/model/trellis-linear.ts +0 -672
- package/src/model/trellis-shared-m.ts +0 -151
- package/src/model/trellis-shared-scatter.ts +0 -144
- package/src/model/trellis-splitk-prefill.ts +0 -158
- package/src/model/trellis-tiled-prefill.ts +0 -136
- package/src/model/trellis-vector-expand.ts +0 -62
- package/src/model/trellis-wide-prefill.ts +0 -94
- package/src/model/turboquant-codec.ts +0 -83
- package/src/model/universal/archs.ts +0 -332
- package/src/model/universal/dense.ts +0 -612
- package/src/model/universal/modules.ts +0 -170
- package/src/model/universal/rope.ts +0 -381
- package/src/native/expert_io.c +0 -523
- package/src/native/frame_extract.swift +0 -140
- package/src/native-pack.ts +0 -162
- package/src/pi-provider.ts +0 -53
- package/src/pi-session.ts +0 -81
- package/src/pi-terminal.ts +0 -274
- package/src/pi-web.ts +0 -1932
- package/src/preflight.ts +0 -158
- package/src/prompt-cache.ts +0 -460
- package/src/quantize/allocator.ts +0 -627
- package/src/quantize/atomic-output.ts +0 -38
- package/src/quantize/calibration.ts +0 -181
- package/src/quantize/config-writer.ts +0 -145
- package/src/quantize/index.ts +0 -84
- package/src/quantize/job.ts +0 -162
- package/src/quantize/quantizer.ts +0 -666
- package/src/quantize/rotate.ts +0 -603
- package/src/quantize/safetensors-writer.ts +0 -249
- package/src/quantize/sensitivity.ts +0 -216
- package/src/quantize/trellis.ts +0 -586
- package/src/quantize/weight-transform.ts +0 -292
- package/src/registry.ts +0 -602
- package/src/runtime-config.ts +0 -81
- package/src/safetensors.ts +0 -158
- package/src/sampler.ts +0 -1011
- package/src/serve/admin-routes.ts +0 -184
- package/src/serve/assets/curve-terrain.html +0 -105
- package/src/serve/assets/training-inference-map.html +0 -575
- package/src/serve/aux-routes.ts +0 -132
- package/src/serve/batch-scheduler.ts +0 -8
- package/src/serve/checkpoint-identity.ts +0 -64
- package/src/serve/generation-gateway.ts +0 -496
- package/src/serve/isolate.ts +0 -609
- package/src/serve/kv-budget.ts +0 -14
- package/src/serve/lab-routes.ts +0 -341
- package/src/serve/lane-registry.ts +0 -45
- package/src/serve/model-admin-routes.ts +0 -155
- package/src/serve/model-binding.ts +0 -43
- package/src/serve/model-host.ts +0 -511
- package/src/serve/parent-application.ts +0 -56
- package/src/serve/prompt-response-trace.ts +0 -147
- package/src/serve/response-lease.ts +0 -24
- package/src/serve/session-search.ts +0 -326
- package/src/serve/static-routes.ts +0 -101
- package/src/server.ts +0 -1314
- package/src/spec/assistant-rows.ts +0 -92
- package/src/spec/assistant-source.ts +0 -126
- package/src/spec/cache-identity.ts +0 -22
- package/src/spec/deepspec-rows.ts +0 -29
- package/src/spec/deepspec-source.ts +0 -145
- package/src/spec/dflash-source.ts +0 -149
- package/src/spec/drafter.ts +0 -304
- package/src/spec/dspark/ab-stats.ts +0 -136
- package/src/spec/dspark/calibration.ts +0 -112
- package/src/spec/dspark/data-dflash.ts +0 -156
- package/src/spec/dspark/data.ts +0 -201
- package/src/spec/dspark/deepspec-module.ts +0 -776
- package/src/spec/dspark/generate-dflash.ts +0 -245
- package/src/spec/dspark/generate.ts +0 -290
- package/src/spec/dspark/loader.ts +0 -23
- package/src/spec/dspark/loss.ts +0 -213
- package/src/spec/dspark/module-dflash.ts +0 -560
- package/src/spec/dspark/module.ts +0 -540
- package/src/spec/dspark/quantize-drafter.ts +0 -91
- package/src/spec/dspark/sample.ts +0 -112
- package/src/spec/generate.ts +0 -276
- package/src/spec/glm52-mtp-graph.ts +0 -29
- package/src/spec/glm52-mtp-rows.ts +0 -132
- package/src/spec/glm52-mtp-source.ts +0 -317
- package/src/spec/glm52-mtp-state.ts +0 -33
- package/src/spec/ngram-source.ts +0 -204
- package/src/spec/projected-draft-rows.ts +0 -73
- package/src/spec/qwen-mtp-module.ts +0 -171
- package/src/spec/qwen-mtp-rows.ts +0 -219
- package/src/spec/qwen-mtp-source.ts +0 -383
- package/src/spec/qwen-mtp-state.ts +0 -30
- package/src/spec/serve-loop.ts +0 -585
- package/src/spec/source.ts +0 -215
- package/src/spec/two-model-rows.ts +0 -61
- package/src/spec/two-model.ts +0 -113
- package/src/ssd-cache.ts +0 -372
- package/src/ssd-durability.ts +0 -211
- package/src/tokenizer.ts +0 -335
- package/src/tool-approvals.ts +0 -131
- package/src/tool-call.ts +0 -695
- package/src/train/dataset.ts +0 -484
- package/src/train/diffusion-lora.ts +0 -216
- package/src/train/export.ts +0 -32
- package/src/train/flash-cce.ts +0 -1234
- package/src/train/forward.ts +0 -266
- package/src/train/fuse.ts +0 -243
- package/src/train/index.ts +0 -46
- package/src/train/job.ts +0 -205
- package/src/train/lora-params.ts +0 -254
- package/src/train/loss.ts +0 -1591
- package/src/train/merge.ts +0 -195
- package/src/train/optimizer.ts +0 -183
- package/src/train/prefix-shared.ts +0 -490
- package/src/train/rank.ts +0 -137
- package/src/train/segmented.ts +0 -1828
- package/src/train/steel-qmm-header.ts +0 -1461
- package/src/train/trainer.ts +0 -1221
- package/src/train/watch.ts +0 -542
- package/src/vision/diffusion-vision.ts +0 -620
- package/src/vision/embedder.ts +0 -168
- package/src/vision/preprocess.ts +0 -247
- package/src/vision/prompt.ts +0 -373
- package/src/vision/qwen3vl-preprocess.ts +0 -409
- package/src/vision/qwen3vl-prompt.ts +0 -196
- package/src/vision/qwen3vl-tower.ts +0 -555
- package/src/vision/siglip.ts +0 -599
- package/src/vision/video-frames.ts +0 -148
- package/src/web/app.html +0 -2143
- package/src/web/app.js +0 -5703
- package/src/web/skills/memory/SKILL.md +0 -120
- package/src/web/skills/web-research/SKILL.md +0 -46
- package/src/web/skills.ts +0 -97
- package/src/web/src/adapters-panel.ts +0 -288
- package/src/web/src/assistant.ts +0 -451
- package/src/web/src/chat.ts +0 -1057
- package/src/web/src/composer.ts +0 -959
- package/src/web/src/dataset.ts +0 -132
- package/src/web/src/finetune.ts +0 -267
- package/src/web/src/hub.ts +0 -428
- package/src/web/src/main.ts +0 -98
- package/src/web/src/markdown.ts +0 -0
- package/src/web/src/memory-panel.ts +0 -572
- package/src/web/src/model-picker.ts +0 -159
- package/src/web/src/palette.ts +0 -346
- package/src/web/src/protocol.ts +0 -26
- package/src/web/src/quantize.ts +0 -167
- package/src/web/src/rag.ts +0 -274
- package/src/web/src/sessions.ts +0 -469
- package/src/web/src/shell.ts +0 -804
- package/src/web/src/ui-catalog.ts +0 -78
- package/src/web/vendor/README.md +0 -61
- package/src/web-assets.ts +0 -47
- package/src/web-tools.ts +0 -478
- package/src/weights.ts +0 -255
- /package/src/{serve → server}/completion-sink.ts +0 -0
- /package/src/web/{icon.svg → public/icon.svg} +0 -0
- /package/src/web/{manifest.webmanifest → public/manifest.webmanifest} +0 -0
- /package/src/web/{vendor → public/vendor}/hljs-LICENSE +0 -0
package/src/contracts/pi.ts
DELETED
|
@@ -1,259 +0,0 @@
|
|
|
1
|
-
/** Shared browser/server protocol. Data only; no SDK, DOM, or native imports. */
|
|
2
|
-
export type Lane = "serial" | "serial+spec" | "batched";
|
|
3
|
-
export const APP_ROUTE_IDS = ["chat", "quantize", "finetune", "dataset", "status"] as const;
|
|
4
|
-
|
|
5
|
-
export type ApprovalDecision = "allow" | "deny";
|
|
6
|
-
|
|
7
|
-
export interface ImageAttachment {
|
|
8
|
-
data: string;
|
|
9
|
-
mimeType: string;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export type ClientMessage =
|
|
13
|
-
| { type: "prompt"; text: string; images?: ImageAttachment[] }
|
|
14
|
-
| { type: "abort" }
|
|
15
|
-
// `editedArgs`: when the user edited the proposed arguments in the
|
|
16
|
-
// approval card's textarea before approving, the (re-parsed) JSON object
|
|
17
|
-
// to substitute for the tool's original input — mutated onto the pi SDK's
|
|
18
|
-
// ToolCallEvent.input in place (the SDK's documented mutation contract;
|
|
19
|
-
// see installApprovalGate). Ignored on "deny". `alwaysAllow`: persist this
|
|
20
|
-
// tool to the durable always-allow config (src/tool-approvals.ts) so
|
|
21
|
-
// future calls to the SAME TOOL NAME skip the card entirely, on this and
|
|
22
|
-
// every other session.
|
|
23
|
-
| { type: "approval"; callId: string; decision: ApprovalDecision; editedArgs?: Record<string, unknown>; alwaysAllow?: boolean }
|
|
24
|
-
// Toggle the model's reasoning channel on/off (only meaningful when the
|
|
25
|
-
// model supports thinking — ready.thinking). Maps to Pi's session thinking
|
|
26
|
-
// level: "medium" (on) ↔ "off". Pi sends it as enable_thinking to the server.
|
|
27
|
-
| { type: "set_thinking"; enabled: boolean }
|
|
28
|
-
// Opt-in toggle (plan §5.4/§6.5/§9 Phase 2, default OFF): "let the agent
|
|
29
|
-
// touch files on this machine". Persisted per-browser by the client
|
|
30
|
-
// (localStorage `mlxbun.codingTools`); the ALLOWLIST decision is enforced
|
|
31
|
-
// here, server-side. buildPiAgentSurface's tool list is fixed for the
|
|
32
|
-
// life of an AgentSession (pi's DefaultResourceLoader config is baked in
|
|
33
|
-
// at createAgentSessionServices time), so this can't rewire an
|
|
34
|
-
// in-progress session — it takes effect starting with the next
|
|
35
|
-
// new_session/open_session/fork_session (createRuntimeFactory reads
|
|
36
|
-
// this.codingToolsRequested fresh every time the SDK calls it, including
|
|
37
|
-
// from AgentSessionRuntime.newSession()'s internal re-invocation). The
|
|
38
|
-
// `coding_tools` ServerMessage below reports the honest current-vs-pending
|
|
39
|
-
// state so the UI can say so instead of implying it applies immediately.
|
|
40
|
-
| { type: "set_coding_tools"; enabled: boolean }
|
|
41
|
-
// Select the active LoRA adapter for subsequent turns (null = none/base).
|
|
42
|
-
// app.html mounts it (POST /v1/adapters) before sending this; the
|
|
43
|
-
// before_provider_request hook injects it into the provider payload.
|
|
44
|
-
| { type: "set_adapter"; id: string | null }
|
|
45
|
-
// Per-request sampling overrides. Each field is optional; null/undefined
|
|
46
|
-
// means "leave it to the server default" (the mode-aware recommended
|
|
47
|
-
// value resolved in toOptions). A present numeric value is injected into
|
|
48
|
-
// the provider payload and always wins. The before_provider_request hook
|
|
49
|
-
// injects whatever is set here.
|
|
50
|
-
//
|
|
51
|
-
// `scope` (plan §9 Phase 3 / beat matrix Axis 4 "per-message sampling
|
|
52
|
-
// scope"): "session" (default, omitting the field means this too) persists
|
|
53
|
-
// the override on the connection until changed — today's behavior,
|
|
54
|
-
// unchanged. "next_turn" stores a ONE-SHOT override applied to exactly
|
|
55
|
-
// the next prompt's injection, then cleared automatically — it never
|
|
56
|
-
// touches the session-level values (a later plain set_sampling with
|
|
57
|
-
// scope:"session" or omitted still sees whatever was there before this
|
|
58
|
-
// message). Composition when both are present: next_turn's SET fields
|
|
59
|
-
// win over session's for that one request; anything next_turn leaves
|
|
60
|
-
// null/unset falls back to the session-level override for that field
|
|
61
|
-
// (composeSampling — session-level itself falls back to the server's
|
|
62
|
-
// mode-aware default per injectSampling's existing contract).
|
|
63
|
-
| {
|
|
64
|
-
type: "set_sampling";
|
|
65
|
-
scope?: "session" | "next_turn";
|
|
66
|
-
temperature?: number | null;
|
|
67
|
-
top_p?: number | null;
|
|
68
|
-
top_k?: number | null;
|
|
69
|
-
min_p?: number | null;
|
|
70
|
-
xtc_probability?: number | null;
|
|
71
|
-
xtc_threshold?: number | null;
|
|
72
|
-
repetition_penalty?: number | null;
|
|
73
|
-
repetition_context_size?: number | null;
|
|
74
|
-
presence_penalty?: number | null;
|
|
75
|
-
frequency_penalty?: number | null;
|
|
76
|
-
seed?: number | null;
|
|
77
|
-
}
|
|
78
|
-
// Per-session USER system prompt, layered ON TOP OF (not replacing) the
|
|
79
|
-
// built-in surface prompt (buildWebChatSystemPrompt + memoryHint). null
|
|
80
|
-
// clears it. Applied by the before_agent_start hook on the NEXT turn (pi
|
|
81
|
-
// calls it fresh inside every session.prompt(), so this is a true
|
|
82
|
-
// per-turn injection, not a session-creation-only setting — see
|
|
83
|
-
// installSystemPromptHook). Presets v1 (composer.ts) send this alongside
|
|
84
|
-
// set_sampling to apply a saved bundle.
|
|
85
|
-
| { type: "set_system_prompt"; text: string | null }
|
|
86
|
-
// Session management (recent-chats sidebar + new chat).
|
|
87
|
-
| { type: "new_session" }
|
|
88
|
-
| { type: "list_sessions" }
|
|
89
|
-
| { type: "open_session"; path: string }
|
|
90
|
-
| { type: "fork_session"; path: string }
|
|
91
|
-
| { type: "delete_session"; path: string }
|
|
92
|
-
// Message actions (plan §5.2). All three navigate the session's leaf
|
|
93
|
-
// pointer via AgentSession.navigateTree() then re-prompt — a sibling
|
|
94
|
-
// branch in the SAME session file, never a new one (see the helpers above
|
|
95
|
-
// findLastUserMessageEntry for the full rationale). Regenerate re-sends the
|
|
96
|
-
// last user message's original content verbatim; edit_resend re-sends it
|
|
97
|
-
// with edited text (images preserved); switch_sibling moves the active
|
|
98
|
-
// leaf to a previously-created sibling (an earlier edit/regeneration)
|
|
99
|
-
// without sending anything new.
|
|
100
|
-
| { type: "regenerate" }
|
|
101
|
-
| { type: "edit_resend"; text: string }
|
|
102
|
-
| { type: "switch_sibling"; entryId: string }
|
|
103
|
-
// App-aware assistant (plan §6.6, §9 Phase 3, beat matrix Axis 12): pushed
|
|
104
|
-
// by chat.ts on every route change AND on wizard-step change (quantize/
|
|
105
|
-
// finetune/dataset), never on a timer. `context` is opaque here (the
|
|
106
|
-
// browser's AppContext shape, src/web/src/assistant.ts) — stored verbatim
|
|
107
|
-
// as the connection's currentAppContext and returned by the
|
|
108
|
-
// get_current_app_context tool, plus mined for the compact one-line
|
|
109
|
-
// ambient context auto-prepended to the NEXT prompt (see
|
|
110
|
-
// installAppContextHook / ambientContextLine). This is a DIFFERENT frame
|
|
111
|
-
// from the server->client `context` ServerMessage (context-window usage,
|
|
112
|
-
// above) — same name, opposite direction, disambiguated by which type
|
|
113
|
-
// union it's a member of; the two are never in scope at the same call
|
|
114
|
-
// site (ClientMessage here vs. ServerMessage below).
|
|
115
|
-
| { type: "context"; context: AppUiContext };
|
|
116
|
-
|
|
117
|
-
export interface UiSnapshotElement {
|
|
118
|
-
ref: string;
|
|
119
|
-
tag: string;
|
|
120
|
-
label: string;
|
|
121
|
-
kind: "interactive" | "region";
|
|
122
|
-
role?: string;
|
|
123
|
-
selector: string;
|
|
124
|
-
spotlightId?: string;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
export interface UiSnapshot {
|
|
128
|
-
route: string;
|
|
129
|
-
capturedAt: string;
|
|
130
|
-
elements: UiSnapshotElement[];
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
export interface WizardStep {
|
|
134
|
-
index: number;
|
|
135
|
-
count: number;
|
|
136
|
-
label: string;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
export interface AppUiContext {
|
|
140
|
-
route: string;
|
|
141
|
-
view?: string;
|
|
142
|
-
step?: WizardStep;
|
|
143
|
-
snapshot: UiSnapshot;
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
export type AppRouteId = (typeof APP_ROUTE_IDS)[number];
|
|
147
|
-
|
|
148
|
-
export interface ReadyGenDefaults {
|
|
149
|
-
temperature: number | null;
|
|
150
|
-
topP: number | null;
|
|
151
|
-
topK: number | null;
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
export type ServerMessage =
|
|
155
|
-
// `vision`: whether the loaded model can accept images (drives the UI's
|
|
156
|
-
// image-attach affordance — false on e4b until the SigLIP sidecar lands).
|
|
157
|
-
// `audio`: whether the loaded model can accept `input_audio` parts (audio
|
|
158
|
-
// tower loaded or loadable). Discovery-only for now: pi's Model.input type
|
|
159
|
-
// has no "audio" modality, so unlike `vision` this flag never feeds the
|
|
160
|
-
// provider declaration — clients use it instead of probing for a 400.
|
|
161
|
-
// `thinking`: whether the model has a switchable reasoning channel (drives
|
|
162
|
-
// the UI's thinking on/off toggle; false hides it).
|
|
163
|
-
| { type: "ready"; model: string; vision: boolean; audio: boolean; thinking: boolean; genDefaults: ReadyGenDefaults }
|
|
164
|
-
| { type: "turn_start" }
|
|
165
|
-
| { type: "text_delta"; delta: string }
|
|
166
|
-
| { type: "thinking_delta"; delta: string }
|
|
167
|
-
| { type: "tool_start"; callId: string; tool: string; args: unknown }
|
|
168
|
-
| { type: "tool_approval_request"; callId: string; tool: string; args: unknown }
|
|
169
|
-
| { type: "tool_update"; callId: string; chunk: unknown }
|
|
170
|
-
| { type: "tool_end"; callId: string; ok: boolean; result: unknown }
|
|
171
|
-
// `lane`: the serving lane the just-finished turn ran on (serial /
|
|
172
|
-
// serial+spec / batched), correlated via the lane registry keyed by the
|
|
173
|
-
// AssistantMessage's responseId (the pi SDK's own usage parsing drops
|
|
174
|
-
// custom fields — see src/serve/lane-registry.ts). Absent when the turn
|
|
175
|
-
// produced no assistant message with a responseId (e.g. an aborted turn
|
|
176
|
-
// before any model call) — never guessed client-side (risk #5).
|
|
177
|
-
| { type: "turn_end"; lane?: Lane }
|
|
178
|
-
| { type: "queue_update"; steering: readonly string[]; followUp: readonly string[] }
|
|
179
|
-
// Replay a session's transcript (rebuilds the thread); and the sidebar list.
|
|
180
|
-
| { type: "history"; items: HistoryItem[] }
|
|
181
|
-
| { type: "sessions"; items: SessionListItem[]; activePath?: string }
|
|
182
|
-
// Sibling group for the LAST user message (edit-and-resend's `< i/n >`
|
|
183
|
-
// toggle, plan §5.2). Sent after every history rebuild and after a
|
|
184
|
-
// completed turn. `count` <= 1 means no toggle to show (the common case:
|
|
185
|
-
// no edits/regenerations yet). `entryId` is the currently-active sibling's
|
|
186
|
-
// id; `siblingIds` is the full ordered group so the client can resolve
|
|
187
|
-
// "previous/next" locally and send switch_sibling with a concrete id
|
|
188
|
-
// (never inferred/guessed — the server is the source of truth for order).
|
|
189
|
-
| { type: "siblings"; entryId?: string; index: number; count: number; siblingIds: string[] }
|
|
190
|
-
// Context-window usage indicator. tokens/percent are null right after a
|
|
191
|
-
// compaction until the next assistant reply (pi can't estimate yet).
|
|
192
|
-
| { type: "context"; tokens: number | null; contextWindow: number; percent: number | null }
|
|
193
|
-
// Effective vs. pending codingTools state (set_coding_tools above).
|
|
194
|
-
// `active` is what the CURRENT session actually built with (gates
|
|
195
|
-
// whether the approval card can ever fire); `pending` is the browser's
|
|
196
|
-
// most recent request, which only takes effect on the next
|
|
197
|
-
// new/opened/forked session — surfaced so the settings copy can say
|
|
198
|
-
// "will apply to your next new chat" instead of lying about immediacy.
|
|
199
|
-
| { type: "coding_tools"; active: boolean; pending: boolean }
|
|
200
|
-
// Full always-allow set for THIS machine (src/tool-approvals.ts), sent on
|
|
201
|
-
// `ready` and after any change, so the settings panel can list/forget
|
|
202
|
-
// durable per-tool approvals without a separate REST round-trip.
|
|
203
|
-
| { type: "tool_approvals"; alwaysAllow: string[] }
|
|
204
|
-
// App-aware assistant (plan §6.6): the navigate_app / spotlight_ui tools'
|
|
205
|
-
// side-channel notifications, mapped 1:1 from the tool call's params —
|
|
206
|
-
// never guessed or re-derived, so chat.ts's router/spotlight get exactly
|
|
207
|
-
// what the model asked for. `route` here is always a validated
|
|
208
|
-
// AppRouteId (isAppRouteId already ran server-side before this frame is
|
|
209
|
-
// ever sent — see navigate_app's execute). ui_spotlight's fields mirror
|
|
210
|
-
// SpotlightRequest 1:1 (assistant.ts resolves ref/label/selector/target
|
|
211
|
-
// client-side, in that precedence order, against its last snapshot).
|
|
212
|
-
| { type: "ui_navigate"; route: AppRouteId }
|
|
213
|
-
| { type: "ui_spotlight"; ref?: string; label?: string; selector?: string; target?: string; message?: string; route?: AppRouteId }
|
|
214
|
-
| { type: "error"; message: string };
|
|
215
|
-
|
|
216
|
-
export interface HistoryToolItem {
|
|
217
|
-
callId: string;
|
|
218
|
-
name: string;
|
|
219
|
-
args: unknown;
|
|
220
|
-
/** Tool result text, filled from the matching toolResult message. */
|
|
221
|
-
result: string;
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
export interface HistoryItem {
|
|
225
|
-
role: "user" | "assistant";
|
|
226
|
-
text: string;
|
|
227
|
-
/** Model reasoning/thinking, kept separate from the final answer. */
|
|
228
|
-
thinking?: string;
|
|
229
|
-
tools: HistoryToolItem[];
|
|
230
|
-
/** Session entry id (user items only). Lets the browser correlate "the
|
|
231
|
-
* last user message" in the replayed thread with the `siblings` frame's
|
|
232
|
-
* entryId, so it knows which DOM node gets the edit/sibling-toggle UI
|
|
233
|
-
* (plan §5.2). Undefined for assistant items — they aren't fork targets. */
|
|
234
|
-
entryId?: string;
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
export interface SessionListItem {
|
|
238
|
-
path: string;
|
|
239
|
-
id: string;
|
|
240
|
-
title: string;
|
|
241
|
-
/** Last-modified epoch ms (newest first). */
|
|
242
|
-
modified: number;
|
|
243
|
-
messageCount: number;
|
|
244
|
-
forked: boolean;
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
export interface SamplingOverrides {
|
|
248
|
-
temperature?: number | null;
|
|
249
|
-
top_p?: number | null;
|
|
250
|
-
top_k?: number | null;
|
|
251
|
-
min_p?: number | null;
|
|
252
|
-
xtc_probability?: number | null;
|
|
253
|
-
xtc_threshold?: number | null;
|
|
254
|
-
repetition_penalty?: number | null;
|
|
255
|
-
repetition_context_size?: number | null;
|
|
256
|
-
presence_penalty?: number | null;
|
|
257
|
-
frequency_penalty?: number | null;
|
|
258
|
-
seed?: number | null;
|
|
259
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/** A reusable prefix and the backend/method state that covers its tokens.
|
|
2
|
-
* The caller owns a returned hit. After releasing or returning its state,
|
|
3
|
-
* it must release any retained backing through retain. */
|
|
4
|
-
export interface PrefixCacheHit<State, Attachment = never> {
|
|
5
|
-
tokens: number[];
|
|
6
|
-
caches: State;
|
|
7
|
-
attachments?: Attachment;
|
|
8
|
-
retain?: () => void;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
/** Storage is independent of request scheduling and the method producing
|
|
12
|
-
* state. Both prefill and decode can publish processed-token prefixes.
|
|
13
|
-
* State is opaque here; its backend/method defines layout and alignment.
|
|
14
|
-
* Implementations own prefix selection, retention and storage tiers. */
|
|
15
|
-
export interface PrefixCache<State, Attachment = never> {
|
|
16
|
-
/** Return owned state for the longest usable prefix, or null on a miss.
|
|
17
|
-
* Namespace distinguishes incompatible artifacts, methods and adapters. */
|
|
18
|
-
take(prompt: number[], ns?: string): PrefixCacheHit<State, Attachment> | null;
|
|
19
|
-
/** Transfer state and its optional backing release to storage. If this
|
|
20
|
-
* throws, ownership stays with the caller; successful return transfers
|
|
21
|
-
* ownership even when storage immediately spills or disposes the entry. */
|
|
22
|
-
put(tokens: number[], caches: State, ns?: string, retain?: () => void, attachments?: Attachment): void;
|
|
23
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/** A single owner. Borrowing does not extend lifetime; transfer invalidates
|
|
2
|
-
* the old owner. close is idempotent, including when release throws. */
|
|
3
|
-
export interface ResourceOwner<T> {
|
|
4
|
-
borrow(): T;
|
|
5
|
-
transfer(): T;
|
|
6
|
-
close(): void;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
/** State views may own temporary handles or borrow live state. Consumers
|
|
10
|
-
* always close the lease; only the provider knows which handles to release. */
|
|
11
|
-
export interface StateView<T> {
|
|
12
|
-
borrow(): readonly T[];
|
|
13
|
-
close(): void;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export interface DisposableResource {
|
|
17
|
-
dispose(): void;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/** A prepared replacement for live state. Commit once between method rounds;
|
|
21
|
-
* it publishes already-built state without graph work or validation. Dispose
|
|
22
|
-
* releases the unpublished replacement, or the superseded state after commit. */
|
|
23
|
-
export interface PreparedStateChange extends DisposableResource {
|
|
24
|
-
commit(): void;
|
|
25
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/** Sampling owns score processing, token selection, and request-local history.
|
|
2
|
-
* Score/token representations and sync/device execution belong to the backend;
|
|
3
|
-
* this contract has no scheduling, cache, or tensor-runtime dependency. */
|
|
4
|
-
export interface SampledToken<Token, Metadata> {
|
|
5
|
-
token: Token;
|
|
6
|
-
extras: Metadata | null;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export interface SamplingSession<Scores, DeviceToken, Result> {
|
|
10
|
-
/** Optional stateless operation shared across compatible rows and positions.
|
|
11
|
-
* It borrows scores and returns owned device tokens, without advancing history. */
|
|
12
|
-
readonly independent?: { sample(scores: Scores): DeviceToken };
|
|
13
|
-
readonly isPlainGreedy: boolean;
|
|
14
|
-
readonly capturesLogprobs: boolean;
|
|
15
|
-
readonly needsHistory: boolean;
|
|
16
|
-
/** Borrows scores; transfers ownership of the result to the caller. */
|
|
17
|
-
sample(logits: Scores, step: number): Result;
|
|
18
|
-
seedHistory(tokens: readonly number[]): void;
|
|
19
|
-
/** Commit accepted tokens when configured for manual history updates. */
|
|
20
|
-
commitDevice(token: DeviceToken): void;
|
|
21
|
-
commitNumbers(tokens: readonly number[]): void;
|
|
22
|
-
dispose(): void;
|
|
23
|
-
}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/** Backend-owned context shared by compatible requests. A key identifies
|
|
2
|
-
* equivalent execution state; enter returns its scoped release. Scheduling
|
|
3
|
-
* observes group readiness without inspecting this context. */
|
|
4
|
-
export interface ExecutionContext {
|
|
5
|
-
readonly key: string;
|
|
6
|
-
enter(): () => void;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
/** A backend execution group exposes bounded work units and readiness. Queue
|
|
10
|
-
* payloads, tensors, cache merging and sampling remain inside its adapter. */
|
|
11
|
-
export interface ExecutionGroup {
|
|
12
|
-
readonly active: number;
|
|
13
|
-
readonly queued: number;
|
|
14
|
-
readonly preparing: boolean;
|
|
15
|
-
readonly preparingRows?: number;
|
|
16
|
-
/** The preparation owner can accept another row before its next work unit. */
|
|
17
|
-
readonly canPrepareMore?: boolean;
|
|
18
|
-
/** Work estimates affect grouping only. A request larger than this budget
|
|
19
|
-
* still runs alone; it is never rejected or sent to another executor. */
|
|
20
|
-
readonly preparingTokens?: number;
|
|
21
|
-
readonly nextPreparationTokens?: number;
|
|
22
|
-
readonly maxPreparationTokens?: number;
|
|
23
|
-
/** The latest preparation published output that can be flushed by yielding. */
|
|
24
|
-
readonly preparationPublishedOutput?: boolean;
|
|
25
|
-
readonly maxActive: number;
|
|
26
|
-
readonly admissionHeld: boolean;
|
|
27
|
-
readonly closed: boolean;
|
|
28
|
-
pruneCancelled(): void;
|
|
29
|
-
/** May reject/remove an impossible queued request before returning false. */
|
|
30
|
-
admitNext(): boolean;
|
|
31
|
-
/** Read-only budget check used to preserve admission before decode. */
|
|
32
|
-
canBurst(): boolean;
|
|
33
|
-
advancePreparation(): Promise<void>;
|
|
34
|
-
advance(): Promise<void>;
|
|
35
|
-
failActive(error: unknown): void;
|
|
36
|
-
failAll(error: unknown): void;
|
|
37
|
-
reserveResidency(): () => void;
|
|
38
|
-
acquireExecution?(): Promise<() => void>;
|
|
39
|
-
waitForWork(): Promise<void>;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
export interface SchedulingClock {
|
|
43
|
-
now(): number;
|
|
44
|
-
yield(): Promise<void>;
|
|
45
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"lib": ["ES2022"],
|
|
4
|
-
"target": "ES2022",
|
|
5
|
-
"module": "Preserve",
|
|
6
|
-
"moduleResolution": "bundler",
|
|
7
|
-
"types": [],
|
|
8
|
-
"strict": true,
|
|
9
|
-
"skipLibCheck": false,
|
|
10
|
-
"noUncheckedIndexedAccess": true,
|
|
11
|
-
"noEmit": true
|
|
12
|
-
},
|
|
13
|
-
"include": ["./*.ts", "../engine/**/*.ts", "../inference/**/*.ts"]
|
|
14
|
-
}
|