@pleri/olam-cli 0.1.201 → 0.1.205
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 +102 -169
- package/dist/agent-stream/agent-sdk-to-chunks.js +1 -1
- package/dist/agent-stream/driver-runner.js +73 -7
- package/dist/agent-stream/host-driver-launch.js +14 -1
- package/dist/agent-stream/prototype-gen-launch.js +113 -0
- package/dist/agent-stream/question-broker-bridge.js +335 -0
- package/dist/agent-stream/sdk-env-merge.demo.js +35 -0
- package/dist/agent-stream/sdk-env-merge.js +98 -0
- package/dist/image-digests.json +8 -8
- package/dist/index.js +9533 -6258
- package/dist/index.js.map +1 -1
- package/dist/mcp-server.js +24721 -12934
- package/hermes-bundle/version.json +1 -1
- package/hooks/__tests__/_loader.py +26 -0
- package/hooks/__tests__/prompts.py +63 -0
- package/hooks/__tests__/test_classify_bench.py +94 -0
- package/hooks/__tests__/test_classify_pins.py +78 -0
- package/hooks/model-router.py +17 -4
- package/host-cp/k8s/manifests/50-deployment.yaml +1 -1
- package/host-cp/k8s/manifests/auth-service/50-deployment.yaml +1 -1
- package/host-cp/k8s/manifests/kg-service/50-deployment.yaml +1 -1
- package/host-cp/k8s/manifests/mcp-auth-service/50-deployment.yaml +1 -1
- package/host-cp/k8s/manifests/memory-service/50-deployment.yaml +1 -1
- package/host-cp/src/op-side-longpoll.mjs +212 -0
- package/host-cp/src/plan-chat-proxy-headers.mjs +53 -0
- package/host-cp/src/plan-chat-service.mjs +100 -0
- package/host-cp/src/plan-orchestrator.mjs +100 -6
- package/host-cp/src/server.mjs +607 -45
- package/memory-hooks/agentmemory-classify-queue.mjs +363 -0
- package/memory-hooks/agentmemory-recall-trigger.mjs +233 -0
- package/memory-hooks/agentmemory-reflect-cite.mjs +332 -0
- package/memory-hooks/agentmemory-session-recall.js +332 -0
- package/memory-hooks/recall-log.mjs +185 -0
- package/package.json +9 -4
- package/dist/ask/checkout.d.ts +0 -19
- package/dist/ask/checkout.d.ts.map +0 -1
- package/dist/ask/checkout.js +0 -40
- package/dist/ask/checkout.js.map +0 -1
- package/dist/ask/knowledge-pack-builder.d.ts +0 -72
- package/dist/ask/knowledge-pack-builder.d.ts.map +0 -1
- package/dist/ask/knowledge-pack-builder.js +0 -96
- package/dist/ask/knowledge-pack-builder.js.map +0 -1
- package/dist/ask/knowledge-pack.generated.d.ts +0 -8
- package/dist/ask/knowledge-pack.generated.d.ts.map +0 -1
- package/dist/ask/knowledge-pack.generated.js +0 -2362
- package/dist/ask/knowledge-pack.generated.js.map +0 -1
- package/dist/ask/one-shot.d.ts +0 -21
- package/dist/ask/one-shot.d.ts.map +0 -1
- package/dist/ask/one-shot.js +0 -50
- package/dist/ask/one-shot.js.map +0 -1
- package/dist/ask/repl.d.ts +0 -30
- package/dist/ask/repl.d.ts.map +0 -1
- package/dist/ask/repl.js +0 -109
- package/dist/ask/repl.js.map +0 -1
- package/dist/ask/sdk-client.d.ts +0 -87
- package/dist/ask/sdk-client.d.ts.map +0 -1
- package/dist/ask/sdk-client.js +0 -118
- package/dist/ask/sdk-client.js.map +0 -1
- package/dist/ask/system-prompt.d.ts +0 -30
- package/dist/ask/system-prompt.d.ts.map +0 -1
- package/dist/ask/system-prompt.js +0 -31
- package/dist/ask/system-prompt.js.map +0 -1
- package/dist/cli-version.d.ts +0 -16
- package/dist/cli-version.d.ts.map +0 -1
- package/dist/cli-version.js +0 -39
- package/dist/cli-version.js.map +0 -1
- package/dist/commands/ask.d.ts +0 -27
- package/dist/commands/ask.d.ts.map +0 -1
- package/dist/commands/ask.js +0 -63
- package/dist/commands/ask.js.map +0 -1
- package/dist/commands/auth-list-json.d.ts +0 -87
- package/dist/commands/auth-list-json.d.ts.map +0 -1
- package/dist/commands/auth-list-json.js +0 -71
- package/dist/commands/auth-list-json.js.map +0 -1
- package/dist/commands/auth-migrate.d.ts +0 -212
- package/dist/commands/auth-migrate.d.ts.map +0 -1
- package/dist/commands/auth-migrate.js +0 -465
- package/dist/commands/auth-migrate.js.map +0 -1
- package/dist/commands/auth-status.d.ts +0 -51
- package/dist/commands/auth-status.d.ts.map +0 -1
- package/dist/commands/auth-status.js +0 -250
- package/dist/commands/auth-status.js.map +0 -1
- package/dist/commands/auth-upgrade.d.ts +0 -88
- package/dist/commands/auth-upgrade.d.ts.map +0 -1
- package/dist/commands/auth-upgrade.js +0 -431
- package/dist/commands/auth-upgrade.js.map +0 -1
- package/dist/commands/auth.d.ts +0 -31
- package/dist/commands/auth.d.ts.map +0 -1
- package/dist/commands/auth.js +0 -784
- package/dist/commands/auth.js.map +0 -1
- package/dist/commands/begin.d.ts +0 -27
- package/dist/commands/begin.d.ts.map +0 -1
- package/dist/commands/begin.js +0 -45
- package/dist/commands/begin.js.map +0 -1
- package/dist/commands/bootstrap.d.ts +0 -111
- package/dist/commands/bootstrap.d.ts.map +0 -1
- package/dist/commands/bootstrap.js +0 -485
- package/dist/commands/bootstrap.js.map +0 -1
- package/dist/commands/clean.d.ts +0 -41
- package/dist/commands/clean.d.ts.map +0 -1
- package/dist/commands/clean.js +0 -382
- package/dist/commands/clean.js.map +0 -1
- package/dist/commands/completion.d.ts +0 -30
- package/dist/commands/completion.d.ts.map +0 -1
- package/dist/commands/completion.js +0 -50
- package/dist/commands/completion.js.map +0 -1
- package/dist/commands/config.d.ts +0 -3
- package/dist/commands/config.d.ts.map +0 -1
- package/dist/commands/config.js +0 -146
- package/dist/commands/config.js.map +0 -1
- package/dist/commands/create.d.ts +0 -8
- package/dist/commands/create.d.ts.map +0 -1
- package/dist/commands/create.js +0 -775
- package/dist/commands/create.js.map +0 -1
- package/dist/commands/crystallize.d.ts +0 -18
- package/dist/commands/crystallize.d.ts.map +0 -1
- package/dist/commands/crystallize.js +0 -123
- package/dist/commands/crystallize.js.map +0 -1
- package/dist/commands/destroy.d.ts +0 -59
- package/dist/commands/destroy.d.ts.map +0 -1
- package/dist/commands/destroy.js +0 -148
- package/dist/commands/destroy.js.map +0 -1
- package/dist/commands/diagnose.d.ts +0 -36
- package/dist/commands/diagnose.d.ts.map +0 -1
- package/dist/commands/diagnose.js +0 -177
- package/dist/commands/diagnose.js.map +0 -1
- package/dist/commands/dispatch-resolve.d.ts +0 -54
- package/dist/commands/dispatch-resolve.d.ts.map +0 -1
- package/dist/commands/dispatch-resolve.js +0 -105
- package/dist/commands/dispatch-resolve.js.map +0 -1
- package/dist/commands/dispatch.d.ts +0 -18
- package/dist/commands/dispatch.d.ts.map +0 -1
- package/dist/commands/dispatch.js +0 -159
- package/dist/commands/dispatch.js.map +0 -1
- package/dist/commands/doctor.d.ts +0 -258
- package/dist/commands/doctor.d.ts.map +0 -1
- package/dist/commands/doctor.js +0 -1073
- package/dist/commands/doctor.js.map +0 -1
- package/dist/commands/enter.d.ts +0 -63
- package/dist/commands/enter.d.ts.map +0 -1
- package/dist/commands/enter.js +0 -230
- package/dist/commands/enter.js.map +0 -1
- package/dist/commands/flywheel/check-persona-skeleton.d.ts +0 -35
- package/dist/commands/flywheel/check-persona-skeleton.d.ts.map +0 -1
- package/dist/commands/flywheel/check-persona-skeleton.js +0 -151
- package/dist/commands/flywheel/check-persona-skeleton.js.map +0 -1
- package/dist/commands/flywheel/diversity-check.d.ts +0 -17
- package/dist/commands/flywheel/diversity-check.d.ts.map +0 -1
- package/dist/commands/flywheel/diversity-check.js +0 -64
- package/dist/commands/flywheel/diversity-check.js.map +0 -1
- package/dist/commands/flywheel/emit-breadcrumb.d.ts +0 -20
- package/dist/commands/flywheel/emit-breadcrumb.d.ts.map +0 -1
- package/dist/commands/flywheel/emit-breadcrumb.js +0 -137
- package/dist/commands/flywheel/emit-breadcrumb.js.map +0 -1
- package/dist/commands/flywheel/index.d.ts +0 -27
- package/dist/commands/flywheel/index.d.ts.map +0 -1
- package/dist/commands/flywheel/index.js +0 -54
- package/dist/commands/flywheel/index.js.map +0 -1
- package/dist/commands/flywheel/install-sessionstart-hook.d.ts +0 -64
- package/dist/commands/flywheel/install-sessionstart-hook.d.ts.map +0 -1
- package/dist/commands/flywheel/install-sessionstart-hook.js +0 -197
- package/dist/commands/flywheel/install-sessionstart-hook.js.map +0 -1
- package/dist/commands/flywheel/install-shims.d.ts +0 -41
- package/dist/commands/flywheel/install-shims.d.ts.map +0 -1
- package/dist/commands/flywheel/install-shims.js +0 -126
- package/dist/commands/flywheel/install-shims.js.map +0 -1
- package/dist/commands/flywheel/k10-measure.d.ts +0 -17
- package/dist/commands/flywheel/k10-measure.d.ts.map +0 -1
- package/dist/commands/flywheel/k10-measure.js +0 -63
- package/dist/commands/flywheel/k10-measure.js.map +0 -1
- package/dist/commands/flywheel/k5-score.d.ts +0 -14
- package/dist/commands/flywheel/k5-score.d.ts.map +0 -1
- package/dist/commands/flywheel/k5-score.js +0 -59
- package/dist/commands/flywheel/k5-score.js.map +0 -1
- package/dist/commands/flywheel/k5-validate.d.ts +0 -46
- package/dist/commands/flywheel/k5-validate.d.ts.map +0 -1
- package/dist/commands/flywheel/k5-validate.js +0 -246
- package/dist/commands/flywheel/k5-validate.js.map +0 -1
- package/dist/commands/flywheel/migrate-overlays.d.ts +0 -116
- package/dist/commands/flywheel/migrate-overlays.d.ts.map +0 -1
- package/dist/commands/flywheel/migrate-overlays.js +0 -792
- package/dist/commands/flywheel/migrate-overlays.js.map +0 -1
- package/dist/commands/flywheel/ping.d.ts +0 -21
- package/dist/commands/flywheel/ping.d.ts.map +0 -1
- package/dist/commands/flywheel/ping.js +0 -79
- package/dist/commands/flywheel/ping.js.map +0 -1
- package/dist/commands/flywheel/sanitize-persona-output.d.ts +0 -38
- package/dist/commands/flywheel/sanitize-persona-output.d.ts.map +0 -1
- package/dist/commands/flywheel/sanitize-persona-output.js +0 -102
- package/dist/commands/flywheel/sanitize-persona-output.js.map +0 -1
- package/dist/commands/flywheel/session-start.d.ts +0 -26
- package/dist/commands/flywheel/session-start.d.ts.map +0 -1
- package/dist/commands/flywheel/session-start.js +0 -119
- package/dist/commands/flywheel/session-start.js.map +0 -1
- package/dist/commands/hermes-kg-hook.d.ts +0 -36
- package/dist/commands/hermes-kg-hook.d.ts.map +0 -1
- package/dist/commands/hermes-kg-hook.js +0 -80
- package/dist/commands/hermes-kg-hook.js.map +0 -1
- package/dist/commands/hermes.d.ts +0 -46
- package/dist/commands/hermes.d.ts.map +0 -1
- package/dist/commands/hermes.js +0 -320
- package/dist/commands/hermes.js.map +0 -1
- package/dist/commands/host-cp.d.ts +0 -216
- package/dist/commands/host-cp.d.ts.map +0 -1
- package/dist/commands/host-cp.js +0 -913
- package/dist/commands/host-cp.js.map +0 -1
- package/dist/commands/implode.d.ts +0 -86
- package/dist/commands/implode.d.ts.map +0 -1
- package/dist/commands/implode.js +0 -468
- package/dist/commands/implode.js.map +0 -1
- package/dist/commands/init.d.ts +0 -86
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js +0 -357
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/install.d.ts +0 -22
- package/dist/commands/install.d.ts.map +0 -1
- package/dist/commands/install.js +0 -203
- package/dist/commands/install.js.map +0 -1
- package/dist/commands/keys-list-json.d.ts +0 -55
- package/dist/commands/keys-list-json.d.ts.map +0 -1
- package/dist/commands/keys-list-json.js +0 -54
- package/dist/commands/keys-list-json.js.map +0 -1
- package/dist/commands/keys.d.ts +0 -26
- package/dist/commands/keys.d.ts.map +0 -1
- package/dist/commands/keys.js +0 -157
- package/dist/commands/keys.js.map +0 -1
- package/dist/commands/kg-build.d.ts +0 -80
- package/dist/commands/kg-build.d.ts.map +0 -1
- package/dist/commands/kg-build.js +0 -282
- package/dist/commands/kg-build.js.map +0 -1
- package/dist/commands/kg-classify.d.ts +0 -30
- package/dist/commands/kg-classify.d.ts.map +0 -1
- package/dist/commands/kg-classify.js +0 -88
- package/dist/commands/kg-classify.js.map +0 -1
- package/dist/commands/kg-doctor.d.ts +0 -76
- package/dist/commands/kg-doctor.d.ts.map +0 -1
- package/dist/commands/kg-doctor.js +0 -262
- package/dist/commands/kg-doctor.js.map +0 -1
- package/dist/commands/kg-install-hook.d.ts +0 -20
- package/dist/commands/kg-install-hook.d.ts.map +0 -1
- package/dist/commands/kg-install-hook.js +0 -208
- package/dist/commands/kg-install-hook.js.map +0 -1
- package/dist/commands/kg-mirror.d.ts +0 -72
- package/dist/commands/kg-mirror.d.ts.map +0 -1
- package/dist/commands/kg-mirror.js +0 -397
- package/dist/commands/kg-mirror.js.map +0 -1
- package/dist/commands/kg-savings.d.ts +0 -20
- package/dist/commands/kg-savings.d.ts.map +0 -1
- package/dist/commands/kg-savings.js +0 -77
- package/dist/commands/kg-savings.js.map +0 -1
- package/dist/commands/kg-service-container.d.ts +0 -68
- package/dist/commands/kg-service-container.d.ts.map +0 -1
- package/dist/commands/kg-service-container.js +0 -191
- package/dist/commands/kg-service-container.js.map +0 -1
- package/dist/commands/kg-status.d.ts +0 -59
- package/dist/commands/kg-status.d.ts.map +0 -1
- package/dist/commands/kg-status.js +0 -344
- package/dist/commands/kg-status.js.map +0 -1
- package/dist/commands/kg-uninstall-hook.d.ts +0 -12
- package/dist/commands/kg-uninstall-hook.d.ts.map +0 -1
- package/dist/commands/kg-uninstall-hook.js +0 -121
- package/dist/commands/kg-uninstall-hook.js.map +0 -1
- package/dist/commands/kg-watch.d.ts +0 -49
- package/dist/commands/kg-watch.d.ts.map +0 -1
- package/dist/commands/kg-watch.js +0 -172
- package/dist/commands/kg-watch.js.map +0 -1
- package/dist/commands/lanes-list-json.d.ts +0 -69
- package/dist/commands/lanes-list-json.d.ts.map +0 -1
- package/dist/commands/lanes-list-json.js +0 -42
- package/dist/commands/lanes-list-json.js.map +0 -1
- package/dist/commands/lanes.d.ts +0 -18
- package/dist/commands/lanes.d.ts.map +0 -1
- package/dist/commands/lanes.js +0 -133
- package/dist/commands/lanes.js.map +0 -1
- package/dist/commands/list.d.ts +0 -33
- package/dist/commands/list.d.ts.map +0 -1
- package/dist/commands/list.js +0 -87
- package/dist/commands/list.js.map +0 -1
- package/dist/commands/logs.d.ts +0 -52
- package/dist/commands/logs.d.ts.map +0 -1
- package/dist/commands/logs.js +0 -180
- package/dist/commands/logs.js.map +0 -1
- package/dist/commands/mcp/add.d.ts +0 -9
- package/dist/commands/mcp/add.d.ts.map +0 -1
- package/dist/commands/mcp/add.js +0 -87
- package/dist/commands/mcp/add.js.map +0 -1
- package/dist/commands/mcp/client.d.ts +0 -60
- package/dist/commands/mcp/client.d.ts.map +0 -1
- package/dist/commands/mcp/client.js +0 -70
- package/dist/commands/mcp/client.js.map +0 -1
- package/dist/commands/mcp/complete.d.ts +0 -36
- package/dist/commands/mcp/complete.d.ts.map +0 -1
- package/dist/commands/mcp/complete.js +0 -66
- package/dist/commands/mcp/complete.js.map +0 -1
- package/dist/commands/mcp/import-discovery.d.ts +0 -25
- package/dist/commands/mcp/import-discovery.d.ts.map +0 -1
- package/dist/commands/mcp/import-discovery.js +0 -135
- package/dist/commands/mcp/import-discovery.js.map +0 -1
- package/dist/commands/mcp/import-validate.d.ts +0 -15
- package/dist/commands/mcp/import-validate.d.ts.map +0 -1
- package/dist/commands/mcp/import-validate.js +0 -55
- package/dist/commands/mcp/import-validate.js.map +0 -1
- package/dist/commands/mcp/import.d.ts +0 -12
- package/dist/commands/mcp/import.d.ts.map +0 -1
- package/dist/commands/mcp/import.js +0 -126
- package/dist/commands/mcp/import.js.map +0 -1
- package/dist/commands/mcp/index.d.ts +0 -14
- package/dist/commands/mcp/index.d.ts.map +0 -1
- package/dist/commands/mcp/index.js +0 -39
- package/dist/commands/mcp/index.js.map +0 -1
- package/dist/commands/mcp/install-shared.d.ts +0 -24
- package/dist/commands/mcp/install-shared.d.ts.map +0 -1
- package/dist/commands/mcp/install-shared.js +0 -42
- package/dist/commands/mcp/install-shared.js.map +0 -1
- package/dist/commands/mcp/install.d.ts +0 -20
- package/dist/commands/mcp/install.d.ts.map +0 -1
- package/dist/commands/mcp/install.js +0 -59
- package/dist/commands/mcp/install.js.map +0 -1
- package/dist/commands/mcp/list.d.ts +0 -6
- package/dist/commands/mcp/list.d.ts.map +0 -1
- package/dist/commands/mcp/list.js +0 -56
- package/dist/commands/mcp/list.js.map +0 -1
- package/dist/commands/mcp/login.d.ts +0 -6
- package/dist/commands/mcp/login.d.ts.map +0 -1
- package/dist/commands/mcp/login.js +0 -38
- package/dist/commands/mcp/login.js.map +0 -1
- package/dist/commands/mcp/remove.d.ts +0 -6
- package/dist/commands/mcp/remove.d.ts.map +0 -1
- package/dist/commands/mcp/remove.js +0 -21
- package/dist/commands/mcp/remove.js.map +0 -1
- package/dist/commands/mcp/revoke.d.ts +0 -11
- package/dist/commands/mcp/revoke.d.ts.map +0 -1
- package/dist/commands/mcp/revoke.js +0 -51
- package/dist/commands/mcp/revoke.js.map +0 -1
- package/dist/commands/mcp/serve.d.ts +0 -23
- package/dist/commands/mcp/serve.d.ts.map +0 -1
- package/dist/commands/mcp/serve.js +0 -55
- package/dist/commands/mcp/serve.js.map +0 -1
- package/dist/commands/mcp/status.d.ts +0 -6
- package/dist/commands/mcp/status.d.ts.map +0 -1
- package/dist/commands/mcp/status.js +0 -57
- package/dist/commands/mcp/status.js.map +0 -1
- package/dist/commands/mcp/uninstall.d.ts +0 -20
- package/dist/commands/mcp/uninstall.d.ts.map +0 -1
- package/dist/commands/mcp/uninstall.js +0 -60
- package/dist/commands/mcp/uninstall.js.map +0 -1
- package/dist/commands/memory/_paths.d.ts +0 -25
- package/dist/commands/memory/_paths.d.ts.map +0 -1
- package/dist/commands/memory/_paths.js +0 -57
- package/dist/commands/memory/_paths.js.map +0 -1
- package/dist/commands/memory/bridge.d.ts +0 -57
- package/dist/commands/memory/bridge.d.ts.map +0 -1
- package/dist/commands/memory/bridge.js +0 -152
- package/dist/commands/memory/bridge.js.map +0 -1
- package/dist/commands/memory/index.d.ts +0 -20
- package/dist/commands/memory/index.d.ts.map +0 -1
- package/dist/commands/memory/index.js +0 -47
- package/dist/commands/memory/index.js.map +0 -1
- package/dist/commands/memory/install-hooks.d.ts +0 -22
- package/dist/commands/memory/install-hooks.d.ts.map +0 -1
- package/dist/commands/memory/install-hooks.js +0 -156
- package/dist/commands/memory/install-hooks.js.map +0 -1
- package/dist/commands/memory/install.d.ts +0 -57
- package/dist/commands/memory/install.d.ts.map +0 -1
- package/dist/commands/memory/install.js +0 -114
- package/dist/commands/memory/install.js.map +0 -1
- package/dist/commands/memory/logs.d.ts +0 -19
- package/dist/commands/memory/logs.d.ts.map +0 -1
- package/dist/commands/memory/logs.js +0 -50
- package/dist/commands/memory/logs.js.map +0 -1
- package/dist/commands/memory/mode.d.ts +0 -47
- package/dist/commands/memory/mode.d.ts.map +0 -1
- package/dist/commands/memory/mode.js +0 -185
- package/dist/commands/memory/mode.js.map +0 -1
- package/dist/commands/memory/reclassify.d.ts +0 -56
- package/dist/commands/memory/reclassify.d.ts.map +0 -1
- package/dist/commands/memory/reclassify.js +0 -177
- package/dist/commands/memory/reclassify.js.map +0 -1
- package/dist/commands/memory/secret.d.ts +0 -16
- package/dist/commands/memory/secret.d.ts.map +0 -1
- package/dist/commands/memory/secret.js +0 -80
- package/dist/commands/memory/secret.js.map +0 -1
- package/dist/commands/memory/start.d.ts +0 -25
- package/dist/commands/memory/start.d.ts.map +0 -1
- package/dist/commands/memory/start.js +0 -83
- package/dist/commands/memory/start.js.map +0 -1
- package/dist/commands/memory/stats.d.ts +0 -69
- package/dist/commands/memory/stats.d.ts.map +0 -1
- package/dist/commands/memory/stats.js +0 -164
- package/dist/commands/memory/stats.js.map +0 -1
- package/dist/commands/memory/status.d.ts +0 -45
- package/dist/commands/memory/status.d.ts.map +0 -1
- package/dist/commands/memory/status.js +0 -134
- package/dist/commands/memory/status.js.map +0 -1
- package/dist/commands/memory/stop.d.ts +0 -13
- package/dist/commands/memory/stop.d.ts.map +0 -1
- package/dist/commands/memory/stop.js +0 -52
- package/dist/commands/memory/stop.js.map +0 -1
- package/dist/commands/memory/uninstall.d.ts +0 -19
- package/dist/commands/memory/uninstall.d.ts.map +0 -1
- package/dist/commands/memory/uninstall.js +0 -60
- package/dist/commands/memory/uninstall.js.map +0 -1
- package/dist/commands/memory-service-container.d.ts +0 -130
- package/dist/commands/memory-service-container.d.ts.map +0 -1
- package/dist/commands/memory-service-container.js +0 -251
- package/dist/commands/memory-service-container.js.map +0 -1
- package/dist/commands/observe.d.ts +0 -9
- package/dist/commands/observe.d.ts.map +0 -1
- package/dist/commands/observe.js +0 -42
- package/dist/commands/observe.js.map +0 -1
- package/dist/commands/plans-list-json.d.ts +0 -77
- package/dist/commands/plans-list-json.d.ts.map +0 -1
- package/dist/commands/plans-list-json.js +0 -61
- package/dist/commands/plans-list-json.js.map +0 -1
- package/dist/commands/plans.d.ts +0 -3
- package/dist/commands/plans.d.ts.map +0 -1
- package/dist/commands/plans.js +0 -221
- package/dist/commands/plans.js.map +0 -1
- package/dist/commands/policy-check.d.ts +0 -14
- package/dist/commands/policy-check.d.ts.map +0 -1
- package/dist/commands/policy-check.js +0 -76
- package/dist/commands/policy-check.js.map +0 -1
- package/dist/commands/pr.d.ts +0 -17
- package/dist/commands/pr.d.ts.map +0 -1
- package/dist/commands/pr.js +0 -148
- package/dist/commands/pr.js.map +0 -1
- package/dist/commands/ps.d.ts +0 -57
- package/dist/commands/ps.d.ts.map +0 -1
- package/dist/commands/ps.js +0 -202
- package/dist/commands/ps.js.map +0 -1
- package/dist/commands/refresh-helpers.d.ts +0 -25
- package/dist/commands/refresh-helpers.d.ts.map +0 -1
- package/dist/commands/refresh-helpers.js +0 -56
- package/dist/commands/refresh-helpers.js.map +0 -1
- package/dist/commands/refresh.d.ts +0 -23
- package/dist/commands/refresh.d.ts.map +0 -1
- package/dist/commands/refresh.js +0 -237
- package/dist/commands/refresh.js.map +0 -1
- package/dist/commands/rekey.d.ts +0 -84
- package/dist/commands/rekey.d.ts.map +0 -1
- package/dist/commands/rekey.js +0 -209
- package/dist/commands/rekey.js.map +0 -1
- package/dist/commands/repos-list-json.d.ts +0 -58
- package/dist/commands/repos-list-json.d.ts.map +0 -1
- package/dist/commands/repos-list-json.js +0 -45
- package/dist/commands/repos-list-json.js.map +0 -1
- package/dist/commands/repos.d.ts +0 -11
- package/dist/commands/repos.d.ts.map +0 -1
- package/dist/commands/repos.js +0 -102
- package/dist/commands/repos.js.map +0 -1
- package/dist/commands/restart.d.ts +0 -18
- package/dist/commands/restart.d.ts.map +0 -1
- package/dist/commands/restart.js +0 -113
- package/dist/commands/restart.js.map +0 -1
- package/dist/commands/resume.d.ts +0 -63
- package/dist/commands/resume.d.ts.map +0 -1
- package/dist/commands/resume.js +0 -174
- package/dist/commands/resume.js.map +0 -1
- package/dist/commands/runbooks.d.ts +0 -45
- package/dist/commands/runbooks.d.ts.map +0 -1
- package/dist/commands/runbooks.js +0 -313
- package/dist/commands/runbooks.js.map +0 -1
- package/dist/commands/seed.d.ts +0 -27
- package/dist/commands/seed.d.ts.map +0 -1
- package/dist/commands/seed.js +0 -303
- package/dist/commands/seed.js.map +0 -1
- package/dist/commands/services-tls.d.ts +0 -120
- package/dist/commands/services-tls.d.ts.map +0 -1
- package/dist/commands/services-tls.js +0 -489
- package/dist/commands/services-tls.js.map +0 -1
- package/dist/commands/services.d.ts +0 -218
- package/dist/commands/services.d.ts.map +0 -1
- package/dist/commands/services.js +0 -830
- package/dist/commands/services.js.map +0 -1
- package/dist/commands/setup-linux-gate.d.ts +0 -26
- package/dist/commands/setup-linux-gate.d.ts.map +0 -1
- package/dist/commands/setup-linux-gate.js +0 -40
- package/dist/commands/setup-linux-gate.js.map +0 -1
- package/dist/commands/setup-metrics.d.ts +0 -26
- package/dist/commands/setup-metrics.d.ts.map +0 -1
- package/dist/commands/setup-metrics.js +0 -56
- package/dist/commands/setup-metrics.js.map +0 -1
- package/dist/commands/setup-phase-5a-skill-source.d.ts +0 -84
- package/dist/commands/setup-phase-5a-skill-source.d.ts.map +0 -1
- package/dist/commands/setup-phase-5a-skill-source.js +0 -259
- package/dist/commands/setup-phase-5a-skill-source.js.map +0 -1
- package/dist/commands/setup-phase-5b-project-sweep.d.ts +0 -38
- package/dist/commands/setup-phase-5b-project-sweep.d.ts.map +0 -1
- package/dist/commands/setup-phase-5b-project-sweep.js +0 -175
- package/dist/commands/setup-phase-5b-project-sweep.js.map +0 -1
- package/dist/commands/setup-phase-8-kg-hook.d.ts +0 -48
- package/dist/commands/setup-phase-8-kg-hook.d.ts.map +0 -1
- package/dist/commands/setup-phase-8-kg-hook.js +0 -93
- package/dist/commands/setup-phase-8-kg-hook.js.map +0 -1
- package/dist/commands/setup-phase-9-memory-bridge.d.ts +0 -36
- package/dist/commands/setup-phase-9-memory-bridge.d.ts.map +0 -1
- package/dist/commands/setup-phase-9-memory-bridge.js +0 -59
- package/dist/commands/setup-phase-9-memory-bridge.js.map +0 -1
- package/dist/commands/setup.d.ts +0 -231
- package/dist/commands/setup.d.ts.map +0 -1
- package/dist/commands/setup.js +0 -1374
- package/dist/commands/setup.js.map +0 -1
- package/dist/commands/skills-100x.d.ts +0 -34
- package/dist/commands/skills-100x.d.ts.map +0 -1
- package/dist/commands/skills-100x.js +0 -405
- package/dist/commands/skills-100x.js.map +0 -1
- package/dist/commands/skills-doctor.d.ts +0 -14
- package/dist/commands/skills-doctor.d.ts.map +0 -1
- package/dist/commands/skills-doctor.js +0 -126
- package/dist/commands/skills-doctor.js.map +0 -1
- package/dist/commands/skills-hook.d.ts +0 -19
- package/dist/commands/skills-hook.d.ts.map +0 -1
- package/dist/commands/skills-hook.js +0 -99
- package/dist/commands/skills-hook.js.map +0 -1
- package/dist/commands/skills-install-model-router.d.ts +0 -20
- package/dist/commands/skills-install-model-router.d.ts.map +0 -1
- package/dist/commands/skills-install-model-router.js +0 -55
- package/dist/commands/skills-install-model-router.js.map +0 -1
- package/dist/commands/skills-migrate-back.d.ts +0 -21
- package/dist/commands/skills-migrate-back.d.ts.map +0 -1
- package/dist/commands/skills-migrate-back.js +0 -222
- package/dist/commands/skills-migrate-back.js.map +0 -1
- package/dist/commands/skills-migrate-hooks-back.d.ts +0 -19
- package/dist/commands/skills-migrate-hooks-back.d.ts.map +0 -1
- package/dist/commands/skills-migrate-hooks-back.js +0 -83
- package/dist/commands/skills-migrate-hooks-back.js.map +0 -1
- package/dist/commands/skills-migrate-hooks.d.ts +0 -40
- package/dist/commands/skills-migrate-hooks.d.ts.map +0 -1
- package/dist/commands/skills-migrate-hooks.js +0 -178
- package/dist/commands/skills-migrate-hooks.js.map +0 -1
- package/dist/commands/skills-migrate.d.ts +0 -33
- package/dist/commands/skills-migrate.d.ts.map +0 -1
- package/dist/commands/skills-migrate.js +0 -216
- package/dist/commands/skills-migrate.js.map +0 -1
- package/dist/commands/skills-onboard.d.ts +0 -26
- package/dist/commands/skills-onboard.d.ts.map +0 -1
- package/dist/commands/skills-onboard.js +0 -230
- package/dist/commands/skills-onboard.js.map +0 -1
- package/dist/commands/skills-shadow-backups.d.ts +0 -15
- package/dist/commands/skills-shadow-backups.d.ts.map +0 -1
- package/dist/commands/skills-shadow-backups.js +0 -132
- package/dist/commands/skills-shadow-backups.js.map +0 -1
- package/dist/commands/skills-source.d.ts +0 -61
- package/dist/commands/skills-source.d.ts.map +0 -1
- package/dist/commands/skills-source.js +0 -895
- package/dist/commands/skills-source.js.map +0 -1
- package/dist/commands/skills.d.ts +0 -59
- package/dist/commands/skills.d.ts.map +0 -1
- package/dist/commands/skills.js +0 -461
- package/dist/commands/skills.js.map +0 -1
- package/dist/commands/status.d.ts +0 -65
- package/dist/commands/status.d.ts.map +0 -1
- package/dist/commands/status.js +0 -249
- package/dist/commands/status.js.map +0 -1
- package/dist/commands/stop.d.ts +0 -10
- package/dist/commands/stop.d.ts.map +0 -1
- package/dist/commands/stop.js +0 -17
- package/dist/commands/stop.js.map +0 -1
- package/dist/commands/substrate-audit-log.d.ts +0 -51
- package/dist/commands/substrate-audit-log.d.ts.map +0 -1
- package/dist/commands/substrate-audit-log.js +0 -161
- package/dist/commands/substrate-audit-log.js.map +0 -1
- package/dist/commands/substrate.d.ts +0 -87
- package/dist/commands/substrate.d.ts.map +0 -1
- package/dist/commands/substrate.js +0 -194
- package/dist/commands/substrate.js.map +0 -1
- package/dist/commands/update.d.ts +0 -89
- package/dist/commands/update.d.ts.map +0 -1
- package/dist/commands/update.js +0 -331
- package/dist/commands/update.js.map +0 -1
- package/dist/commands/upgrade-history.d.ts +0 -15
- package/dist/commands/upgrade-history.d.ts.map +0 -1
- package/dist/commands/upgrade-history.js +0 -34
- package/dist/commands/upgrade-history.js.map +0 -1
- package/dist/commands/upgrade-lock.d.ts +0 -93
- package/dist/commands/upgrade-lock.d.ts.map +0 -1
- package/dist/commands/upgrade-lock.js +0 -225
- package/dist/commands/upgrade-lock.js.map +0 -1
- package/dist/commands/upgrade-log.d.ts +0 -86
- package/dist/commands/upgrade-log.d.ts.map +0 -1
- package/dist/commands/upgrade-log.js +0 -146
- package/dist/commands/upgrade-log.js.map +0 -1
- package/dist/commands/upgrade.d.ts +0 -445
- package/dist/commands/upgrade.d.ts.map +0 -1
- package/dist/commands/upgrade.js +0 -1718
- package/dist/commands/upgrade.js.map +0 -1
- package/dist/commands/workspace-list-json.d.ts +0 -73
- package/dist/commands/workspace-list-json.d.ts.map +0 -1
- package/dist/commands/workspace-list-json.js +0 -59
- package/dist/commands/workspace-list-json.js.map +0 -1
- package/dist/commands/workspace.d.ts +0 -23
- package/dist/commands/workspace.d.ts.map +0 -1
- package/dist/commands/workspace.js +0 -203
- package/dist/commands/workspace.js.map +0 -1
- package/dist/commands/world-snapshot.d.ts +0 -32
- package/dist/commands/world-snapshot.d.ts.map +0 -1
- package/dist/commands/world-snapshot.js +0 -531
- package/dist/commands/world-snapshot.js.map +0 -1
- package/dist/commands/world-upgrade.d.ts +0 -33
- package/dist/commands/world-upgrade.d.ts.map +0 -1
- package/dist/commands/world-upgrade.js +0 -82
- package/dist/commands/world-upgrade.js.map +0 -1
- package/dist/commands/world.d.ts +0 -12
- package/dist/commands/world.d.ts.map +0 -1
- package/dist/commands/world.js +0 -18
- package/dist/commands/world.js.map +0 -1
- package/dist/commands/worldspec/compile.d.ts +0 -20
- package/dist/commands/worldspec/compile.d.ts.map +0 -1
- package/dist/commands/worldspec/compile.js +0 -130
- package/dist/commands/worldspec/compile.js.map +0 -1
- package/dist/commands/worldspec/index.d.ts +0 -12
- package/dist/commands/worldspec/index.d.ts.map +0 -1
- package/dist/commands/worldspec/index.js +0 -23
- package/dist/commands/worldspec/index.js.map +0 -1
- package/dist/commands/worldspec/init.d.ts +0 -15
- package/dist/commands/worldspec/init.d.ts.map +0 -1
- package/dist/commands/worldspec/init.js +0 -166
- package/dist/commands/worldspec/init.js.map +0 -1
- package/dist/commands/worldspec/schema.d.ts +0 -11
- package/dist/commands/worldspec/schema.d.ts.map +0 -1
- package/dist/commands/worldspec/schema.js +0 -55
- package/dist/commands/worldspec/schema.js.map +0 -1
- package/dist/commands/worldspec/validate.d.ts +0 -15
- package/dist/commands/worldspec/validate.d.ts.map +0 -1
- package/dist/commands/worldspec/validate.js +0 -66
- package/dist/commands/worldspec/validate.js.map +0 -1
- package/dist/commands/yolo.d.ts +0 -95
- package/dist/commands/yolo.d.ts.map +0 -1
- package/dist/commands/yolo.js +0 -377
- package/dist/commands/yolo.js.map +0 -1
- package/dist/context.d.ts +0 -30
- package/dist/context.d.ts.map +0 -1
- package/dist/context.js +0 -56
- package/dist/context.js.map +0 -1
- package/dist/docker-host.d.ts +0 -18
- package/dist/docker-host.d.ts.map +0 -1
- package/dist/docker-host.js +0 -17
- package/dist/docker-host.js.map +0 -1
- package/dist/exit-codes.d.ts +0 -67
- package/dist/exit-codes.d.ts.map +0 -1
- package/dist/exit-codes.js +0 -67
- package/dist/exit-codes.js.map +0 -1
- package/dist/from-manifest.d.ts +0 -53
- package/dist/from-manifest.d.ts.map +0 -1
- package/dist/from-manifest.js +0 -95
- package/dist/from-manifest.js.map +0 -1
- package/dist/image-presence.d.ts +0 -40
- package/dist/image-presence.d.ts.map +0 -1
- package/dist/image-presence.js +0 -39
- package/dist/image-presence.js.map +0 -1
- package/dist/index.d.ts +0 -9
- package/dist/index.d.ts.map +0 -1
- package/dist/install-root.d.ts +0 -74
- package/dist/install-root.d.ts.map +0 -1
- package/dist/install-root.js +0 -98
- package/dist/install-root.js.map +0 -1
- package/dist/lib/anthropic-base-url-file.d.ts +0 -37
- package/dist/lib/anthropic-base-url-file.d.ts.map +0 -1
- package/dist/lib/anthropic-base-url-file.js +0 -46
- package/dist/lib/anthropic-base-url-file.js.map +0 -1
- package/dist/lib/auth-backend.d.ts +0 -168
- package/dist/lib/auth-backend.d.ts.map +0 -1
- package/dist/lib/auth-backend.js +0 -172
- package/dist/lib/auth-backend.js.map +0 -1
- package/dist/lib/auth-list-cache.d.ts +0 -67
- package/dist/lib/auth-list-cache.d.ts.map +0 -1
- package/dist/lib/auth-list-cache.js +0 -84
- package/dist/lib/auth-list-cache.js.map +0 -1
- package/dist/lib/auth-list.d.ts +0 -107
- package/dist/lib/auth-list.d.ts.map +0 -1
- package/dist/lib/auth-list.js +0 -123
- package/dist/lib/auth-list.js.map +0 -1
- package/dist/lib/auth-login.d.ts +0 -92
- package/dist/lib/auth-login.d.ts.map +0 -1
- package/dist/lib/auth-login.js +0 -124
- package/dist/lib/auth-login.js.map +0 -1
- package/dist/lib/auth-mutator-backend.d.ts +0 -54
- package/dist/lib/auth-mutator-backend.d.ts.map +0 -1
- package/dist/lib/auth-mutator-backend.js +0 -62
- package/dist/lib/auth-mutator-backend.js.map +0 -1
- package/dist/lib/auth-refresh-kubernetes.d.ts +0 -65
- package/dist/lib/auth-refresh-kubernetes.d.ts.map +0 -1
- package/dist/lib/auth-refresh-kubernetes.js +0 -125
- package/dist/lib/auth-refresh-kubernetes.js.map +0 -1
- package/dist/lib/auth-remote.d.ts +0 -172
- package/dist/lib/auth-remote.d.ts.map +0 -1
- package/dist/lib/auth-remote.js +0 -394
- package/dist/lib/auth-remote.js.map +0 -1
- package/dist/lib/bootstrap-kubernetes.d.ts +0 -164
- package/dist/lib/bootstrap-kubernetes.d.ts.map +0 -1
- package/dist/lib/bootstrap-kubernetes.js +0 -1002
- package/dist/lib/bootstrap-kubernetes.js.map +0 -1
- package/dist/lib/build-if-stale.d.ts +0 -33
- package/dist/lib/build-if-stale.d.ts.map +0 -1
- package/dist/lib/build-if-stale.js +0 -156
- package/dist/lib/build-if-stale.js.map +0 -1
- package/dist/lib/bundle-freshness.d.ts +0 -57
- package/dist/lib/bundle-freshness.d.ts.map +0 -1
- package/dist/lib/bundle-freshness.js +0 -223
- package/dist/lib/bundle-freshness.js.map +0 -1
- package/dist/lib/bundle-source.d.ts +0 -52
- package/dist/lib/bundle-source.d.ts.map +0 -1
- package/dist/lib/bundle-source.js +0 -83
- package/dist/lib/bundle-source.js.map +0 -1
- package/dist/lib/cf-access-token.d.ts +0 -32
- package/dist/lib/cf-access-token.d.ts.map +0 -1
- package/dist/lib/cf-access-token.js +0 -51
- package/dist/lib/cf-access-token.js.map +0 -1
- package/dist/lib/completion-generator.d.ts +0 -107
- package/dist/lib/completion-generator.d.ts.map +0 -1
- package/dist/lib/completion-generator.js +0 -226
- package/dist/lib/completion-generator.js.map +0 -1
- package/dist/lib/config.d.ts +0 -114
- package/dist/lib/config.d.ts.map +0 -1
- package/dist/lib/config.js +0 -246
- package/dist/lib/config.js.map +0 -1
- package/dist/lib/flywheel-probes.d.ts +0 -58
- package/dist/lib/flywheel-probes.d.ts.map +0 -1
- package/dist/lib/flywheel-probes.js +0 -163
- package/dist/lib/flywheel-probes.js.map +0 -1
- package/dist/lib/health-probes.d.ts +0 -267
- package/dist/lib/health-probes.d.ts.map +0 -1
- package/dist/lib/health-probes.js +0 -933
- package/dist/lib/health-probes.js.map +0 -1
- package/dist/lib/help-groups.d.ts +0 -36
- package/dist/lib/help-groups.d.ts.map +0 -1
- package/dist/lib/help-groups.js +0 -124
- package/dist/lib/help-groups.js.map +0 -1
- package/dist/lib/host-side-proxy.d.ts +0 -67
- package/dist/lib/host-side-proxy.d.ts.map +0 -1
- package/dist/lib/host-side-proxy.js +0 -177
- package/dist/lib/host-side-proxy.js.map +0 -1
- package/dist/lib/instrumentation.d.ts +0 -85
- package/dist/lib/instrumentation.d.ts.map +0 -1
- package/dist/lib/instrumentation.js +0 -104
- package/dist/lib/instrumentation.js.map +0 -1
- package/dist/lib/k8s-bootstrap.d.ts +0 -126
- package/dist/lib/k8s-bootstrap.d.ts.map +0 -1
- package/dist/lib/k8s-bootstrap.js +0 -218
- package/dist/lib/k8s-bootstrap.js.map +0 -1
- package/dist/lib/k8s-context-discovery.d.ts +0 -80
- package/dist/lib/k8s-context-discovery.d.ts.map +0 -1
- package/dist/lib/k8s-context-discovery.js +0 -102
- package/dist/lib/k8s-context-discovery.js.map +0 -1
- package/dist/lib/k8s-secret-render.d.ts +0 -141
- package/dist/lib/k8s-secret-render.d.ts.map +0 -1
- package/dist/lib/k8s-secret-render.js +0 -318
- package/dist/lib/k8s-secret-render.js.map +0 -1
- package/dist/lib/kg-caps.d.ts +0 -19
- package/dist/lib/kg-caps.d.ts.map +0 -1
- package/dist/lib/kg-caps.js +0 -19
- package/dist/lib/kg-caps.js.map +0 -1
- package/dist/lib/kubectl-context.d.ts +0 -87
- package/dist/lib/kubectl-context.d.ts.map +0 -1
- package/dist/lib/kubectl-context.js +0 -105
- package/dist/lib/kubectl-context.js.map +0 -1
- package/dist/lib/kubectl-wrap.d.ts +0 -65
- package/dist/lib/kubectl-wrap.d.ts.map +0 -1
- package/dist/lib/kubectl-wrap.js +0 -135
- package/dist/lib/kubectl-wrap.js.map +0 -1
- package/dist/lib/manifest-refresh.d.ts +0 -136
- package/dist/lib/manifest-refresh.d.ts.map +0 -1
- package/dist/lib/manifest-refresh.js +0 -298
- package/dist/lib/manifest-refresh.js.map +0 -1
- package/dist/lib/memory-host-process-migration.d.ts +0 -56
- package/dist/lib/memory-host-process-migration.d.ts.map +0 -1
- package/dist/lib/memory-host-process-migration.js +0 -156
- package/dist/lib/memory-host-process-migration.js.map +0 -1
- package/dist/lib/memory-secret.d.ts +0 -83
- package/dist/lib/memory-secret.d.ts.map +0 -1
- package/dist/lib/memory-secret.js +0 -147
- package/dist/lib/memory-secret.js.map +0 -1
- package/dist/lib/peripheral-registry.d.ts +0 -53
- package/dist/lib/peripheral-registry.d.ts.map +0 -1
- package/dist/lib/peripheral-registry.js +0 -73
- package/dist/lib/peripheral-registry.js.map +0 -1
- package/dist/lib/plans-client.d.ts +0 -69
- package/dist/lib/plans-client.d.ts.map +0 -1
- package/dist/lib/plans-client.js +0 -140
- package/dist/lib/plans-client.js.map +0 -1
- package/dist/lib/port-forward.d.ts +0 -168
- package/dist/lib/port-forward.d.ts.map +0 -1
- package/dist/lib/port-forward.js +0 -393
- package/dist/lib/port-forward.js.map +0 -1
- package/dist/lib/shell-rc.d.ts +0 -90
- package/dist/lib/shell-rc.d.ts.map +0 -1
- package/dist/lib/shell-rc.js +0 -91
- package/dist/lib/shell-rc.js.map +0 -1
- package/dist/lib/shim-generator.d.ts +0 -51
- package/dist/lib/shim-generator.d.ts.map +0 -1
- package/dist/lib/shim-generator.js +0 -88
- package/dist/lib/shim-generator.js.map +0 -1
- package/dist/lib/skills-apply-overlays.d.ts +0 -35
- package/dist/lib/skills-apply-overlays.d.ts.map +0 -1
- package/dist/lib/skills-apply-overlays.js +0 -243
- package/dist/lib/skills-apply-overlays.js.map +0 -1
- package/dist/lib/symlink-reconcile.d.ts +0 -32
- package/dist/lib/symlink-reconcile.d.ts.map +0 -1
- package/dist/lib/symlink-reconcile.js +0 -80
- package/dist/lib/symlink-reconcile.js.map +0 -1
- package/dist/lib/upgrade-check.d.ts +0 -60
- package/dist/lib/upgrade-check.d.ts.map +0 -1
- package/dist/lib/upgrade-check.js +0 -169
- package/dist/lib/upgrade-check.js.map +0 -1
- package/dist/lib/upgrade-kubernetes.d.ts +0 -193
- package/dist/lib/upgrade-kubernetes.d.ts.map +0 -1
- package/dist/lib/upgrade-kubernetes.js +0 -1014
- package/dist/lib/upgrade-kubernetes.js.map +0 -1
- package/dist/lib/world-mcp-register.d.ts +0 -98
- package/dist/lib/world-mcp-register.d.ts.map +0 -1
- package/dist/lib/world-mcp-register.js +0 -117
- package/dist/lib/world-mcp-register.js.map +0 -1
- package/dist/output.d.ts +0 -10
- package/dist/output.d.ts.map +0 -1
- package/dist/output.js +0 -31
- package/dist/output.js.map +0 -1
- package/dist/pleri-config.d.ts +0 -22
- package/dist/pleri-config.d.ts.map +0 -1
- package/dist/pleri-config.js +0 -42
- package/dist/pleri-config.js.map +0 -1
- package/dist/protocol-version.d.ts +0 -79
- package/dist/protocol-version.d.ts.map +0 -1
- package/dist/protocol-version.js +0 -133
- package/dist/protocol-version.js.map +0 -1
- package/dist/registry-allowlist.d.ts +0 -47
- package/dist/registry-allowlist.d.ts.map +0 -1
- package/dist/registry-allowlist.js +0 -67
- package/dist/registry-allowlist.js.map +0 -1
- package/dist/spawn/home-override.d.ts +0 -82
- package/dist/spawn/home-override.d.ts.map +0 -1
- package/dist/spawn/home-override.js +0 -107
- package/dist/spawn/home-override.js.map +0 -1
- package/host-cp/src/linear-sync.mjs +0 -43
|
@@ -1,792 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `olam flywheel migrate-overlays` — operator-local overlay-layer migration.
|
|
3
|
-
*
|
|
4
|
-
* Scans `~/.claude/{skills,agents}.overrides/` recursively for hardcoded
|
|
5
|
-
* `~/.claude/scripts/<name>` references matching the SHIM_TARGETS registry;
|
|
6
|
-
* sed-replaces each match with the corresponding `olam flywheel <subcmd>`
|
|
7
|
-
* invocation. Each operator runs this once to migrate THEIR layer 3
|
|
8
|
-
* (per-user overlay files) from the legacy script-path contract to the new
|
|
9
|
-
* flywheel CLI surface.
|
|
10
|
-
*
|
|
11
|
-
* Closes K1 OQ23 (pass-3 resolution): the migration helper that scales
|
|
12
|
-
* the namespace migration beyond just this operator's overlays. Each
|
|
13
|
-
* operator with their own `.overrides/` tree runs this command once.
|
|
14
|
-
*
|
|
15
|
-
* Replaces:
|
|
16
|
-
* `bash ~/.claude/scripts/emit-breadcrumb.sh ...` → `olam flywheel emit-breadcrumb ...`
|
|
17
|
-
* `python3 ~/.claude/scripts/sanitize-persona-output.py ...` → `olam flywheel sanitize-persona-output ...`
|
|
18
|
-
* `~/.claude/scripts/k5-rubric-helper.py` → `olam flywheel k5-validate`
|
|
19
|
-
* etc. (full set per SHIM_TARGETS registry at @olam/core/lib/shim-targets)
|
|
20
|
-
*
|
|
21
|
-
* Flags:
|
|
22
|
-
* --dry-run — preview changes without writing
|
|
23
|
-
* --target-dir <path> — override the search root (default: ~/.claude/); for tests
|
|
24
|
-
* --json — emit summary as JSON for tooling
|
|
25
|
-
*
|
|
26
|
-
* --push — PUSH mode: copy overlays into atlas-toolbox clone
|
|
27
|
-
* --target <name> — required with --push; name of a registered skill source
|
|
28
|
-
*
|
|
29
|
-
* Idempotent: re-runs against already-migrated overlays produce no diff.
|
|
30
|
-
*
|
|
31
|
-
* Plan reference: docs/plans/olam-flywheel-cli-namespace/phase-c-tasks.md § C7
|
|
32
|
-
* Phase B: docs/plans/member-overlays-sync/phase-b-tasks.md
|
|
33
|
-
*/
|
|
34
|
-
import { copyFileSync, existsSync, mkdirSync, readFileSync, readdirSync, statSync, writeFileSync, } from 'node:fs';
|
|
35
|
-
import { spawnSync } from 'node:child_process';
|
|
36
|
-
import { homedir } from 'node:os';
|
|
37
|
-
import { dirname, join, relative } from 'node:path';
|
|
38
|
-
import { SHIM_TARGETS } from '@olam/core/src/lib/shim-targets.js';
|
|
39
|
-
import { listSkillSources, skillSourceClonePath, } from '@olam/core/src/skill-sources/index.js';
|
|
40
|
-
import { validateCanonical, formatCanonicalViolation, } from '@olam/core/src/skill-sync/prefix-rules.js';
|
|
41
|
-
// ---------------------------------------------------------------------------
|
|
42
|
-
// Rewrite-mode helpers (Phase C7 — unchanged)
|
|
43
|
-
// ---------------------------------------------------------------------------
|
|
44
|
-
function escapeRegex(s) {
|
|
45
|
-
return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
46
|
-
}
|
|
47
|
-
function applyReplacements(content) {
|
|
48
|
-
let working = content;
|
|
49
|
-
const replacements = [];
|
|
50
|
-
for (const target of SHIM_TARGETS) {
|
|
51
|
-
const escaped = escapeRegex(target.basename);
|
|
52
|
-
const patterns = [
|
|
53
|
-
{ re: new RegExp(`(?:bash |python3 )?~/\\.claude/scripts/${escaped}`, 'g'), label: 'tilde' },
|
|
54
|
-
{ re: new RegExp(`(?:bash |python3 )?\\$HOME/\\.claude/scripts/${escaped}`, 'g'), label: 'home' },
|
|
55
|
-
{ re: new RegExp(`(?:bash |python3 )?/Users/[\\w.-]+/\\.claude/scripts/${escaped}`, 'g'), label: 'absolute' },
|
|
56
|
-
];
|
|
57
|
-
let count = 0;
|
|
58
|
-
for (const { re } of patterns) {
|
|
59
|
-
const matches = working.match(re);
|
|
60
|
-
if (matches !== null) {
|
|
61
|
-
count += matches.length;
|
|
62
|
-
working = working.replace(re, target.replacedBy);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
if (count > 0) {
|
|
66
|
-
replacements.push({ basename: target.basename, count, replacedBy: target.replacedBy });
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
return { newContent: working, replacements };
|
|
70
|
-
}
|
|
71
|
-
function walkOverlayFiles(dir) {
|
|
72
|
-
const found = [];
|
|
73
|
-
let entries;
|
|
74
|
-
try {
|
|
75
|
-
entries = readdirSync(dir);
|
|
76
|
-
}
|
|
77
|
-
catch {
|
|
78
|
-
return [];
|
|
79
|
-
}
|
|
80
|
-
for (const entry of entries) {
|
|
81
|
-
const fullPath = join(dir, entry);
|
|
82
|
-
let stat;
|
|
83
|
-
try {
|
|
84
|
-
stat = statSync(fullPath);
|
|
85
|
-
}
|
|
86
|
-
catch {
|
|
87
|
-
continue;
|
|
88
|
-
}
|
|
89
|
-
if (stat.isDirectory()) {
|
|
90
|
-
found.push(...walkOverlayFiles(fullPath));
|
|
91
|
-
}
|
|
92
|
-
else if (stat.isFile() && /\.(md|json|sh)$/.test(entry)) {
|
|
93
|
-
found.push(fullPath);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
return found;
|
|
97
|
-
}
|
|
98
|
-
// ---------------------------------------------------------------------------
|
|
99
|
-
// Push-mode helpers (Phase B)
|
|
100
|
-
// ---------------------------------------------------------------------------
|
|
101
|
-
/**
|
|
102
|
-
* Error thrown by push-mode operations. Carries an exit code so callers
|
|
103
|
-
* can distinguish between different failure scenarios.
|
|
104
|
-
*/
|
|
105
|
-
export class PushError extends Error {
|
|
106
|
-
exitCode;
|
|
107
|
-
constructor(exitCode, message) {
|
|
108
|
-
super(message);
|
|
109
|
-
this.exitCode = exitCode;
|
|
110
|
-
this.name = 'PushError';
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
const ATLAS_USER_RE = /^[a-z0-9][a-z0-9_-]{0,38}$/;
|
|
114
|
-
/**
|
|
115
|
-
* Validate that `value` matches the GitHub login shape used as atlas-user.
|
|
116
|
-
* Throws PushError on mismatch so callers handle it via the standard error path.
|
|
117
|
-
*/
|
|
118
|
-
function assertValidAtlasUser(value) {
|
|
119
|
-
if (!ATLAS_USER_RE.test(value)) {
|
|
120
|
-
throw new PushError(1, `invalid atlasUser "${value}" in ~/.claude/.atlas-user — must match /^[a-z0-9][a-z0-9_-]{0,38}$/`);
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Read atlas-user from ~/.claude/.atlas-user (or OLAM_CLAUDE_DIR override).
|
|
125
|
-
*/
|
|
126
|
-
function resolveAtlasUser(opts) {
|
|
127
|
-
if (opts._testAtlasUser !== undefined) {
|
|
128
|
-
const v = opts._testAtlasUser;
|
|
129
|
-
if (!v)
|
|
130
|
-
return null;
|
|
131
|
-
assertValidAtlasUser(v);
|
|
132
|
-
return v;
|
|
133
|
-
}
|
|
134
|
-
const claudeDir = opts._testClaudeDir ?? process.env['OLAM_CLAUDE_DIR'] ?? join(homedir(), '.claude');
|
|
135
|
-
const f = join(claudeDir, '.atlas-user');
|
|
136
|
-
if (existsSync(f)) {
|
|
137
|
-
const v = readFileSync(f, 'utf-8').trim();
|
|
138
|
-
if (v.length === 0)
|
|
139
|
-
return null;
|
|
140
|
-
assertValidAtlasUser(v);
|
|
141
|
-
return v;
|
|
142
|
-
}
|
|
143
|
-
return null;
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
* Run a git command, returning stdout. Throws on non-zero exit.
|
|
147
|
-
*/
|
|
148
|
-
function runGit(args, cwd) {
|
|
149
|
-
const result = spawnSync('git', args, {
|
|
150
|
-
cwd,
|
|
151
|
-
encoding: 'utf-8',
|
|
152
|
-
stdio: ['ignore', 'pipe', 'pipe'],
|
|
153
|
-
});
|
|
154
|
-
if (result.status !== 0) {
|
|
155
|
-
const errMsg = (result.stderr ?? '').trim() || `git ${args[0]} failed`;
|
|
156
|
-
throw new Error(errMsg);
|
|
157
|
-
}
|
|
158
|
-
return (result.stdout ?? '').trim();
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* Walk overlay source directories for push-mode.
|
|
162
|
-
* Returns array of { srcFile, overlayKind: 'skills' | 'agents', relPath }.
|
|
163
|
-
* Skips paths matching *.overrides.local/ (Decision #4).
|
|
164
|
-
*/
|
|
165
|
-
function walkPushSourceFiles(claudeDir) {
|
|
166
|
-
const result = [];
|
|
167
|
-
const roots = [
|
|
168
|
-
{ dir: join(claudeDir, 'skills.overrides'), overlayKind: 'skills' },
|
|
169
|
-
{ dir: join(claudeDir, 'agents.overrides'), overlayKind: 'agents' },
|
|
170
|
-
];
|
|
171
|
-
for (const { dir, overlayKind } of roots) {
|
|
172
|
-
const files = walkOverlayFiles(dir);
|
|
173
|
-
for (const f of files) {
|
|
174
|
-
// Defensive skip for .overrides.local/ paths (Decision #4)
|
|
175
|
-
if (f.includes('.overrides.local'))
|
|
176
|
-
continue;
|
|
177
|
-
const relPath = relative(dir, f);
|
|
178
|
-
result.push({ srcFile: f, overlayKind, relPath });
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
return result;
|
|
182
|
-
}
|
|
183
|
-
/**
|
|
184
|
-
* Generate branch name. If exists on origin, auto-suffix -2, -3, etc.
|
|
185
|
-
*/
|
|
186
|
-
function resolveBranchName(clonePath, atlasUser) {
|
|
187
|
-
const now = new Date();
|
|
188
|
-
const pad = (n) => String(n).padStart(2, '0');
|
|
189
|
-
const ts = `${now.getFullYear()}${pad(now.getMonth() + 1)}${pad(now.getDate())}-${pad(now.getHours())}${pad(now.getMinutes())}${pad(now.getSeconds())}`;
|
|
190
|
-
const base = `feat/${atlasUser}/overlay-update-${ts}`;
|
|
191
|
-
// Check if candidate exists on origin OR locally; auto-suffix if so.
|
|
192
|
-
let candidate = base;
|
|
193
|
-
let suffix = 2;
|
|
194
|
-
while (true) {
|
|
195
|
-
let existsOnOrigin = false;
|
|
196
|
-
let existsLocally = false;
|
|
197
|
-
try {
|
|
198
|
-
const out = runGit(['ls-remote', 'origin', candidate], clonePath);
|
|
199
|
-
existsOnOrigin = out.length > 0;
|
|
200
|
-
}
|
|
201
|
-
catch {
|
|
202
|
-
// ls-remote failure (offline, etc.) — assume name is free on origin
|
|
203
|
-
}
|
|
204
|
-
if (!existsOnOrigin) {
|
|
205
|
-
try {
|
|
206
|
-
runGit(['rev-parse', '--verify', `refs/heads/${candidate}`], clonePath);
|
|
207
|
-
existsLocally = true;
|
|
208
|
-
}
|
|
209
|
-
catch {
|
|
210
|
-
// non-zero exit means branch does not exist locally
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
if (!existsOnOrigin && !existsLocally)
|
|
214
|
-
break;
|
|
215
|
-
candidate = `${base}-${suffix}`;
|
|
216
|
-
suffix += 1;
|
|
217
|
-
if (suffix > 100)
|
|
218
|
-
break; // safety ceiling
|
|
219
|
-
}
|
|
220
|
-
return candidate;
|
|
221
|
-
}
|
|
222
|
-
/**
|
|
223
|
-
* Run the pre-flight gate against the clone.
|
|
224
|
-
*
|
|
225
|
-
* When `dryRunWarnOnly` is true, blocking conditions emit stderr WARNINGs
|
|
226
|
-
* instead of returning error strings — the dry-run path collects warnings
|
|
227
|
-
* so the operator can see what would block a real run. The returned
|
|
228
|
-
* `preflightWarnings` array contains any warnings emitted.
|
|
229
|
-
*
|
|
230
|
-
* When `dryRunWarnOnly` is false (default / real-run), the first blocking
|
|
231
|
-
* condition returns immediately with `error` set.
|
|
232
|
-
*/
|
|
233
|
-
function runPreFlight(clonePath, forceCurrentBranch, dryRunWarnOnly = false) {
|
|
234
|
-
const warnings = [];
|
|
235
|
-
const warn = (msg) => {
|
|
236
|
-
process.stderr.write(`[dry-run] pre-flight WARNING: ${msg}\n`);
|
|
237
|
-
warnings.push(msg);
|
|
238
|
-
};
|
|
239
|
-
// 1. Dirty working tree
|
|
240
|
-
let statusOut;
|
|
241
|
-
try {
|
|
242
|
-
statusOut = runGit(['status', '--porcelain'], clonePath);
|
|
243
|
-
}
|
|
244
|
-
catch (err) {
|
|
245
|
-
const msg = `pre-flight: failed to check clone status: ${err instanceof Error ? err.message : String(err)}`;
|
|
246
|
-
return { error: msg, preflightWarnings: warnings };
|
|
247
|
-
}
|
|
248
|
-
if (statusOut.length > 0) {
|
|
249
|
-
const msg = [
|
|
250
|
-
`pre-flight: clone has uncommitted changes at "${clonePath}".`,
|
|
251
|
-
` Resolve before pushing overlays.`,
|
|
252
|
-
` Actions: [Stash and continue] / [Abort]`,
|
|
253
|
-
].join('\n');
|
|
254
|
-
if (dryRunWarnOnly) {
|
|
255
|
-
warn(msg);
|
|
256
|
-
}
|
|
257
|
-
else {
|
|
258
|
-
return { error: msg, preflightWarnings: warnings };
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
// 2. Not on main branch
|
|
262
|
-
let currentBranch;
|
|
263
|
-
try {
|
|
264
|
-
currentBranch = runGit(['rev-parse', '--abbrev-ref', 'HEAD'], clonePath);
|
|
265
|
-
}
|
|
266
|
-
catch (err) {
|
|
267
|
-
const msg = `pre-flight: failed to determine current branch: ${err instanceof Error ? err.message : String(err)}`;
|
|
268
|
-
return { error: msg, preflightWarnings: warnings };
|
|
269
|
-
}
|
|
270
|
-
if (currentBranch !== 'main' && !forceCurrentBranch) {
|
|
271
|
-
const msg = [
|
|
272
|
-
`pre-flight: clone is on branch "${currentBranch}" (expected "main").`,
|
|
273
|
-
` Switch to main first, or use --force-current-branch to continue on "${currentBranch}".`,
|
|
274
|
-
` Actions: [Switch to main first] / [Continue on current branch]`,
|
|
275
|
-
].join('\n');
|
|
276
|
-
if (dryRunWarnOnly) {
|
|
277
|
-
warn(msg);
|
|
278
|
-
}
|
|
279
|
-
else {
|
|
280
|
-
return { error: msg, preflightWarnings: warnings };
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
// 3. Clone behind origin/main — warn but allow continue (both modes)
|
|
284
|
-
try {
|
|
285
|
-
runGit(['fetch', 'origin'], clonePath);
|
|
286
|
-
const behindCount = runGit(['rev-list', '--count', 'HEAD..origin/main'], clonePath);
|
|
287
|
-
const n = parseInt(behindCount, 10);
|
|
288
|
-
if (!isNaN(n) && n > 0) {
|
|
289
|
-
process.stderr.write(`warning: clone is ${n} commit(s) behind origin/main.\n` +
|
|
290
|
-
` Run \`git -C "${clonePath}" pull\` first, or continue with stale base.\n` +
|
|
291
|
-
` Actions: [Pull first] / [Continue]\n`);
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
catch {
|
|
295
|
-
// fetch failure is non-fatal (offline); proceed
|
|
296
|
-
}
|
|
297
|
-
return { error: null, preflightWarnings: warnings };
|
|
298
|
-
}
|
|
299
|
-
/**
|
|
300
|
-
* Core push-overlays implementation (Phase B).
|
|
301
|
-
* Returns PushSummary. Throws PushError on validation/pre-flight failures
|
|
302
|
-
* (lets callers handle process.exit vs test assertions cleanly).
|
|
303
|
-
*/
|
|
304
|
-
export function pushOverlays(opts) {
|
|
305
|
-
// B2 — Resolve atlas-user
|
|
306
|
-
const atlasUser = resolveAtlasUser(opts);
|
|
307
|
-
if (atlasUser === null) {
|
|
308
|
-
throw new PushError(1, `~/.claude/.atlas-user not set.\n` +
|
|
309
|
-
` Run \`olam skills atlas-user set <name>\` to configure your atlas user.`);
|
|
310
|
-
}
|
|
311
|
-
// Determine source overlay directory and walk overlay files.
|
|
312
|
-
const claudeDir = opts._testClaudeDir ?? opts.targetDir ?? process.env['OLAM_CLAUDE_DIR'] ?? join(homedir(), '.claude');
|
|
313
|
-
const sourceFiles = walkPushSourceFiles(claudeDir);
|
|
314
|
-
// Phase A skill-prefix-rules reverse validator. Refuses push of overlays
|
|
315
|
-
// whose filename basename OR frontmatter `name:` carries any registered
|
|
316
|
-
// prefix. Runs BEFORE clone-path resolution and pre-flight so the
|
|
317
|
-
// operator gets an actionable error without needing a valid clone target.
|
|
318
|
-
// Locks the canonical-only invariant at push time (forward-rewrite on sync
|
|
319
|
-
// forms a defense-in-depth pair with this reverse validator).
|
|
320
|
-
const registeredPrefixes = (opts._testSkillSources ?? listSkillSources())
|
|
321
|
-
.map((s) => s.prefix)
|
|
322
|
-
.filter((p) => typeof p === 'string' && p.length > 0);
|
|
323
|
-
if (registeredPrefixes.length > 0) {
|
|
324
|
-
for (const { srcFile, relPath } of sourceFiles) {
|
|
325
|
-
const basename = relPath.split('/').pop() ?? relPath;
|
|
326
|
-
let content;
|
|
327
|
-
try {
|
|
328
|
-
content = readFileSync(srcFile);
|
|
329
|
-
}
|
|
330
|
-
catch {
|
|
331
|
-
continue;
|
|
332
|
-
}
|
|
333
|
-
const validation = validateCanonical(basename, content, registeredPrefixes);
|
|
334
|
-
if (!validation.ok && validation.violation !== undefined) {
|
|
335
|
-
throw new PushError(1, formatCanonicalViolation(relPath, validation.violation));
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
|
-
// B2 — Resolve skill source (test injection or registry lookup)
|
|
340
|
-
let clonePath;
|
|
341
|
-
if (opts._testClonePath !== undefined) {
|
|
342
|
-
clonePath = opts._testClonePath;
|
|
343
|
-
}
|
|
344
|
-
else {
|
|
345
|
-
// Resolve from registry (or test-injected sources)
|
|
346
|
-
const sources = opts._testSkillSources ?? listSkillSources();
|
|
347
|
-
const source = sources.find((s) => s.name === opts.target) ?? null;
|
|
348
|
-
if (source === null) {
|
|
349
|
-
const available = sources.map((s) => s.name).join(', ') || '(none)';
|
|
350
|
-
throw new PushError(1, `target source "${opts.target}" not registered.\n` +
|
|
351
|
-
` Available sources: ${available}\n` +
|
|
352
|
-
` Run \`olam skills source add\` to register one.\n` +
|
|
353
|
-
` Actions: [List sources] / [Cancel]`);
|
|
354
|
-
}
|
|
355
|
-
clonePath = skillSourceClonePath(source.id);
|
|
356
|
-
}
|
|
357
|
-
// Dry-run: surface pre-flight warnings, then preview copy actions (no clone mutation)
|
|
358
|
-
if (opts.dryRun === true) {
|
|
359
|
-
const { preflightWarnings } = runPreFlight(clonePath, opts.forceCurrentBranch === true, true);
|
|
360
|
-
if (preflightWarnings.length > 0) {
|
|
361
|
-
process.stderr.write(`[dry-run] pre-flight warnings (would BLOCK in real run):\n` +
|
|
362
|
-
preflightWarnings.map((w) => ` - ${w.split('\n')[0]}`).join('\n') +
|
|
363
|
-
'\n');
|
|
364
|
-
}
|
|
365
|
-
const membersBase = join(clonePath, 'members', atlasUser);
|
|
366
|
-
let wouldCopy = 0;
|
|
367
|
-
let wouldUnchange = 0;
|
|
368
|
-
let wouldCreate = 0;
|
|
369
|
-
for (const { srcFile, overlayKind, relPath } of sourceFiles) {
|
|
370
|
-
const targetDir = join(membersBase, `${overlayKind}.overrides`);
|
|
371
|
-
const targetFile = join(targetDir, relPath);
|
|
372
|
-
let srcBuf;
|
|
373
|
-
try {
|
|
374
|
-
srcBuf = readFileSync(srcFile);
|
|
375
|
-
}
|
|
376
|
-
catch {
|
|
377
|
-
continue;
|
|
378
|
-
}
|
|
379
|
-
if (existsSync(targetFile)) {
|
|
380
|
-
const dstBuf = readFileSync(targetFile);
|
|
381
|
-
if (srcBuf.equals(dstBuf)) {
|
|
382
|
-
wouldUnchange += 1;
|
|
383
|
-
process.stdout.write(` [skip] ${overlayKind}.overrides/${relPath} (unchanged)\n`);
|
|
384
|
-
continue;
|
|
385
|
-
}
|
|
386
|
-
wouldCopy += 1;
|
|
387
|
-
process.stdout.write(` [copy] ${overlayKind}.overrides/${relPath} (changed)\n`);
|
|
388
|
-
}
|
|
389
|
-
else {
|
|
390
|
-
wouldCreate += 1;
|
|
391
|
-
process.stdout.write(` [new] ${overlayKind}.overrides/${relPath}\n`);
|
|
392
|
-
}
|
|
393
|
-
}
|
|
394
|
-
process.stdout.write(`[dry-run] would copy ${wouldCopy + wouldCreate} file(s), ${wouldUnchange} unchanged.\n`);
|
|
395
|
-
return {
|
|
396
|
-
filesCopied: wouldCopy,
|
|
397
|
-
filesUnchanged: wouldUnchange,
|
|
398
|
-
filesCreated: wouldCreate,
|
|
399
|
-
branchName: '',
|
|
400
|
-
nextStepGhCommand: '',
|
|
401
|
-
};
|
|
402
|
-
}
|
|
403
|
-
// B4 — Pre-flight gate (real run — fail fast)
|
|
404
|
-
const { error: preFlightError } = runPreFlight(clonePath, opts.forceCurrentBranch === true, false);
|
|
405
|
-
if (preFlightError !== null) {
|
|
406
|
-
throw new PushError(1, preFlightError);
|
|
407
|
-
}
|
|
408
|
-
// B4 — Generate and create branch
|
|
409
|
-
const branchName = resolveBranchName(clonePath, atlasUser);
|
|
410
|
-
try {
|
|
411
|
-
runGit(['checkout', '-b', branchName], clonePath);
|
|
412
|
-
}
|
|
413
|
-
catch (err) {
|
|
414
|
-
throw new PushError(1, `failed to create branch "${branchName}": ${err instanceof Error ? err.message : String(err)}`);
|
|
415
|
-
}
|
|
416
|
-
// B3 — Copy files (atomic: rollback branch on any copy failure)
|
|
417
|
-
const membersBase = join(clonePath, 'members', atlasUser);
|
|
418
|
-
let filesCopied = 0;
|
|
419
|
-
let filesUnchanged = 0;
|
|
420
|
-
let filesCreated = 0;
|
|
421
|
-
try {
|
|
422
|
-
for (const { srcFile, overlayKind, relPath } of sourceFiles) {
|
|
423
|
-
const targetDir = join(membersBase, `${overlayKind}.overrides`, dirname(relPath));
|
|
424
|
-
const targetFile = join(membersBase, `${overlayKind}.overrides`, relPath);
|
|
425
|
-
let srcBuf;
|
|
426
|
-
try {
|
|
427
|
-
srcBuf = readFileSync(srcFile);
|
|
428
|
-
}
|
|
429
|
-
catch {
|
|
430
|
-
continue;
|
|
431
|
-
}
|
|
432
|
-
const targetExists = existsSync(targetFile);
|
|
433
|
-
if (targetExists) {
|
|
434
|
-
const dstBuf = readFileSync(targetFile);
|
|
435
|
-
if (srcBuf.equals(dstBuf)) {
|
|
436
|
-
filesUnchanged += 1;
|
|
437
|
-
continue;
|
|
438
|
-
}
|
|
439
|
-
// Content differs — overwrite
|
|
440
|
-
mkdirSync(targetDir, { recursive: true });
|
|
441
|
-
copyFileSync(srcFile, targetFile);
|
|
442
|
-
filesCopied += 1;
|
|
443
|
-
}
|
|
444
|
-
else {
|
|
445
|
-
// New file
|
|
446
|
-
mkdirSync(targetDir, { recursive: true });
|
|
447
|
-
copyFileSync(srcFile, targetFile);
|
|
448
|
-
filesCreated += 1;
|
|
449
|
-
}
|
|
450
|
-
}
|
|
451
|
-
}
|
|
452
|
-
catch (copyErr) {
|
|
453
|
-
// Rollback: return clone to main and delete the new branch
|
|
454
|
-
try {
|
|
455
|
-
runGit(['checkout', 'main'], clonePath);
|
|
456
|
-
}
|
|
457
|
-
catch {
|
|
458
|
-
// best-effort
|
|
459
|
-
}
|
|
460
|
-
try {
|
|
461
|
-
runGit(['branch', '-D', branchName], clonePath);
|
|
462
|
-
}
|
|
463
|
-
catch {
|
|
464
|
-
// best-effort
|
|
465
|
-
}
|
|
466
|
-
const origMsg = copyErr instanceof Error ? copyErr.message : String(copyErr);
|
|
467
|
-
throw new PushError(1, `Copy failed partway through — clone reverted to main. Original: ${origMsg}`);
|
|
468
|
-
}
|
|
469
|
-
// B4 — Compose next-steps copy-paste block
|
|
470
|
-
const memberSubdir = `members/${atlasUser}/`;
|
|
471
|
-
const autoSubject = `feat: push operator overlays for ${atlasUser}`;
|
|
472
|
-
const nextStepGhCommand = `gh pr create --base main --head ${branchName} --title "${autoSubject}" --body "Operator overlay sync for ${atlasUser}."`;
|
|
473
|
-
const copyPasteBlock = [
|
|
474
|
-
`\nNext steps (run in ${clonePath}):`,
|
|
475
|
-
` git -C "${clonePath}" add ${memberSubdir}`,
|
|
476
|
-
` git -C "${clonePath}" commit -m '${autoSubject}'`,
|
|
477
|
-
` git -C "${clonePath}" push -u origin ${branchName}`,
|
|
478
|
-
` ${nextStepGhCommand}`,
|
|
479
|
-
'',
|
|
480
|
-
].join('\n');
|
|
481
|
-
return {
|
|
482
|
-
filesCopied,
|
|
483
|
-
filesUnchanged,
|
|
484
|
-
filesCreated,
|
|
485
|
-
branchName,
|
|
486
|
-
nextStepGhCommand,
|
|
487
|
-
_copyPasteBlock: copyPasteBlock,
|
|
488
|
-
};
|
|
489
|
-
}
|
|
490
|
-
// ---------------------------------------------------------------------------
|
|
491
|
-
// Init-member mode (Phase C C3)
|
|
492
|
-
// ---------------------------------------------------------------------------
|
|
493
|
-
/**
|
|
494
|
-
* Scaffold members/<name>/{skills,agents}.overrides/.gitkeep + README.md
|
|
495
|
-
* in the atlas-toolbox clone. Leaves the working tree dirty.
|
|
496
|
-
* Throws PushError on validation / pre-flight / idempotency failures.
|
|
497
|
-
*/
|
|
498
|
-
export function initMember(opts) {
|
|
499
|
-
const memberName = opts.initMember;
|
|
500
|
-
// Validate member name shape (same regex as ATLAS_USER_RE).
|
|
501
|
-
if (!ATLAS_USER_RE.test(memberName)) {
|
|
502
|
-
throw new PushError(1, `invalid member name "${memberName}" — must match /^[a-z0-9][a-z0-9_-]{0,38}$/`);
|
|
503
|
-
}
|
|
504
|
-
// Resolve target source (reuse same path as pushOverlays).
|
|
505
|
-
let clonePath;
|
|
506
|
-
if (opts._testClonePath !== undefined) {
|
|
507
|
-
clonePath = opts._testClonePath;
|
|
508
|
-
}
|
|
509
|
-
else {
|
|
510
|
-
const sources = opts._testSkillSources ?? listSkillSources();
|
|
511
|
-
const source = sources.find((s) => s.name === opts.target) ?? null;
|
|
512
|
-
if (source === null) {
|
|
513
|
-
const available = sources.map((s) => s.name).join(', ') || '(none)';
|
|
514
|
-
throw new PushError(1, `target source "${opts.target}" not registered.\n` +
|
|
515
|
-
` Available sources: ${available}\n` +
|
|
516
|
-
` Run \`olam skills source add\` to register one.\n` +
|
|
517
|
-
` Actions: [List sources] / [Cancel]`);
|
|
518
|
-
}
|
|
519
|
-
clonePath = skillSourceClonePath(source.id);
|
|
520
|
-
}
|
|
521
|
-
// Resolve atlas-user for branch name.
|
|
522
|
-
const atlasUser = resolveAtlasUser(opts) ?? memberName;
|
|
523
|
-
const memberDir = join(clonePath, 'members', memberName);
|
|
524
|
-
// Idempotency: if members/<name>/ already exists, refuse.
|
|
525
|
-
if (existsSync(memberDir)) {
|
|
526
|
-
throw new PushError(1, `members/${memberName}/ already exists; use --push to update; or remove manually first\n` +
|
|
527
|
-
` Actions: [Show existing] / [Cancel]`);
|
|
528
|
-
}
|
|
529
|
-
const wouldCreate = [
|
|
530
|
-
join(memberDir, 'skills.overrides', '.gitkeep'),
|
|
531
|
-
join(memberDir, 'agents.overrides', '.gitkeep'),
|
|
532
|
-
join(memberDir, 'README.md'),
|
|
533
|
-
];
|
|
534
|
-
// Dry-run: preview only.
|
|
535
|
-
if (opts.dryRun === true) {
|
|
536
|
-
const { preflightWarnings } = runPreFlight(clonePath, opts.forceCurrentBranch === true, true);
|
|
537
|
-
if (preflightWarnings.length > 0) {
|
|
538
|
-
process.stderr.write(`[dry-run] pre-flight warnings (would BLOCK in real run):\n` +
|
|
539
|
-
preflightWarnings.map((w) => ` - ${w.split('\n')[0]}`).join('\n') +
|
|
540
|
-
'\n');
|
|
541
|
-
}
|
|
542
|
-
for (const p of wouldCreate) {
|
|
543
|
-
process.stdout.write(` [new] ${p.replace(clonePath + '/', '')}\n`);
|
|
544
|
-
}
|
|
545
|
-
process.stdout.write(`[dry-run] would create ${wouldCreate.length} path(s) in members/${memberName}/\n`);
|
|
546
|
-
return {
|
|
547
|
-
memberName,
|
|
548
|
-
branchName: '',
|
|
549
|
-
nextStepGhCommand: '',
|
|
550
|
-
createdPaths: wouldCreate,
|
|
551
|
-
};
|
|
552
|
-
}
|
|
553
|
-
// Real run: pre-flight gate.
|
|
554
|
-
const { error: preFlightError } = runPreFlight(clonePath, opts.forceCurrentBranch === true, false);
|
|
555
|
-
if (preFlightError !== null) {
|
|
556
|
-
throw new PushError(1, preFlightError);
|
|
557
|
-
}
|
|
558
|
-
// Generate and create branch.
|
|
559
|
-
const now = new Date();
|
|
560
|
-
const pad = (n) => String(n).padStart(2, '0');
|
|
561
|
-
const ts = `${now.getFullYear()}${pad(now.getMonth() + 1)}${pad(now.getDate())}-${pad(now.getHours())}${pad(now.getMinutes())}${pad(now.getSeconds())}`;
|
|
562
|
-
const branchName = `feat/${atlasUser}/init-member-${memberName}-${ts}`;
|
|
563
|
-
let resolvedBranch = branchName;
|
|
564
|
-
{
|
|
565
|
-
let suffix = 2;
|
|
566
|
-
while (true) {
|
|
567
|
-
let existsLocally = false;
|
|
568
|
-
try {
|
|
569
|
-
runGit(['rev-parse', '--verify', `refs/heads/${resolvedBranch}`], clonePath);
|
|
570
|
-
existsLocally = true;
|
|
571
|
-
}
|
|
572
|
-
catch {
|
|
573
|
-
// doesn't exist
|
|
574
|
-
}
|
|
575
|
-
if (!existsLocally)
|
|
576
|
-
break;
|
|
577
|
-
resolvedBranch = `${branchName}-${suffix}`;
|
|
578
|
-
suffix += 1;
|
|
579
|
-
if (suffix > 100)
|
|
580
|
-
break;
|
|
581
|
-
}
|
|
582
|
-
}
|
|
583
|
-
try {
|
|
584
|
-
runGit(['checkout', '-b', resolvedBranch], clonePath);
|
|
585
|
-
}
|
|
586
|
-
catch (err) {
|
|
587
|
-
throw new PushError(1, `failed to create branch "${resolvedBranch}": ${err instanceof Error ? err.message : String(err)}`);
|
|
588
|
-
}
|
|
589
|
-
// CP3 ADV-C-2 fix: atomic copy rollback. If mkdirSync/writeFileSync
|
|
590
|
-
// fails partway through, leave the clone on the new branch with partial
|
|
591
|
-
// files — next invocation refuses the idempotency check + accumulates
|
|
592
|
-
// orphan branches. Mirror the pushOverlays pattern: try/catch wrapped
|
|
593
|
-
// around all create ops + best-effort cleanup (checkout main + branch -D)
|
|
594
|
-
// before re-throwing as PushError with the "reverted to main" prefix.
|
|
595
|
-
try {
|
|
596
|
-
// Create directory tree.
|
|
597
|
-
mkdirSync(join(memberDir, 'skills.overrides'), { recursive: true });
|
|
598
|
-
writeFileSync(join(memberDir, 'skills.overrides', '.gitkeep'), '');
|
|
599
|
-
mkdirSync(join(memberDir, 'agents.overrides'), { recursive: true });
|
|
600
|
-
writeFileSync(join(memberDir, 'agents.overrides', '.gitkeep'), '');
|
|
601
|
-
writeFileSync(join(memberDir, 'README.md'), `# Member overlays for \`${memberName}\`\n\nSee docs/plans/member-overlays-sync/ for layer architecture.\n`);
|
|
602
|
-
}
|
|
603
|
-
catch (err) {
|
|
604
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
605
|
-
// Best-effort cleanup: switch back to main + delete the orphan branch.
|
|
606
|
-
try {
|
|
607
|
-
runGit(['checkout', 'main'], clonePath);
|
|
608
|
-
}
|
|
609
|
-
catch {
|
|
610
|
-
// ignore; operator can recover manually
|
|
611
|
-
}
|
|
612
|
-
try {
|
|
613
|
-
runGit(['branch', '-D', resolvedBranch], clonePath);
|
|
614
|
-
}
|
|
615
|
-
catch {
|
|
616
|
-
// ignore
|
|
617
|
-
}
|
|
618
|
-
throw new PushError(1, `Scaffold failed partway through — clone reverted to main. Original: ${msg}`);
|
|
619
|
-
}
|
|
620
|
-
// Compose copy-paste block.
|
|
621
|
-
const autoSubject = `feat: scaffold members/${memberName}/ for atlas-toolbox-tracked overlays`;
|
|
622
|
-
const nextStepGhCommand = `gh pr create --base main --head ${resolvedBranch} --title "${autoSubject}" --body "Scaffold member overlay directory for ${memberName}."`;
|
|
623
|
-
const copyPasteBlock = [
|
|
624
|
-
`\nNext steps (run in ${clonePath}):`,
|
|
625
|
-
` git -C "${clonePath}" add members/${memberName}/`,
|
|
626
|
-
` git -C "${clonePath}" commit -m '${autoSubject}'`,
|
|
627
|
-
` git -C "${clonePath}" push -u origin ${resolvedBranch}`,
|
|
628
|
-
` ${nextStepGhCommand}`,
|
|
629
|
-
'',
|
|
630
|
-
].join('\n');
|
|
631
|
-
return {
|
|
632
|
-
memberName,
|
|
633
|
-
branchName: resolvedBranch,
|
|
634
|
-
nextStepGhCommand,
|
|
635
|
-
createdPaths: wouldCreate,
|
|
636
|
-
_copyPasteBlock: copyPasteBlock,
|
|
637
|
-
};
|
|
638
|
-
}
|
|
639
|
-
// ---------------------------------------------------------------------------
|
|
640
|
-
// Rewrite-mode entry (Phase C7 — unchanged)
|
|
641
|
-
// ---------------------------------------------------------------------------
|
|
642
|
-
export function migrateOverlays(opts = {}) {
|
|
643
|
-
const root = opts.targetDir ?? join(homedir(), '.claude');
|
|
644
|
-
const overrideRoots = [
|
|
645
|
-
join(root, 'skills.overrides'),
|
|
646
|
-
join(root, 'agents.overrides'),
|
|
647
|
-
];
|
|
648
|
-
const allFiles = [];
|
|
649
|
-
for (const overrideRoot of overrideRoots) {
|
|
650
|
-
allFiles.push(...walkOverlayFiles(overrideRoot));
|
|
651
|
-
}
|
|
652
|
-
const summary = {
|
|
653
|
-
scanned: allFiles.length,
|
|
654
|
-
modified: 0,
|
|
655
|
-
unchanged: 0,
|
|
656
|
-
totalReplacements: 0,
|
|
657
|
-
perFile: [],
|
|
658
|
-
};
|
|
659
|
-
for (const filePath of allFiles) {
|
|
660
|
-
let original;
|
|
661
|
-
try {
|
|
662
|
-
original = readFileSync(filePath, 'utf8');
|
|
663
|
-
}
|
|
664
|
-
catch {
|
|
665
|
-
continue;
|
|
666
|
-
}
|
|
667
|
-
const { newContent, replacements } = applyReplacements(original);
|
|
668
|
-
const totalReplacements = replacements.reduce((s, r) => s + r.count, 0);
|
|
669
|
-
if (totalReplacements === 0) {
|
|
670
|
-
summary.unchanged += 1;
|
|
671
|
-
continue;
|
|
672
|
-
}
|
|
673
|
-
if (opts.dryRun !== true) {
|
|
674
|
-
writeFileSync(filePath, newContent, 'utf8');
|
|
675
|
-
}
|
|
676
|
-
summary.modified += 1;
|
|
677
|
-
summary.totalReplacements += totalReplacements;
|
|
678
|
-
summary.perFile.push({ path: filePath, replacements, totalReplacements });
|
|
679
|
-
}
|
|
680
|
-
return summary;
|
|
681
|
-
}
|
|
682
|
-
// ---------------------------------------------------------------------------
|
|
683
|
-
// Commander registration
|
|
684
|
-
// ---------------------------------------------------------------------------
|
|
685
|
-
export function registerFlywheelMigrateOverlays(parent) {
|
|
686
|
-
parent
|
|
687
|
-
.command('migrate-overlays')
|
|
688
|
-
.description('Migrate operator-local overlay files (~/.claude/{skills,agents}.overrides/) from hardcoded ~/.claude/scripts/<name> references to olam flywheel <subcmd> invocations. With --push, copy overlays into atlas-toolbox clone.')
|
|
689
|
-
.option('--dry-run', 'preview changes without modifying files')
|
|
690
|
-
.option('--target-dir <path>', 'override ~/.claude/ root (default: $HOME/.claude); for tests')
|
|
691
|
-
.option('--json', 'emit summary as JSON instead of human-readable')
|
|
692
|
-
.option('--push', 'PUSH mode: copy overlays into atlas-toolbox clone')
|
|
693
|
-
.option('--target <name>', 'skill-source name to push into (required with --push or --init-member)')
|
|
694
|
-
.option('--force-current-branch', 'Allow --push from non-main branches without pre-flight refusal')
|
|
695
|
-
.option('--init-member <name>', 'Scaffold members/<name>/{skills,agents}.overrides/ on the atlas-toolbox clone')
|
|
696
|
-
.action((opts) => {
|
|
697
|
-
// T6 mode-overloading guard: --push requires --target
|
|
698
|
-
if (opts.push === true && !opts.target) {
|
|
699
|
-
process.stderr.write(`Error: --push requires --target=<skill-source-name>.\n` +
|
|
700
|
-
` Actions: [Add --target=atlas-toolbox] / [Cancel]\n`);
|
|
701
|
-
process.exit(1);
|
|
702
|
-
}
|
|
703
|
-
// C3 mode-overloading guard: --init-member requires --target
|
|
704
|
-
if (opts.initMember !== undefined && !opts.target) {
|
|
705
|
-
process.stderr.write(`Error: --init-member requires --target=<skill-source-name>.\n` +
|
|
706
|
-
` Actions: [Add --target=atlas-toolbox] / [Cancel]\n`);
|
|
707
|
-
process.exit(1);
|
|
708
|
-
}
|
|
709
|
-
if (opts.initMember !== undefined) {
|
|
710
|
-
let summary;
|
|
711
|
-
try {
|
|
712
|
-
summary = initMember(opts);
|
|
713
|
-
}
|
|
714
|
-
catch (err) {
|
|
715
|
-
if (err instanceof PushError) {
|
|
716
|
-
process.stderr.write(`Error: ${err.message}\n`);
|
|
717
|
-
process.exit(err.exitCode);
|
|
718
|
-
}
|
|
719
|
-
throw err;
|
|
720
|
-
}
|
|
721
|
-
if (opts.json === true) {
|
|
722
|
-
process.stdout.write(JSON.stringify(summary) + '\n');
|
|
723
|
-
return;
|
|
724
|
-
}
|
|
725
|
-
const dryRunLabel = opts.dryRun === true ? ' (dry-run)' : '';
|
|
726
|
-
process.stdout.write(`olam flywheel migrate-overlays --init-member ${opts.initMember} → ${opts.target}${dryRunLabel}\n`);
|
|
727
|
-
if (opts.dryRun !== true) {
|
|
728
|
-
process.stdout.write(` branch: ${summary.branchName}\n`);
|
|
729
|
-
process.stdout.write(` created: ${summary.createdPaths.length} path(s)\n`);
|
|
730
|
-
if (summary._copyPasteBlock !== undefined) {
|
|
731
|
-
process.stdout.write(summary._copyPasteBlock);
|
|
732
|
-
}
|
|
733
|
-
}
|
|
734
|
-
return;
|
|
735
|
-
}
|
|
736
|
-
if (opts.push === true) {
|
|
737
|
-
let summary;
|
|
738
|
-
try {
|
|
739
|
-
summary = pushOverlays(opts);
|
|
740
|
-
}
|
|
741
|
-
catch (err) {
|
|
742
|
-
if (err instanceof PushError) {
|
|
743
|
-
process.stderr.write(`Error: ${err.message}\n`);
|
|
744
|
-
process.exit(err.exitCode);
|
|
745
|
-
}
|
|
746
|
-
throw err;
|
|
747
|
-
}
|
|
748
|
-
if (opts.json === true) {
|
|
749
|
-
process.stdout.write(JSON.stringify(summary) + '\n');
|
|
750
|
-
return;
|
|
751
|
-
}
|
|
752
|
-
const dryRunLabel = opts.dryRun === true ? ' (dry-run)' : '';
|
|
753
|
-
process.stdout.write(`olam flywheel migrate-overlays --push → ${opts.target}${dryRunLabel}\n`);
|
|
754
|
-
if (opts.dryRun !== true) {
|
|
755
|
-
process.stdout.write(` branch: ${summary.branchName}\n`);
|
|
756
|
-
process.stdout.write(` copied: ${summary.filesCopied}\n`);
|
|
757
|
-
process.stdout.write(` created: ${summary.filesCreated}\n`);
|
|
758
|
-
process.stdout.write(` unchanged: ${summary.filesUnchanged}\n`);
|
|
759
|
-
if (summary._copyPasteBlock !== undefined) {
|
|
760
|
-
process.stdout.write(summary._copyPasteBlock);
|
|
761
|
-
}
|
|
762
|
-
}
|
|
763
|
-
return;
|
|
764
|
-
}
|
|
765
|
-
// Rewrite mode
|
|
766
|
-
const root = opts.targetDir ?? join(homedir(), '.claude');
|
|
767
|
-
const summary = migrateOverlays(opts);
|
|
768
|
-
if (opts.json === true) {
|
|
769
|
-
process.stdout.write(JSON.stringify(summary, null, 2) + '\n');
|
|
770
|
-
return;
|
|
771
|
-
}
|
|
772
|
-
const dryRunSuffix = opts.dryRun === true ? ' (dry-run)' : '';
|
|
773
|
-
process.stdout.write(`olam flywheel migrate-overlays → ${root}${dryRunSuffix}\n`);
|
|
774
|
-
process.stdout.write(` scanned: ${summary.scanned} file(s)\n`);
|
|
775
|
-
process.stdout.write(` modified: ${summary.modified}\n`);
|
|
776
|
-
process.stdout.write(` unchanged: ${summary.unchanged}\n`);
|
|
777
|
-
process.stdout.write(` total replacements: ${summary.totalReplacements}\n`);
|
|
778
|
-
if (summary.perFile.length > 0) {
|
|
779
|
-
process.stdout.write(`\nPer-file changes:\n`);
|
|
780
|
-
for (const file of summary.perFile) {
|
|
781
|
-
process.stdout.write(` ${relative(root, file.path)}${dryRunSuffix}\n`);
|
|
782
|
-
for (const r of file.replacements) {
|
|
783
|
-
process.stdout.write(` ${r.count}× ${r.basename} → ${r.replacedBy}\n`);
|
|
784
|
-
}
|
|
785
|
-
}
|
|
786
|
-
}
|
|
787
|
-
if (summary.modified === 0) {
|
|
788
|
-
process.stdout.write(`\n[migrate-overlays] no changes needed — all overlays already migrated or no shim-target references found.\n`);
|
|
789
|
-
}
|
|
790
|
-
});
|
|
791
|
-
}
|
|
792
|
-
//# sourceMappingURL=migrate-overlays.js.map
|