@remnic/core 9.65.3 → 9.65.4
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/dist/access-admin-ops-surface.d.ts +11 -11
- package/dist/access-admin-ops-surface.js +20 -18
- package/dist/access-authorization-probe.d.ts +11 -11
- package/dist/access-authorization-probe.js +21 -19
- package/dist/access-boundary.d.ts +11 -11
- package/dist/access-boundary.js +20 -18
- package/dist/access-cli.js +55 -53
- package/dist/access-cli.js.map +1 -1
- package/dist/access-coding-context-resolution.d.ts +1 -1
- package/dist/access-extraction-force-flush.d.ts +11 -11
- package/dist/access-extraction-force-flush.js +20 -18
- package/dist/access-health-types.d.ts +1 -1
- package/dist/access-http-lcm-compaction.d.ts +11 -11
- package/dist/access-http-lifecycle-flush.d.ts +11 -11
- package/dist/access-http-offline-stream.d.ts +11 -11
- package/dist/access-http-query.d.ts +2 -2
- package/dist/access-http-query.js +22 -20
- package/dist/access-http.d.ts +12 -12
- package/dist/access-http.js +31 -29
- package/dist/access-identity-continuity-surface.d.ts +9 -9
- package/dist/access-identity-continuity-surface.js +20 -18
- package/dist/access-lcm-surface.d.ts +11 -11
- package/dist/access-lcm-surface.js +20 -18
- package/dist/access-mcp.d.ts +11 -11
- package/dist/access-mcp.js +25 -23
- package/dist/access-memory-search-fanout.d.ts +2 -2
- package/dist/{access-namespace-preflight-B7Usyz-K.d.ts → access-namespace-preflight-D_6mo8ms.d.ts} +1 -1
- package/dist/access-namespace-preflight.d.ts +3 -3
- package/dist/access-namespace-preflight.js +20 -18
- package/dist/access-observe-write-surface.d.ts +11 -11
- package/dist/access-observe-write-surface.js +20 -18
- package/dist/access-offline-manifest.d.ts +9 -9
- package/dist/access-offline-manifest.js +3 -3
- package/dist/access-operations-batch.js +21 -19
- package/dist/access-operations.d.ts +11 -11
- package/dist/access-operations.js +24 -22
- package/dist/access-recall-concurrency.d.ts +11 -11
- package/dist/access-recall-concurrency.js +20 -18
- package/dist/access-recall-response.d.ts +11 -11
- package/dist/access-recall-response.js +20 -18
- package/dist/access-recall-surface.d.ts +11 -11
- package/dist/access-recall-surface.js +20 -18
- package/dist/{access-service-DkaIG3n8.d.ts → access-service-DqPa3hy4.d.ts} +7 -7
- package/dist/access-service-helpers.d.ts +11 -11
- package/dist/access-service.d.ts +11 -11
- package/dist/access-service.js +20 -18
- package/dist/access-surface-catalog.d.ts +11 -11
- package/dist/access-surface-catalog.js +22 -20
- package/dist/access-surface-catalog.js.map +1 -1
- package/dist/access-wearables-meetings-surface.d.ts +3 -3
- package/dist/action-confidence.d.ts +1 -1
- package/dist/active-memory-bridge.d.ts +1 -1
- package/dist/active-recall.d.ts +1 -1
- package/dist/active-recall.js +5 -1
- package/dist/active-recall.js.map +1 -1
- package/dist/ambient-provenance.d.ts +1 -1
- package/dist/artifact-search.d.ts +1 -1
- package/dist/{auto-sync-H64ZCNIR.js → auto-sync-XVMLL2RH.js} +5 -5
- package/dist/behavior-learner.d.ts +1 -1
- package/dist/behavior-signals.d.ts +1 -1
- package/dist/bootstrap.d.ts +9 -9
- package/dist/briefing-window.d.ts +2 -2
- package/dist/briefing.d.ts +2 -2
- package/dist/briefing.js +4 -4
- package/dist/buffer-surprise-report.d.ts +1 -1
- package/dist/buffer-turn-helpers.d.ts +1 -1
- package/dist/buffer.d.ts +2 -2
- package/dist/bulk-import/index.d.ts +3 -3
- package/dist/calibration.d.ts +1 -1
- package/dist/capabilities.d.ts +1 -1
- package/dist/{catalog-CX2BZEJh.d.ts → catalog-DO_7zfkv.d.ts} +1 -1
- package/dist/causal-behavior.d.ts +1 -1
- package/dist/causal-consolidation.d.ts +1 -1
- package/dist/causal-consolidation.js +9 -6
- package/dist/causal-consolidation.js.map +1 -1
- package/dist/causal-trajectory-graph.d.ts +1 -1
- package/dist/chunk-236PXYG7.js +232 -0
- package/dist/chunk-236PXYG7.js.map +1 -0
- package/dist/{chunk-IQSC3V2E.js → chunk-2IXQSGCU.js} +2 -2
- package/dist/{chunk-GUXS322H.js → chunk-2MVTAIL3.js} +2 -2
- package/dist/{chunk-7QOO4LGC.js → chunk-3JZBPTLD.js} +331 -73
- package/dist/chunk-3JZBPTLD.js.map +1 -0
- package/dist/{chunk-TDKSCV62.js → chunk-3NH3VP3U.js} +2 -2
- package/dist/{chunk-URHCUXKI.js → chunk-AXGFOFNY.js} +2 -2
- package/dist/{chunk-WN5FSGLE.js → chunk-AZLLH6YA.js} +19 -19
- package/dist/{chunk-D27J626P.js → chunk-BK5G2MHO.js} +2 -2
- package/dist/{chunk-DHTQP334.js → chunk-CQBIN77D.js} +2 -2
- package/dist/{chunk-6VALIZKG.js → chunk-DORFF5N5.js} +2 -2
- package/dist/{chunk-76PL4XLG.js → chunk-DPNXADEI.js} +7 -2
- package/dist/chunk-DPNXADEI.js.map +1 -0
- package/dist/{chunk-MRTUN665.js → chunk-DUEDOYZD.js} +2 -2
- package/dist/{chunk-QFMO32TO.js → chunk-DUZARALI.js} +3 -3
- package/dist/{chunk-7KFIMGMP.js → chunk-ECLJ4LA2.js} +2 -2
- package/dist/{chunk-PDVQ5JU3.js → chunk-GHD2LLG4.js} +2 -2
- package/dist/{chunk-RK4WXUI2.js → chunk-HF5BUTI6.js} +2 -2
- package/dist/{chunk-3DVBKTSO.js → chunk-HSZMX3ZJ.js} +4 -4
- package/dist/{chunk-EV3YFLCB.js → chunk-I23ZHYSL.js} +2 -2
- package/dist/{chunk-ODZG724P.js → chunk-I2HTKOOP.js} +2 -2
- package/dist/{chunk-AYYGRVRP.js → chunk-IURMJBGP.js} +2 -2
- package/dist/{chunk-TYUS5TLG.js → chunk-IWKGOCL6.js} +3 -3
- package/dist/{chunk-4XDGYCZI.js → chunk-J3ATBB7M.js} +2 -2
- package/dist/{chunk-E4MVQQVX.js → chunk-JPAKBNTM.js} +2 -2
- package/dist/{chunk-NZWEEALH.js → chunk-KFIOPZ25.js} +2 -2
- package/dist/{chunk-EIVIB73I.js → chunk-KOO37E4Y.js} +2 -2
- package/dist/{chunk-57HVIG5U.js → chunk-KPB2QHJZ.js} +2 -2
- package/dist/{chunk-NXKJHSDN.js → chunk-LBFFNDFM.js} +1 -1
- package/dist/chunk-LBFFNDFM.js.map +1 -0
- package/dist/{chunk-Z4RPXHJH.js → chunk-LYBIHM4N.js} +4 -4
- package/dist/{chunk-G57LQRP6.js → chunk-MFOSZUIT.js} +2 -2
- package/dist/{chunk-AUO2LJ3K.js → chunk-NLEH4RTB.js} +2 -2
- package/dist/{chunk-AYDDB3XI.js → chunk-OCCHUEZB.js} +2 -2
- package/dist/{chunk-6TAX66IA.js → chunk-OU34IQXV.js} +2 -2
- package/dist/{chunk-OJD4WS2E.js → chunk-OZDFB22S.js} +2 -2
- package/dist/{chunk-GN55KU2P.js → chunk-PTZQYCJ4.js} +2 -2
- package/dist/{chunk-BQUEAVNW.js → chunk-QJW4MZSW.js} +2 -2
- package/dist/{chunk-2VXWFYJE.js → chunk-R2MZCYA6.js} +3 -3
- package/dist/{chunk-VA5KMSAE.js → chunk-SR5LNI6Q.js} +3 -3
- package/dist/{chunk-LBWQ65SX.js → chunk-T42L3S6A.js} +4 -4
- package/dist/{chunk-PAYGC3BD.js → chunk-THVI4Y7X.js} +7 -7
- package/dist/{chunk-S7Q5CM7E.js → chunk-TJFI3K2O.js} +15 -3
- package/dist/chunk-TJFI3K2O.js.map +1 -0
- package/dist/{chunk-R47WINCY.js → chunk-UCKG36HO.js} +2 -2
- package/dist/{chunk-QXIQPCCN.js → chunk-UFR6HX7A.js} +1 -1
- package/dist/{chunk-CDUUDBWJ.js → chunk-VFYRYFLL.js} +2 -2
- package/dist/{chunk-P4DHENRE.js → chunk-WDXD6ITO.js} +2 -2
- package/dist/{chunk-BKYPJUQL.js → chunk-XGM3VQWG.js} +10 -10
- package/dist/{chunk-MBDJJTAT.js → chunk-YDKF4MSJ.js} +3 -3
- package/dist/{chunk-YF6UHWOV.js → chunk-YHGCT462.js} +3 -3
- package/dist/{chunk-AZAA5DNP.js → chunk-YOXVZJFM.js} +2 -2
- package/dist/{chunk-OLWTCWQ2.js → chunk-YZJM6CLF.js} +8 -8
- package/dist/chunk-ZCUTSMR2.js +61 -0
- package/dist/chunk-ZCUTSMR2.js.map +1 -0
- package/dist/{chunk-LUNJ3WFO.js → chunk-ZK4BFABK.js} +4 -4
- package/dist/{chunk-H5FW4S5Q.js → chunk-ZPOHEB5Z.js} +31 -31
- package/dist/{chunk-RDFF2NAU.js → chunk-ZXBTTMGZ.js} +184 -88
- package/dist/chunk-ZXBTTMGZ.js.map +1 -0
- package/dist/{cli-ChKeYMZv.d.ts → cli-DO3i14pM.d.ts} +5 -5
- package/dist/cli.d.ts +13 -13
- package/dist/cli.js +44 -42
- package/dist/coding/pre-action-gate.d.ts +1 -1
- package/dist/compounding/engine.d.ts +2 -2
- package/dist/compounding/engine.js +4 -4
- package/dist/compounding/preference-consolidator.d.ts +1 -1
- package/dist/compression-optimizer.d.ts +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.js +5 -1
- package/dist/connectors/codex-materialize-runner.d.ts +1 -1
- package/dist/connectors/codex-materialize-runner.js +8 -5
- package/dist/connectors/codex-materialize.d.ts +14 -1
- package/dist/connectors/codex-materialize.js +10 -1
- package/dist/connectors/index.d.ts +1 -1
- package/dist/connectors/index.js +8 -5
- package/dist/consolidation-provenance-check.d.ts +2 -2
- package/dist/consolidation-undo.d.ts +2 -2
- package/dist/contradiction/index.d.ts +3 -3
- package/dist/contradiction/index.js +1 -1
- package/dist/converge-config.d.ts +1 -1
- package/dist/convergence-refresh.d.ts +2 -2
- package/dist/convergence-refresh.js +6 -6
- package/dist/conversation-index/backend.d.ts +1 -1
- package/dist/conversation-index/chunker.d.ts +1 -1
- package/dist/conversation-index/faiss-adapter.d.ts +1 -1
- package/dist/conversation-index/indexer.d.ts +1 -1
- package/dist/conversation-index/search.d.ts +1 -1
- package/dist/corpus-watermark.d.ts +1 -1
- package/dist/corpus-watermark.js +6 -6
- package/dist/cross-lingual-recall.d.ts +1 -1
- package/dist/day-summary.d.ts +1 -1
- package/dist/delinearize.d.ts +1 -1
- package/dist/dependency-propagation-config.d.ts +1 -1
- package/dist/{dependency-propagation-delivery-B8ZMBBCY.d.ts → dependency-propagation-delivery-D23_x-s5.d.ts} +1 -1
- package/dist/direct-answer-wiring.d.ts +1 -1
- package/dist/direct-answer.d.ts +1 -1
- package/dist/embedding-fallback.d.ts +1 -1
- package/dist/enrichment/index.d.ts +1 -1
- package/dist/entity-origin-fields.d.ts +1 -1
- package/dist/entity-retrieval.d.ts +2 -2
- package/dist/entity-retrieval.js +4 -4
- package/dist/entity-schema.d.ts +1 -1
- package/dist/episodic-context.d.ts +1 -1
- package/dist/explicit-capture.d.ts +9 -9
- package/dist/explicit-capture.js +1 -1
- package/dist/external-wiki-access.d.ts +11 -11
- package/dist/external-wiki-access.js +21 -19
- package/dist/external-wiki-collection-registration.d.ts +1 -1
- package/dist/external-wiki-collection.d.ts +1 -1
- package/dist/external-wiki-mcp-tools.d.ts +11 -11
- package/dist/extraction-error-classification.d.ts +1 -1
- package/dist/extraction-faithfulness.d.ts +1 -1
- package/dist/extraction-judge-telemetry.d.ts +1 -1
- package/dist/extraction-judge-training.d.ts +1 -1
- package/dist/extraction-judge.d.ts +1 -1
- package/dist/extraction-judge.js +2 -2
- package/dist/extraction-liveness.d.ts +1 -1
- package/dist/extraction-normalization.d.ts +1 -1
- package/dist/extraction-prompt.d.ts +1 -1
- package/dist/extraction-source-grounding-rules.d.ts +1 -1
- package/dist/extraction-source-grounding.d.ts +1 -1
- package/dist/extraction.d.ts +1 -1
- package/dist/extraction.js +9 -7
- package/dist/fallback-llm.d.ts +1 -1
- package/dist/graph-dashboard-diff.d.ts +1 -1
- package/dist/graph-dashboard-key.d.ts +1 -1
- package/dist/graph-dashboard-parser.d.ts +1 -1
- package/dist/graph-edge-reinforcement.d.ts +1 -1
- package/dist/graph-path-reconstruction.d.ts +1 -1
- package/dist/graph-path-scoring.d.ts +1 -1
- package/dist/graph-snapshot.d.ts +1 -1
- package/dist/graph.d.ts +1 -1
- package/dist/harmonic-retrieval.js +1 -1
- package/dist/importance.d.ts +1 -1
- package/dist/importers/index.d.ts +1 -1
- package/dist/in-flight-reads.d.ts +1 -1
- package/dist/{index-CexDrJzC.d.ts → index--QhGIXF2.d.ts} +2 -2
- package/dist/index.d.ts +87 -40
- package/dist/index.js +79 -58
- package/dist/intent.d.ts +1 -1
- package/dist/lcm/engine.d.ts +1 -1
- package/dist/lcm/index.d.ts +1 -1
- package/dist/lcm/tools.d.ts +1 -1
- package/dist/lifecycle.d.ts +1 -1
- package/dist/live-connectors-runner.d.ts +1 -1
- package/dist/local-llm.d.ts +1 -1
- package/dist/local-model-endpoint.d.ts +1 -1
- package/dist/maintenance/memory-governance.d.ts +1 -1
- package/dist/maintenance/memory-governance.js +4 -4
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +2 -2
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +4 -4
- package/dist/maintenance/rebuild-memory-projection.d.ts +2 -2
- package/dist/maintenance/rebuild-memory-projection.js +5 -5
- package/dist/{maintenance-nkdtSrVr.d.ts → maintenance-PFvY1Pw_.d.ts} +3 -3
- package/dist/mcp-memory-inspector-app.d.ts +11 -11
- package/dist/memory-action-policy.d.ts +1 -1
- package/dist/memory-cache.d.ts +1 -1
- package/dist/memory-lifecycle-ledger-utils.d.ts +1 -1
- package/dist/memory-projection-store.d.ts +1 -1
- package/dist/memory-provenance.d.ts +1 -1
- package/dist/memory-snapshot.d.ts +1 -1
- package/dist/memory-subject-cli.d.ts +11 -11
- package/dist/memory-subject.d.ts +11 -11
- package/dist/memory-worth-outcomes.d.ts +2 -2
- package/dist/models-json.d.ts +1 -1
- package/dist/namespaces/migrate.d.ts +3 -3
- package/dist/namespaces/migrate.js +5 -5
- package/dist/namespaces/principal.d.ts +1 -1
- package/dist/namespaces/search.d.ts +1 -1
- package/dist/namespaces/storage.d.ts +3 -3
- package/dist/namespaces/storage.js +4 -4
- package/dist/native-knowledge.d.ts +1 -1
- package/dist/offline-sync-impression-drain.d.ts +1 -1
- package/dist/operator-doctor-corpus.d.ts +1 -1
- package/dist/operator-doctor-corpus.js +7 -7
- package/dist/operator-doctor-replica.d.ts +1 -1
- package/dist/operator-toolkit.d.ts +3 -3
- package/dist/operator-toolkit.js +16 -13
- package/dist/orchestration/compression-guideline-coordinator.d.ts +2 -2
- package/dist/orchestration/maintenance.d.ts +4 -4
- package/dist/orchestration/maintenance.js +10 -10
- package/dist/{orchestrator-Bvq1-RQs.d.ts → orchestrator-4wzJrPVm.d.ts} +8 -8
- package/dist/orchestrator.d.ts +9 -9
- package/dist/orchestrator.js +55 -53
- package/dist/patterns-cli.d.ts +1 -1
- package/dist/{pipeline-C8vfIiTX.d.ts → pipeline-CgXgdIrF.d.ts} +1 -1
- package/dist/policy-runtime.d.ts +1 -1
- package/dist/proactive-contention.d.ts +1 -1
- package/dist/provenance.d.ts +1 -1
- package/dist/{public-http-Cy0aYbys.d.ts → public-http-DhIXYBYI.d.ts} +1 -1
- package/dist/{qmd-B9p1SZTZ.d.ts → qmd-BppGGxsi.d.ts} +1 -1
- package/dist/qmd-preflight.d.ts +2 -2
- package/dist/qmd-recall-cache.d.ts +1 -1
- package/dist/qmd.d.ts +2 -2
- package/dist/recall-concurrency-config.d.ts +1 -1
- package/dist/recall-disclosure-escalation.d.ts +1 -1
- package/dist/recall-explain-renderer.d.ts +1 -1
- package/dist/recall-explain-renderer.js +3 -3
- package/dist/recall-memory-map.d.ts +1 -1
- package/dist/recall-planner-llm.d.ts +1 -1
- package/dist/recall-state.d.ts +1 -1
- package/dist/recall-tag-filter.d.ts +1 -1
- package/dist/recall-timings.d.ts +1 -1
- package/dist/recall-xray-cli.d.ts +1 -1
- package/dist/recall-xray-cli.js +4 -4
- package/dist/recall-xray-renderer.d.ts +1 -1
- package/dist/recall-xray-renderer.js +3 -3
- package/dist/recall-xray.d.ts +1 -1
- package/dist/recall-xray.js +2 -2
- package/dist/reconcile/cursor.d.ts +1 -1
- package/dist/reconcile/manifest.d.ts +1 -1
- package/dist/reconcile/manifest.js +2 -2
- package/dist/reconcile/plan.d.ts +1 -1
- package/dist/replay/normalizers/chatgpt.d.ts +1 -1
- package/dist/replay/normalizers/claude.d.ts +1 -1
- package/dist/replay/normalizers/openclaw.d.ts +1 -1
- package/dist/replay/normalizers/shared.d.ts +1 -1
- package/dist/replay/runner.d.ts +1 -1
- package/dist/replay/types.d.ts +1 -1
- package/dist/replica-divergence.d.ts +1 -1
- package/dist/replica-peers-config.d.ts +1 -1
- package/dist/resolution-4552BNRV.js +1 -1
- package/dist/resolve-auth-token.d.ts +1 -1
- package/dist/resume-bundles.js +6 -2
- package/dist/retrieval-agents.d.ts +2 -2
- package/dist/retrieval-tiers.d.ts +1 -1
- package/dist/routing/engine.d.ts +1 -1
- package/dist/routing/store.d.ts +1 -1
- package/dist/salvage-envelope.d.ts +1 -1
- package/dist/salvage-envelope.js +1 -1
- package/dist/schemas.d.ts +12 -12
- package/dist/{scope-profiles-DLrRxFWR.d.ts → scope-profiles-ChZUtxDU.d.ts} +1 -1
- package/dist/search/embed-helper.d.ts +1 -1
- package/dist/search/factory.d.ts +1 -1
- package/dist/search/index.d.ts +1 -1
- package/dist/search/lancedb-backend.d.ts +1 -1
- package/dist/search/meilisearch-backend.d.ts +1 -1
- package/dist/search/noop-backend.d.ts +1 -1
- package/dist/search/orama-backend.d.ts +1 -1
- package/dist/search/port.d.ts +1 -1
- package/dist/search/remote-backend.d.ts +1 -1
- package/dist/{semantic-consolidation-DlN6xe20.d.ts → semantic-consolidation-mSPwQSmF.d.ts} +1 -1
- package/dist/semantic-consolidation.d.ts +2 -2
- package/dist/semantic-consolidation.js +9 -6
- package/dist/semantic-rule-promotion.js +4 -4
- package/dist/semantic-rule-verifier.d.ts +1 -1
- package/dist/semantic-rule-verifier.js +4 -4
- package/dist/{service-GkYyVfm9.d.ts → service-BICWLwSP.d.ts} +2 -2
- package/dist/session-observer-bands.d.ts +1 -1
- package/dist/session-observer-state.d.ts +1 -1
- package/dist/shared-context/manager.d.ts +1 -1
- package/dist/signal.d.ts +1 -1
- package/dist/skills-registry.js +4 -56
- package/dist/skills-registry.js.map +1 -1
- package/dist/source-agent-qualifier.d.ts +1 -1
- package/dist/source-agent-qualifier.js +8 -5
- package/dist/{storage-BIDzuKIn.d.ts → storage-B7urx1K3.d.ts} +1 -1
- package/dist/storage.d.ts +2 -2
- package/dist/storage.js +6 -6
- package/dist/subject-config.d.ts +1 -1
- package/dist/summarizer.d.ts +1 -1
- package/dist/summary-snapshot.d.ts +1 -1
- package/dist/support-passport/index.d.ts +14 -14
- package/dist/support-passport/index.js +23 -21
- package/dist/temporal-supersession.d.ts +2 -2
- package/dist/temporal-timeline-recall.d.ts +1 -1
- package/dist/temporal-validity.d.ts +1 -1
- package/dist/threading.d.ts +1 -1
- package/dist/tier-migration.d.ts +2 -2
- package/dist/tier-routing.d.ts +1 -1
- package/dist/topics.d.ts +1 -1
- package/dist/transcript.d.ts +1 -1
- package/dist/trust-score-stage.d.ts +1 -1
- package/dist/trust-score.d.ts +1 -1
- package/dist/{types-BxAcOl5Q.d.ts → types-ETU5N6nB.d.ts} +111 -4
- package/dist/types.d.ts +1 -1
- package/dist/types.js +1 -1
- package/dist/utility-runtime.d.ts +1 -1
- package/dist/verified-recall.js +4 -4
- package/dist/who-knows-cli.d.ts +11 -11
- package/dist/who-knows-cli.js +5 -5
- package/dist/who-knows.d.ts +11 -11
- package/dist/who-knows.js +4 -4
- package/dist/write-envelope.d.ts +1 -1
- package/dist/write-envelope.js +1 -1
- package/package.json +2 -2
- package/src/cli/skills-commands.ts +150 -0
- package/src/cli.ts +4 -2
- package/src/config.ts +4 -2
- package/src/connectors/codex-materialize-runner.ts +16 -0
- package/src/connectors/codex-materialize-skills.test.ts +141 -0
- package/src/connectors/codex-materialize.ts +58 -40
- package/src/connectors/materialize-paths.ts +50 -0
- package/src/connectors/materialize-skills.ts +127 -0
- package/src/index.ts +5 -10
- package/src/procedural/skill-io.test.ts +190 -0
- package/src/procedural/skill-io.ts +220 -0
- package/src/procedural/skill-projection.test.ts +214 -0
- package/src/procedural/skill-projection.ts +356 -0
- package/src/types.ts +2 -3
- package/dist/chunk-76PL4XLG.js.map +0 -1
- package/dist/chunk-7QOO4LGC.js.map +0 -1
- package/dist/chunk-NXKJHSDN.js.map +0 -1
- package/dist/chunk-RDFF2NAU.js.map +0 -1
- package/dist/chunk-S7Q5CM7E.js.map +0 -1
- /package/dist/{auto-sync-H64ZCNIR.js.map → auto-sync-XVMLL2RH.js.map} +0 -0
- /package/dist/{chunk-IQSC3V2E.js.map → chunk-2IXQSGCU.js.map} +0 -0
- /package/dist/{chunk-GUXS322H.js.map → chunk-2MVTAIL3.js.map} +0 -0
- /package/dist/{chunk-TDKSCV62.js.map → chunk-3NH3VP3U.js.map} +0 -0
- /package/dist/{chunk-URHCUXKI.js.map → chunk-AXGFOFNY.js.map} +0 -0
- /package/dist/{chunk-WN5FSGLE.js.map → chunk-AZLLH6YA.js.map} +0 -0
- /package/dist/{chunk-D27J626P.js.map → chunk-BK5G2MHO.js.map} +0 -0
- /package/dist/{chunk-DHTQP334.js.map → chunk-CQBIN77D.js.map} +0 -0
- /package/dist/{chunk-6VALIZKG.js.map → chunk-DORFF5N5.js.map} +0 -0
- /package/dist/{chunk-MRTUN665.js.map → chunk-DUEDOYZD.js.map} +0 -0
- /package/dist/{chunk-QFMO32TO.js.map → chunk-DUZARALI.js.map} +0 -0
- /package/dist/{chunk-7KFIMGMP.js.map → chunk-ECLJ4LA2.js.map} +0 -0
- /package/dist/{chunk-PDVQ5JU3.js.map → chunk-GHD2LLG4.js.map} +0 -0
- /package/dist/{chunk-RK4WXUI2.js.map → chunk-HF5BUTI6.js.map} +0 -0
- /package/dist/{chunk-3DVBKTSO.js.map → chunk-HSZMX3ZJ.js.map} +0 -0
- /package/dist/{chunk-EV3YFLCB.js.map → chunk-I23ZHYSL.js.map} +0 -0
- /package/dist/{chunk-ODZG724P.js.map → chunk-I2HTKOOP.js.map} +0 -0
- /package/dist/{chunk-AYYGRVRP.js.map → chunk-IURMJBGP.js.map} +0 -0
- /package/dist/{chunk-TYUS5TLG.js.map → chunk-IWKGOCL6.js.map} +0 -0
- /package/dist/{chunk-4XDGYCZI.js.map → chunk-J3ATBB7M.js.map} +0 -0
- /package/dist/{chunk-E4MVQQVX.js.map → chunk-JPAKBNTM.js.map} +0 -0
- /package/dist/{chunk-NZWEEALH.js.map → chunk-KFIOPZ25.js.map} +0 -0
- /package/dist/{chunk-EIVIB73I.js.map → chunk-KOO37E4Y.js.map} +0 -0
- /package/dist/{chunk-57HVIG5U.js.map → chunk-KPB2QHJZ.js.map} +0 -0
- /package/dist/{chunk-Z4RPXHJH.js.map → chunk-LYBIHM4N.js.map} +0 -0
- /package/dist/{chunk-G57LQRP6.js.map → chunk-MFOSZUIT.js.map} +0 -0
- /package/dist/{chunk-AUO2LJ3K.js.map → chunk-NLEH4RTB.js.map} +0 -0
- /package/dist/{chunk-AYDDB3XI.js.map → chunk-OCCHUEZB.js.map} +0 -0
- /package/dist/{chunk-6TAX66IA.js.map → chunk-OU34IQXV.js.map} +0 -0
- /package/dist/{chunk-OJD4WS2E.js.map → chunk-OZDFB22S.js.map} +0 -0
- /package/dist/{chunk-GN55KU2P.js.map → chunk-PTZQYCJ4.js.map} +0 -0
- /package/dist/{chunk-BQUEAVNW.js.map → chunk-QJW4MZSW.js.map} +0 -0
- /package/dist/{chunk-2VXWFYJE.js.map → chunk-R2MZCYA6.js.map} +0 -0
- /package/dist/{chunk-VA5KMSAE.js.map → chunk-SR5LNI6Q.js.map} +0 -0
- /package/dist/{chunk-LBWQ65SX.js.map → chunk-T42L3S6A.js.map} +0 -0
- /package/dist/{chunk-PAYGC3BD.js.map → chunk-THVI4Y7X.js.map} +0 -0
- /package/dist/{chunk-R47WINCY.js.map → chunk-UCKG36HO.js.map} +0 -0
- /package/dist/{chunk-QXIQPCCN.js.map → chunk-UFR6HX7A.js.map} +0 -0
- /package/dist/{chunk-CDUUDBWJ.js.map → chunk-VFYRYFLL.js.map} +0 -0
- /package/dist/{chunk-P4DHENRE.js.map → chunk-WDXD6ITO.js.map} +0 -0
- /package/dist/{chunk-BKYPJUQL.js.map → chunk-XGM3VQWG.js.map} +0 -0
- /package/dist/{chunk-MBDJJTAT.js.map → chunk-YDKF4MSJ.js.map} +0 -0
- /package/dist/{chunk-YF6UHWOV.js.map → chunk-YHGCT462.js.map} +0 -0
- /package/dist/{chunk-AZAA5DNP.js.map → chunk-YOXVZJFM.js.map} +0 -0
- /package/dist/{chunk-OLWTCWQ2.js.map → chunk-YZJM6CLF.js.map} +0 -0
- /package/dist/{chunk-LUNJ3WFO.js.map → chunk-ZK4BFABK.js.map} +0 -0
- /package/dist/{chunk-H5FW4S5Q.js.map → chunk-ZPOHEB5Z.js.map} +0 -0
|
@@ -6,14 +6,14 @@ import {
|
|
|
6
6
|
loadSyncState,
|
|
7
7
|
syncWearableSource,
|
|
8
8
|
wearableSourceLabel
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-VFYRYFLL.js";
|
|
10
10
|
import {
|
|
11
11
|
CompressionGuidelineCoordinator
|
|
12
12
|
} from "./chunk-UXREWVW4.js";
|
|
13
13
|
import {
|
|
14
14
|
ActivityStore,
|
|
15
15
|
MaintenanceScheduler
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-LYBIHM4N.js";
|
|
17
17
|
import {
|
|
18
18
|
runPeerProfileReasoner
|
|
19
19
|
} from "./chunk-I74SUMNI.js";
|
|
@@ -32,7 +32,7 @@ import {
|
|
|
32
32
|
import {
|
|
33
33
|
CompoundingEngine,
|
|
34
34
|
defaultTierMigrationCycleBudget
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-UCKG36HO.js";
|
|
36
36
|
import {
|
|
37
37
|
SharedContextManager
|
|
38
38
|
} from "./chunk-VI637ILW.js";
|
|
@@ -160,7 +160,7 @@ import {
|
|
|
160
160
|
} from "./chunk-OH7QLI6W.js";
|
|
161
161
|
import {
|
|
162
162
|
ExtractionEngine
|
|
163
|
-
} from "./chunk-
|
|
163
|
+
} from "./chunk-ZK4BFABK.js";
|
|
164
164
|
import {
|
|
165
165
|
parseMemoryActionEligibilityContext
|
|
166
166
|
} from "./chunk-7BDZTALN.js";
|
|
@@ -176,7 +176,7 @@ import {
|
|
|
176
176
|
getVerdictKind,
|
|
177
177
|
judgeFactDurability,
|
|
178
178
|
validateProcedureExtraction
|
|
179
|
-
} from "./chunk-
|
|
179
|
+
} from "./chunk-HSZMX3ZJ.js";
|
|
180
180
|
import {
|
|
181
181
|
buildExplicitCueRecallSection
|
|
182
182
|
} from "./chunk-TVIVY7KU.js";
|
|
@@ -184,7 +184,7 @@ import {
|
|
|
184
184
|
buildEntityRecallSection,
|
|
185
185
|
entityRecentTranscriptLookbackHours,
|
|
186
186
|
readRecentEntityTranscriptEntries
|
|
187
|
-
} from "./chunk-
|
|
187
|
+
} from "./chunk-NLEH4RTB.js";
|
|
188
188
|
import {
|
|
189
189
|
planEpisodeWindowsWithFallback
|
|
190
190
|
} from "./chunk-T3GIETKV.js";
|
|
@@ -209,14 +209,14 @@ import {
|
|
|
209
209
|
} from "./chunk-VY47VI2T.js";
|
|
210
210
|
import {
|
|
211
211
|
refreshConvergedNamespaces
|
|
212
|
-
} from "./chunk-
|
|
212
|
+
} from "./chunk-JPAKBNTM.js";
|
|
213
213
|
import {
|
|
214
214
|
builtInConnectorPackageSpecifier,
|
|
215
215
|
ensureBuiltInWearableConnectors,
|
|
216
216
|
getWearableConnector,
|
|
217
217
|
listWearableConnectors,
|
|
218
218
|
screenCandidateFact
|
|
219
|
-
} from "./chunk-
|
|
219
|
+
} from "./chunk-3JZBPTLD.js";
|
|
220
220
|
import {
|
|
221
221
|
RoutingRulesStore
|
|
222
222
|
} from "./chunk-TBUEE7XF.js";
|
|
@@ -226,14 +226,14 @@ import {
|
|
|
226
226
|
import {
|
|
227
227
|
compareVerifiedEpisodeResults,
|
|
228
228
|
searchVerifiedEpisodes
|
|
229
|
-
} from "./chunk-
|
|
229
|
+
} from "./chunk-ECLJ4LA2.js";
|
|
230
230
|
import {
|
|
231
231
|
ThreadingManager
|
|
232
232
|
} from "./chunk-OJP3N7UK.js";
|
|
233
233
|
import {
|
|
234
234
|
compareVerifiedSemanticRuleResults,
|
|
235
235
|
searchVerifiedSemanticRules
|
|
236
|
-
} from "./chunk-
|
|
236
|
+
} from "./chunk-OCCHUEZB.js";
|
|
237
237
|
import {
|
|
238
238
|
searchWorkProductLedgerEntries
|
|
239
239
|
} from "./chunk-NRLELHAY.js";
|
|
@@ -246,13 +246,13 @@ import {
|
|
|
246
246
|
import {
|
|
247
247
|
runNamespaceMaintenanceFanout,
|
|
248
248
|
summarizeNamespaceMaintenanceHealth
|
|
249
|
-
} from "./chunk-
|
|
249
|
+
} from "./chunk-YZJM6CLF.js";
|
|
250
250
|
import {
|
|
251
251
|
planNamespaceMaintenance
|
|
252
|
-
} from "./chunk-
|
|
252
|
+
} from "./chunk-YDKF4MSJ.js";
|
|
253
253
|
import {
|
|
254
254
|
searchHarmonicRetrieval
|
|
255
|
-
} from "./chunk-
|
|
255
|
+
} from "./chunk-UFR6HX7A.js";
|
|
256
256
|
import {
|
|
257
257
|
isAboveImportanceThreshold,
|
|
258
258
|
scoreImportance
|
|
@@ -287,7 +287,7 @@ import {
|
|
|
287
287
|
materializeAfterSemanticConsolidation,
|
|
288
288
|
parseConsolidationResponse,
|
|
289
289
|
parseOperatorAwareConsolidationResponse
|
|
290
|
-
} from "./chunk-
|
|
290
|
+
} from "./chunk-HF5BUTI6.js";
|
|
291
291
|
import {
|
|
292
292
|
BootstrapEngine
|
|
293
293
|
} from "./chunk-MYVPLJOO.js";
|
|
@@ -305,7 +305,7 @@ import {
|
|
|
305
305
|
} from "./chunk-6TBIWIAG.js";
|
|
306
306
|
import {
|
|
307
307
|
detectMeetings
|
|
308
|
-
} from "./chunk-
|
|
308
|
+
} from "./chunk-DPNXADEI.js";
|
|
309
309
|
import {
|
|
310
310
|
compileCorrectionRule,
|
|
311
311
|
correctionsFilePath,
|
|
@@ -330,14 +330,14 @@ import {
|
|
|
330
330
|
} from "./chunk-KD3QD3A5.js";
|
|
331
331
|
import {
|
|
332
332
|
MeetingsInputError
|
|
333
|
-
} from "./chunk-
|
|
333
|
+
} from "./chunk-XGM3VQWG.js";
|
|
334
334
|
import {
|
|
335
335
|
WearablesInputError,
|
|
336
336
|
describeErrorForOperator
|
|
337
337
|
} from "./chunk-V7IZKJI3.js";
|
|
338
338
|
import {
|
|
339
339
|
NamespaceCatalog
|
|
340
|
-
} from "./chunk-
|
|
340
|
+
} from "./chunk-DUEDOYZD.js";
|
|
341
341
|
import {
|
|
342
342
|
recordDreamsPhaseRun
|
|
343
343
|
} from "./chunk-EQWEIIKQ.js";
|
|
@@ -354,7 +354,7 @@ import {
|
|
|
354
354
|
filterRecallCandidates,
|
|
355
355
|
isGenericRecallExcludedPath,
|
|
356
356
|
isTopLevelArchivePath
|
|
357
|
-
} from "./chunk-
|
|
357
|
+
} from "./chunk-AZLLH6YA.js";
|
|
358
358
|
import {
|
|
359
359
|
importCapsule
|
|
360
360
|
} from "./chunk-6433HV72.js";
|
|
@@ -380,7 +380,7 @@ import {
|
|
|
380
380
|
} from "./chunk-ZVZHG7AI.js";
|
|
381
381
|
import {
|
|
382
382
|
buildXraySnapshot
|
|
383
|
-
} from "./chunk-
|
|
383
|
+
} from "./chunk-MFOSZUIT.js";
|
|
384
384
|
import {
|
|
385
385
|
objectiveStateStoreOverrideForNamespace,
|
|
386
386
|
searchObjectiveStateSnapshots
|
|
@@ -395,9 +395,6 @@ import {
|
|
|
395
395
|
import {
|
|
396
396
|
LocalLlmClient
|
|
397
397
|
} from "./chunk-IVKIODHO.js";
|
|
398
|
-
import {
|
|
399
|
-
buildProcedurePersistBody
|
|
400
|
-
} from "./chunk-QDW3E4RD.js";
|
|
401
398
|
import {
|
|
402
399
|
shouldSkipImplicitExtraction
|
|
403
400
|
} from "./chunk-7BEPVIH3.js";
|
|
@@ -411,7 +408,7 @@ import {
|
|
|
411
408
|
} from "./chunk-7ZNJN5WZ.js";
|
|
412
409
|
import {
|
|
413
410
|
NamespaceStorageRouter
|
|
414
|
-
} from "./chunk-
|
|
411
|
+
} from "./chunk-CQBIN77D.js";
|
|
415
412
|
import {
|
|
416
413
|
GraphIndex
|
|
417
414
|
} from "./chunk-BIJAWZYW.js";
|
|
@@ -464,7 +461,7 @@ import {
|
|
|
464
461
|
} from "./chunk-CSAKJVXW.js";
|
|
465
462
|
import {
|
|
466
463
|
buildChainFollowupGenerator
|
|
467
|
-
} from "./chunk-
|
|
464
|
+
} from "./chunk-IURMJBGP.js";
|
|
468
465
|
import {
|
|
469
466
|
QmdResultResolver,
|
|
470
467
|
StorageManager,
|
|
@@ -483,7 +480,7 @@ import {
|
|
|
483
480
|
reconstructFusionInputs,
|
|
484
481
|
selfDeps,
|
|
485
482
|
serializeFusionDay
|
|
486
|
-
} from "./chunk-
|
|
483
|
+
} from "./chunk-THVI4Y7X.js";
|
|
487
484
|
import {
|
|
488
485
|
bodyIsEscaped,
|
|
489
486
|
decodeTranscriptBody,
|
|
@@ -519,7 +516,7 @@ import {
|
|
|
519
516
|
} from "./chunk-S2V7RUCL.js";
|
|
520
517
|
import {
|
|
521
518
|
confidenceTier
|
|
522
|
-
} from "./chunk-
|
|
519
|
+
} from "./chunk-LBFFNDFM.js";
|
|
523
520
|
import {
|
|
524
521
|
lintWorkspaceFiles,
|
|
525
522
|
rotateMarkdownFileToArchive
|
|
@@ -587,6 +584,9 @@ import {
|
|
|
587
584
|
import {
|
|
588
585
|
assertExternalWikiRootOutsideMemoryDirCanonical
|
|
589
586
|
} from "./chunk-JV3C2MNQ.js";
|
|
587
|
+
import {
|
|
588
|
+
buildProcedurePersistBody
|
|
589
|
+
} from "./chunk-QDW3E4RD.js";
|
|
590
590
|
import {
|
|
591
591
|
searchCausalTrajectories
|
|
592
592
|
} from "./chunk-PP7R754B.js";
|
|
@@ -650,13 +650,13 @@ import {
|
|
|
650
650
|
excludeSupportPassportPrivateMemories,
|
|
651
651
|
isSupportPassportPrivateMemory
|
|
652
652
|
} from "./chunk-XDL5CYZN.js";
|
|
653
|
+
import {
|
|
654
|
+
ContentHashIndex
|
|
655
|
+
} from "./chunk-JOEJG4SD.js";
|
|
653
656
|
import {
|
|
654
657
|
normalizeAttributePairs,
|
|
655
658
|
stripAttributesSuffix
|
|
656
659
|
} from "./chunk-JDSVLVCG.js";
|
|
657
|
-
import {
|
|
658
|
-
ContentHashIndex
|
|
659
|
-
} from "./chunk-JOEJG4SD.js";
|
|
660
660
|
import {
|
|
661
661
|
sanitizeMemoryContent
|
|
662
662
|
} from "./chunk-5GKPFL3S.js";
|
|
@@ -15652,7 +15652,7 @@ var OrchestratorInitCoordinator = class {
|
|
|
15652
15652
|
if (signal.aborted) return;
|
|
15653
15653
|
if (!this.deps.wearablesAutoSyncHandle && this.deps.config.wearables.enabled && this.deps.config.wearables.autoSyncEnabled && Object.values(this.deps.config.wearables.sources).some((source) => source.enabled)) {
|
|
15654
15654
|
try {
|
|
15655
|
-
const { startWearablesAutoSync } = await import("./auto-sync-
|
|
15655
|
+
const { startWearablesAutoSync } = await import("./auto-sync-XVMLL2RH.js");
|
|
15656
15656
|
if (signal.aborted) return;
|
|
15657
15657
|
this.deps.wearablesAutoSyncHandle = startWearablesAutoSync(
|
|
15658
15658
|
{
|
|
@@ -27190,4 +27190,4 @@ export {
|
|
|
27190
27190
|
blendGraphExpandedRecallScore,
|
|
27191
27191
|
Orchestrator
|
|
27192
27192
|
};
|
|
27193
|
-
//# sourceMappingURL=chunk-
|
|
27193
|
+
//# sourceMappingURL=chunk-ZPOHEB5Z.js.map
|
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
estimateTokenCount
|
|
3
3
|
} from "./chunk-TOTT6S2V.js";
|
|
4
|
+
import {
|
|
5
|
+
SKILL_FILE_NAME,
|
|
6
|
+
renderSkillBundle
|
|
7
|
+
} from "./chunk-236PXYG7.js";
|
|
8
|
+
import {
|
|
9
|
+
isValidSkillSlug
|
|
10
|
+
} from "./chunk-ZCUTSMR2.js";
|
|
11
|
+
import {
|
|
12
|
+
pathIsInside
|
|
13
|
+
} from "./chunk-GCASGYIO.js";
|
|
4
14
|
import {
|
|
5
15
|
expandTildePath
|
|
6
16
|
} from "./chunk-EYIEWJNI.js";
|
|
@@ -16,8 +26,105 @@ import {
|
|
|
16
26
|
import {
|
|
17
27
|
createHash
|
|
18
28
|
} from "crypto";
|
|
29
|
+
import fs3 from "fs";
|
|
30
|
+
import path3 from "path";
|
|
31
|
+
|
|
32
|
+
// src/connectors/materialize-paths.ts
|
|
19
33
|
import fs from "fs";
|
|
20
34
|
import path from "path";
|
|
35
|
+
function ensureSafeManagedSubdir(memoriesDir, subdir, label) {
|
|
36
|
+
const memoriesReal = fs.realpathSync(memoriesDir);
|
|
37
|
+
try {
|
|
38
|
+
const stat = fs.lstatSync(subdir);
|
|
39
|
+
if (stat.isSymbolicLink()) {
|
|
40
|
+
throw new Error("is a symbolic link");
|
|
41
|
+
}
|
|
42
|
+
if (!stat.isDirectory()) {
|
|
43
|
+
throw new Error("is not a directory");
|
|
44
|
+
}
|
|
45
|
+
} catch (err) {
|
|
46
|
+
if (err.code !== "ENOENT") {
|
|
47
|
+
throw new Error(
|
|
48
|
+
`codex-materialize: unsafe ${label} directory at ${subdir}: ${err instanceof Error ? err.message : String(err)}`
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
fs.mkdirSync(subdir, { recursive: true });
|
|
52
|
+
}
|
|
53
|
+
const subdirReal = fs.realpathSync(subdir);
|
|
54
|
+
if (!pathIsInside(memoriesReal, subdirReal)) {
|
|
55
|
+
throw new Error(
|
|
56
|
+
`codex-materialize: unsafe ${label} directory at ${subdir}: resolves outside ${memoriesDir}`
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
return path.normalize(subdir);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// src/connectors/materialize-skills.ts
|
|
63
|
+
import fs2 from "fs";
|
|
64
|
+
import path2 from "path";
|
|
65
|
+
var SKILLS_SUBDIR = "skills";
|
|
66
|
+
function planSkillFiles(bundles, previouslyProjectedSlugs) {
|
|
67
|
+
const files = [];
|
|
68
|
+
const seen = /* @__PURE__ */ new Set();
|
|
69
|
+
for (const bundle of bundles ?? []) {
|
|
70
|
+
if (!isValidSkillSlug(bundle.slug) || seen.has(bundle.slug)) continue;
|
|
71
|
+
seen.add(bundle.slug);
|
|
72
|
+
files.push({ slug: bundle.slug, body: renderSkillBundle(bundle) });
|
|
73
|
+
}
|
|
74
|
+
const previous = previouslyProjectedSlugs.filter((slug) => isValidSkillSlug(slug));
|
|
75
|
+
return {
|
|
76
|
+
supplied: bundles !== void 0,
|
|
77
|
+
files,
|
|
78
|
+
retiredSlugs: bundles === void 0 ? [] : previous.filter((slug) => !seen.has(slug))
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
function skillFilePath(memoriesDir, slug) {
|
|
82
|
+
return path2.join(memoriesDir, SKILLS_SUBDIR, slug, SKILL_FILE_NAME);
|
|
83
|
+
}
|
|
84
|
+
function skillFileRelPath(slug) {
|
|
85
|
+
return path2.join(SKILLS_SUBDIR, slug, SKILL_FILE_NAME);
|
|
86
|
+
}
|
|
87
|
+
function retiredSkillsAlreadyRemoved(memoriesDir, retiredSlugs) {
|
|
88
|
+
return retiredSlugs.every((slug) => !fs2.existsSync(path2.join(memoriesDir, SKILLS_SUBDIR, slug)));
|
|
89
|
+
}
|
|
90
|
+
function stageSkillFiles(tmpDir, files) {
|
|
91
|
+
for (const file of files) {
|
|
92
|
+
const stagedDir = path2.join(tmpDir, SKILLS_SUBDIR, file.slug);
|
|
93
|
+
fs2.mkdirSync(stagedDir, { recursive: true });
|
|
94
|
+
fs2.writeFileSync(path2.join(stagedDir, SKILL_FILE_NAME), file.body);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
function commitSkillFiles(memoriesDir, tmpDir, plan) {
|
|
98
|
+
if (!plan.supplied) return;
|
|
99
|
+
if (plan.files.length === 0 && plan.retiredSlugs.length === 0) return;
|
|
100
|
+
const skillsDir = ensureSafeManagedSubdir(memoriesDir, path2.join(memoriesDir, SKILLS_SUBDIR), SKILLS_SUBDIR);
|
|
101
|
+
for (const slug of plan.retiredSlugs) {
|
|
102
|
+
const retiredDir = path2.join(skillsDir, slug);
|
|
103
|
+
try {
|
|
104
|
+
if (fs2.lstatSync(retiredDir).isSymbolicLink()) continue;
|
|
105
|
+
} catch (err) {
|
|
106
|
+
if (err.code === "ENOENT") continue;
|
|
107
|
+
throw err;
|
|
108
|
+
}
|
|
109
|
+
try {
|
|
110
|
+
fs2.rmSync(retiredDir, { recursive: true, force: true });
|
|
111
|
+
} catch (err) {
|
|
112
|
+
throw new Error(
|
|
113
|
+
`codex-materialize: failed to remove retired skill ${slug}: ${err instanceof Error ? err.message : String(err)}`
|
|
114
|
+
);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
for (const file of plan.files) {
|
|
118
|
+
const destDir = path2.join(skillsDir, file.slug);
|
|
119
|
+
fs2.mkdirSync(destDir, { recursive: true });
|
|
120
|
+
fs2.renameSync(
|
|
121
|
+
path2.join(tmpDir, SKILLS_SUBDIR, file.slug, SKILL_FILE_NAME),
|
|
122
|
+
path2.join(destDir, SKILL_FILE_NAME)
|
|
123
|
+
);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
// src/connectors/codex-materialize.ts
|
|
21
128
|
var MATERIALIZE_VERSION = 1;
|
|
22
129
|
var SENTINEL_FILE = ".remnic-managed";
|
|
23
130
|
var TMP_DIR = ".remnic-tmp";
|
|
@@ -37,10 +144,10 @@ function materializeForNamespace(namespace, options) {
|
|
|
37
144
|
const now = options.now ?? /* @__PURE__ */ new Date();
|
|
38
145
|
const maxSummaryTokens = typeof options.maxSummaryTokens === "number" && options.maxSummaryTokens >= 0 ? options.maxSummaryTokens : 4500;
|
|
39
146
|
const rolloutRetentionDays = typeof options.rolloutRetentionDays === "number" && options.rolloutRetentionDays >= 0 ? options.rolloutRetentionDays : 30;
|
|
40
|
-
const sentinelPath =
|
|
147
|
+
const sentinelPath = path3.join(memoriesDir, SENTINEL_FILE);
|
|
41
148
|
const existingSentinel = readSentinel(sentinelPath);
|
|
42
149
|
if (!existingSentinel) {
|
|
43
|
-
if (
|
|
150
|
+
if (fs3.existsSync(memoriesDir)) {
|
|
44
151
|
logger.warn(
|
|
45
152
|
`sentinel ${SENTINEL_FILE} missing in ${memoriesDir}; skipping materialization to preserve hand-edits`
|
|
46
153
|
);
|
|
@@ -59,7 +166,7 @@ function materializeForNamespace(namespace, options) {
|
|
|
59
166
|
contentHash: ""
|
|
60
167
|
};
|
|
61
168
|
}
|
|
62
|
-
|
|
169
|
+
fs3.mkdirSync(memoriesDir, { recursive: true });
|
|
63
170
|
const memories = [...options.memories];
|
|
64
171
|
const rolloutsSupplied = options.rolloutSummaries !== void 0;
|
|
65
172
|
const rolloutSummaries = options.rolloutSummaries ?? [];
|
|
@@ -106,28 +213,32 @@ function materializeForNamespace(namespace, options) {
|
|
|
106
213
|
name: `${sanitizeSlug(r.slug)}.md`,
|
|
107
214
|
body: renderRolloutSummary(r)
|
|
108
215
|
}));
|
|
109
|
-
const destRolloutsDir =
|
|
216
|
+
const destRolloutsDir = path3.join(memoriesDir, ROLLOUT_SUBDIR);
|
|
110
217
|
const retainedRolloutNames = new Set(rolloutFiles.map((r) => r.name));
|
|
218
|
+
const skillPlan = planSkillFiles(options.skills, existingSentinel.projected_skills ?? []);
|
|
111
219
|
const hash = computeContentHash({
|
|
112
220
|
namespace,
|
|
113
221
|
memorySummary,
|
|
114
222
|
memoryMd,
|
|
115
223
|
rawMemories,
|
|
116
|
-
rolloutFiles
|
|
224
|
+
rolloutFiles,
|
|
225
|
+
skillFiles: skillPlan.files
|
|
117
226
|
});
|
|
118
227
|
if (existingSentinel.content_hash === hash) {
|
|
119
228
|
const requiredFiles = [
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
...rolloutFiles.map((r) =>
|
|
229
|
+
path3.join(memoriesDir, "memory_summary.md"),
|
|
230
|
+
path3.join(memoriesDir, "MEMORY.md"),
|
|
231
|
+
path3.join(memoriesDir, "raw_memories.md"),
|
|
232
|
+
...rolloutFiles.map((r) => path3.join(memoriesDir, ROLLOUT_SUBDIR, r.name)),
|
|
233
|
+
...skillPlan.files.map((s) => skillFilePath(memoriesDir, s.slug))
|
|
124
234
|
];
|
|
125
|
-
const allPresent = requiredFiles.every((f) =>
|
|
235
|
+
const allPresent = requiredFiles.every((f) => fs3.existsSync(f));
|
|
126
236
|
const rolloutsClean = !rolloutsSupplied || rolloutDirectoryMatchesRetainedSet(
|
|
127
|
-
|
|
237
|
+
ensureSafeManagedSubdir(memoriesDir, destRolloutsDir, ROLLOUT_SUBDIR),
|
|
128
238
|
retainedRolloutNames
|
|
129
239
|
);
|
|
130
|
-
|
|
240
|
+
const skillsClean = retiredSkillsAlreadyRemoved(memoriesDir, skillPlan.retiredSlugs);
|
|
241
|
+
if (allPresent && rolloutsClean && skillsClean) {
|
|
131
242
|
logger.debug?.(`no-op materialization for namespace=${namespace} (hash unchanged)`);
|
|
132
243
|
return {
|
|
133
244
|
namespace,
|
|
@@ -144,46 +255,50 @@ function materializeForNamespace(namespace, options) {
|
|
|
144
255
|
);
|
|
145
256
|
}
|
|
146
257
|
const runTag = `${process.pid}-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 10)}`;
|
|
147
|
-
const tmpDir =
|
|
258
|
+
const tmpDir = path3.join(memoriesDir, `${TMP_DIR}-${runTag}`);
|
|
148
259
|
const TMP_STALE_MS = 60 * 60 * 1e3;
|
|
149
260
|
const wallClockMs = Date.now();
|
|
150
261
|
try {
|
|
151
|
-
for (const entry of
|
|
262
|
+
for (const entry of fs3.readdirSync(memoriesDir, { withFileTypes: true })) {
|
|
152
263
|
if (!entry.isDirectory()) continue;
|
|
153
264
|
if (!entry.name.startsWith(TMP_DIR)) continue;
|
|
154
|
-
const stalePath =
|
|
265
|
+
const stalePath = path3.join(memoriesDir, entry.name);
|
|
155
266
|
try {
|
|
156
|
-
const stat =
|
|
267
|
+
const stat = fs3.statSync(stalePath);
|
|
157
268
|
if (wallClockMs - stat.mtimeMs < TMP_STALE_MS) continue;
|
|
158
|
-
|
|
269
|
+
fs3.rmSync(stalePath, { recursive: true, force: true });
|
|
159
270
|
} catch {
|
|
160
271
|
}
|
|
161
272
|
}
|
|
162
273
|
} catch {
|
|
163
274
|
}
|
|
164
|
-
|
|
165
|
-
|
|
275
|
+
fs3.mkdirSync(tmpDir, { recursive: true });
|
|
276
|
+
fs3.mkdirSync(path3.join(tmpDir, ROLLOUT_SUBDIR), { recursive: true });
|
|
166
277
|
const filesWritten = [];
|
|
167
|
-
|
|
278
|
+
fs3.writeFileSync(path3.join(tmpDir, "memory_summary.md"), memorySummary);
|
|
168
279
|
filesWritten.push("memory_summary.md");
|
|
169
|
-
|
|
280
|
+
fs3.writeFileSync(path3.join(tmpDir, "MEMORY.md"), memoryMd);
|
|
170
281
|
filesWritten.push("MEMORY.md");
|
|
171
|
-
|
|
282
|
+
fs3.writeFileSync(path3.join(tmpDir, "raw_memories.md"), rawMemories);
|
|
172
283
|
filesWritten.push("raw_memories.md");
|
|
173
284
|
for (const rollout of rolloutFiles) {
|
|
174
|
-
|
|
175
|
-
filesWritten.push(
|
|
285
|
+
fs3.writeFileSync(path3.join(tmpDir, ROLLOUT_SUBDIR, rollout.name), rollout.body);
|
|
286
|
+
filesWritten.push(path3.join(ROLLOUT_SUBDIR, rollout.name));
|
|
287
|
+
}
|
|
288
|
+
stageSkillFiles(tmpDir, skillPlan.files);
|
|
289
|
+
for (const skill of skillPlan.files) {
|
|
290
|
+
filesWritten.push(skillFileRelPath(skill.slug));
|
|
176
291
|
}
|
|
177
292
|
for (const rel of ["memory_summary.md", "MEMORY.md", "raw_memories.md"]) {
|
|
178
|
-
const src =
|
|
179
|
-
const dest =
|
|
180
|
-
|
|
293
|
+
const src = path3.join(tmpDir, rel);
|
|
294
|
+
const dest = path3.join(memoriesDir, rel);
|
|
295
|
+
fs3.renameSync(src, dest);
|
|
181
296
|
}
|
|
182
|
-
const safeDestRolloutsDir =
|
|
297
|
+
const safeDestRolloutsDir = ensureSafeManagedSubdir(memoriesDir, destRolloutsDir, ROLLOUT_SUBDIR);
|
|
183
298
|
if (rolloutsSupplied) {
|
|
184
299
|
let existingRollouts;
|
|
185
300
|
try {
|
|
186
|
-
existingRollouts =
|
|
301
|
+
existingRollouts = fs3.readdirSync(safeDestRolloutsDir, { withFileTypes: true });
|
|
187
302
|
} catch (err) {
|
|
188
303
|
if (err.code !== "ENOENT") throw err;
|
|
189
304
|
existingRollouts = [];
|
|
@@ -193,7 +308,7 @@ function materializeForNamespace(namespace, options) {
|
|
|
193
308
|
if (!entry.name.endsWith(".md")) continue;
|
|
194
309
|
if (retainedRolloutNames.has(entry.name)) continue;
|
|
195
310
|
try {
|
|
196
|
-
|
|
311
|
+
fs3.unlinkSync(path3.join(safeDestRolloutsDir, entry.name));
|
|
197
312
|
} catch (err) {
|
|
198
313
|
throw new Error(
|
|
199
314
|
`codex-materialize: failed to prune stale rollout summary ${entry.name}: ${err instanceof Error ? err.message : String(err)}`
|
|
@@ -202,19 +317,21 @@ function materializeForNamespace(namespace, options) {
|
|
|
202
317
|
}
|
|
203
318
|
}
|
|
204
319
|
for (const rollout of rolloutFiles) {
|
|
205
|
-
const src =
|
|
206
|
-
const dest =
|
|
207
|
-
|
|
320
|
+
const src = path3.join(tmpDir, ROLLOUT_SUBDIR, rollout.name);
|
|
321
|
+
const dest = path3.join(safeDestRolloutsDir, rollout.name);
|
|
322
|
+
fs3.renameSync(src, dest);
|
|
208
323
|
}
|
|
324
|
+
commitSkillFiles(memoriesDir, tmpDir, skillPlan);
|
|
209
325
|
const sentinel = {
|
|
210
326
|
version: MATERIALIZE_VERSION,
|
|
211
327
|
namespace,
|
|
212
328
|
updated_at: now.toISOString(),
|
|
213
|
-
content_hash: hash
|
|
329
|
+
content_hash: hash,
|
|
330
|
+
projected_skills: skillPlan.supplied ? skillPlan.files.map((s) => s.slug) : existingSentinel.projected_skills ?? []
|
|
214
331
|
};
|
|
215
332
|
writeSentinelAtomically(sentinelPath, sentinel);
|
|
216
333
|
try {
|
|
217
|
-
|
|
334
|
+
fs3.rmSync(tmpDir, { recursive: true, force: true });
|
|
218
335
|
} catch {
|
|
219
336
|
}
|
|
220
337
|
logger.info(
|
|
@@ -231,9 +348,9 @@ function materializeForNamespace(namespace, options) {
|
|
|
231
348
|
};
|
|
232
349
|
}
|
|
233
350
|
function ensureSentinel(memoriesDir, namespace, now = /* @__PURE__ */ new Date()) {
|
|
234
|
-
|
|
235
|
-
const sentinelPath =
|
|
236
|
-
if (
|
|
351
|
+
fs3.mkdirSync(memoriesDir, { recursive: true });
|
|
352
|
+
const sentinelPath = path3.join(memoriesDir, SENTINEL_FILE);
|
|
353
|
+
if (fs3.existsSync(sentinelPath)) {
|
|
237
354
|
readSentinel(sentinelPath);
|
|
238
355
|
return;
|
|
239
356
|
}
|
|
@@ -444,24 +561,24 @@ function validateMemoryMd(content) {
|
|
|
444
561
|
}
|
|
445
562
|
function resolveCodexHome(override) {
|
|
446
563
|
if (override && override.trim().length > 0) {
|
|
447
|
-
return
|
|
564
|
+
return path3.resolve(expandTildePath(override.trim()));
|
|
448
565
|
}
|
|
449
566
|
const fromEnv = readEnvVar("CODEX_HOME");
|
|
450
567
|
if (fromEnv && fromEnv.trim().length > 0) {
|
|
451
|
-
return
|
|
568
|
+
return path3.resolve(expandTildePath(fromEnv.trim()));
|
|
452
569
|
}
|
|
453
|
-
return
|
|
570
|
+
return path3.resolve(resolveHomeDir(), ".codex");
|
|
454
571
|
}
|
|
455
572
|
function resolveCodexMemoriesDir(codexHome) {
|
|
456
|
-
return
|
|
573
|
+
return path3.join(resolveCodexHome(codexHome), "memories");
|
|
457
574
|
}
|
|
458
575
|
function hasCodexMaterializeSentinel(codexHome) {
|
|
459
|
-
return readSentinel(
|
|
576
|
+
return readSentinel(path3.join(resolveCodexMemoriesDir(codexHome), SENTINEL_FILE)) !== null;
|
|
460
577
|
}
|
|
461
578
|
function rolloutDirectoryMatchesRetainedSet(rolloutsDir, retainedNames) {
|
|
462
579
|
let entries;
|
|
463
580
|
try {
|
|
464
|
-
entries =
|
|
581
|
+
entries = fs3.readdirSync(rolloutsDir, { withFileTypes: true });
|
|
465
582
|
} catch {
|
|
466
583
|
return retainedNames.size === 0;
|
|
467
584
|
}
|
|
@@ -472,49 +589,21 @@ function rolloutDirectoryMatchesRetainedSet(rolloutsDir, retainedNames) {
|
|
|
472
589
|
}
|
|
473
590
|
return true;
|
|
474
591
|
}
|
|
475
|
-
function isPathInside(parent, child) {
|
|
476
|
-
const relative = path.relative(parent, child);
|
|
477
|
-
return relative === "" || !relative.startsWith("..") && !path.isAbsolute(relative);
|
|
478
|
-
}
|
|
479
|
-
function ensureSafeRolloutsDir(memoriesDir, rolloutsDir) {
|
|
480
|
-
const memoriesReal = fs.realpathSync(memoriesDir);
|
|
481
|
-
try {
|
|
482
|
-
const stat = fs.lstatSync(rolloutsDir);
|
|
483
|
-
if (stat.isSymbolicLink()) {
|
|
484
|
-
throw new Error("is a symbolic link");
|
|
485
|
-
}
|
|
486
|
-
if (!stat.isDirectory()) {
|
|
487
|
-
throw new Error("is not a directory");
|
|
488
|
-
}
|
|
489
|
-
} catch (err) {
|
|
490
|
-
if (err.code !== "ENOENT") {
|
|
491
|
-
throw new Error(
|
|
492
|
-
`codex-materialize: unsafe ${ROLLOUT_SUBDIR} directory at ${rolloutsDir}: ${err instanceof Error ? err.message : String(err)}`
|
|
493
|
-
);
|
|
494
|
-
}
|
|
495
|
-
fs.mkdirSync(rolloutsDir, { recursive: true });
|
|
496
|
-
}
|
|
497
|
-
const rolloutsReal = fs.realpathSync(rolloutsDir);
|
|
498
|
-
if (!isPathInside(memoriesReal, rolloutsReal)) {
|
|
499
|
-
throw new Error(
|
|
500
|
-
`codex-materialize: unsafe ${ROLLOUT_SUBDIR} directory at ${rolloutsDir}: resolves outside ${memoriesDir}`
|
|
501
|
-
);
|
|
502
|
-
}
|
|
503
|
-
return rolloutsDir;
|
|
504
|
-
}
|
|
505
592
|
function readSentinel(sentinelPath) {
|
|
506
|
-
if (!
|
|
593
|
+
if (!fs3.existsSync(sentinelPath)) return null;
|
|
507
594
|
try {
|
|
508
|
-
const raw =
|
|
595
|
+
const raw = fs3.readFileSync(sentinelPath, "utf-8");
|
|
509
596
|
const parsed = JSON.parse(raw);
|
|
510
597
|
if (typeof parsed !== "object" || parsed === null || typeof parsed.version !== "number" || typeof parsed.namespace !== "string" || typeof parsed.updated_at !== "string" || typeof parsed.content_hash !== "string") {
|
|
511
598
|
throw new Error("invalid sentinel schema");
|
|
512
599
|
}
|
|
600
|
+
const projected = Array.isArray(parsed.projected_skills) ? parsed.projected_skills.filter((slug) => typeof slug === "string") : [];
|
|
513
601
|
return {
|
|
514
602
|
version: parsed.version,
|
|
515
603
|
namespace: parsed.namespace,
|
|
516
604
|
updated_at: parsed.updated_at,
|
|
517
|
-
content_hash: parsed.content_hash
|
|
605
|
+
content_hash: parsed.content_hash,
|
|
606
|
+
projected_skills: projected
|
|
518
607
|
};
|
|
519
608
|
} catch (err) {
|
|
520
609
|
throw new Error(
|
|
@@ -525,14 +614,14 @@ function readSentinel(sentinelPath) {
|
|
|
525
614
|
function writeSentinelAtomically(sentinelPath, sentinel) {
|
|
526
615
|
const tmpPath = `${sentinelPath}.${process.pid}.${Date.now()}.${Math.random().toString(16).slice(2)}.tmp`;
|
|
527
616
|
try {
|
|
528
|
-
|
|
617
|
+
fs3.writeFileSync(tmpPath, `${JSON.stringify(sentinel, null, 2)}
|
|
529
618
|
`, {
|
|
530
619
|
flag: "wx"
|
|
531
620
|
});
|
|
532
|
-
|
|
621
|
+
fs3.renameSync(tmpPath, sentinelPath);
|
|
533
622
|
} catch (err) {
|
|
534
623
|
try {
|
|
535
|
-
|
|
624
|
+
fs3.rmSync(tmpPath, { force: true });
|
|
536
625
|
} catch {
|
|
537
626
|
}
|
|
538
627
|
throw err;
|
|
@@ -658,22 +747,29 @@ function computeContentHash(input) {
|
|
|
658
747
|
`);
|
|
659
748
|
hash.update(r.body);
|
|
660
749
|
}
|
|
750
|
+
const sortedSkills = [...input.skillFiles].sort((a, b) => a.slug < b.slug ? -1 : a.slug > b.slug ? 1 : 0);
|
|
751
|
+
for (const s of sortedSkills) {
|
|
752
|
+
hash.update(`
|
|
753
|
+
---skill:${s.slug}---
|
|
754
|
+
`);
|
|
755
|
+
hash.update(s.body);
|
|
756
|
+
}
|
|
661
757
|
return hash.digest("hex");
|
|
662
758
|
}
|
|
663
759
|
function describeMemoriesDir(memoriesDir) {
|
|
664
|
-
if (!
|
|
665
|
-
const sentinelPath =
|
|
760
|
+
if (!fs3.existsSync(memoriesDir)) return null;
|
|
761
|
+
const sentinelPath = path3.join(memoriesDir, SENTINEL_FILE);
|
|
666
762
|
const sentinel = readSentinel(sentinelPath);
|
|
667
763
|
const files = [];
|
|
668
|
-
for (const entry of
|
|
764
|
+
for (const entry of fs3.readdirSync(memoriesDir, { withFileTypes: true })) {
|
|
669
765
|
if (entry.isFile() && OWNED_FILES.has(entry.name)) files.push(entry.name);
|
|
670
766
|
}
|
|
671
|
-
const rolloutsDir =
|
|
672
|
-
if (
|
|
767
|
+
const rolloutsDir = path3.join(memoriesDir, ROLLOUT_SUBDIR);
|
|
768
|
+
if (fs3.existsSync(rolloutsDir)) {
|
|
673
769
|
try {
|
|
674
|
-
for (const entry of
|
|
770
|
+
for (const entry of fs3.readdirSync(rolloutsDir, { withFileTypes: true })) {
|
|
675
771
|
if (entry.isFile() && entry.name.endsWith(".md")) {
|
|
676
|
-
files.push(
|
|
772
|
+
files.push(path3.join(ROLLOUT_SUBDIR, entry.name));
|
|
677
773
|
}
|
|
678
774
|
}
|
|
679
775
|
} catch {
|
|
@@ -704,4 +800,4 @@ export {
|
|
|
704
800
|
truncateToTokenBudget,
|
|
705
801
|
describeMemoriesDir
|
|
706
802
|
};
|
|
707
|
-
//# sourceMappingURL=chunk-
|
|
803
|
+
//# sourceMappingURL=chunk-ZXBTTMGZ.js.map
|