mlx-bun 0.5.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 +1449 -109
- 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 +7 -5
- 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 +10 -10
- package/src/{serve → server}/chat-stage.ts +14 -14
- package/src/{client.ts → server/client.ts} +28 -2
- package/src/{serve → server}/completion-executor.ts +33 -41
- 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 +25 -82
- 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 +6 -8
- package/src/{serve → server}/request-prep.ts +47 -50
- 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 -107
- package/docs/archive/hlg-sampling.md +0 -350
- package/docs/archive/investigations/audio-input-plan.md +0 -356
- package/docs/archive/investigations/benchmark-ledger-through-v0.4.0.md +0 -3617
- 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/release-notes-v0.4.0.md +0 -45
- package/docs/archive/planning/release-notes-v0.5.0.md +0 -37
- 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 -2054
- package/docs/design/decode-speed-program.md +0 -2404
- package/docs/design/dreaming-nightly-pipeline.md +0 -684
- package/docs/design/generic-model-support.md +0 -821
- package/docs/design/kv-cache.md +0 -993
- package/docs/design/orpo-training.md +0 -680
- package/docs/design/speculative-decoding.md +0 -2129
- package/docs/design/turboquant.md +0 -2225
- package/docs/design/unified-engine-frontier-plan.md +0 -1987
- package/docs/design/web-chat-redesign.md +0 -695
- package/docs/planning/PRODUCT_ROADMAP.md +0 -593
- package/docs/planning/ResearchTopics.md +0 -119
- package/docs/planning/public-readiness-handoff.md +0 -244
- package/docs/planning/public-readiness.md +0 -149
- package/docs/planning/video-series.md +0 -421
- package/docs/reference/benchmarks.md +0 -3587
- package/docs/reference/cli.md +0 -646
- package/docs/reference/distribution.md +0 -380
- package/docs/reference/environment.md +0 -494
- package/docs/reference/glossary.md +0 -39
- package/docs/reference/library-api.md +0 -688
- package/docs/reference/memory.md +0 -260
- package/docs/reference/models.md +0 -346
- package/docs/reference/server-api.md +0 -1945
- package/docs/reference/server-config.md +0 -973
- package/docs/reference/training.md +0 -462
- package/docs/reference/troubleshooting.md +0 -158
- package/src/admission-plan.ts +0 -18
- package/src/audio/audiotoolbox.ts +0 -112
- package/src/audio/conformer.ts +0 -655
- package/src/audio/decode.ts +0 -133
- package/src/audio/features.ts +0 -202
- package/src/audio/mic-capture.ts +0 -98
- package/src/audio/silero-vad.ts +0 -379
- package/src/audio/transcode.ts +0 -67
- package/src/audio/whisper-decode.ts +0 -774
- package/src/audio/whisper-fast.ts +0 -732
- package/src/audio/whisper-format.ts +0 -73
- package/src/audio/whisper-mel.ts +0 -185
- package/src/audio/whisper-timing.ts +0 -274
- package/src/audio/whisper-tokenizer.ts +0 -239
- package/src/audio/whisper-transcribe.ts +0 -410
- 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 -129
- package/src/backends/mlx/batch-group.ts +0 -1874
- 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 -107
- 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/encoder-cache.ts +0 -25
- package/src/backends/mlx/evaluation.ts +0 -105
- package/src/backends/mlx/fill-append.ts +0 -58
- package/src/backends/mlx/fill-group.ts +0 -497
- 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 -174
- 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 -161
- 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/mixed-iteration.ts +0 -62
- package/src/backends/mlx/model-prompt.ts +0 -178
- package/src/backends/mlx/model-serving.ts +0 -80
- package/src/backends/mlx/paged-cache-codec.ts +0 -27
- package/src/backends/mlx/prefill-cohort.ts +0 -100
- package/src/backends/mlx/prefill-policy.ts +0 -26
- package/src/backends/mlx/prefill-rows.ts +0 -244
- package/src/backends/mlx/prefill.ts +0 -33
- package/src/backends/mlx/projected-context-rows.ts +0 -72
- package/src/backends/mlx/prompt-input.ts +0 -29
- package/src/backends/mlx/qwen-prompt-input.ts +0 -40
- package/src/backends/mlx/request-policy.ts +0 -20
- package/src/backends/mlx/request-state-policy.ts +0 -54
- package/src/backends/mlx/rollback.ts +0 -92
- package/src/backends/mlx/row-sampling.ts +0 -49
- package/src/backends/mlx/serial-executor.ts +0 -251
- package/src/backends/mlx/speculative-group.ts +0 -438
- package/src/backends/mlx/speculative-round.ts +0 -161
- package/src/backends/mlx/speculative.ts +0 -131
- 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 -173
- package/src/chat-template.ts +0 -382
- package/src/cli.ts +0 -3490
- package/src/config.ts +0 -399
- package/src/contracts/completion.ts +0 -16
- package/src/contracts/execution.ts +0 -70
- package/src/contracts/generation.ts +0 -103
- package/src/contracts/host.ts +0 -7
- package/src/contracts/object-cache.ts +0 -8
- package/src/contracts/pi-provider.ts +0 -30
- package/src/contracts/pi.ts +0 -261
- package/src/contracts/prefix-cache.ts +0 -33
- package/src/contracts/resources.ts +0 -25
- package/src/contracts/sampling.ts +0 -23
- package/src/contracts/scheduling.ts +0 -54
- 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 -64
- package/src/engine/execution-tasks.ts +0 -44
- package/src/engine/namespaced-cache.ts +0 -13
- package/src/engine/resources.ts +0 -53
- package/src/engine/scheduler.ts +0 -92
- 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 -463
- 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 -1352
- package/src/grammar.ts +0 -604
- 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 -45
- 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 -279
- package/src/kv-store.ts +0 -1135
- package/src/lab/README.md +0 -22
- 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-attention.ts +0 -117
- package/src/lab/paged-kv/paged-kv-rows.ts +0 -111
- package/src/lab/paged-kv/paged-kv.ts +0 -336
- package/src/library.ts +0 -40
- package/src/lora.ts +0 -408
- package/src/md-modules.d.ts +0 -54
- 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 -425
- 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 -531
- package/src/mlx/materialize.ts +0 -23
- package/src/mlx/metal-kernel.ts +0 -159
- package/src/mlx/normalized-argmax.ts +0 -116
- package/src/mlx/ops.ts +0 -1108
- 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 -94
- 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 -57
- package/src/model/diffusion-gemma.ts +0 -1026
- package/src/model/factory.ts +0 -215
- package/src/model/fingerprint.ts +0 -45
- 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 -2370
- package/src/model/gemma4.ts +0 -1395
- 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 -70
- package/src/model/minicpm5.ts +0 -376
- package/src/model/profile.ts +0 -468
- package/src/model/quantized-append-attention.ts +0 -31
- 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 -250
- package/src/model/qwen3.ts +0 -277
- package/src/model/qwen3_5-checkpoint.ts +0 -164
- package/src/model/qwen3_5.ts +0 -881
- 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 -110
- package/src/model/token-groups.ts +0 -66
- 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 -89
- 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/model/whisper.ts +0 -435
- package/src/native/expert_io.c +0 -523
- package/src/native/frame_extract.swift +0 -140
- package/src/native/mic_capture.swift +0 -92
- package/src/native-pack.ts +0 -163
- 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 -1940
- package/src/preflight.ts +0 -158
- package/src/prompt-cache.ts +0 -682
- 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 -77
- package/src/safetensors.ts +0 -165
- package/src/sampler.ts +0 -1012
- 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/audio-routes.ts +0 -323
- 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 -537
- 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 -49
- package/src/serve/model-host.ts +0 -511
- package/src/serve/parent-application.ts +0 -56
- package/src/serve/prompt-response-trace.ts +0 -161
- 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/serve/transcription-server.ts +0 -64
- package/src/serve/transcription-service.ts +0 -502
- package/src/server.ts +0 -1282
- package/src/spec/assistant-rows.ts +0 -93
- 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 -318
- package/src/spec/glm52-mtp-state.ts +0 -33
- package/src/spec/ngram-source.ts +0 -226
- 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 -230
- package/src/spec/qwen-mtp-source.ts +0 -386
- package/src/spec/qwen-mtp-state.ts +0 -30
- package/src/spec/serve-loop.ts +0 -587
- package/src/spec/source.ts +0 -228
- package/src/spec/two-model-rows.ts +0 -62
- package/src/spec/two-model.ts +0 -113
- package/src/ssd-cache.ts +0 -431
- package/src/ssd-durability.ts +0 -209
- package/src/storage/host-buffer.ts +0 -24
- package/src/storage/kv-writer.ts +0 -83
- package/src/storage/kv-writer.worker.js +0 -264
- package/src/storage/retention-policy.ts +0 -37
- package/src/tiered-prompt-cache.ts +0 -45
- 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 -176
- package/src/vision/preprocess.ts +0 -247
- package/src/vision/prompt.ts +0 -409
- package/src/vision/qwen3vl-preprocess.ts +0 -409
- package/src/vision/qwen3vl-prompt.ts +0 -233
- package/src/vision/qwen3vl-tower.ts +0 -566
- package/src/vision/siglip.ts +0 -607
- package/src/vision/video-frames.ts +0 -148
- package/src/web/app.html +0 -2155
- package/src/web/app.js +0 -5863
- 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 -1060
- package/src/web/src/composer.ts +0 -962
- 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/src/voice.ts +0 -141
- 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/{serve → server}/generated-token-history.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
|
@@ -1,198 +0,0 @@
|
|
|
1
|
-
# OpenJarvis research and fit with mlx-bun
|
|
2
|
-
|
|
3
|
-
Inspected September 8, 2026. OpenJarvis source revision
|
|
4
|
-
[`e25e77d36ee487aa456978e7a7f19a7f6d712260`](https://github.com/open-jarvis/OpenJarvis/tree/e25e77d36ee487aa456978e7a7f19a7f6d712260).
|
|
5
|
-
mlx-bun revision `673b43f39b88d8f6438e625aaaceca00851d0fbf`.
|
|
6
|
-
This is a source/documentation review, not a reproduced benchmark or a verified
|
|
7
|
-
live integration. No servers, model downloads, inference, or training ran.
|
|
8
|
-
|
|
9
|
-
OpenJarvis is useful both as a possible consumer of mlx-bun and as prior work
|
|
10
|
-
for the local adaptation research. Its most useful architectural idea is a
|
|
11
|
-
versioned configuration that can be evaluated and changed across model,
|
|
12
|
-
agent, tools, memory, and runtime settings. mlx-bun already supplies several
|
|
13
|
-
of those components. The remaining opportunity is to connect them through
|
|
14
|
-
replayable task evidence and controlled updates.
|
|
15
|
-
|
|
16
|
-
## What the diagram means for this project
|
|
17
|
-
|
|
18
|
-
The [architecture documentation][architecture] separates five configurable
|
|
19
|
-
components. Interfaces and hardware surround them. The table maps those
|
|
20
|
-
roles to documented mlx-bun capabilities; it does not claim identical scope.
|
|
21
|
-
|
|
22
|
-
| OpenJarvis component | Existing mlx-bun contribution | Work above or around the engine |
|
|
23
|
-
|---|---|---|
|
|
24
|
-
| Intelligence | Supported model graphs, model discovery, quantization and adapters | Task-aware model/adapter selection, with measured loading and switching costs |
|
|
25
|
-
| Engine | Native MLX inference, HTTP serving, TypeScript library, caching and batching | An OpenJarvis compatibility check and an adapter for richer runtime measurements |
|
|
26
|
-
| Agents | Built-in Pi and integration with an external Pi | Compare task loops, including bounded RLM, outside numerical inference code |
|
|
27
|
-
| Tools and memory | Pi tools, embeddings, personal Markdown wiki and synthesis | Common tool contracts, evidence provenance and replayable memory snapshots |
|
|
28
|
-
| Learning | LoRA SFT/DPO/ORPO training and adapter serving | Verified data collection, candidate evaluation, retention tests and promotion |
|
|
29
|
-
| User interfaces | CLI and browser application | Messaging/desktop integrations only when a concrete workload needs them |
|
|
30
|
-
|
|
31
|
-
Local sources: [CLI](../../reference/cli.md),
|
|
32
|
-
[library API](../../reference/library-api.md),
|
|
33
|
-
[server API](../../reference/server-api.md),
|
|
34
|
-
[memory](../../reference/memory.md), [training](../../reference/training.md).
|
|
35
|
-
The Dreaming is memory synthesis, not weight training. Its current
|
|
36
|
-
[`runPipeline`](../../../src/memory/pipeline.ts) assumes conversations are
|
|
37
|
-
already ingested; closing that ingestion gap remains existing work.
|
|
38
|
-
Serving a model does not imply its architecture supports every training path.
|
|
39
|
-
|
|
40
|
-
## RLM implementation and its limits
|
|
41
|
-
|
|
42
|
-
OpenJarvis includes a concrete [`RLMAgent`][rlm] with a persistent Python
|
|
43
|
-
[`RLMRepl`][repl]. It installs external context in a variable, executes
|
|
44
|
-
model-written code, exposes `llm_query` and `llm_batch`, and can return an
|
|
45
|
-
answer through `FINAL`, `FINAL_VAR`, or the `answer` dictionary.
|
|
46
|
-
|
|
47
|
-
This is a useful reference for the bounded external-context experiment in
|
|
48
|
-
the existing `harness_research/RESEARCH_PROGRAM.md`. It belongs in the task
|
|
49
|
-
execution loop. A separate optimizer could improve its prompt, decomposition
|
|
50
|
-
rules or tool configuration over time.
|
|
51
|
-
|
|
52
|
-
The inspected implementation has several details an experiment must account for:
|
|
53
|
-
|
|
54
|
-
- `llm_batch` runs subqueries sequentially. Its name does not imply engine
|
|
55
|
-
batching or parallel execution.
|
|
56
|
-
- Subqueries call `engine.generate` directly and can resolve one round of
|
|
57
|
-
returned tool calls. They do not create child REPL agents. This path should
|
|
58
|
-
not be described as arbitrary-depth recursive RLM execution.
|
|
59
|
-
- `AgentResult.metadata` accumulates root-call usage. `_make_sub_query`
|
|
60
|
-
returns text and does not add leaf or follow-up usage to that accumulator.
|
|
61
|
-
Measure every backend request independently for whole-task accounting.
|
|
62
|
-
- Root turns and per-call output tokens have limits, but these methods do not
|
|
63
|
-
impose one shared subcall/token/deadline budget. A single REPL program can
|
|
64
|
-
request many leaves. Enforce shared admission limits in a request broker.
|
|
65
|
-
- The REPL checks prohibited substrings and then invokes in-process Python
|
|
66
|
-
`exec`. Output truncation happens after execution. These mechanisms are not
|
|
67
|
-
process isolation or a hard execution/memory deadline. The project has
|
|
68
|
-
separate sandbox facilities; a benchmark must explicitly select isolation
|
|
69
|
-
and keep authoritative evaluation data outside the candidate environment.
|
|
70
|
-
- `_resolve_context` reads `AgentContext.metadata["context"]` or memory
|
|
71
|
-
results, while the normal user input still enters the root prompt.
|
|
72
|
-
Put the large corpus in the external-context field, not the user question.
|
|
73
|
-
Existing conversation messages are also retained by
|
|
74
|
-
[`BaseAgent._build_messages`][base-agent].
|
|
75
|
-
|
|
76
|
-
The appropriate comparison remains retrieval versus an external-context
|
|
77
|
-
REPL without subcalls versus bounded depth-1 RLM, on dense document
|
|
78
|
-
aggregation. Small lookup tasks establish connectivity but give weak
|
|
79
|
-
evidence about RLM's value. On a serial Mac GPU, extra model calls can erase
|
|
80
|
-
the benefit of smaller contexts; measure complete tasks.
|
|
81
|
-
|
|
82
|
-
## Self-improvement is several separate implementations
|
|
83
|
-
|
|
84
|
-
| Mechanism | What the inspected source establishes |
|
|
85
|
-
|---|---|
|
|
86
|
-
| Learned routing | [`LearnedRouterPolicy`][routing] maps coarse query classes to models using trace outcomes and feedback. This is distinct from training language-model weights. |
|
|
87
|
-
| Configuration search | [`SpecSearchOrchestrator`][search] connects diagnosis, typed edit planning, execution, evaluation and recording. Runtime dependencies must be supplied. |
|
|
88
|
-
| Candidate gate | [`BenchmarkGate`][gate] compares overall score and per-cluster regressions using a versioned benchmark and repeatable subsample seed. |
|
|
89
|
-
| Weight training | [`SFTTrainer`][sft] delegates LoRA training to a separate trainer. [`GRPOTrainer`][grpo] contains a Torch/Transformers training loop with policy and reference models. Neither was executed in this review. |
|
|
90
|
-
| Weight updates inside spec search | [`LoraStubApplier`][lora-stub] rejects `LORA_FINETUNE` and raises `NotImplementedError` if applied. Separate trainers do not establish an integrated spec-search training cycle. |
|
|
91
|
-
|
|
92
|
-
The [spec-search guide][search-guide] describes a teacher diagnosing local
|
|
93
|
-
student failures and proposing changes. Its quickstart uses fake
|
|
94
|
-
teacher/student/judge components. It illustrates the orchestration, not
|
|
95
|
-
measured improvement by a deployed learning system.
|
|
96
|
-
|
|
97
|
-
There is documentation drift worth preserving in a reproduction. The guide's
|
|
98
|
-
gate predicate requires improvement on the targeted failure cluster. The
|
|
99
|
-
inspected `BenchmarkGate.evaluate` instead requires improvement in overall
|
|
100
|
-
score and rejects excessive per-cluster regressions; it receives no target
|
|
101
|
-
cluster argument. Its constructor defaults to a 0.05 regression allowance,
|
|
102
|
-
while the guide's configuration uses 0.01. `from_config` forwards the supplied
|
|
103
|
-
value. Pin the actual configuration and predicate instead of assuming that
|
|
104
|
-
the prose, constructor defaults, and configured execution are interchangeable.
|
|
105
|
-
|
|
106
|
-
The [learning architecture page][learning] also describes older router names
|
|
107
|
-
and a GRPO router stub. Current learned routing is consolidated in
|
|
108
|
-
`learning/routing/learned_router.py`, while the separate intelligence GRPO
|
|
109
|
-
trainer has implementation code. A blanket claim that "GRPO is a stub"
|
|
110
|
-
would therefore be misleading.
|
|
111
|
-
|
|
112
|
-
The [paper][paper] is close prior work for the research program: it studies
|
|
113
|
-
typed specifications and teacher-guided edits across several components,
|
|
114
|
-
with local inference after search. Its reported experiments span multiple
|
|
115
|
-
models and hardware classes, including Macs and larger workstations.
|
|
116
|
-
They do not establish the same gains on our M1 Max or M4 Pro, or prove that
|
|
117
|
-
the checked-out code reproduces every reported experiment. Its acknowledged
|
|
118
|
-
limitations include judge bias, statistical precision and search convergence.
|
|
119
|
-
We should reproduce a bounded comparison before adopting performance claims.
|
|
120
|
-
|
|
121
|
-
## Integration path
|
|
122
|
-
|
|
123
|
-
The current [engine registry][engines] already registers `MLXEngine` through
|
|
124
|
-
the shared [`_OpenAICompatibleEngine`][http-engine]. That class accepts a
|
|
125
|
-
host URL, probes `/v1/models`, and calls `/v1/chat/completions`. The generic
|
|
126
|
-
`OpenAICompatEngine` offers the same interface for explicit endpoints.
|
|
127
|
-
This makes using mlx-bun as the inference backend a plausible small
|
|
128
|
-
integration, without importing OpenJarvis into the inference engine.
|
|
129
|
-
|
|
130
|
-
For a future smoke test, construct the generic engine with mlx-bun's origin
|
|
131
|
-
URL, without `/v1`, and choose the exact model ID from `list_models()`.
|
|
132
|
-
Check plain completion, tool-call round trips, streaming completion/error
|
|
133
|
-
handling, cancellation, reasoning output, model identity and usage against
|
|
134
|
-
raw HTTP responses. This review did not perform that test.
|
|
135
|
-
|
|
136
|
-
Two adapter behaviors need special attention:
|
|
137
|
-
|
|
138
|
-
- Synchronous generation retries a tool-bearing HTTP 400 without `tools`
|
|
139
|
-
and `tool_choice`. A successful retry does not establish tool compatibility.
|
|
140
|
-
- It takes the maximum of reported prompt tokens and an estimate, and labels
|
|
141
|
-
reported prompt tokens as `prompt_tokens_evaluated`. Those fields cannot
|
|
142
|
-
establish actual prefill work or cache reuse. Retain raw server measurements.
|
|
143
|
-
|
|
144
|
-
Use HTTP for the first comparison. A direct TypeScript implementation can
|
|
145
|
-
later use mlx-bun's library if measured requirements justify it.
|
|
146
|
-
|
|
147
|
-
## Recommended direction
|
|
148
|
-
|
|
149
|
-
Keep mlx-bun responsible for inference correctness, resource management,
|
|
150
|
-
training execution and adapter lifecycle. Keep experimental task loops and
|
|
151
|
-
the process that changes them in `harness_research` initially. Use the same
|
|
152
|
-
backend for Pi, a controlled loop and OpenJarvis comparisons.
|
|
153
|
-
|
|
154
|
-
The next useful steps extend the existing research program:
|
|
155
|
-
|
|
156
|
-
1. Complete the already proposed repeated-failure-feedback experiment in
|
|
157
|
-
`harness_research/NEXT_EXPERIMENT.md`. OpenJarvis strengthens the case for
|
|
158
|
-
including both a prompt-only comparison and executable loop changes.
|
|
159
|
-
2. Define an immutable run identity covering model artifact, quantization,
|
|
160
|
-
adapter, agent code, prompts, tools, memory snapshot, runtime settings,
|
|
161
|
-
task revision and evaluation revision. Record all root/leaf/teacher calls.
|
|
162
|
-
3. Add an OpenJarvis baseline through HTTP after the compatibility checks.
|
|
163
|
-
Preserve its full configuration and raw request trace.
|
|
164
|
-
4. Run the separate RLM ablation with one shared request budget, isolated
|
|
165
|
-
execution and serial GPU admission. Include forced finalization in costs.
|
|
166
|
-
5. Introduce typed candidate edits, frozen evaluation and rollback. Start with
|
|
167
|
-
bounded prompt/tool/loop changes before searching many dimensions together.
|
|
168
|
-
6. Connect verified examples to existing LoRA training only after the fixed
|
|
169
|
-
task loop is measurable. Compare frozen, controller-only, adapter-only and
|
|
170
|
-
combined adaptation, including retention and collection/training/eval cost.
|
|
171
|
-
|
|
172
|
-
Personal memory, task scratch state, training data and learned adapters need
|
|
173
|
-
separate identities. A useful memory article is not automatically a training
|
|
174
|
-
example, and a plausible answer is not automatically a verified success.
|
|
175
|
-
Background synthesis, judging and training all consume the same Mac budget.
|
|
176
|
-
The existing serialized scheduling proposal remains appropriate for the first
|
|
177
|
-
study; this research supplies no evidence for concurrent training and serving.
|
|
178
|
-
|
|
179
|
-
The opportunity is a local system that improves verified task outcomes while
|
|
180
|
-
remaining usable on a personal Mac. OpenJarvis provides a close comparison
|
|
181
|
-
and concrete implementation ideas. Our differentiator must be demonstrated
|
|
182
|
-
through that complete operating loop, including its costs and failures.
|
|
183
|
-
|
|
184
|
-
[architecture]: https://github.com/open-jarvis/OpenJarvis/blob/e25e77d36ee487aa456978e7a7f19a7f6d712260/docs/architecture/overview.md
|
|
185
|
-
[learning]: https://open-jarvis.github.io/OpenJarvis/architecture/learning/
|
|
186
|
-
[paper]: https://arxiv.org/html/2605.17172v1
|
|
187
|
-
[rlm]: https://github.com/open-jarvis/OpenJarvis/blob/e25e77d36ee487aa456978e7a7f19a7f6d712260/src/openjarvis/agents/rlm.py
|
|
188
|
-
[repl]: https://github.com/open-jarvis/OpenJarvis/blob/e25e77d36ee487aa456978e7a7f19a7f6d712260/src/openjarvis/agents/rlm_repl.py
|
|
189
|
-
[base-agent]: https://github.com/open-jarvis/OpenJarvis/blob/e25e77d36ee487aa456978e7a7f19a7f6d712260/src/openjarvis/agents/_stubs.py
|
|
190
|
-
[routing]: https://github.com/open-jarvis/OpenJarvis/blob/e25e77d36ee487aa456978e7a7f19a7f6d712260/src/openjarvis/learning/routing/learned_router.py
|
|
191
|
-
[search]: https://github.com/open-jarvis/OpenJarvis/blob/e25e77d36ee487aa456978e7a7f19a7f6d712260/src/openjarvis/learning/spec_search/orchestrator.py
|
|
192
|
-
[gate]: https://github.com/open-jarvis/OpenJarvis/blob/e25e77d36ee487aa456978e7a7f19a7f6d712260/src/openjarvis/learning/spec_search/gate/benchmark_gate.py
|
|
193
|
-
[sft]: https://github.com/open-jarvis/OpenJarvis/blob/e25e77d36ee487aa456978e7a7f19a7f6d712260/src/openjarvis/learning/intelligence/sft_trainer.py
|
|
194
|
-
[grpo]: https://github.com/open-jarvis/OpenJarvis/blob/e25e77d36ee487aa456978e7a7f19a7f6d712260/src/openjarvis/learning/intelligence/grpo_trainer.py
|
|
195
|
-
[lora-stub]: https://github.com/open-jarvis/OpenJarvis/blob/e25e77d36ee487aa456978e7a7f19a7f6d712260/src/openjarvis/learning/spec_search/execute/appliers/lora_stub.py
|
|
196
|
-
[search-guide]: https://github.com/open-jarvis/OpenJarvis/blob/e25e77d36ee487aa456978e7a7f19a7f6d712260/docs/user-guide/llm-guided-spec-search.md
|
|
197
|
-
[engines]: https://github.com/open-jarvis/OpenJarvis/blob/e25e77d36ee487aa456978e7a7f19a7f6d712260/src/openjarvis/engine/openai_compat_engines.py
|
|
198
|
-
[http-engine]: https://github.com/open-jarvis/OpenJarvis/blob/e25e77d36ee487aa456978e7a7f19a7f6d712260/src/openjarvis/engine/_openai_compat.py
|
|
@@ -1,249 +0,0 @@
|
|
|
1
|
-
# OpenWiki — evaluation & fit analysis
|
|
2
|
-
|
|
3
|
-
**Date:** 2026-07-06
|
|
4
|
-
**Author:** investigation (agent), worktree `investigate/openwiki-memory`
|
|
5
|
-
**Subject:** [langchain-ai/openwiki](https://github.com/langchain-ai/openwiki) — "a CLI that writes and
|
|
6
|
-
maintains agent documentation for your codebase, built specifically for agents to consume."
|
|
7
|
-
**Question asked:** how (if at all) does OpenWiki fit inside our memory system ("The Dreaming"), and
|
|
8
|
-
is it a good fit anywhere else in mlx-bun?
|
|
9
|
-
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
## TL;DR — four verdicts
|
|
13
|
-
|
|
14
|
-
| # | Question | Verdict | One-liner |
|
|
15
|
-
|---|----------|---------|-----------|
|
|
16
|
-
| 1 | Adopt OpenWiki **as the memory engine**? | ❌ **No** | Architecturally the mirror-image of The Dreaming; would throw away the hard-won decomposition + gate design and drag LangChain into a Bun/MLX-only repo. |
|
|
17
|
-
| 2 | Borrow OpenWiki **patterns** into memory? | 🟡 **Marginal** | We already independently arrived at its good ideas, usually in stronger form. One minor borrow (the `_plan.md` durable-plan artifact). |
|
|
18
|
-
| 3 | Run OpenWiki **on mlx-bun the repo** (its own agent docs)? | ✅ **Yes, good fit** | It targets exactly our named failure mode — reference-doc drift — and runs as an external dev tool, not a vendored dep. |
|
|
19
|
-
| 4 | Point OpenWiki **at our own OpenAI-compatible server**? | ✅ **Yes — the strategic find** | DeepAgents-over-local-mlx-bun is an on-brand, zero-cloud dogfood showcase *and* a hard agentic-tool-use conformance test for the server. |
|
|
20
|
-
|
|
21
|
-
The headline: **OpenWiki is not a fit *inside* the memory pipeline, but it is a fit *around* mlx-bun** —
|
|
22
|
-
as a doc tool for our own repo and, more interestingly, as a real LangChain agent to run *against* our
|
|
23
|
-
server to prove the "drop-in, local, agentic" thesis.
|
|
24
|
-
|
|
25
|
-
---
|
|
26
|
-
|
|
27
|
-
## 1. What OpenWiki is (full rundown)
|
|
28
|
-
|
|
29
|
-
A CLI (`npm install -g openwiki`) from LangChain, released **v0.0.1 on 2026-07-05** (i.e. one day old at
|
|
30
|
-
time of writing; ~7.7k stars, but 42 open PRs / 48 issues — treat as brand-new and unstable). MIT
|
|
31
|
-
licensed. TypeScript/JavaScript.
|
|
32
|
-
|
|
33
|
-
**Purpose.** Generate and maintain a repo's documentation *for coding agents*, not for humans. The
|
|
34
|
-
generated wiki is "structured markdown optimized for LLM context — headings, cross-references, and
|
|
35
|
-
summaries designed for an agent to quickly find relevant context." Motivation from the launch post:
|
|
36
|
-
*"Agents write better code when they understand the repo they're working in,"* and stuffing the whole
|
|
37
|
-
repo into one `CLAUDE.md` wastes context in large repos.
|
|
38
|
-
|
|
39
|
-
**Surface.**
|
|
40
|
-
```
|
|
41
|
-
openwiki --init # pick provider + API key, then generate the wiki
|
|
42
|
-
openwiki # interactive
|
|
43
|
-
openwiki "<request>" # interactive, seeded
|
|
44
|
-
openwiki -p "<request>" # one-shot, non-interactive
|
|
45
|
-
openwiki --update # refresh from repo changes since last run
|
|
46
|
-
```
|
|
47
|
-
- Writes an `openwiki/` directory of markdown pages.
|
|
48
|
-
- Patches `AGENTS.md` / `CLAUDE.md` with a pointer to the wiki **and a "when to use it" note**.
|
|
49
|
-
- Ships a **GitHub Action** and **GitLab CI** template that open a PR/MR when docs need updating.
|
|
50
|
-
- Config in `~/.openwiki/.env`: provider, API key, model id, optional LangSmith tracing.
|
|
51
|
-
- Providers: OpenRouter (default, an open model), Fireworks, Baseten, OpenAI, Anthropic, and
|
|
52
|
-
**OpenAI-compatible** via `OPENAI_COMPATIBLE_BASE_URL` (also `ANTHROPIC_BASE_URL`). ← load-bearing
|
|
53
|
-
for verdict 4.
|
|
54
|
-
|
|
55
|
-
## 2. How OpenWiki works (architecture)
|
|
56
|
-
|
|
57
|
-
Built on LangChain's **DeepAgents** + **LangGraph**. The construction is deliberately thin:
|
|
58
|
-
|
|
59
|
-
```ts
|
|
60
|
-
const agent = createDeepAgent({
|
|
61
|
-
model,
|
|
62
|
-
tools: [], // NO custom tools
|
|
63
|
-
checkpointer, // thread memory
|
|
64
|
-
backend: new LocalShellBackend({ /* vfs → repo root */ }),
|
|
65
|
-
systemPrompt: createSystemPrompt(command),
|
|
66
|
-
});
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
- **No bespoke tools.** It hands a general coding agent a `LocalShellBackend`: a virtual filesystem
|
|
70
|
-
mapped to the repo root exposing `ls / read_file / write_file / edit_file / glob / grep` plus a
|
|
71
|
-
sandboxed `execute` (120 s timeout, 100 KB output cap). All capability comes from the shell backend.
|
|
72
|
-
- **All the IP is in the system prompt + the loop.** The prompt encodes:
|
|
73
|
-
- **Discovery → plan.** Before writing, the agent writes a temporary `openwiki/_plan.md` listing
|
|
74
|
-
*intended pages, source evidence per page, and remaining questions.*
|
|
75
|
-
- **Granularity rules.** ≤~10 primary source files → a `quickstart.md` + at most 1–2 supporting
|
|
76
|
-
pages. *"Do not create a directory unless it represents a real documentation area."*
|
|
77
|
-
- **One canonical page per concept.** *"Keep each concept in one canonical page… keep the detailed
|
|
78
|
-
explanation in the canonical page and make other mentions brief or link-only."* Inline source-file
|
|
79
|
-
references so a reader can verify.
|
|
80
|
-
- **Surgical, diff-budgeted updates.** On `--update` it *"checks which commits landed since the last
|
|
81
|
-
run, uses git diffs to understand what changed, then updates the wiki."* Soft budget: *"if fewer
|
|
82
|
-
than about 5 source files changed, update at most 1–2 wiki pages… Updates may be a no-op."*
|
|
83
|
-
- **Change detection** by content snapshot (`createOpenWikiContentSnapshot`); persists run metadata
|
|
84
|
-
only when the wiki actually changed.
|
|
85
|
-
- Streaming LangGraph invocation with a checkpointer keyed by `thread_id` (interactive Q&A over the
|
|
86
|
-
wiki + codebase reuses the thread).
|
|
87
|
-
|
|
88
|
-
**Design bet:** a *strong single model* + a *good prompt* + a *free-roaming agent* with raw shell
|
|
89
|
-
tools. Trust the model to hold the repo in its head and write files directly.
|
|
90
|
-
|
|
91
|
-
## 3. The Dreaming, in one screen (for contrast)
|
|
92
|
-
|
|
93
|
-
Our memory system ("The Dreaming", `src/memory/*`, ~12 k LoC, running end-to-end on real data):
|
|
94
|
-
|
|
95
|
-
- **Corpus:** the user's conversation history (pointer-DB of `messages` → `chunks` as
|
|
96
|
-
`(conv,start,end)` ranges), not a code tree.
|
|
97
|
-
- **Engine:** ONE local model (`gemma-4-e4b-it-OptiQ-4bit`) + per-stage LoRAs, loaded once. No cloud.
|
|
98
|
-
- **Pipeline:** `SEGMENT → EXTRACT → ROUTE → SECTION-ROUTE → PATCH → NORMALIZE → LINK → WIKIFY →
|
|
99
|
-
RECONCILE → COMMIT`, every stage the *smallest atomic task* (binary yes/no preferred).
|
|
100
|
-
- **Output:** entity-centric wiki — articles are *things*, with infoboxes, wikilinks, categories.
|
|
101
|
-
- **Invariants enforced by code, not the model:** *"LoRAs propose, gates dispose"* — ≥70% prose floor,
|
|
102
|
-
every citation survives, weak output → NO-OP, deterministic footnote bijection + wikilink
|
|
103
|
-
canonicalization, one git commit per run.
|
|
104
|
-
- **Single writer:** *"Chat agents read memory; `mlx-bun memory synthesize` is the only writer."* Reads
|
|
105
|
-
go through 7 read-only `memory_*` tools + a bundled skill.
|
|
106
|
-
- **Self-healing:** chronological walk; latest statement wins; AI errors silently overwritten.
|
|
107
|
-
|
|
108
|
-
**Design bet:** the exact opposite of OpenWiki — a *weak local model* + *heavy decomposition* +
|
|
109
|
-
*deterministic scaffolding*. Assume the model **cannot** hold an article in its head or be trusted to
|
|
110
|
-
write files freely, and engineer around that.
|
|
111
|
-
|
|
112
|
-
## 4. Head-to-head: same shape, opposite philosophy
|
|
113
|
-
|
|
114
|
-
Both are *"corpus → agentic synthesis → LLM-navigable markdown wiki → agent consumes it, kept fresh
|
|
115
|
-
incrementally."* That surface similarity is why the question is worth asking. But under the hood they
|
|
116
|
-
are mirror images:
|
|
117
|
-
|
|
118
|
-
| Axis | OpenWiki | The Dreaming |
|
|
119
|
-
|------|----------|--------------|
|
|
120
|
-
| Corpus | Code repository | Personal conversation history |
|
|
121
|
-
| Model | Strong cloud model (default OpenRouter) | Weak local e4b + LoRAs, no cloud |
|
|
122
|
-
| Capacity model | Big context — model holds the repo | *Capacity by decomposition* — can't hold an article |
|
|
123
|
-
| Harness | Thin (shell tools + one prompt) | Thick (10-stage DAG, ledgers, gates) |
|
|
124
|
-
| Writes | Agent writes files freely | Single writer, gated, git-committed |
|
|
125
|
-
| Dedup | Prompt rule ("one canonical page") | Deterministic entity name-match routing |
|
|
126
|
-
| Update trigger | `git diff` since last commit | Chronological chunk cursor / new sessions |
|
|
127
|
-
| Self-healing | Re-edit page on diff | Chronological latest-value reconcile |
|
|
128
|
-
| Determinism | Trusts the model | Code enforces invariants |
|
|
129
|
-
| Deps | LangChain + DeepAgents + LangGraph | Bun-native, MLX-only, minimal |
|
|
130
|
-
|
|
131
|
-
Pithily: **OpenWiki = smart model, dumb harness. The Dreaming = dumb model, smart harness.** They solve
|
|
132
|
-
the same *shape* of problem from opposite ends of the model-capability axis.
|
|
133
|
-
|
|
134
|
-
## 5. The four fit verdicts, argued
|
|
135
|
-
|
|
136
|
-
### Verdict 1 — OpenWiki as the memory engine: ❌ No
|
|
137
|
-
|
|
138
|
-
- **Architectural inversion.** The Dreaming's entire thesis is that a local 4-bit e4b *cannot* do
|
|
139
|
-
OpenWiki's free-roaming, hold-it-in-context, write-files-directly loop — which is *why* the
|
|
140
|
-
decomposition + gate architecture exists. Adopting OpenWiki means discarding the exact design that
|
|
141
|
-
makes local synthesis work.
|
|
142
|
-
- **Contract violation.** OpenWiki's agent writes files freely; The Dreaming has a single gated writer
|
|
143
|
-
with a git-commit-per-run audit trail and NO-OP-on-weak-output. These are incompatible write models.
|
|
144
|
-
- **Corpus mismatch.** OpenWiki reads a code tree via shell/grep; The Dreaming reads a pointer-DB of
|
|
145
|
-
conversation chunks with chronological self-healing. Different input, different invariants.
|
|
146
|
-
- **Identity/deps.** Pulling LangChain + LangGraph into a repo whose stated identity is Bun-native,
|
|
147
|
-
MLX-only, minimal-dep, private (see the `mlx-bun scope & framing` and `drop-in replacement` notes)
|
|
148
|
-
is a non-starter as a runtime dependency.
|
|
149
|
-
- **Maturity.** v0.0.1, one day old. Nothing load-bearing should sit on it yet.
|
|
150
|
-
|
|
151
|
-
### Verdict 2 — Borrow OpenWiki's patterns: 🟡 Marginal
|
|
152
|
-
|
|
153
|
-
We have *convergently* arrived at most of OpenWiki's good ideas, usually stronger:
|
|
154
|
-
|
|
155
|
-
| OpenWiki idea | Our equivalent | Who's ahead |
|
|
156
|
-
|---------------|----------------|-------------|
|
|
157
|
-
| `_plan.md` before writing | CREATE flow: sub-cluster → outline → draft | ~tie; their durable, reviewable *plan artifact* is a nice touch |
|
|
158
|
-
| Soft diff budget, updates may be no-op | Idempotency ledger + conservative gate + NO-OP | **us** (ledger is stronger than a prompt heuristic) |
|
|
159
|
-
| One canonical page (prompt rule) | Deterministic entity name-match routing | **us** (mechanism > instruction) |
|
|
160
|
-
| Patch `AGENTS.md`/`CLAUDE.md` with pointer | 7 read-only `memory_*` tools + bundled skill | **us** (tools > prose pointer) |
|
|
161
|
-
| git-diff-driven refresh | chronological chunk cursor | different corpus; both valid |
|
|
162
|
-
|
|
163
|
-
**Only genuinely fresh borrow:** emit a durable, auditable **plan artifact** (their `_plan.md`) in the
|
|
164
|
-
CREATE flow, so a synthesis run's *intended* article/section changes are reviewable in the git diff
|
|
165
|
-
alongside the result. Low effort, small upside. Not worth a dedicated work item; fold in opportunistically.
|
|
166
|
-
|
|
167
|
-
### Verdict 3 — Run OpenWiki on mlx-bun the repo: ✅ Good fit
|
|
168
|
-
|
|
169
|
-
This is where OpenWiki was literally built to help, and mlx-bun is close to a canonical target:
|
|
170
|
-
|
|
171
|
-
- **It attacks our named failure mode.** `CLAUDE.md` calls reference-doc drift *"the observed failure
|
|
172
|
-
mode"* (the 2026-07-03 sweep found undocumented flags, dead version pins). The doc-map even carries a
|
|
173
|
-
manual chore: *"keep these lists in sync with `ls docs/…`."* OpenWiki's diff-driven refresh + CI-PR is
|
|
174
|
-
exactly this job.
|
|
175
|
-
- **Additive, not a replacement.** It would generate a *derived, agent-facing structural index of the
|
|
176
|
-
code* — it does **not** replace the curated, opinionated human docs (`PLAN.md` is "the engineering
|
|
177
|
-
contract"; `STATUS.md`, design docs). Think: an auto-maintained `openwiki/` map of `src/` that points
|
|
178
|
-
back into the hand-written design docs.
|
|
179
|
-
- **Nice synergy with the vault.** The memory vault already symlinks mlx-bun docs into
|
|
180
|
-
`~/.mlx-bun/wiki/Reference/` (read-only). An auto-maintained repo wiki would flow straight into that
|
|
181
|
-
Reference surface — the personal vault gets a fresher code map for free.
|
|
182
|
-
- **Runs as an external dev tool**, a global npm CLI in CI — *not* a vendored dependency. No LangChain
|
|
183
|
-
contamination of the shipped codebase. This sidesteps the Verdict-1 dependency objection entirely.
|
|
184
|
-
|
|
185
|
-
**Caveat:** the one tension is "cloud API on a local/private repo." Verdict 4 dissolves it.
|
|
186
|
-
|
|
187
|
-
### Verdict 4 — Point OpenWiki at our own OpenAI-compatible server: ✅ The strategic find
|
|
188
|
-
|
|
189
|
-
OpenWiki speaks **OpenAI-compatible base URL**; mlx-bun *is* an OpenAI-compatible server (the whole
|
|
190
|
-
"drop-in replacement for mlx-lm / serving speed is the user metric" thesis). Compose them:
|
|
191
|
-
|
|
192
|
-
```
|
|
193
|
-
OPENAI_COMPATIBLE_BASE_URL=http://localhost:<mlx-bun-port> \
|
|
194
|
-
OPENAI_COMPATIBLE_API_KEY=… openwiki --init # generate mlx-bun's own wiki, 100% local
|
|
195
|
-
```
|
|
196
|
-
|
|
197
|
-
Why this is the most interesting outcome of the investigation:
|
|
198
|
-
|
|
199
|
-
1. **On-brand, zero-cloud.** Resolves the Verdict-3 tension: a real LangChain agent documents our repo
|
|
200
|
-
with *no* cloud call, on a Gemma running in mlx-bun. Directly demonstrates the `local-to-you` and
|
|
201
|
-
`install-to-chat` theses on an external, third-party agent.
|
|
202
|
-
2. **A hard conformance test.** DeepAgents drives many tool calls + long contexts + streaming. Chat
|
|
203
|
-
parity is easy; *agentic tool-use conformance* is the bar that actually matters for "agents need the
|
|
204
|
-
server" (`serving speed is the user metric`). If OpenWiki runs unmodified end-to-end against our
|
|
205
|
-
server, that's a strong, concrete proof point for the README/website. If it *doesn't*, we've found a
|
|
206
|
-
real function-calling / prefill / KV gap under agentic load — also valuable.
|
|
207
|
-
3. **Coverage/stress.** It exercises the server the way a coding agent does (glob/grep/read/write loops,
|
|
208
|
-
big prefills), complementing the batch/spec-decode perf work with a realistic agentic workload.
|
|
209
|
-
|
|
210
|
-
**Caveat to measure, not assume:** DeepAgents presumes a *capable* model — the very assumption The
|
|
211
|
-
Dreaming rejects for local e4b. A 4-bit e4b may drive the free-roaming loop poorly and produce a
|
|
212
|
-
mediocre wiki. Mitigations: point it at a larger local model (the 12B parity target) via the same
|
|
213
|
-
server, and/or judge output quality explicitly. Either way the *conformance* result (does the loop run?)
|
|
214
|
-
is decoupled from the *quality* result (is the wiki good?), and both are worth knowing.
|
|
215
|
-
|
|
216
|
-
## 6. Recommendation — what to actually do
|
|
217
|
-
|
|
218
|
-
1. **Do not** put OpenWiki inside the memory pipeline. The Dreaming is more mature for its constraints
|
|
219
|
-
and philosophically opposite. (Verdicts 1 & 2.)
|
|
220
|
-
2. **Spike Verdict 4 first — it's the highest-information, lowest-cost move.** Point OpenWiki at a
|
|
221
|
-
running mlx-bun server (Josh runs the server; no session starts it) and try `openwiki --init` on a
|
|
222
|
-
small repo, then on mlx-bun itself. Outcome is binary-useful: either a showcase demo of
|
|
223
|
-
"third-party LangChain agent runs locally on mlx-bun," or a concrete agentic-tool-use bug list for
|
|
224
|
-
the server. Bench it under the standard preflight if any perf number gets quoted
|
|
225
|
-
(`dirty-machine-numbers-are-garbage`).
|
|
226
|
-
3. **If the spike is clean,** consider OpenWiki as an *external CI doc tool* for the repo (Verdict 3):
|
|
227
|
-
an auto-maintained `openwiki/` structural map that feeds the vault's `Reference/` surface. Keep it
|
|
228
|
-
clearly subordinate to the hand-written `PLAN.md`/design docs.
|
|
229
|
-
4. **Opportunistically** add a durable `_plan.md`-style plan artifact to the memory CREATE flow for
|
|
230
|
-
reviewability (Verdict 2). Not a standalone work item.
|
|
231
|
-
|
|
232
|
-
## 7. Risks & unknowns
|
|
233
|
-
|
|
234
|
-
- OpenWiki is **v0.0.1, ~1 day old**, 42 open PRs / 48 issues — API and behavior will churn. Pin a
|
|
235
|
-
commit if used in CI.
|
|
236
|
-
- **Local-model quality** driving DeepAgents is unproven (contradicts our own capacity-by-decomposition
|
|
237
|
-
finding). Measure; don't assume the wiki is good just because the loop runs.
|
|
238
|
-
- **DeepAgents ⇄ our server function-calling compatibility** is the actual thing under test in Verdict
|
|
239
|
-
4 — tool-call formatting, streaming, and long-prefill behavior are where it could break.
|
|
240
|
-
- Do **not** treat any OpenWiki-generated wiki as a source of truth over the curated docs; it's a
|
|
241
|
-
derived index.
|
|
242
|
-
|
|
243
|
-
## Sources
|
|
244
|
-
|
|
245
|
-
- [langchain-ai/openwiki](https://github.com/langchain-ai/openwiki) — repo, README, `src/agent/*`
|
|
246
|
-
- [LangChain blog — Introducing OpenWiki](https://www.langchain.com/blog/introducing-openwiki-an-open-source-agent-for-repo-documentation)
|
|
247
|
-
- Internal: `docs/design/memory-system.md`, `memory-synthesis.md`, `memory-inference-path.md`,
|
|
248
|
-
`write-pipeline-entity.md`, `the-dreaming-master-plan.md`, `the-dreaming-handoff.md`,
|
|
249
|
-
`docs/reference/memory.md`; `src/memory/*` (~12 k LoC).
|